1*3d8817e4Smiod# This is the linker host specific file. This is invoked by the 2*3d8817e4Smiod# autoconf generated configure script. Putting it in a separate shell 3*3d8817e4Smiod# file lets us skip running autoconf when modifying host specific 4*3d8817e4Smiod# information. 5*3d8817e4Smiod 6*3d8817e4Smiod# This file sets the following shell variables: 7*3d8817e4Smiod# HDEFINES host specific compiler flags 8*3d8817e4Smiod# HOSTING_CRT0 crt0.o file used for bootstrapping 9*3d8817e4Smiod# HOSTING_LIBS libraries used for bootstrapping 10*3d8817e4Smiod 11*3d8817e4SmiodHDEFINES= 12*3d8817e4SmiodHOSTING_CRT0=/lib/crt0.o 13*3d8817e4SmiodHOSTING_LIBS='`if [ -f ../gcc/libgcc.a ]; then libgcc=../gcc/libgcc.a; else libgcc=\`${CC} -print-libgcc-file-name\`; fi; if [ -f ../gcc/libgcc_eh.a ]; then libgcc="$libgcc ../gcc/libgcc_eh.a"; else libgcc_eh=\`${CC} -print-file-name=libgcc_eh.a\`; if [ x"$libgcc_eh" != xlibgcc_eh.a ]; then libgcc="$libgcc $libgcc_eh"; fi; fi; if [ -f ../gcc/libunwind.a ]; then libgcc="$libgcc ../gcc/libunwind.a"; else libunwind=\`${CC} -print-file-name=libunwind.a\`; if [ x"$libunwind" != xlibunwind.a ]; then libgcc="$libgcc $libunwind"; fi; fi; echo --start-group $libgcc -lc --end-group`' 14*3d8817e4Smiod 15*3d8817e4Smiod# 16*3d8817e4Smiod# Generic configurations: 17*3d8817e4Smiod# 18*3d8817e4Smiod 19*3d8817e4Smiodcase "${host}" in 20*3d8817e4Smiod 21*3d8817e4Smiod*-*-freebsd* | *-*-kfreebsd*-gnu) 22*3d8817e4Smiod HOSTING_CRT0='-dynamic-linker `[ -f \`${CC} --print-prog-name=ld-elf.so.1\` ] || echo /usr/libexec/``${CC} --print-prog-name=ld-elf.so.1` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `${CC} --print-file-name=crtbegin.o`' 23*3d8817e4Smiod HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`' 24*3d8817e4Smiod ;; 25*3d8817e4Smiod 26*3d8817e4Smiod*-*-linux*aout* | *-*-linux*oldld) 27*3d8817e4Smiod HOSTING_CRT0=/usr/lib/crt0.o 28*3d8817e4Smiod ;; 29*3d8817e4Smiod 30*3d8817e4Smiod*-*-linux*libc1*) 31*3d8817e4Smiod HOSTING_CRT0='-dynamic-linker /lib/ld-linux.so.1 /usr/lib/crt1.o /usr/lib/crti.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; elif [ -f /usr/lib/crtbegin.o ]; then echo /usr/lib/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`' 32*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; elif [ -f /usr/lib/crtend.o ]; then echo /usr/lib/crtend.o; else ${CC} --print-file-name=crtend.o; fi` /usr/lib/crtn.o' 33*3d8817e4Smiod ;; 34*3d8817e4Smiod 35*3d8817e4Smiod*-*-linux*) 36*3d8817e4Smiod HOSTING_CRT0='-dynamic-linker `${CC} --help --verbose 2>&1 | egrep "ld[^ ]*\.so" | sed -e "s,.*-dynamic-linker[ ][ ]*\(.*/ld[^ ]*\.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`' 37*3d8817e4Smiod HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`' 38*3d8817e4Smiod ;; 39*3d8817e4Smiod 40*3d8817e4Smiod*-*-netbsd*) 41*3d8817e4Smiod # Different versions of NetBSD with the ELF object format use different 42*3d8817e4Smiod # sets of start/end files. 43*3d8817e4Smiod HOSTING_CRT0='-dynamic-linker /usr/libexec/ld.elf_so /usr/lib/crt0.o' 44*3d8817e4Smiod if [ -f `${CC} --print-file-name=crti.o` ]; then 45*3d8817e4Smiod # Support for GCC's crtstuff present. 46*3d8817e4Smiod HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crti.o`" 47*3d8817e4Smiod if [ -f ../gcc/crtbegin.o ]; then 48*3d8817e4Smiod HOSTING_CRT0="$HOSTING_CRT0 ../gcc/crtbegin.o" 49*3d8817e4Smiod else 50*3d8817e4Smiod HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crtbegin.o`" 51*3d8817e4Smiod fi 52*3d8817e4Smiod else 53*3d8817e4Smiod # Support for GCC's crtstuff not present. 54*3d8817e4Smiod HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crtbegin.o`" 55*3d8817e4Smiod fi 56*3d8817e4Smiod if [ -f `${CC} --print-file-name=crtn.o` ]; then 57*3d8817e4Smiod # Support for GCC's crtstuff present. 58*3d8817e4Smiod if [ -f ../gcc/crtbegin.o ]; then 59*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS ../gcc/crtend.o" 60*3d8817e4Smiod else 61*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtend.o`" 62*3d8817e4Smiod fi 63*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtn.o`" 64*3d8817e4Smiod else 65*3d8817e4Smiod # Support for GCC's crtstuff not present. 66*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtend.o`" 67*3d8817e4Smiod fi 68*3d8817e4Smiod ;; 69*3d8817e4Smiod 70*3d8817e4Smiod*-*-openbsd*) 71*3d8817e4Smiod HOSTING_CRT0="-dynamic-linker /usr/libexec/ld.so /usr/lib/crt0.o" 72*3d8817e4Smiod HOSTING_CRT0="$HOSTING_CRT0 /usr/lib/crtbegin.o" 73*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS /usr/lib/crtend.o" 74*3d8817e4Smiod ;; 75*3d8817e4Smiod 76*3d8817e4Smiodesac 77*3d8817e4Smiod 78*3d8817e4Smiod# 79*3d8817e4Smiod# Now more specific configurations 80*3d8817e4Smiod# 81*3d8817e4Smiod 82*3d8817e4Smiodcase "${host}" in 83*3d8817e4Smiod 84*3d8817e4Smiod*-*-linux*aout* | *-*-linux*oldld | *-*-linux*libc1*) 85*3d8817e4Smiod # No further tweaking needed 86*3d8817e4Smiod ;; 87*3d8817e4Smiod 88*3d8817e4Smiodam33_2.0-*-linux*) 89*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` 90*3d8817e4Smiod ;; 91*3d8817e4Smiod 92*3d8817e4Smiodarm*-*-linux-*) 93*3d8817e4Smiod HOSTING_CRT0='-p '`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` 94*3d8817e4Smiod ;; 95*3d8817e4Smiod 96*3d8817e4Smiodhppa*64*-*-hpux11*) 97*3d8817e4Smiod HOSTING_CRT0=/usr/ccs/lib/pa20_64/crt0.o 98*3d8817e4Smiod # Even if CC is not gcc, the tests use gcc. 99*3d8817e4Smiod HOSTING_LIBS='--start-group `if [ -f ../gcc/libgcc.a ]; then echo ../gcc/libgcc.a; else if test "$GCC" = yes; then ${CC} --print-libgcc-file-name; else gcc --print-libgcc-file-name; fi fi` -lc --end-group /usr/lib/pa20_64/milli.a' 100*3d8817e4Smiod ;; 101*3d8817e4Smiod 102*3d8817e4Smiodi[3-7]86-*-bsd* | i[3-7]86-*-freebsd[12] | i[3-7]86-*-freebsd[12]\.* | i[3-7]86-*-freebsd*aout*) 103*3d8817e4Smiod HOSTING_CRT0=/usr/lib/crt0.o 104*3d8817e4Smiod ;; 105*3d8817e4Smiod 106*3d8817e4Smiodi[3-7]86-*-sysv4*) 107*3d8817e4Smiod HOSTING_CRT0='/usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 108*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` /usr/ccs/lib/crtn.o' 109*3d8817e4Smiod ;; 110*3d8817e4Smiod 111*3d8817e4Smiodi[3-7]86-sequent-ptx* | i[3-7]86-sequent-sysv*) 112*3d8817e4Smiod HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 113*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`' 114*3d8817e4Smiod ;; 115*3d8817e4Smiod 116*3d8817e4Smiodi[3-7]86-*-sysv*) 117*3d8817e4Smiod HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; fi`' 118*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; fi` /lib/crtn.o' 119*3d8817e4Smiod ;; 120*3d8817e4Smiod 121*3d8817e4Smiodi[3-7]86-*-solaris*) 122*3d8817e4Smiod HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 123*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' 124*3d8817e4Smiod ;; 125*3d8817e4Smiod 126*3d8817e4Smiodi[3-7]86-*-sco* | i[3-7]86-*-isc*) 127*3d8817e4Smiod # In some configurations gcc does not use crtbegin.o and crtend.o. 128*3d8817e4Smiod # In that case gcc -print-file-name=crtbegin.o will simply print 129*3d8817e4Smiod # crtbegin.o. We create dummy crtbegin.o and crtend.o files to 130*3d8817e4Smiod # handle this. 131*3d8817e4Smiod echo "int dummy_crtbegin () { return 0; }" > crtbegin.c 132*3d8817e4Smiod ${CC} -c crtbegin.c -o crtbegin.o 133*3d8817e4Smiod rm -f crtbegin.c 134*3d8817e4Smiod echo "int dummy_crteng () { return 0; }" > crtend.c 135*3d8817e4Smiod ${CC} -c crtend.c -o crtend.o 136*3d8817e4Smiod rm -f crtend.c 137*3d8817e4Smiod HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 138*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` /lib/crtn.o' 139*3d8817e4Smiod ;; 140*3d8817e4Smiod 141*3d8817e4Smiodi[3-7]86-pc-interix*) 142*3d8817e4Smiod HOSTING_CRT0='$$INTERIX_ROOT/usr/lib/crt0.o' 143*3d8817e4Smiod HOSTING_LIBS='-L $$X/local_bin -L $$INTERIX_ROOT/usr/lib '"$HOSTING_LIBS"' -lcpsx -lc -lcpsx $$INTERIX_ROOT/usr/lib/psxdll.a $$INTERIX_ROOT/usr/lib/psxdll2.a' 144*3d8817e4Smiod ;; 145*3d8817e4Smiod 146*3d8817e4Smiodi[3-7]86-*-cygwin*) 147*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`' 148*3d8817e4Smiod ;; 149*3d8817e4Smiod 150*3d8817e4Smiodia64-*-linux-*) 151*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]*\*,ld-linux-ia64,g"` 152*3d8817e4Smiod ;; 153*3d8817e4Smiod 154*3d8817e4Smiodmips*-sgi-irix4* | mips*-sgi-irix5*) 155*3d8817e4Smiod HOSTING_CRT0=/usr/lib/crt1.o 156*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' /usr/lib/crtn.o' 157*3d8817e4Smiod ;; 158*3d8817e4Smiod 159*3d8817e4Smiodmips*-sgi-irix6*) 160*3d8817e4Smiod HOSTING_CRT0='/usr/lib32/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o ; else ${CC} -print-file-name=crtbegin.o; fi`' 161*3d8817e4Smiod HOSTING_LIBS='-L/usr/lib32 '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o ; else ${CC} -print-file-name=crtend.o; fi` /usr/lib32/crtn.o -init __do_global_ctors -fini __do_global_dtors' 162*3d8817e4Smiod ;; 163*3d8817e4Smiod 164*3d8817e4Smiodmips*-*-linux-*) 165*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` 166*3d8817e4Smiod ;; 167*3d8817e4Smiod 168*3d8817e4Smiodm68*-*-linux-*) 169*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` 170*3d8817e4Smiod ;; 171*3d8817e4Smiod 172*3d8817e4Smiodm68*-motorola-sysv) 173*3d8817e4Smiod HOSTING_CRT0='`if [ -f ../gcc/crt0.o ]; then echo ../gcc/crt0.o; elif [ -f \`${CC} -print-file-name=\`crt0.o ]; then echo \`${CC} -print-file-name=\`crt0.o; else echo /lib/crt0.o; fi`' 174*3d8817e4Smiod HOSTING_LIBS=`echo "$HOSTING_LIBS" | sed -e "s,-lc,-lc881,"` 175*3d8817e4Smiod ;; 176*3d8817e4Smiod 177*3d8817e4Smiodm68*-sun-*) 178*3d8817e4Smiod HOSTING_CRT0='/usr/lib/crt0.o /usr/lib/Fcrt1.o -L/usr/lib/fsoft.o' 179*3d8817e4Smiod ;; 180*3d8817e4Smiod 181*3d8817e4Smiodm88*-*-dgux*) 182*3d8817e4Smiod HDEFINES=-D__using_DGUX 183*3d8817e4Smiod HOSTING_CRT0='/lib/crt0.o -X' 184*3d8817e4Smiod HOSTING_LIBS=/usr/sde/m88kbcs/lib/libc.a 185*3d8817e4Smiod ;; 186*3d8817e4Smiod 187*3d8817e4Smiodm88*-motorola-sysv3) 188*3d8817e4Smiod HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 189*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`' 190*3d8817e4Smiod ;; 191*3d8817e4Smiod 192*3d8817e4Smiodpowerpc64*-*-linux-*) 193*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld64.so.1,"` 194*3d8817e4Smiod ;; 195*3d8817e4Smiod 196*3d8817e4Smiodpowerpc*-*-linux-*) 197*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` 198*3d8817e4Smiod ;; 199*3d8817e4Smiod 200*3d8817e4Smiods390x-*-linux-*) 201*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld64.so.1,"` 202*3d8817e4Smiod ;; 203*3d8817e4Smiod 204*3d8817e4Smiods390-*-linux-*) 205*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` 206*3d8817e4Smiod ;; 207*3d8817e4Smiod 208*3d8817e4Smiodsparc-*-solaris2*) 209*3d8817e4Smiod HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 210*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' 211*3d8817e4Smiod ;; 212*3d8817e4Smiod 213*3d8817e4Smiodsparc64-*-solaris2* | sparcv9-*-solaris2*) 214*3d8817e4Smiod HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/sparcv9/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' 215*3d8817e4Smiod HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' 216*3d8817e4Smiod ;; 217*3d8817e4Smiod 218*3d8817e4Smiodsparc-*-linux-*) 219*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld-linux.so.2,"` 220*3d8817e4Smiod ;; 221*3d8817e4Smiod 222*3d8817e4Smiodsparc64-*-linux-*) 223*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux.so.2,"` 224*3d8817e4Smiod ;; 225*3d8817e4Smiod 226*3d8817e4Smiodx86_64-*-linux-*) 227*3d8817e4Smiod HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux-x86-64.so.2,"` 228*3d8817e4Smiod ;; 229*3d8817e4Smiod 230*3d8817e4Smiod*-*-freebsd* | *-*-kfreebsd*-gnu) 231*3d8817e4Smiod ;; 232*3d8817e4Smiod 233*3d8817e4Smiod*-*-linux*) 234*3d8817e4Smiod ;; 235*3d8817e4Smiod 236*3d8817e4Smiod*-*-netbsd*) 237*3d8817e4Smiod ;; 238*3d8817e4Smiod 239*3d8817e4Smiod*-*-openbsd*) 240*3d8817e4Smiod ;; 241*3d8817e4Smiod 242*3d8817e4Smiodalpha*-*-*) 243*3d8817e4Smiod HOSTING_CRT0=/usr/ccs/lib/crt0.o 244*3d8817e4Smiod ;; 245*3d8817e4Smiod 246*3d8817e4Smiodesac 247