From patchwork Thu Nov 29 17:38:13 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 202796 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 146162C0080 for ; Fri, 30 Nov 2012 04:38:28 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1354815509; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Date:From:To:Subject:Message-ID:Reply-To:MIME-Version: Content-Type:Content-Disposition:User-Agent:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=vPPsY75zV2JiQgWB5oK+tyLxKCw=; b=Xaj7aisVQZuaKVGL9aq9hFZEmg7zkHzYLeQZNbpMPldYeDb+pE/w0Vgn2zlnl3 DmtMh/ctaG4MTyb1+1LnyXoQJD1IKJTRJpd79EW63kms30/UJavQrTQb+qWnq+wI zNZ6hugMx3mS0niHt7dEdvlp2GgGMWkB9lP1BbHGFgu4c= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:X-ExtLoop1:Received:Received:Date:From:To:Subject:Message-ID:Reply-To:MIME-Version:Content-Type:Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=S+b3u7ue7B2pom9fM1JV+emhNx4z/B+jgXL4b25Fv8zFnRuXmq8+sR1Vc95+PT G7+dMGH82maD88d6uZBv4f8xUARh79+cQtveRqn2RlkVCGFMW2NDNe/AuoHgMzBw GADP1fRPHhLSN9leCftDqyqvmGoFoTEorlmwcHbipz6ig=; Received: (qmail 22865 invoked by alias); 29 Nov 2012 17:38:22 -0000 Received: (qmail 22642 invoked by uid 22791); 29 Nov 2012 17:38:21 -0000 X-SWARE-Spam-Status: No, hits=-5.3 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, NO_DNS_FOR_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_HOSTKARMA_W, RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mga01.intel.com (HELO mga01.intel.com) (192.55.52.88) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Nov 2012 17:38:14 +0000 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 29 Nov 2012 09:38:13 -0800 X-ExtLoop1: 1 Received: from gnu-6.sc.intel.com ([10.3.194.135]) by fmsmga001.fm.intel.com with ESMTP; 29 Nov 2012 09:38:13 -0800 Received: by gnu-6.sc.intel.com (Postfix, from userid 500) id A805B8099E; Thu, 29 Nov 2012 09:38:13 -0800 (PST) Date: Thu, 29 Nov 2012 09:38:13 -0800 From: "H.J. Lu" To: gcc-patches@gcc.gnu.org Subject: [PATCH Filter out -fsanitize=address if not in combined tree in lto-plugin Message-ID: <20121129173813.GA31323@intel.com> Reply-To: "H.J. Lu" MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, When GCC is configured with --with-build-config="bootstrap-asan", all -flto tests will fail since -fsanitize=address is used to compile 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? H.J. --- --- lto-plugin/Makefile.am | 7 +++++++ lto-plugin/Makefile.in | 5 +++++ lto-plugin/configure | 18 +++++++++++++++--- lto-plugin/configure.ac | 4 ++++ 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 lto-plugin/ChangeLog.asan 2012-11-21 H.J. Lu * Makefile.am (CFLAGS): Filter out -fsanitize=address if not in a combined tree of GCC and binutils. (LDFLAGS): Likewise. * configure.ac (COMBINED_TREE): New AM_CONDITIONAL. * Makefile.in: Regenerated. * configure: Likewise. diff --git a/lto-plugin/Makefile.am b/lto-plugin/Makefile.am index b24015e..d90c555 100644 --- a/lto-plugin/Makefile.am +++ b/lto-plugin/Makefile.am @@ -18,6 +18,13 @@ in_gcc_libs = $(foreach lib, $(libexecsub_LTLIBRARIES), $(gcc_build_dir)/$(lib)) # Can be removed when libiberty becomes a normal convenience library Wc=-Wc, +if !COMBINED_TREE +# Filter out -fsanitize=address if we aren't in a combined tree with +# GCC and binutils. +override CFLAGS := $(filter-out -fsanitize=address,$(CFLAGS)) +override LDFLAGS := $(filter-out -fsanitize=address,$(LDFLAGS)) +endif + liblto_plugin_la_SOURCES = lto-plugin.c liblto_plugin_la_LIBADD = \ $(if $(wildcard ../libiberty/pic/libiberty.a),$(Wc)../libiberty/pic/libiberty.a,) diff --git a/lto-plugin/Makefile.in b/lto-plugin/Makefile.in index 0c8d89f..14e6f67 100644 --- a/lto-plugin/Makefile.in +++ b/lto-plugin/Makefile.in @@ -535,6 +535,11 @@ uninstall-am: uninstall-libexecsubLTLIBRARIES uninstall-libexecsubLTLIBRARIES +# Filter out -fsanitize=address if we aren't in a combined tree with +# GCC and binutils. +@COMBINED_TREE_FALSE@override CFLAGS := $(filter-out -fsanitize=address,$(CFLAGS)) +@COMBINED_TREE_FALSE@override LDFLAGS := $(filter-out -fsanitize=address,$(LDFLAGS)) + all-local: $(in_gcc_libs) $(in_gcc_libs) : $(gcc_build_dir)/%: % diff --git a/lto-plugin/configure b/lto-plugin/configure index 4900d80..80f3ac6 100755 --- a/lto-plugin/configure +++ b/lto-plugin/configure @@ -597,7 +597,9 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='am__EXEEXT_FALSE +ac_subst_vars='COMBINED_TREE_FALSE +COMBINED_TREE_TRUE +am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS @@ -10552,7 +10554,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10555 "configure" +#line 10557 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10658,7 +10660,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10661 "configure" +#line 10663 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -13318,3 +13320,13 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + +# Check if this is a combined tree with GCC and binutils. + if test -e ${ac_top_srcdir}/ld/ldmain.c -o -e ${ac_top_srcdir}/gold/version.cc; then + COMBINED_TREE_TRUE= + COMBINED_TREE_FALSE='#' +else + COMBINED_TREE_TRUE='#' + COMBINED_TREE_FALSE= +fi + diff --git a/lto-plugin/configure.ac b/lto-plugin/configure.ac index 9a418d2..526186a 100644 --- a/lto-plugin/configure.ac +++ b/lto-plugin/configure.ac @@ -16,3 +16,7 @@ AC_HEADER_SYS_WAIT AC_CONFIG_FILES(Makefile) AC_CONFIG_HEADERS(config.h) AC_OUTPUT + +# Check if this is a combined tree with GCC and binutils. +AM_CONDITIONAL(COMBINED_TREE, + test -e ${ac_top_srcdir}/ld/ldmain.c -o -e ${ac_top_srcdir}/gold/version.cc)