172 lines
5.4 KiB
Plaintext
172 lines
5.4 KiB
Plaintext
# This file is a shell script that overrides some of the tools and
|
|
# flags used on a host specific basis.
|
|
|
|
# Since the "bfd/hosts" directory is shared by the bfd, opcodes, and
|
|
# binutils directories (at least), the index to it is also shared.
|
|
# This is that index. Each configure.in file should source this file
|
|
# in its per-host part.
|
|
|
|
# This sets the following shell variables:
|
|
# HDEFINES host specific compiler options
|
|
# host64 set to true if 64 bit types are as fast as 32 bit
|
|
# HOST_64BIT_TYPE host 64 bit type
|
|
# HOST_U_64BIT_TYPE unsigned 64 bit type (not needed if 64BIT_TYPE is long)
|
|
# SHLIB_CC compiler to use when building shared library
|
|
# SHLIB_CFLAGS flags to use when building shared library
|
|
# SHLIB_LIBS libraries 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
|
|
# HLDENV environment variable to set when linking for the host
|
|
# RPATH_ENVVAR environment variable used to find shared libraries
|
|
# INSTALL_SHLIB install a shared library
|
|
|
|
HDEFINES=
|
|
host64=false
|
|
HOST_64BIT_TYPE=
|
|
|
|
case "${host}" in
|
|
|
|
alpha-*-*) host64=true; HOST_64BIT_TYPE=long ;;
|
|
|
|
hppa*-*-hpux*) HDEFINES=-DHOST_HPPAHPUX ;;
|
|
hppa*-*-hiux*) HDEFINES=-DHOST_HPPAHPUX ;;
|
|
hppa*-*-bsd*) HDEFINES=-DHOST_HPPABSD ;;
|
|
hppa*-*-osf*) HDEFINES=-DHOST_HPPAOSF ;;
|
|
|
|
i[3456]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;;
|
|
i[3456]86-sequent-sysv4*) ;;
|
|
i[3456]86-sequent-sysv*) HDEFINES=-Dshared=genshared ;;
|
|
|
|
mips*-dec-netbsd*) ;;
|
|
mips*-*-openbsd*) ;;
|
|
mips*-dec-*) HDEFINES="-G 4" ;;
|
|
mips*-sgi-irix3*) HDEFINES="-G 4" ;;
|
|
mips*-sgi-irix4*) HDEFINES="-G 4" ;;
|
|
mips*-sgi-irix6*) host64=true
|
|
HOST_64BIT_TYPE="long long";
|
|
HOST_U_64BIT_TYPE="unsigned long long";
|
|
;;
|
|
mips*-*-sysv4*) ;;
|
|
mips*-*-sysv*) HDEFINES="-G 4" ;;
|
|
mips*-*-riscos*) HDEFINES="-G 4" ;;
|
|
|
|
m68*-hp-hpux*) HDEFINES=-DHOST_HP300HPUX ;;
|
|
|
|
*-*-solaris*) HOST_64BIT_TYPE="long long"
|
|
HOST_U_64BIT_TYPE="unsigned long long"
|
|
;;
|
|
|
|
*-*-windows*)
|
|
HOST_64BIT_TYPE=__int64
|
|
HOST_U_64BIT_TYPE="unsigned __int64"
|
|
# The following krock is necessary because we can't run the build compiler
|
|
# (MSVC) on the configure host, so we have to explicitly set the values here.
|
|
# Note that this file is never run through autoconf, so we can't use any
|
|
# autoconf macros here. Because of this, we have to muck with autoconf
|
|
# variables explicitly.
|
|
ac_cv_func_mmap_fixed_mapped=no
|
|
ac_cv_header_time=no
|
|
ac_cv_func_getpagesize=no
|
|
ac_cv_func_madvise=no
|
|
ac_cv_func_mprotect=no
|
|
ac_cv_header_sys_file_h=no
|
|
ac_cv_header_sys_time_h=no
|
|
ac_cv_header_unistd_h=no
|
|
;;
|
|
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.
|
|
HLDFLAGS=
|
|
HLDENV=
|
|
RPATH_ENVVAR=LD_LIBRARY_PATH
|
|
SHLIB_CC='$(CC)'
|
|
SHLIB_CFLAGS='-shared'
|
|
SHLIB_LIBS=
|
|
INSTALL_SHLIB='$(INSTALL_PROGRAM) $$f $(libdir)/$$tf;'
|
|
if [ "${shared}" = "true" ]; then
|
|
case "${host}" in
|
|
hppa*-*-*) picfrag=${srcdir}/../config/mh-papic ;;
|
|
i[34566]86-*-*) picfrag=${srcdir}/../config/mh-x86pic ;;
|
|
*-*-*) picfrag=${srcdir}/../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
|
|
|
|
case "${host}" in
|
|
*-dec-osf*)
|
|
# -fpic is not needed on the Alpha.
|
|
PICFLAG=
|
|
HLDFLAGS='-rpath $(libdir)'
|
|
SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
|
|
;;
|
|
*-*-hpux*)
|
|
# HP/UX uses .sl for shared libraries.
|
|
SHLINK=`echo ${SHLINK} | sed -e 's/so$/sl/'`
|
|
SHLIB_CFLAGS='-shared $(PICFLAG)'
|
|
HLDFLAGS='-Wl,+s,+b,$(libdir)'
|
|
RPATH_ENVVAR=SHLIB_PATH
|
|
INSTALL_SHLIB='$(INSTALL_PROGRAM) $$f $(libdir)/$$tf; chmod -w $(libdir)/$$tf;'
|
|
;;
|
|
*-*-irix[56]*)
|
|
# -fpic is not needed on Irix 5 or 6.
|
|
PICFLAG=
|
|
SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
|
|
HLDFLAGS='-Wl,-rpath,$(libdir)'
|
|
;;
|
|
*-*-linux*aout*)
|
|
;;
|
|
*-*-linux*)
|
|
SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
|
|
case "${libdir}" in
|
|
/lib | /usr/lib) ;;
|
|
*) HLDFLAGS='-Wl,-rpath,$(libdir)' ;;
|
|
esac
|
|
# On Linux, apparently, linking against -lc lets ldconfig figure
|
|
# out which version of libc should be used.
|
|
SHLIB_LIBS=-lc
|
|
;;
|
|
*-*-solaris*)
|
|
SHLIB_CFLAGS='-shared -h $(SONAME)'
|
|
HLDFLAGS='-R $(libdir)'
|
|
;;
|
|
*-*-sysv4*)
|
|
SHLIB_CFLAGS='-shared -h $(SONAME)'
|
|
HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
|
|
;;
|
|
*-*-sunos*)
|
|
# Build a libTARGET-bfd.so.VERSION symlink in the object directory.
|
|
ALLLIBS=`echo ${ALLLIBS} | sed -e 's/\$(SHLINK)/stamp-tshlink/'`
|
|
;;
|
|
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.
|
|
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
|
|
:
|
|
elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
|
|
:
|
|
elif [ "${shared}" = "true" ]; then
|
|
HLDFLAGS='-Wl,-rpath=$(libdir)'
|
|
else
|
|
HLDFLAGS='-Wl,-rpath='
|
|
fi
|
|
rm -f conftest.t conftest.c conftest
|
|
;;
|
|
esac
|