diff options
Diffstat (limited to 'bfd/configure.host')
-rw-r--r-- | bfd/configure.host | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/bfd/configure.host b/bfd/configure.host index e062ac4..de8d65d 100644 --- a/bfd/configure.host +++ b/bfd/configure.host @@ -15,6 +15,12 @@ # HDEFINES host specific compiler options # host64 set to true if this is a 64 bit host # HOST_64BIT_TYPE host 64 bit type +# SHLIB_CC compiler to use when building shared library +# SHLIB_CFLAGS flags to use when building shared library +# PICFLAG may be set to flag to use to compile PIC +# SHLINK may be set to the name to link the shared library to +# ALLLIBS may be set to libraries to build +# HLDFLAGS LDFLAGS specific to the host HDEFINES= host64=false @@ -53,6 +59,7 @@ i[345]86-*-win32) test -z "$CC" && CC="i386-win32-gcc -O2" RANLIB=${RANLIB-i386-win32-ranlib} ;; +mips-dec-netbsd*) ;; mips-dec-*) HDEFINES="-G 4" ;; mips-sgi-irix3*) HDEFINES="-G 4" test -z "$LDFLAGS" && LDFLAGS=-lmalloc @@ -83,3 +90,70 @@ powerpc-*-aix4*) HDEFINES=-DHOST_AIX ;; powerpc-*-aix*) HDEFINES=-DHOST_AIX ;; esac + +# If we are configuring with --enable-shared, adjust the shared +# library support based on the host. This support must work for both +# the BFD and the opcodes libraries. +SHLIB_CC='$(CC)' +SHLIB_CFLAGS='-shared' +if [ "${shared}" = "true" ]; then + case "${host}" in + hppa*-*-*) picfrag=../config/mh-papic ;; + i[3456]86-*-*) picfrag=../config/mh-x86pic ;; + *-*-*) picfrag=../config/mh-${host_cpu}pic ;; + esac + if [ -f "${picfrag}" ]; then + pic=`sed -n -e 's/^PICFLAG[ ]*=[ ]*\(.*\)$/\1/p' ${picfrag}` + if [ -n "${pic}" ]; then + PICFLAG=${pic} + fi + fi + + base_shlib=`echo ${SHLIB} | sed -e 's,^.*/\([^/]*\)$,\1,'` + + case "${host}" in + *-dec-osf*) + # -fpic is not needed on the Alpha. + PICFLAG= + ;; + *-*-hpux*) + # HP/UX uses .sl for shared libraries. + SHLINK=`echo ${SHLINK} | sed -e 's/so$/sl/'` + ;; + *-*-irix5*) + # -fpic is not needed on Irix 5. + PICFLAG= + SHLIB_CFLAGS="-shared -Wl,-soname,${base_shlib}" + ;; + *-*-linux*aout*) + ;; + *-*-linux*) + SHLIB_CFLAGS="-shared -Wl,-soname,${base_shlib}" + ;; + *-*-sysv4* | *-*-solaris*) + SHLIB_CFLAGS="-shared -h ${base_shlib}" + ;; + *-*-sunos*) + ALLLIBS=`echo ${ALLLIBS} | sed -e 's/\$(SHLINK)//'` + ;; + esac +fi + +# On SunOS, if the linker supports the -rpath option, use it to +# prevent ../bfd and ../opcodes from being included in the run time +# search path. +HLDFLAGS= +case "${host}" in + *-*-sunos*) + echo 'main () { }' > conftest.c + ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t + if grep 'unrecognized' conftest.t >/dev/null 2>&1; then + : + elif grep 'No such file' conftest.t >/dev/null 2>&1; then + : + else + HLDFLAGS='-Wl,-rpath=' + fi + rm -f conftest.t conftest.c conftest + ;; +esac |