X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fconfigure.ac;h=669cff7532a5c1911b974b695236170fd957566e;hb=8a36df4dcfa3cb89779e1a3eaca8067426e9cad6;hp=54267818f0186cafd7b653879510a0812567528c;hpb=243340ad57e30de3c15cffe6e4af0381995f15d9;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/configure.ac b/bfd/configure.ac index 54267818f0..669cff7532 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -1,17 +1,17 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl Copyright (C) 2012-2015 Free Software Foundation, Inc. +dnl Copyright (C) 2012-2016 Free Software Foundation, Inc. dnl dnl This file is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. -dnl +dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. -dnl +dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; see the file COPYING3. If not see dnl . @@ -68,6 +68,15 @@ AC_ARG_ENABLE(targets, *) enable_targets=$enableval ;; esac])dnl +AC_ARG_ENABLE(64_bit_archive, + AS_HELP_STRING([--enable-64-bit-archive], + [force 64-bit archives]), +[case "${enableval}" in + yes) want_64_bit_archive=true ;; + no) want_64_bit_archive=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-archive option) ;; +esac],[want_64_bit_archive=unset])dnl + AC_ARG_WITH(mmap, [ --with-mmap try using mmap for BFD input files if available], [case "${withval}" in @@ -103,26 +112,6 @@ AC_ARG_WITH(separate-debug-dir, [DEBUGDIR="${withval}"]) AC_SUBST(DEBUGDIR) -# Check to see if we should allow the generation of -# symbols with the ELF standard's STT_COMMON type. -AC_ARG_ENABLE(elf-stt-common, -[ --enable-elf-stt-common Allow the generation of ELF symbols with the STT_COMMON type], -[case "${enableval}" in - yes) want_elf_stt_common=true ;; - no) want_elf_stt_common=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for ELF STT_COMMON option) ;; - esac], -# We have to choose a default behaviour. For native builds we could -# test whether the loader supports the STT_COMMON type, but that would -# mean that built binaries could not be exported to older systems where -# the loader does not support it. So by default we always choose to -# disable this feature. - want_elf_stt_common=false)dnl -if test $want_elf_stt_common = true; then - AC_DEFINE(USE_STT_COMMON, 1, - [Define if we may generate symbols with ELF's STT_COMMON type]) -fi - ACX_PKGVERSION([GNU Binutils]) ACX_BUGURL([http://www.sourceware.org/bugzilla/]) @@ -154,7 +143,7 @@ bfd_default_target_size=32 # host stuff: -ALL_LINGUAS="fr tr ja es sv da zh_CN ro rw vi fi id ru uk" +ALL_LINGUAS="fr tr ja es sv da zh_CN ro rw vi fi id ru uk sr" ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS @@ -232,343 +221,36 @@ AC_CHECK_DECLS(malloc) AC_CHECK_DECLS(realloc) AC_CHECK_DECLS(stpcpy) AC_CHECK_DECLS(strstr) +AC_CHECK_DECLS(asprintf) +AC_CHECK_DECLS(vasprintf) AC_CHECK_DECLS(snprintf) AC_CHECK_DECLS(vsnprintf) AC_CHECK_DECLS(strnlen) -# Use the system's zlib library. -zlibdir=-L../zlib -zlibinc="-I\$(srcdir)/../zlib" -AC_ARG_WITH(system-zlib, -[AS_HELP_STRING([--with-system-zlib], [use installed libz])], -zlibdir= -zlibinc= -) -AC_SUBST(zlibdir) -AC_SUBST(zlibinc) +# Link in zlib if we can. This allows us to read compressed debug sections. +# This is used only by compress.c. +AM_ZLIB -# If we are configured native, pick a core file support file. -COREFILE= -COREFLAG= -CORE_HEADER= -TRAD_HEADER= -if test "${target}" = "${host}"; then - case "${host}" in - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-*vms*) - COREFILE='' - ;; - alpha*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/alphalinux.h"' - ;; - alpha*-*-netbsd* | alpha*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - alpha*-*-*) - COREFILE=osf-core.lo - ;; - arm-*-freebsd* | arm-*-kfreebsd*-gnu) - COREFILE='' ;; - arm-*-netbsd* | arm-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - arm-*-riscix) COREFILE=trad-core.lo ;; - hppa*-*-hpux*) COREFILE=hpux-core.lo ;; - hppa*-*-hiux*) COREFILE=hpux-core.lo ;; - hppa*-*-mpeix*) COREFILE=hpux-core.lo ;; - hppa*-*-bsd*) COREFILE="hpux-core.lo hppabsd-core.lo" - COREFLAG="-DHPUX_CORE -DHPPABSD_CORE" ;; - hppa*-*-netbsd* | hppa*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; +# Check if linker supports --as-needed and --no-as-needed options +AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed, + [bfd_cv_ld_as_needed=no + if $LD --help 2>/dev/null | grep as-needed > /dev/null; then + bfd_cv_ld_as_needed=yes + fi + ]) - i370-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i370linux.h"' - ;; +LT_LIB_M +# When building a shared libbfd, link against the pic version of libiberty +# so that apps that use libbfd won't need libiberty just to satisfy any +# libbfd references. +# We can't do that if a pic libiberty is unavailable since including non-pic +# code would insert text relocations into libbfd. +SHARED_LIBADD= +SHARED_LDFLAGS= +if test "$enable_shared" = "yes"; then changequote(,)dnl - i[3-7]86-sequent-bsd*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/symmetry.h"' - ;; -changequote(,)dnl - i[3-7]86-sequent-sysv4*) ;; - i[3-7]86-sequent-sysv*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/symmetry.h"' - ;; -changequote(,)dnl - i[3-7]86-*-bsdi) -changequote([,])dnl - COREFILE= - ;; -changequote(,)dnl - i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386bsd.h"' - ;; -changequote(,)dnl - i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*) -changequote([,])dnl - COREFILE='' - TRAD_HEADER='"hosts/i386bsd.h"' - ;; -changequote(,)dnl - i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*) -changequote([,])dnl - COREFILE=netbsd-core.lo - ;; -changequote(,)dnl - i[3-7]86-esix-sysv3*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/esix.h"' - ;; -changequote(,)dnl - i[3-7]86-*-sco3.2v5*) -changequote([,])dnl - COREFILE=sco5-core.lo - ;; -changequote(,)dnl - i[3-7]86-*-sco* | i[3-7]86-*-isc*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386sco.h"' - ;; -changequote(,)dnl - i[3-7]86-*-mach3*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386mach3.h"' - ;; -changequote(,)dnl - i[3-7]86-*-linux-*) -changequote([,])dnl - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i386linux.h"' - case "$enable_targets"-"$want64" in - *x86_64-*linux*|*-true) - CORE_HEADER='"hosts/x86-64linux.h"' - esac - ;; -changequote(,)dnl - i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; - i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; -changequote([,])dnl - i860-*-mach3* | i860-*-osf1*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i860mach3.h"' - ;; - mips-*-netbsd* | mips*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - mips-dec-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/decstation.h"' - ;; - mips-sgi-irix4*) COREFILE=irix-core.lo ;; - mips-sgi-irix5*) COREFILE=irix-core.lo ;; - mips-sgi-irix6*) COREFILE=irix-core.lo ;; - mips-*-sysv4*) ;; - mips-*-sysv* | mips-*-riscos*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/riscos.h"' - ;; - mips-sony-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news-mips.h"' - ;; - m68*-bull*-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/dpx2.h"' - ;; - m68*-hp-hpux*) COREFILE=hpux-core.lo ;; - m68*-hp-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/hp300bsd.h"' - ;; - m68*-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68klinux.h"' - ;; - m68*-motorola-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/delta68.h"' - ;; - m68*-sony-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news.h"' - ;; - m68*-*-netbsd* | m68*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - m68*-apple-aux*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68kaux.h"' - ;; - m88*-*-sysv4*) - ;; - m88*-motorola-sysv*) - COREFILE=ptrace-core.lo - ;; - m88*-*-mach3*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m88kmach3.h"' - ;; - m88*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - ns32k-pc532-mach) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/pc532mach.h"' - ;; - ns32k-*-netbsd* | ns32k-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - rs6000-*-lynx*) - COREFILE=lynx-core.lo - ;; -changequote(,)dnl - rs6000-*-aix[5-9].* | powerpc-*-aix[5-9].*) -changequote([,])dnl - COREFILE=rs6000-core.lo - COREFLAG="$COREFLAG -DAIX_5_CORE -DAIX_CORE_DUMPX_CORE" - ;; -changequote(,)dnl - rs6000-*-aix4.[3-9]* | powerpc-*-aix4.[3-9]*) -changequote([,])dnl - COREFILE=rs6000-core.lo - COREFLAG="$COREFLAG -DAIX_CORE_DUMPX_CORE" - # Not all versions of AIX with -DAIX_CORE_DUMPX_CORE - # have c_impl as a member of struct core_dumpx - AC_MSG_CHECKING([for c_impl in struct core_dumpx]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct core_dumpx c; c.c_impl = 0;]])],[AC_DEFINE(HAVE_ST_C_IMPL, 1, - [Define if struct core_dumpx has member c_impl]) - AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) - ;; - rs6000-*-aix4*) COREFILE=rs6000-core.lo ;; - rs6000-*-*) COREFILE=rs6000-core.lo ;; - powerpc-*-aix4*) COREFILE=rs6000-core.lo ;; - powerpc-*-aix*) COREFILE=rs6000-core.lo ;; - powerpc-*-beos*) ;; - powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu) - COREFILE='' ;; - powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; - powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; - s390*-*-*) COREFILE=trad-core.lo ;; - sh*-*-netbsd* | sh*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - sparc-*-netbsd* | sparc*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - tahoe-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/tahoe.h"' - ;; - vax-*-netbsd* | vax-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - vax-*-ultrix2*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxult2.h"' - ;; - vax-*-ultrix*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxult2.h"' - ;; - vax-*-linux-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxlinux.h"' - ;; - vax-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/vaxbsd.h"' - ;; - x86_64-*-linux*) - CORE_HEADER='"hosts/x86-64linux.h"' - ;; - x86_64-*-netbsd* | x86_64-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - esac - - case "$COREFILE" in - aix386-core.lo) COREFLAG=-DAIX386_CORE ;; - hppabsd-core.lo) COREFLAG=-DHPPABSD_CORE ;; - hpux-core.lo) COREFLAG=-DHPUX_CORE ;; - irix-core.lo) COREFLAG=-DIRIX_CORE ;; - lynx-core.lo) COREFLAG=-DLYNX_CORE ;; - netbsd-core.lo) COREFLAG=-DNETBSD_CORE ;; - osf-core.lo) COREFLAG=-DOSF_CORE ;; - ptrace-core.lo) COREFLAG=-DPTRACE_CORE ;; - rs6000-core.lo) COREFLAG="$COREFLAG -DAIX_CORE" ;; - sco5-core.lo) COREFLAG="$COREFLAG -DSCO5_CORE" ;; - trad-core.lo) COREFLAG="$COREFLAG -DTRAD_CORE" ;; - esac - - # ELF corefile support has several flavors, but all of - # them use something called - AC_CHECK_HEADERS(sys/procfs.h) - if test "$ac_cv_header_sys_procfs_h" = yes; then - BFD_HAVE_SYS_PROCFS_TYPE(prstatus_t) - BFD_HAVE_SYS_PROCFS_TYPE(prstatus32_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus_t, pr_who) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus32_t, pr_who) - BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t) - BFD_HAVE_SYS_PROCFS_TYPE(pxstatus_t) - BFD_HAVE_SYS_PROCFS_TYPE(pstatus32_t) - BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prpsinfo_t, pr_pid) - BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo32_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prpsinfo32_t, pr_pid) - BFD_HAVE_SYS_PROCFS_TYPE(psinfo_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(psinfo_t, pr_pid) - BFD_HAVE_SYS_PROCFS_TYPE(psinfo32_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(psinfo32_t, pr_pid) - BFD_HAVE_SYS_PROCFS_TYPE(lwpstatus_t) - BFD_HAVE_SYS_PROCFS_TYPE(lwpxstatus_t) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_context) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_reg) - BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_fpreg) - BFD_HAVE_SYS_PROCFS_TYPE(win32_pstatus_t) - fi -fi -AC_SUBST(COREFILE) -AC_SUBST(COREFLAG) -if test -n "$CORE_HEADER"; then - AC_DEFINE_UNQUOTED(CORE_HEADER, $CORE_HEADER, - [Name of host specific core header file to include in elf.c.]) -fi -if test -n "$TRAD_HEADER"; then - AC_DEFINE_UNQUOTED(TRAD_HEADER, $TRAD_HEADER, - [Name of host specific header file to include in trad-core.c.]) -fi - -# Check if linker supports --as-needed and --no-as-needed options -AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed, - [bfd_cv_ld_as_needed=no - if $LD --help 2>/dev/null | grep as-needed > /dev/null; then - bfd_cv_ld_as_needed=yes - fi - ]) - -LT_LIB_M - -# When building a shared libbfd, link against the pic version of libiberty -# so that apps that use libbfd won't need libiberty just to satisfy any -# libbfd references. -# We can't do that if a pic libiberty is unavailable since including non-pic -# code would insert text relocations into libbfd. -SHARED_LIBADD= -SHARED_LDFLAGS= -if test "$enable_shared" = "yes"; then -changequote(,)dnl - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` changequote([,])dnl if test -n "$x"; then SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" @@ -699,8 +381,11 @@ do # use one entry per line, even though this leads to long lines. aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;; aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;; - aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; - aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + aarch64_elf64_be_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + aarch64_mach_o_vec) tb="$tb mach-o-aarch64.lo"; target_size=64 ;; alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo $ecoff"; target_size=64 ;; alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; @@ -740,6 +425,7 @@ do arm_pei_epoc_le_vec) tb="$tb epoc-pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_be_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_le_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; + arm_mach_o_vec) tb="$tb mach-o-arm.lo" ;; avr_elf32_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;; bfin_elf32_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; bfin_elf32_fdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; @@ -796,6 +482,7 @@ do i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;; i386_pe_vec) tb="$tb pe-i386.lo peigen.lo $coff" ;; i386_pei_vec) tb="$tb pei-i386.lo peigen.lo $coff" ;; + iamcu_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;; i860_coff_vec) tb="$tb coff-i860.lo $coff" ;; i860_elf32_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; i860_elf32_le_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; @@ -1015,6 +702,7 @@ do x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; x86_64_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; + x86_64_elf64_cloudabi_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; x86_64_elf64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; @@ -1096,6 +784,22 @@ else # all_targets is true selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'` fi # all_targets is true +if test "x$want_64_bit_archive" = xunset; then + # 64-bit MIPS and s390 ELF targets use 64-bit archives. + case "${bfd_backends}" in + *elf64-mips* | *elf64-s390*) + want_64_bit_archive=true + ;; + esac +fi + +# 64-bit archives need a 64-bit bfd_vma. +if test "x$want_64_bit_archive" = xtrue; then + want64=true + AC_DEFINE(USE_64_BIT_ARCHIVE, 1, + [Define if we should use 64-bit archives.]) +fi + case ${host64}-${target64}-${want64} in *true*) wordsize=64 @@ -1124,12 +828,323 @@ case ${host64}-${target64}-${want64} in ;; esac +tdefaults="" +test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}" +test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'" +test -n "${assocvecs}" && tdefaults="${tdefaults} -DASSOCIATED_VECS='${assocvecs}'" +test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'" + AC_SUBST(wordsize) AC_SUBST(bfd64_libs) AC_SUBST(all_backends) AC_SUBST(bfd_backends) AC_SUBST(bfd_machines) AC_SUBST(bfd_default_target_size) +AC_SUBST(tdefaults) +AC_SUBST(havevecs) + +# If we are configured native, pick a core file support file. +COREFILE= +COREFLAG= +CORE_HEADER= +TRAD_HEADER= +if test "${target}" = "${host}"; then + case "${host}" in + alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-*vms*) + COREFILE='' + ;; + alpha*-*-linux-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/alphalinux.h"' + ;; + alpha*-*-netbsd* | alpha*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + alpha*-*-*) + COREFILE=osf-core.lo + ;; + arm-*-freebsd* | arm-*-kfreebsd*-gnu) + COREFILE='' ;; + arm-*-netbsd* | arm-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + arm-*-riscix) COREFILE=trad-core.lo ;; + hppa*-*-hpux*) COREFILE=hpux-core.lo ;; + hppa*-*-hiux*) COREFILE=hpux-core.lo ;; + hppa*-*-mpeix*) COREFILE=hpux-core.lo ;; + hppa*-*-bsd*) COREFILE="hpux-core.lo hppabsd-core.lo" + COREFLAG="-DHPUX_CORE -DHPPABSD_CORE" ;; + hppa*-*-netbsd* | hppa*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + + i370-*-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i370linux.h"' + ;; + +changequote(,)dnl + i[3-7]86-sequent-bsd*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; +changequote(,)dnl + i[3-7]86-sequent-sysv4*) ;; + i[3-7]86-sequent-sysv*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; +changequote(,)dnl + i[3-7]86-*-bsdi) +changequote([,])dnl + COREFILE= + ;; +changequote(,)dnl + i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386bsd.h"' + ;; +changequote(,)dnl + i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*) +changequote([,])dnl + COREFILE='' + TRAD_HEADER='"hosts/i386bsd.h"' + ;; +changequote(,)dnl + i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*) +changequote([,])dnl + COREFILE=netbsd-core.lo + ;; +changequote(,)dnl + i[3-7]86-esix-sysv3*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/esix.h"' + ;; +changequote(,)dnl + i[3-7]86-*-sco3.2v5*) +changequote([,])dnl + COREFILE=sco5-core.lo + ;; +changequote(,)dnl + i[3-7]86-*-sco* | i[3-7]86-*-isc*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386sco.h"' + ;; +changequote(,)dnl + i[3-7]86-*-mach3*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386mach3.h"' + ;; +changequote(,)dnl + i[3-7]86-*-linux-*) +changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' + case "$enable_targets"-"$want64" in + *x86_64-*linux*|*-true) + CORE_HEADER='"hosts/x86-64linux.h"' + esac + ;; +changequote(,)dnl + i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; + i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; +changequote([,])dnl + i860-*-mach3* | i860-*-osf1*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i860mach3.h"' + ;; + mips-*-netbsd* | mips*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + mips-dec-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/decstation.h"' + ;; + mips-sgi-irix4*) COREFILE=irix-core.lo ;; + mips-sgi-irix5*) COREFILE=irix-core.lo ;; + mips-sgi-irix6*) COREFILE=irix-core.lo ;; + mips-*-sysv4*) ;; + mips-*-sysv* | mips-*-riscos*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/riscos.h"' + ;; + mips-sony-bsd*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/news-mips.h"' + ;; + m68*-bull*-sysv*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/dpx2.h"' + ;; + m68*-hp-hpux*) COREFILE=hpux-core.lo ;; + m68*-hp-bsd*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/hp300bsd.h"' + ;; + m68*-*-linux-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68klinux.h"' + ;; + m68*-motorola-sysv*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/delta68.h"' + ;; + m68*-sony-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/news.h"' + ;; + m68*-*-netbsd* | m68*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + m68*-apple-aux*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68kaux.h"' + ;; + m88*-*-sysv4*) + ;; + m88*-motorola-sysv*) + COREFILE=ptrace-core.lo + ;; + m88*-*-mach3*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m88kmach3.h"' + ;; + m88*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + ns32k-pc532-mach) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/pc532mach.h"' + ;; + ns32k-*-netbsd* | ns32k-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + rs6000-*-lynx*) + COREFILE=lynx-core.lo + ;; +changequote(,)dnl + rs6000-*-aix[5-9].* | powerpc-*-aix[5-9].* | powerpc64-*-aix[5-9].*) +changequote([,])dnl + COREFILE=rs6000-core.lo + COREFLAG="$COREFLAG -DAIX_5_CORE -DAIX_CORE_DUMPX_CORE" + ;; +changequote(,)dnl + rs6000-*-aix4.[3-9]* | powerpc-*-aix4.[3-9]*) +changequote([,])dnl + COREFILE=rs6000-core.lo + COREFLAG="$COREFLAG -DAIX_CORE_DUMPX_CORE" + # Not all versions of AIX with -DAIX_CORE_DUMPX_CORE + # have c_impl as a member of struct core_dumpx + AC_MSG_CHECKING([for c_impl in struct core_dumpx]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct core_dumpx c; c.c_impl = 0;]])],[AC_DEFINE(HAVE_ST_C_IMPL, 1, + [Define if struct core_dumpx has member c_impl]) + AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) + ;; + rs6000-*-aix4*) COREFILE=rs6000-core.lo ;; + rs6000-*-*) COREFILE=rs6000-core.lo ;; + powerpc64-*-aix*) COREFILE=rs6000-core.lo ;; + powerpc-*-aix4*) COREFILE=rs6000-core.lo ;; + powerpc-*-aix*) COREFILE=rs6000-core.lo ;; + powerpc-*-beos*) ;; + powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu) + COREFILE='' ;; + powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; + powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; + s390*-*-*) COREFILE=trad-core.lo ;; + sh*-*-netbsd* | sh*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + sparc-*-netbsd* | sparc*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + tahoe-*-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/tahoe.h"' + ;; + vax-*-netbsd* | vax-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + vax-*-ultrix2*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/vaxult2.h"' + ;; + vax-*-ultrix*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/vaxult2.h"' + ;; + vax-*-linux-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/vaxlinux.h"' + ;; + vax-*-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/vaxbsd.h"' + ;; + x86_64-*-linux*) + CORE_HEADER='"hosts/x86-64linux.h"' + ;; + x86_64-*-netbsd* | x86_64-*-openbsd*) + COREFILE=netbsd-core.lo + ;; + esac + + case "$COREFILE" in + aix386-core.lo) COREFLAG=-DAIX386_CORE ;; + hppabsd-core.lo) COREFLAG=-DHPPABSD_CORE ;; + hpux-core.lo) COREFLAG=-DHPUX_CORE ;; + irix-core.lo) COREFLAG=-DIRIX_CORE ;; + lynx-core.lo) COREFLAG=-DLYNX_CORE ;; + netbsd-core.lo) COREFLAG=-DNETBSD_CORE ;; + osf-core.lo) COREFLAG=-DOSF_CORE ;; + ptrace-core.lo) COREFLAG=-DPTRACE_CORE ;; + rs6000-core.lo) COREFLAG="$COREFLAG -DAIX_CORE" ;; + sco5-core.lo) COREFLAG="$COREFLAG -DSCO5_CORE" ;; + trad-core.lo) COREFLAG="$COREFLAG -DTRAD_CORE" ;; + esac + + # ELF corefile support has several flavors, but all of + # them use something called + AC_CHECK_HEADERS(sys/procfs.h) + if test "$ac_cv_header_sys_procfs_h" = yes; then + BFD_HAVE_SYS_PROCFS_TYPE(prstatus_t) + BFD_HAVE_SYS_PROCFS_TYPE(prstatus32_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus_t, pr_who) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus32_t, pr_who) + BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t) + BFD_HAVE_SYS_PROCFS_TYPE(pxstatus_t) + BFD_HAVE_SYS_PROCFS_TYPE(pstatus32_t) + BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prpsinfo_t, pr_pid) + BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo32_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prpsinfo32_t, pr_pid) + BFD_HAVE_SYS_PROCFS_TYPE(psinfo_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(psinfo_t, pr_pid) + BFD_HAVE_SYS_PROCFS_TYPE(psinfo32_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(psinfo32_t, pr_pid) + BFD_HAVE_SYS_PROCFS_TYPE(lwpstatus_t) + BFD_HAVE_SYS_PROCFS_TYPE(lwpxstatus_t) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_context) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_reg) + BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_fpreg) + BFD_HAVE_SYS_PROCFS_TYPE(win32_pstatus_t) + fi +fi +AC_SUBST(COREFILE) +AC_SUBST(COREFLAG) +if test -n "$CORE_HEADER"; then + AC_DEFINE_UNQUOTED(CORE_HEADER, $CORE_HEADER, + [Name of host specific core header file to include in elf.c.]) +fi +if test -n "$TRAD_HEADER"; then + AC_DEFINE_UNQUOTED(TRAD_HEADER, $TRAD_HEADER, + [Name of host specific header file to include in trad-core.c.]) +fi if test "$plugins" = "yes"; then supports_plugins=1 @@ -1160,15 +1175,6 @@ AC_MSG_RESULT($bfd_file_ptr) AC_SUBST(bfd_file_ptr) AC_SUBST(bfd_ufile_ptr) - -tdefaults="" -test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}" -test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'" -test -n "${assocvecs}" && tdefaults="${tdefaults} -DASSOCIATED_VECS='${assocvecs}'" -test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'" -AC_SUBST(tdefaults) -AC_SUBST(havevecs) - dnl AC_CHECK_HEADERS(sys/mman.h) AC_FUNC_MMAP AC_CHECK_FUNCS(madvise mprotect)