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")