# This is the target specific configuration file. This is invoked by the # autoconf generated configure script. Putting it in a separate shell file # lets us skip running autoconf when modifying target specific information. # This file switches on the shell variable ${target}, and sets the # following shell variables: # config_path An ordered list of directories to search for # sources and headers. This is relative to the # config subdirectory of the source tree. # XCFLAGS Add extra compile flags to use. # XLDFLAGS Add extra link flags to use. # Optimize TLS usage by avoiding the overhead of dynamic allocation. if test $gcc_cv_have_tls = yes ; then case "${target}" in *-*-k*bsd*-gnu*) ;; *-*-musl*) ;; *-*-linux* | *-*-gnu*) XCFLAGS="${XCFLAGS} -ftls-model=initial-exec -DUSING_INITIAL_EXEC_TLS" ;; *-*-rtems*) XCFLAGS="${XCFLAGS} -ftls-model=local-exec" ;; esac fi # Since we require POSIX threads, assume a POSIX system by default. config_path="posix" # Check for futex enabled all at once. if test x$enable_linux_futex = xyes; then case "${target}" in aarch64*-*-linux*) config_path="linux posix" ;; alpha*-*-linux*) config_path="linux/alpha linux posix" ;; arm*-*-linux*) config_path="linux posix" ;; ia64*-*-linux*) config_path="linux/ia64 linux posix" ;; mips*-*-linux*) config_path="linux/mips linux posix" ;; powerpc*-*-linux*) config_path="linux/powerpc linux posix" ;; s390*-*-linux*) config_path="linux/s390 linux posix" ;; tile*-*-linux*) config_path="linux/tile linux posix" ;; # Note that bare i386 is not included here. We need cmpxchg. i[456]86-*-linux*) config_path="linux/x86 linux posix" case " ${CC} ${CFLAGS} " in *" -m64 "*|*" -mx32 "*) ;; *) if test -z "$with_arch"; then XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" fi esac ;; # Similar jiggery-pokery for x86_64 multilibs, except here we # can't rely on the --with-arch configure option, since that # applies to the 64-bit side. x86_64-*-linux*) config_path="linux/x86 linux posix" case " ${CC} ${CFLAGS} " in *" -m32 "*) XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" ;; esac ;; # Note that sparcv7 and sparcv8 is not included here. We need cas. sparcv9-*-linux* | sparc64-*-linux*) echo "int i;" > conftestx.c if ${CC} ${CFLAGS} -c -o conftestx.o conftestx.c > /dev/null 2>&1; then config_path="linux/sparc linux posix" case "`/usr/bin/file conftestx.o`" in *32-bit*) case " ${CC} ${CFLAGS}" in *" -mcpu=ultrasparc"*) ;; *) XCFLAGS="${XCFLAGS} -mcpu=v9" ;; esac ;; esac fi rm -f conftestx.c conftestx.o ;; esac fi # Other system configury case "${target}" in *-*-hpux*) config_path="hpux posix" case "${target}" in *-*-hpux11*) # HPUX v11.x requires -lrt to resolve sem_init in libgomp.la XLDFLAGS="${XLDFLAGS} -lrt" ;; esac case "${target}" in hppa[12]*-*-hpux*) # PA 32 HP-UX needs -frandom-seed for bootstrap compare. XCFLAGS="${XCFLAGS} -frandom-seed=fixed-seed" ;; esac ;; *-*-mingw32*) config_path="mingw32 posix" ;; *-*-darwin*) config_path="bsd darwin posix" ;; *-*-freebsd*) # Need to link with -lpthread so libgomp.so is self-contained. XLDFLAGS="${XLDFLAGS} -lpthread" ;; *-*-aix*) config_path="posix" # Need to link with -lpthread so libgomp.so is self-contained. XLDFLAGS="${XLDFLAGS} -lpthread" # AIX needs -frandom-seed for bootstrap compare. XCFLAGS="${XCFLAGS} -frandom-seed=\$@" ;; nvptx*-*-*) config_path="nvptx accel" ;; *-*-rtems*) # Use self-contained synchronization objects if provided by Newlib if test "x$ac_cv_type_struct__Mutex_Control" = xyes ; then config_path="rtems posix" fi ;; amdgcn*-*-*) config_path="gcn accel" ;; *) ;; esac