From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23275 invoked by alias); 30 Nov 2012 08:46:04 -0000 Received: (qmail 23266 invoked by uid 22791); 30 Nov 2012 08:46:04 -0000 X-SWARE-Spam-Status: No, hits=-5.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-oa0-f47.google.com (HELO mail-oa0-f47.google.com) (209.85.219.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 30 Nov 2012 08:45:57 +0000 Received: by mail-oa0-f47.google.com with SMTP id h1so189472oag.20 for ; Fri, 30 Nov 2012 00:45:56 -0800 (PST) MIME-Version: 1.0 Received: by 10.60.1.132 with SMTP id 4mr358247oem.140.1354265156587; Fri, 30 Nov 2012 00:45:56 -0800 (PST) Received: by 10.76.95.202 with HTTP; Fri, 30 Nov 2012 00:45:55 -0800 (PST) In-Reply-To: <20121129174031.GA31369@intel.com> References: <20121129173813.GA31323@intel.com> <20121129174031.GA31369@intel.com> Date: Fri, 30 Nov 2012 09:01:00 -0000 Message-ID: Subject: Re: [PATCH] Filter out -fsanitize=address if not in combined tree in libiberty From: Richard Biener To: "H.J. Lu" Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-11/txt/msg02517.txt.bz2 On Thu, Nov 29, 2012 at 6:40 PM, H.J. Lu wrote: > 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? Why not simply ensure that only host _executables_ are sanitized? Richard. > Thanks. > > H.J. > --- > 2012-11-21 H.J. Lu > > * 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 >