X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Fconfigure.in;h=b844927d043b52671daba5f4ff5f4adb4ddb9d28;hb=08d2cd740c0c9ca78c849cf14e3470f0b8823139;hp=85fe903d3b17267ffd8cdd0d7fd6652168e4d15a;hpb=c77912127fd71c822df5b03a3190cddd19b1dd4f;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/configure.in b/ld/configure.in index 85fe903d3b..b844927d04 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -5,6 +5,7 @@ AC_INIT AC_CONFIG_SRCDIR(ldmain.c) AC_CANONICAL_TARGET +AC_CANONICAL_BUILD AC_ISC_POSIX changequote(,)dnl @@ -74,7 +75,7 @@ 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 +[case "${enableval}" in default) install_as_default=no installed_linker=ld.bfd @@ -119,8 +120,19 @@ esac AM_BINUTILS_WARNINGS +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.) fi @@ -131,6 +143,7 @@ fi # host-specific stuff: AC_PROG_CC +AC_PROG_CXX AC_GNU_SOURCE AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE @@ -138,7 +151,7 @@ AC_PROG_INSTALL LT_INIT -ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg" +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 @@ -158,9 +171,10 @@ 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_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) -AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid) +ACX_HEADER_STRING +AC_CHECK_FUNCS(glob mkstemp realpath sbrk setlocale waitpid) AC_CHECK_FUNCS(open lseek close) AC_HEADER_DIRENT @@ -171,10 +185,34 @@ 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]) + 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_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [extern int getopt (int, char *const*, const char *);])], @@ -184,14 +222,14 @@ 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 @@ -226,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 @@ -296,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