X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Fconfigure.in;h=b844927d043b52671daba5f4ff5f4adb4ddb9d28;hb=08d2cd740c0c9ca78c849cf14e3470f0b8823139;hp=26ad87bbc31949e1ae2abb9613ed17eee4844109;hpb=7357c5b6a63767cbfc54cce1886c5ed262031f19;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/configure.in b/ld/configure.in index 26ad87bbc3..b844927d04 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -1,21 +1,24 @@ dnl Process this file with autoconf to produce a configure script dnl -AC_PREREQ(2.57) -AC_INIT(ldmain.c) +AC_PREREQ(2.59) +AC_INIT +AC_CONFIG_SRCDIR(ldmain.c) -AC_CANONICAL_SYSTEM +AC_CANONICAL_TARGET +AC_CANONICAL_BUILD AC_ISC_POSIX changequote(,)dnl BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` changequote([,])dnl AM_INIT_AUTOMAKE(ld, ${BFD_VERSION}) +AM_MAINTAINER_MODE AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval) AC_ARG_ENABLE(targets, [ --enable-targets alternative target configurations], [case "${enableval}" in - yes | "") AC_ERROR(enable-targets option must specify target names or 'all') + yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all') ;; no) enable_targets= ;; *) enable_targets=$enableval ;; @@ -67,12 +70,35 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +dnl Use --enable-gold to decide if this linker should be the default. +dnl "install_as_default" is set to false if gold is the default linker. +dnl "installed_linker" is the installed BFD linker name. +AC_ARG_ENABLE(gold, +[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]], +[case "${enableval}" in + default) + install_as_default=no + installed_linker=ld.bfd + ;; + yes|no) + install_as_default=yes + installed_linker=ld.bfd + ;; + *) + AC_MSG_ERROR([invalid --enable-gold argument]) + ;; + esac], +[install_as_default=yes + installed_linker=ld.bfd]) +AC_SUBST(install_as_default) +AC_SUBST(installed_linker) + AC_ARG_ENABLE([got], AS_HELP_STRING([--enable-got=], [GOT handling scheme (target, single, negative, multigot)]), [case "${enableval}" in target | single | negative | multigot) got_handling=$enableval ;; - *) AC_ERROR(bad value ${enableval} for --enable-got option) ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-got option) ;; esac], [got_handling=target]) @@ -89,12 +115,23 @@ case "${got_handling}" in multigot) AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_MULTIGOT], [Define to choose default GOT handling scheme]) ;; - *) AC_ERROR(bad value ${got_handling} for --enable-got option) ;; + *) AC_MSG_ERROR(bad value ${got_handling} for --enable-got option) ;; esac AM_BINUTILS_WARNINGS -AM_CONFIG_HEADER(config.h:config.in) +AM_LC_MESSAGES + +AC_CONFIG_HEADERS([config.h:config.in]) + +# PR 14072 +AH_VERBATIM([00_CONFIG_H_CHECK], +[/* Check that config.h is #included before system headers + (this works only for glibc, but that should be enough). */ +#if defined(__GLIBC__) && !defined(__CONFIG_H__) +# error config.h must be #included before system headers +#endif +#define __CONFIG_H__ 1]) if test -z "$target" ; then AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) @@ -106,13 +143,15 @@ fi # host-specific stuff: AC_PROG_CC +AC_PROG_CXX AC_GNU_SOURCE AC_USE_SYSTEM_EXTENSIONS +ACX_LARGEFILE AC_PROG_INSTALL -AM_PROG_LIBTOOL +LT_INIT -ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi" +ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg it" ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS @@ -123,6 +162,7 @@ AM_PROG_LEX AM_MAINTAINER_MODE AM_CONDITIONAL(GENINSRC_NEVER, false) +ACX_PROG_CMP_IGNORE_INITIAL . ${srcdir}/configure.host @@ -131,27 +171,65 @@ AC_SUBST(HOSTING_CRT0) AC_SUBST(HOSTING_LIBS) AC_SUBST(NATIVE_LIB_DIRS) -AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h sys/param.h) -AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid) +AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h locale.h sys/param.h) +AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h) +ACX_HEADER_STRING +AC_CHECK_FUNCS(glob mkstemp realpath sbrk setlocale waitpid) +AC_CHECK_FUNCS(open lseek close) AC_HEADER_DIRENT +# Check for dlopen support and enable plugins if possible. +enable_plugins=yes +AC_CHECK_HEADER([dlfcn.h],[],[enable_plugins=no],[AC_INCLUDES_DEFAULT]) +AC_SEARCH_LIBS([dlopen],[dl],[],[enable_plugins=no],[]) +AC_CHECK_FUNCS([dlopen dlsym dlclose],[],[enable_plugins=no]) +# We also support plugins on Windows (MinGW). +if test x$enable_plugins = xno ; then + AC_CHECK_HEADERS([windows.h],[enable_plugins=yes],[],[AC_INCLUDES_DEFAULT]) +fi +AM_CONDITIONAL([ENABLE_PLUGINS], [test x$enable_plugins = xyes]) + +AC_ARG_ENABLE(initfini-array, + [ --enable-initfini-array use .init_array/.fini_array sections], + [], [ +AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support, + gcc_cv_initfini_array, [dnl + if test "x${build}" = "x${target}" ; then + AC_RUN_IFELSE([AC_LANG_SOURCE([ +static int x = -1; +int main (void) { return x; } +int foo (void) { x = 0; } +int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;])], + [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no], + [gcc_cv_initfini_array=no]) + else + gcc_cv_initfini_array=no + fi]) + enable_initfini_array=$gcc_cv_initfini_array +]) +AC_SUBST(enable_initfini_array) +if test $enable_initfini_array = yes; then + AC_DEFINE(HAVE_INITFINI_ARRAY, 1, + [Define .init_array/.fini_array sections are available and working.]) +fi + AC_MSG_CHECKING(for a known getopt prototype in unistd.h) AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h, -[AC_TRY_COMPILE([#include ], [extern int getopt (int, char *const*, const char *);], +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [extern int getopt (int, char *const*, const char *);])], ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)]) AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h) if test $ld_cv_decl_getopt_unistd_h = yes; then AC_DEFINE([HAVE_DECL_GETOPT], 1, [Is the prototype for getopt in in the expected format?]) fi - + BFD_BINARY_FOPEN AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ]) # Link in zlib if we can. This is needed only for the bootstrap tests # right now, since those tests use libbfd, which depends on zlib. -AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) +AM_ZLIB # When converting linker scripts into strings for use in emulation # files, use astring.sed if the compiler supports ANSI string @@ -161,9 +239,9 @@ AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) # support string concatenation. AC_MSG_CHECKING([whether ANSI C string concatenation works]) AC_CACHE_VAL(ld_cv_string_concatenation, -[AC_TRY_COMPILE(,[char *a = "a" "a";], - [ld_cv_string_concatenation=yes], - [ld_cv_string_concatenation=no])]) +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [char *a = "a" "a";])], + ld_cv_string_concatenation=yes, + ld_cv_string_concatenation=no)]) AC_MSG_RESULT($ld_cv_string_concatenation) if test "$ld_cv_string_concatenation" = "yes"; then STRINGIFY=astring.sed @@ -186,6 +264,15 @@ dnl not permit literal newlines in an AC_SUBST variables. So we use a dnl file. rm -f tdirs +# If the host is 64-bit, then we enable 64-bit targets by default. +# This is consistent with what ../bfd/configure.in does. +if test x${want64} = xfalse; then + AC_CHECK_SIZEOF(void *) + if test "x${ac_cv_sizeof_void_p}" = "x8"; then + want64=true + fi +fi + for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` do if test "$targ_alias" = "all"; then @@ -256,12 +343,6 @@ TDIRS=tdirs AC_SUBST_FILE(TDIRS) if test x${all_targets} = xtrue; then - if test x${want64} = xfalse; then - AC_CHECK_SIZEOF(long) - if test "x${ac_cv_sizeof_long}" = "x8"; then - want64=true - fi - fi if test x${want64} = xtrue; then EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)' else @@ -301,9 +382,11 @@ if test x${EXTRA_SHLIB_EXTENSION} != x ; then [Additional extension a shared object might have.]) fi -dnl Required by html and install-html +dnl Required by html, pdf, install-pdf and install-html AC_SUBST(datarootdir) AC_SUBST(docdir) AC_SUBST(htmldir) +AC_SUBST(pdfdir) -AC_OUTPUT(Makefile po/Makefile.in:po/Make-in) +AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in) +AC_OUTPUT