* configure.host: Check for 'do not mix' from native linker before
[external/binutils.git] / ld / configure.host
1 # This is the linker host specific file.  This is invoked by the
2 # autoconf generated configure script.  Putting it in a separate shell
3 # file lets us skip running autoconf when modifying host specific
4 # information.
5
6 # This file sets the following shell variables:
7 #  HDEFINES             host specific compiler flags
8 #  HOSTING_CRT0         crt0.o file used for bootstrapping
9 #  HOSTING_LIBS         libraries used for bootstrapping
10 #  NATIVE_LIB_DIRS      library directories to search on this host
11 #  HLDFLAGS             link flags to use on this host
12 #  RPATH_ENVVAR         environment variable used to find shared libraries
13
14 HDEFINES=
15 HOSTING_CRT0=/lib/crt0.o
16 HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc'
17 NATIVE_LIB_DIRS=
18
19 case "${host}" in
20
21 alpha-*-linux*)
22   HOSTING_CRT0=/usr/lib/crt0.o
23   ;;
24
25 alpha-*-*)
26   HOSTING_CRT0=/usr/ccs/lib/crt0.o
27   NATIVE_LIB_DIRS=/usr/ccs/lib
28   ;;
29
30 i[345]86-*-bsd* | i[345]86-*-freebsd* | i[345]86-*-netbsd*)
31   # The new BSD `make' has a bug: it doesn't pass empty arguments in
32   # shell commands.  So we need to make this value non-empty in order
33   # for the genscripts.sh call to work.  There's nothing magic about
34   # the value `/lib'; it's just a dummy.
35   NATIVE_LIB_DIRS=/lib
36   HOSTING_CRT0=/usr/lib/crt0.o
37   ;;
38
39 i[345]86-*-sysv4*)
40   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 gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
41   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`  -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi` /usr/ccs/lib/crtn.o'
42   NATIVE_LIB_DIRS=/usr/ccs/lib
43   ;;
44
45 i[345]86-sequent-ptx* | i[345]86-sequent-sysv*)
46   HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
47   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi`'
48   ;;
49
50 i[345]86-*-sysv*)
51   HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; fi`'
52   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`  -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; fi` /lib/crtn.o'
53   ;;
54
55 i[345]86-*-solaris*)
56   HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crt1.o/'; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crti.o/'; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
57   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`  -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtn.o/'; fi`'
58   NATIVE_LIB_DIRS=/usr/ccs/lib
59   ;;
60
61 i[345]86-*-sco* | i[345]86-*-isc*)
62   HOSTING_CRT0='/lib/crt1.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
63   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi` /lib/crtn.o'
64   ;;
65
66 i[345]86-*-linuxaout* | i[345]86-*-linuxoldld)
67   HOSTING_CRT0=/usr/lib/crt0.o
68   ;;
69
70 i[345]86-*-linux*)
71   HOSTING_CRT0='/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o'
72   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc /usr/lib/crtend.o /usr/lib/crtn.o'
73   ;;
74
75 i[345]86-*-lynxos*)
76   HOSTING_CRT0=/lib/init1.o
77   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc -lm /lib/initn.o'
78   ;;
79
80 mips*-dec-bsd*)
81   HOSTING_CRT0=/usr/lib/crt0.o
82   ;;
83
84 mips*-sgi-irix4*)
85   HOSTING_CRT0=/usr/lib/crt1.o
86   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc /usr/lib/crtn.o'
87   ;;
88
89 mips*-sgi-irix5*)
90   HOSTING_CRT0=/usr/lib/crt1.o
91   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc /usr/lib/crtn.o'
92   ;;
93
94 m68*-*-lynxos*)
95   HOSTING_CRT0=/lib/init1.o
96   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc -lm /lib/initn.o'
97   ;;
98
99 m68*-motorola-sysv)
100   HOSTING_CRT0='`if [ -f ../gcc/crt0.o ]; then echo ../gcc/crt0.o; elif [ -f \`gcc -print-file-name=\`crt0.o ]; then echo \`gcc -print-file-name=\`crt0.o; else echo /lib/crt0.o; fi`'
101   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc881 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`'
102   ;;
103
104 m68*-sun-*)
105   HOSTING_CRT0='/usr/lib/crt0.o /usr/lib/Fcrt1.o -L/usr/lib/fsoft.o'
106   ;;
107
108 m88*-*-dgux*)
109   HDEFINES=-D__using_DGUX
110   HOSTING_CRT0=/lib/crt0.o -X
111   HOSTING_LIBS=/usr/sde/m88kbcs/lib/libc.a
112   ;;
113
114 m88*-motorola-sysv3)
115   HOSTING_CRT0='/lib/crt0.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
116   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi` `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`'
117   ;;
118
119 romp-*-*)
120   HDEFINES=-DNO_VARARGS
121   ;;
122
123 sparc-*-solaris2*)
124   HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crt1.o/'; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crti.o/'; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtbegin.o/'; fi`'
125   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi`  -lc `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtend.o/'; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else gcc -print-libgcc-file-name | sed -e 's/libgcc.a/crtn.o/'; fi`'
126   NATIVE_LIB_DIRS=/usr/ccs/lib
127   ;;
128
129 esac
130
131 HLDFLAGS=
132 RPATH_ENVVAR=LD_LIBRARY_PATH
133 # If we have shared libraries, try to set rpath reasonably.
134 if test "${shared}" = "true"; then
135   case "${host}" in
136   *-*-hpux*)
137     HLDFLAGS='-Wl,+s,+b,$(libdir)'
138     RPATH_ENVVAR=SHLIB_PATH
139     ;;
140   *-*-irix5*)
141     HLDFLAGS='-Wl,-rpath,$(libdir)'
142     ;;
143   *-*-linux*aout*)
144     ;;
145   *-*-linux*)
146     HLDFLAGS='-Wl,-rpath,$(libdir)'
147     ;;
148   *-*-sysv4* | *-*-solaris*)
149     HLDFLAGS='-R $(libdir)'
150     ;;
151   esac
152 fi
153
154 # On SunOS, if the linker supports the -rpath option, use it to
155 # prevent ../bfd and ../opcodes from being included in the run time
156 # search path.
157 case "${host}" in
158   *-*-sunos*)
159     echo 'main () { }' > conftest.c
160     ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
161     if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
162       :
163     elif grep 'No such file' conftest.t >/dev/null 2>&1; then
164       :
165     elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
166       :
167     elif test "${shared}" = "true"; then
168       HLDFLAGS='-Wl,-rpath=$(libdir)'
169     else
170       HLDFLAGS='-Wl,-rpath='
171     fi
172     rm -f conftest.t conftest.c conftest
173     ;;
174 esac