mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-04-06 14:21:43 +08:00
Modify gold testsuite to disable plugins added by GCC driver.
GCC 4.8 now adds linker plugin options by default, which conflict with the --incremental tests in the testsuite. This patch checks whether the compiler supports the -fno-use-linker-plugin option, and adds it to all link commands. 2014-04-02 Cary Coutant <ccoutant@google.com> * configure.ac (HAVE_PUBNAMES): Use C instead of C++. (HAVE_NO_USE_LINKER_PLUGIN): Check for -fno-use-linker-plugin. * configure: Regenerate. * testsuite/Makefile.am (OPT_NO_PLUGINS): New macro for -fno-use-linker-plugin. (LINK1, CXXLINK1): Add it to the link command. * testsuite/Makefile.in: Regenerate.
This commit is contained in:
parent
0a899fd5ac
commit
ae447ddd12
@ -1,3 +1,13 @@
|
||||
2014-04-02 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* configure.ac (HAVE_PUBNAMES): Use C instead of C++.
|
||||
(HAVE_NO_USE_LINKER_PLUGIN): Check for -fno-use-linker-plugin.
|
||||
* configure: Regenerate.
|
||||
* testsuite/Makefile.am (OPT_NO_PLUGINS): New macro for
|
||||
-fno-use-linker-plugin.
|
||||
(LINK1, CXXLINK1): Add it to the link command.
|
||||
* testsuite/Makefile.in: Regenerate.
|
||||
|
||||
2014-03-12 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* Makefile.in: Regenerate.
|
||||
|
76
gold/configure
vendored
76
gold/configure
vendored
@ -594,10 +594,12 @@ LTLIBOBJS
|
||||
MAINT
|
||||
MAINTAINER_MODE_FALSE
|
||||
MAINTAINER_MODE_TRUE
|
||||
HAVE_PUBNAMES_FALSE
|
||||
HAVE_PUBNAMES_TRUE
|
||||
DLOPEN_LIBS
|
||||
CXXCPP
|
||||
HAVE_NO_USE_LINKER_PLUGIN_FALSE
|
||||
HAVE_NO_USE_LINKER_PLUGIN_TRUE
|
||||
HAVE_PUBNAMES_FALSE
|
||||
HAVE_PUBNAMES_TRUE
|
||||
HAVE_ZLIB_FALSE
|
||||
HAVE_ZLIB_TRUE
|
||||
LIBOBJS
|
||||
@ -6991,6 +6993,50 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -gpubnames"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
int i;
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
have_pubnames=yes
|
||||
else
|
||||
have_pubnames=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
CFLAGS="$save_CFLAGS"
|
||||
if test "$have_pubnames" = "yes"; then
|
||||
HAVE_PUBNAMES_TRUE=
|
||||
HAVE_PUBNAMES_FALSE='#'
|
||||
else
|
||||
HAVE_PUBNAMES_TRUE='#'
|
||||
HAVE_PUBNAMES_FALSE=
|
||||
fi
|
||||
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -fno-use-linker-plugin"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
int i;
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
have_no_use_linker_plugin=yes
|
||||
else
|
||||
have_no_use_linker_plugin=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
CFLAGS="$save_CFLAGS"
|
||||
if test "$have_no_use_linker_plugin" = "yes"; then
|
||||
HAVE_NO_USE_LINKER_PLUGIN_TRUE=
|
||||
HAVE_NO_USE_LINKER_PLUGIN_FALSE='#'
|
||||
else
|
||||
HAVE_NO_USE_LINKER_PLUGIN_TRUE='#'
|
||||
HAVE_NO_USE_LINKER_PLUGIN_FALSE=
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=cpp
|
||||
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
@ -7515,28 +7561,6 @@ $as_echo "#define HAVE_STAT_ST_MTIM 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -Werror -gpubnames"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
int i;
|
||||
_ACEOF
|
||||
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||
have_pubnames=yes
|
||||
else
|
||||
have_pubnames=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
CXXFLAGS="$save_CXXFLAGS"
|
||||
if test "$have_pubnames" = "yes"; then
|
||||
HAVE_PUBNAMES_TRUE=
|
||||
HAVE_PUBNAMES_FALSE='#'
|
||||
else
|
||||
HAVE_PUBNAMES_TRUE='#'
|
||||
HAVE_PUBNAMES_FALSE=
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
@ -7837,6 +7861,10 @@ if test -z "${HAVE_PUBNAMES_TRUE}" && test -z "${HAVE_PUBNAMES_FALSE}"; then
|
||||
as_fn_error "conditional \"HAVE_PUBNAMES\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${HAVE_NO_USE_LINKER_PLUGIN_TRUE}" && test -z "${HAVE_NO_USE_LINKER_PLUGIN_FALSE}"; then
|
||||
as_fn_error "conditional \"HAVE_NO_USE_LINKER_PLUGIN\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
|
||||
as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
|
@ -520,6 +520,25 @@ dnl multiple declarations of functions like basename when compiling
|
||||
dnl with C++.
|
||||
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp])
|
||||
|
||||
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_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -gpubnames"
|
||||
AC_COMPILE_IFELSE([int i;], [have_pubnames=yes], [have_pubnames=no])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
AM_CONDITIONAL(HAVE_PUBNAMES, test "$have_pubnames" = "yes")
|
||||
|
||||
dnl Check if gcc supports the -fno-use-linker-plugin option.
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -fno-use-linker-plugin"
|
||||
AC_COMPILE_IFELSE([int i;], [have_no_use_linker_plugin=yes], [have_no_use_linker_plugin=no])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
AM_CONDITIONAL(HAVE_NO_USE_LINKER_PLUGIN, test "$have_no_use_linker_plugin" = "yes")
|
||||
|
||||
AC_LANG_PUSH(C++)
|
||||
|
||||
AC_CHECK_HEADERS(unordered_set unordered_map)
|
||||
@ -601,18 +620,6 @@ if test "$gold_cv_stat_st_mtim" = "yes"; then
|
||||
[Define if struct stat has a field st_mtim with timespec for mtime])
|
||||
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 -Werror -gpubnames"
|
||||
AC_COMPILE_IFELSE([int i;], [have_pubnames=yes], [have_pubnames=no])
|
||||
CXXFLAGS="$save_CXXFLAGS"
|
||||
AM_CONDITIONAL(HAVE_PUBNAMES, test "$have_pubnames" = "yes")
|
||||
|
||||
AC_LANG_POP(C++)
|
||||
|
||||
AC_CHECK_HEADERS(locale.h)
|
||||
|
@ -19,18 +19,25 @@ AM_CPPFLAGS = \
|
||||
-DLOCALEDIR="\"$(datadir)/locale\"" \
|
||||
@INCINTL@
|
||||
|
||||
# Some versions of GCC now automatically enable linker plugins,
|
||||
# but we want to run our tests without GCC's plugins.
|
||||
if HAVE_NO_USE_LINKER_PLUGIN
|
||||
OPT_NO_PLUGINS = -fno-use-linker-plugin
|
||||
endif
|
||||
|
||||
# COMPILE1, LINK1, CXXCOMPILE1, CXXLINK1 are renamed from COMPILE, LINK,
|
||||
# CXXCOMPILE and CXXLINK generated by automake 1.11.1. FIXME: they should
|
||||
# be updated if they are different from automake used by gold.
|
||||
COMPILE1 = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
CXXCOMPILE1 = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
# Strip out -Wp,-D_FORTIFY_SOURCE=, which is rrelevant for the gold
|
||||
# Strip out -Wp,-D_FORTIFY_SOURCE=, which is irrelevant for the gold
|
||||
# testsuite and incompatible with -O0 used in gold tests, from
|
||||
# COMPILE, LINK, CXXCOMPILE and CXXLINK.
|
||||
COMPILE = `echo $(COMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9[0-9]]*//'`
|
||||
|
@ -2096,21 +2096,27 @@ AM_CPPFLAGS = \
|
||||
@INCINTL@
|
||||
|
||||
|
||||
# Some versions of GCC now automatically enable linker plugins,
|
||||
# but we want to run our tests without GCC's plugins.
|
||||
@HAVE_NO_USE_LINKER_PLUGIN_TRUE@OPT_NO_PLUGINS = -fno-use-linker-plugin
|
||||
|
||||
# COMPILE1, LINK1, CXXCOMPILE1, CXXLINK1 are renamed from COMPILE, LINK,
|
||||
# CXXCOMPILE and CXXLINK generated by automake 1.11.1. FIXME: they should
|
||||
# be updated if they are different from automake used by gold.
|
||||
COMPILE1 = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
|
||||
LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CXXCOMPILE1 = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
|
||||
CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
|
||||
# Strip out -Wp,-D_FORTIFY_SOURCE=, which is rrelevant for the gold
|
||||
# Strip out -Wp,-D_FORTIFY_SOURCE=, which is irrelevant for the gold
|
||||
# testsuite and incompatible with -O0 used in gold tests, from
|
||||
# COMPILE, LINK, CXXCOMPILE and CXXLINK.
|
||||
COMPILE = `echo $(COMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9[0-9]]*//'`
|
||||
|
Loading…
x
Reference in New Issue
Block a user