Hi, When GCC is configured with --with-build-config="bootstrap-asan", all -flto tests will fail since -fsanitize=address is used to compile host libiberty, which is used to create liblto_plugin.so, and linker isn't compiled with -fsanitize=address. This patch filters out -fsanitize=address from CFLAGS if we aren't in a combined tree with binutils. OK to install?
Thanks. H.J. --- 2012-11-21 H.J. Lu <hongjiu...@intel.com> * Makefile.in (CFLAGS): Filter out -fsanitize=address if in GCC tree, but not in a combined tree with binutils. * configure.ac (COMBINED_TREE_FALSE): New AC_SUBST. * configure: Regenerated. diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in index 1ba8cf1..2d357d7 100644 --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in @@ -63,6 +63,10 @@ PERL = @PERL@ PICFLAG = @PICFLAG@ +# Filter out -fsanitize=address if we are in GCC tree, but aren't in a +# combined tree with binutils. +@COMBINED_TREE_FALSE@override CFLAGS := $(filter-out -fsanitize=address,$(CFLAGS)) + MAKEOVERRIDES = TARGETLIB = ./libiberty.a diff --git a/libiberty/configure b/libiberty/configure index 5367027..4869cd5 100755 --- a/libiberty/configure +++ b/libiberty/configure @@ -590,6 +590,7 @@ ac_includes_default="\ ac_subst_vars='LTLIBOBJS INSTALL_DEST +COMBINED_TREE_FALSE pexecute target_header_dir CHECK @@ -6917,6 +6918,20 @@ esac fi +# Check if this is in GCC tree, but aren't in a combined tree with +# binutils. +if test -e ${srcdir}/../gcc/gcc.c; then + if test -e ${srcdir}/../ld/ldmain.c -o \ + -e ${top_srcdir}/../gold/version.cc; then + COMBINED_TREE_FALSE='#' + else + COMBINED_TREE_FALSE='' + fi +else + COMBINED_TREE_FALSE='#' +fi + + # Install a library built with a cross compiler in $(tooldir) rather # than $(libdir). if test -z "${with_cross_host}"; then diff --git a/libiberty/configure.ac b/libiberty/configure.ac index c763894..7661752 100644 --- a/libiberty/configure.ac +++ b/libiberty/configure.ac @@ -670,6 +670,20 @@ AC_SUBST(pexecute) libiberty_AC_FUNC_STRNCMP +# Check if this is in GCC tree, but aren't in a combined tree with +# binutils. +if test -e ${srcdir}/../gcc/gcc.c; then + if test -e ${srcdir}/../ld/ldmain.c -o \ + -e ${top_srcdir}/../gold/version.cc; then + COMBINED_TREE_FALSE='#' + else + COMBINED_TREE_FALSE='' + fi +else + COMBINED_TREE_FALSE='#' +fi +AC_SUBST(COMBINED_TREE_FALSE) + # Install a library built with a cross compiler in $(tooldir) rather # than $(libdir). if test -z "${with_cross_host}"; then -- 1.7.11.7