X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2Fconfigure.ac;h=b2741cfbd1c6e2681ed9dcbc4710e1d6a5967823;hb=5fb776a6371f2122e891467a8fe9b4d7b8b5c6a4;hp=05e807b64437ac289712d7a99c2526bf3b488ef7;hpb=f1415016b687b6b9d1f5c53c91036f8a565b2c52;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/configure.ac b/gold/configure.ac index 05e807b644..b2741cfbd1 100644 --- a/gold/configure.ac +++ b/gold/configure.ac @@ -1,4 +1,22 @@ dnl Process this file with autoconf to produce a configure script. +dnl +dnl Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +dnl 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 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 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 . +dnl AC_PREREQ(2.59) @@ -15,7 +33,7 @@ AM_CONFIG_HEADER(config.h:config.in) 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__) +#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__) # error config.h must be #included before system headers #endif #define __CONFIG_H__ 1]) @@ -51,32 +69,20 @@ dnl "install_as_default" is true if the linker to be installed as the dnl default linker, ld. dnl "installed_linker" is the installed gold linker name. -default_ld= -AC_ARG_ENABLE(ld, -[[ --enable-ld[=ARG] build ld [ARG={default,yes,no}]]], -[case "${enableval}" in - default) - default_ld=ld.bfd - ;; -esac]) - +installed_linker=ld.gold AC_ARG_ENABLE(gold, [[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]], [case "${enableval}" in - yes|default) - if test x${default_ld} = x; then + default) + install_as_default=yes + ;; + yes) + if test x${enable_ld} = xno; then install_as_default=yes fi - installed_linker=ld.gold - ;; - no) - ;; - *) - AC_MSG_ERROR([invalid --enable-gold argument]) ;; esac], -[install_as_default=no - installed_linker=ld.gold]) +[install_as_default=no]) AC_SUBST(install_as_default) AC_SUBST(installed_linker) @@ -199,6 +205,9 @@ for targ in $target $canon_targets; do AM_CONDITIONAL(DEFAULT_TARGET_POWERPC, test "$targ_obj" = "powerpc") AM_CONDITIONAL(DEFAULT_TARGET_SPARC, test "$targ_obj" = "sparc") AM_CONDITIONAL(DEFAULT_TARGET_X86_64, test "$targ_obj" = "x86_64") + AM_CONDITIONAL(DEFAULT_TARGET_TILEGX, test "$targ_obj" = "tilegx") + DEFAULT_TARGET=${targ_obj} + AC_SUBST(DEFAULT_TARGET) fi fi fi @@ -304,7 +313,7 @@ dnl tell the unittest framework if we're compiling for one of those dnl targets, so it doesn't try to run the tests that do that. AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [ case $target_cpu in - i?86) true;; + powerpc*) false;; x86_64) false;; sparc64) false;; *) true;; @@ -329,6 +338,19 @@ dnl Whether we can test -mcmodel=medium. AM_CONDITIONAL(MCMODEL_MEDIUM, [test "$target_cpu" = "x86_64" -a "$have_mcmodel_medium" = "yes" -a "$gold_cv_prog_gcc41" = "yes"]) +AC_CACHE_CHECK([whether $CC supports -fmerge-constants], + [gold_cv_merge_constants], [ +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -fmerge-constants" +AC_COMPILE_IFELSE([const char *s = "foo";], + [gold_cv_merge_constants=yes], + [gold_cv_merge_constants=no]) +CFLAGS="$save_CFLAGS"]) +AC_SUBST([MERGE_CONSTANTS_FLAG]) +AS_IF([test "$gold_cv_merge_constants" = yes], + [MERGE_CONSTANTS_FLAG=-fmerge-constants], + [MERGE_CONSTANTS_FLAG=]) + dnl Test for __thread support. AC_CACHE_CHECK([for thread support], [gold_cv_c_thread], [AC_COMPILE_IFELSE([__thread int i = 1;], @@ -367,8 +389,13 @@ fi AM_CONDITIONAL(OMP_SUPPORT, test "$gold_cv_c_threadprivate" = "yes") dnl Test for the -ftls-dialect=gnu2 option. +dnl Use -Werror in case of compilers that make unknown -m options warnings. +dnl They would pass the test here, but fail in actual use when $WARN_CFLAGS +dnl gets set later by default Autoconf magic to include -Werror. (We are +dnl assuming here that there is no compiler that groks -mtls-dialect=gnu2 +dnl but does not grok -Werror.) save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fpic -mtls-dialect=gnu2" +CFLAGS="$CFLAGS -Werror -fpic -mtls-dialect=gnu2" AC_COMPILE_IFELSE([ __thread int i; void foo (void) @@ -485,8 +512,8 @@ else fi # Link in zlib if we can. This allows us to write compressed sections. -AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) -AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_search_zlibVersion" != "no") +AM_ZLIB +AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_header_zlib_h" = "yes") dnl We have to check these in C, not C++, because autoconf generates dnl tests which have no type information, and current glibc provides @@ -496,9 +523,22 @@ AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strvers AC_LANG_PUSH(C++) +AC_CHECK_HEADERS(unordered_set unordered_map) AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map) AC_CHECK_HEADERS(ext/hash_map ext/hash_set) AC_CHECK_HEADERS(byteswap.h) + +dnl When plugins enabled dynamic loader interface is required. Check headers +dnl which may provide this interface. Add the necessary library to link. +AC_CHECK_HEADERS(windows.h) +AC_CHECK_HEADERS(dlfcn.h) +AC_SEARCH_LIBS(dlopen, [dl dld]) +case "$ac_cv_search_dlopen" in + no*) DLOPEN_LIBS="";; + *) DLOPEN_LIBS="$ac_cv_search_dlopen";; +esac +AC_SUBST(DLOPEN_LIBS) + AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times) AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem]) @@ -528,7 +568,7 @@ std::tr1::hash h; ], [gold_cv_hash_off_t=yes], [gold_cv_hash_off_t=no]) -CXXFLAGS=$CFLAGS_hold]) +CXXFLAGS=$CXXFLAGS_hold]) if test "$gold_cv_hash_off_t" = "yes"; then AC_DEFINE(HAVE_TR1_HASH_OFF_T, 1, [Define if std::tr1::hash is usable]) @@ -563,8 +603,13 @@ if test "$gold_cv_stat_st_mtim" = "yes"; then fi dnl Check if gcc supports the -gpubnames option. +dnl Use -Werror in case of compilers that make unknown -g options warnings. +dnl They would pass the test here, but fail in actual use when $WARN_CFLAGS +dnl gets set later by default Autoconf magic to include -Werror. (We are +dnl assuming here that there is no compiler that groks -gpubnames +dnl but does not grok -Werror.) save_CXXFLAGS="$CXXFLAGS" -CXXFLAGS="$CXXFLAGS -gpubnames" +CXXFLAGS="$CXXFLAGS -Werror -gpubnames" AC_COMPILE_IFELSE([int i;], [have_pubnames=yes], [have_pubnames=no]) CXXFLAGS="$save_CXXFLAGS" AM_CONDITIONAL(HAVE_PUBNAMES, test "$have_pubnames" = "yes")