configure.host revision 218822
192302Sluigi# This is the linker host specific file.  This is invoked by the
243240Sdillon# autoconf generated configure script.  Putting it in a separate shell
392302Sluigi# file lets us skip running autoconf when modifying host specific
492302Sluigi# information.
592302Sluigi
692302Sluigi# This file sets the following shell variables:
792302Sluigi#  HDEFINES		host specific compiler flags
892302Sluigi#  HOSTING_CRT0		crt0.o file used for bootstrapping
992302Sluigi#  HOSTING_LIBS		libraries used for bootstrapping
1092302Sluigi
1192302SluigiHDEFINES=
1292302SluigiHOSTING_CRT0=/lib/crt0.o
1392302SluigiHOSTING_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`'
1492302Sluigi
1592302Sluigi#
1692302Sluigi#	Generic configurations:
1743240Sdillon#
1843240Sdillon
1943240Sdilloncase "${host}" in
2043240Sdillon
2143240Sdillon*-*-freebsd* | *-*-kfreebsd*-gnu)
2243240Sdillon  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`'
2343240Sdillon  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`'
2443240Sdillon  ;;
2543240Sdillon
2643240Sdillon*-*-linux*aout* | *-*-linux*oldld)
2743240Sdillon  HOSTING_CRT0=/usr/lib/crt0.o
2843240Sdillon  ;;
2943240Sdillon
3043240Sdillon*-*-linux*libc1*)
3143240Sdillon  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`'
3243240Sdillon  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'
3343240Sdillon  ;;
3443240Sdillon
3543240Sdillon*-*-linux*)
3643240Sdillon  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`'
3743240Sdillon  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`'
3843240Sdillon  ;;
3943240Sdillon
4043240Sdillon*-*-netbsd*)
4143240Sdillon  # Different versions of NetBSD with the ELF object format use different
4243240Sdillon  # sets of start/end files.
4343240Sdillon  HOSTING_CRT0='-dynamic-linker /usr/libexec/ld.elf_so /usr/lib/crt0.o'
4443240Sdillon  if [ -f `${CC} --print-file-name=crti.o` ]; then
4543240Sdillon    # Support for GCC's crtstuff present.
4643240Sdillon    HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crti.o`"
4743240Sdillon    if [ -f ../gcc/crtbegin.o ]; then
4843240Sdillon      HOSTING_CRT0="$HOSTING_CRT0 ../gcc/crtbegin.o"
4943240Sdillon    else
5043240Sdillon      HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crtbegin.o`"
5143240Sdillon    fi
5243240Sdillon  else
5343240Sdillon    # Support for GCC's crtstuff not present.
5443240Sdillon    HOSTING_CRT0="$HOSTING_CRT0 `${CC} --print-file-name=crtbegin.o`"
5543240Sdillon  fi
5643240Sdillon  if [ -f `${CC} --print-file-name=crtn.o` ]; then
5743240Sdillon    # Support for GCC's crtstuff present.
5843240Sdillon    if [ -f ../gcc/crtbegin.o ]; then
5943240Sdillon      HOSTING_LIBS="$HOSTING_LIBS ../gcc/crtend.o"
6043240Sdillon    else
6143240Sdillon      HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtend.o`"
6243240Sdillon    fi
6343240Sdillon    HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtn.o`"
6443240Sdillon  else
6543240Sdillon    # Support for GCC's crtstuff not present.
6643240Sdillon    HOSTING_LIBS="$HOSTING_LIBS `${CC} --print-file-name=crtend.o`"
6743240Sdillon  fi
6843240Sdillon  ;;
6943240Sdillon
7043240Sdillon*-*-openbsd*)
7143240Sdillon  HOSTING_CRT0="-dynamic-linker /usr/libexec/ld.so /usr/lib/crt0.o"
7243240Sdillon  HOSTING_CRT0="$HOSTING_CRT0 /usr/lib/crtbegin.o"
7343240Sdillon  HOSTING_LIBS="$HOSTING_LIBS /usr/lib/crtend.o"
7443240Sdillon  ;;
7543240Sdillon
7643240Sdillonesac
7743240Sdillon
7843240Sdillon#
7943240Sdillon# Now more specific configurations
8043240Sdillon#
8143240Sdillon
8243240Sdilloncase "${host}" in
8343240Sdillon
8443240Sdillon*-*-linux*aout* | *-*-linux*oldld | *-*-linux*libc1*)
8543240Sdillon  # No further tweaking needed
8643240Sdillon  ;;
8743240Sdillon
8843240Sdillonam33_2.0-*-linux*)
8943240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"`
9043240Sdillon  ;;
9143240Sdillon
9243240Sdillonarm*-*-linux-*)
9343240Sdillon  HOSTING_CRT0='-p '`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"`
9443240Sdillon  ;;
9543240Sdillon
9643240Sdillonhppa*64*-*-hpux11*)
9743240Sdillon  HOSTING_CRT0=/usr/ccs/lib/pa20_64/crt0.o
9843240Sdillon  # Even if CC is not gcc, the tests use gcc.
9943240Sdillon  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'
10043240Sdillon  ;;
10143240Sdillon
10243240Sdilloni[3-7]86-*-bsd* | i[3-7]86-*-freebsd[12] | i[3-7]86-*-freebsd[12]\.* | i[3-7]86-*-freebsd*aout*)
10343240Sdillon  HOSTING_CRT0=/usr/lib/crt0.o
10443240Sdillon  ;;
10543240Sdillon
10643240Sdilloni[3-7]86-*-sysv4*)
10743240Sdillon  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`'
10843240Sdillon  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'
10943240Sdillon  ;;
11043240Sdillon
11143240Sdilloni[3-7]86-sequent-ptx* | i[3-7]86-sequent-sysv*)
11243240Sdillon  HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`'
11343240Sdillon  HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`'
11443240Sdillon  ;;
11543240Sdillon
11643240Sdilloni[3-7]86-*-sysv*)
11743240Sdillon  HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; fi`'
11843240Sdillon  HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; fi` /lib/crtn.o'
11943240Sdillon  ;;
12043240Sdillon
12143240Sdilloni[3-7]86-*-solaris*)
12243240Sdillon  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`'
12343240Sdillon  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`'
12443240Sdillon  ;;
12543240Sdillon
12643240Sdilloni[3-7]86-*-sco* | i[3-7]86-*-isc*)
12743240Sdillon  # In some configurations gcc does not use crtbegin.o and crtend.o.
12843240Sdillon  # In that case gcc -print-file-name=crtbegin.o will simply print
12943240Sdillon  # crtbegin.o.  We create dummy crtbegin.o and crtend.o files to
13043240Sdillon  # handle this.
13143240Sdillon  echo "int dummy_crtbegin () { return 0; }" > crtbegin.c
13243240Sdillon  ${CC} -c crtbegin.c -o crtbegin.o
13343240Sdillon  rm -f crtbegin.c
13443240Sdillon  echo "int dummy_crteng () { return 0; }" > crtend.c
13543240Sdillon  ${CC} -c crtend.c -o crtend.o
13643240Sdillon  rm -f crtend.c
13743240Sdillon  HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`'
13843240Sdillon  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'
13943240Sdillon  ;;
14043240Sdillon
14143240Sdilloni[3-7]86-pc-interix*)
14243240Sdillon  HOSTING_CRT0='$$INTERIX_ROOT/usr/lib/crt0.o'
14343240Sdillon  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'
14443240Sdillon  ;;
14543240Sdillon
14643240Sdilloni[3-7]86-*-cygwin*)
14743240Sdillon  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`'
14843240Sdillon  ;;
14943240Sdillon
15043240Sdilloni[3-7]86-*-mingw*)
15143240Sdillon  #We only support msvcrt.dll, crtid == 2.
15243240Sdillon  HOSTING_CRT0='/mingw/lib/crt2.o'
15343240Sdillon  HOSTING_LIBS='-L/mingw/lib -lmingw32 -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lmoldname -lmingwex -lmsvcrt `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`'
15443240Sdillon  ;; 
15543240Sdillon
15643240Sdillonia64-*-linux-*)
15743240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]*\*,ld-linux-ia64,g"`
15843240Sdillon  ;;
15943240Sdillon
16043240Sdillonmips*-sgi-irix4* | mips*-sgi-irix5*)
16143240Sdillon  HOSTING_CRT0=/usr/lib/crt1.o
16243240Sdillon  HOSTING_LIBS="$HOSTING_LIBS"' /usr/lib/crtn.o'
16343240Sdillon  ;;
16443240Sdillon
16543240Sdillonmips*-sgi-irix6*)
16643808Sdillon  HOSTING_CRT0='/usr/lib32/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o ; else ${CC} -print-file-name=crtbegin.o; fi`'
16743808Sdillon  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'
16843808Sdillon  ;;
16943808Sdillon
17043808Sdillonmips*-*-linux-*)
17143240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"`
17243240Sdillon  ;;
17343240Sdillon
17443240Sdillonm68*-*-linux-*)
17543240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"`
17643240Sdillon  ;;
17743240Sdillon
17843240Sdillonm68*-motorola-sysv)
17943240Sdillon  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`'
18043240Sdillon  HOSTING_LIBS=`echo "$HOSTING_LIBS" | sed -e "s,-lc,-lc881,"`
18143240Sdillon  ;;
18243240Sdillon
18343240Sdillonm68*-sun-*)
18443240Sdillon  HOSTING_CRT0='/usr/lib/crt0.o /usr/lib/Fcrt1.o -L/usr/lib/fsoft.o'
18543240Sdillon  ;;
186129101Ssimon
18743240Sdillonm88*-*-dgux*)
18843240Sdillon  HDEFINES=-D__using_DGUX
18943240Sdillon  HOSTING_CRT0='/lib/crt0.o -X'
19043240Sdillon  HOSTING_LIBS=/usr/sde/m88kbcs/lib/libc.a
19143240Sdillon  ;;
19243240Sdillon
19343240Sdillonm88*-motorola-sysv3)
19443240Sdillon  HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`'
19543240Sdillon  HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`'
19643240Sdillon  ;;
197129101Ssimon
19843240Sdillonpowerpc64*-*-linux-*)
19943240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld64.so.1,"`
20043240Sdillon  ;;
20143240Sdillon
20243240Sdillonpowerpc*-*-linux-*)
20343240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"`
20443240Sdillon  ;;
20543240Sdillon
206129101Ssimons390x-*-linux-*)
20743240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld64.so.1,"`
20843240Sdillon  ;;
20943240Sdillon
21043240Sdillons390-*-linux-*)
21143240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"`
21243240Sdillon  ;;
21343240Sdillon
21443240Sdillonsparc-*-solaris2*)
21543240Sdillon  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`'
216130786Smpp  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`'
21743240Sdillon  ;;
21843240Sdillon
21943240Sdillonsparc64-*-solaris2* | sparcv9-*-solaris2*)
22043240Sdillon  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`'
22143240Sdillon  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`'
22243240Sdillon  ;;
22343240Sdillon
22443240Sdillonsparc-*-linux-*)
22543240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld-linux.so.2,"`
22643240Sdillon  ;;
22743240Sdillon
22843240Sdillonsparc64-*-linux-*)
22943240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux.so.2,"`
23043240Sdillon  ;;
23143240Sdillon
23243240Sdillonx86_64-*-linux-*)
23343240Sdillon  HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux-x86-64.so.2,"`
23443240Sdillon  ;;
23543240Sdillon
23643240Sdillon*-*-freebsd* | *-*-kfreebsd*-gnu)
23743240Sdillon  ;;
23843240Sdillon
23943240Sdillon*-*-linux*)
24043240Sdillon  ;;
24143240Sdillon
24243240Sdillon*-*-netbsd*)
24343240Sdillon  ;;
24443240Sdillon
24543240Sdillon*-*-openbsd*)
24643240Sdillon  ;;
24743240Sdillon
24843240Sdillonalpha*-*-*)
24943240Sdillon  HOSTING_CRT0=/usr/ccs/lib/crt0.o
25043240Sdillon  ;;
25143240Sdillon
25243240Sdillonesac
25343240Sdillon