From patchwork Tue Oct 16 06:39:52 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Mi X-Patchwork-Id: 191728 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 D17102C009A for ; Tue, 16 Oct 2012 17:40:21 +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=1350974422; h=Comment: DomainKey-Signature:Received:Received:Received:Received: MIME-Version:Received:Received:In-Reply-To:References:Date: Message-ID:Subject:From:To:Cc:Content-Type:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=ETbrPLuRIwMCunv4VEOJIgiRF5M=; b=o32dmaRrEnIqqKS6DB2KdVicYCfm/0UhjDES0c6lBfvtZBoYSJGIl0g3CPzLD7 8YDqZLR/5abRBL/T86Ahxc2d3h6bcFRFH5tOHII0TxyhYOtSBi4Q9EqQNPgQQkmc CQOgb6qh3Q38WwhiHsnOePT1cQahglXzIwNneYUOzntFw= 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-Google-DKIM-Signature:MIME-Version:Received:Received:In-Reply-To:References:Date:Message-ID:Subject:From:To:Cc:Content-Type:X-System-Of-Record:X-Gm-Message-State:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=klVPBSNgDgvcGrXdLMFFYYRifg6A4i5HHvwridep1vVZOEcCQaRHqE+UM1UNEQ vig5zuo/rwjpg7D61lH1n2ETBULKKn/rJE9+/LtrxDCw9sJ/CxsH/BIkqpNjd6Kt tWdOLhRX8YMj3AAD2zvzevZwoYP6KeRTxJFi1L+G6NRXU=; Received: (qmail 29876 invoked by alias); 16 Oct 2012 06:40:10 -0000 Received: (qmail 29718 invoked by uid 22791); 16 Oct 2012 06:40:07 -0000 X-SWARE-Spam-Status: No, hits=-6.5 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, KHOP_RCVD_TRUST, KHOP_THREADED, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, RP_MATCHES_RCVD, TW_BG, TW_IB, TW_LV X-Spam-Check-By: sourceware.org Received: from mail-qa0-f47.google.com (HELO mail-qa0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 16 Oct 2012 06:39:53 +0000 Received: by mail-qa0-f47.google.com with SMTP id i29so243967qaf.20 for ; Mon, 15 Oct 2012 23:39:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-system-of-record:x-gm-message-state; bh=dn47l4gE0hLCyHWVw5gSACuI6mDc8oxYw6BllQJ2FLY=; b=H4Jo9yzfB9x92X4FYy9m0F8ruKR/qsXckx7ipubASs0M47oTlWZ91rH85FT+JQJ76W H7aABMBlAbOZp0xoPhzgb0lL2yN3220+YEHueUxCfsHzcwYycXGhtYBHPjkJzXI6uGrQ qU2dThZWJtvckH23q3iWCfBFbojLsIBxPxoWvPr66IlvjLimvK4FHuD5mvEjUPdTXSyd zQayERUvfwcolk6uTHGUTmw8mhTnI3A4hFf7AXnfnVoQo8XSqtTB951czGlGQGUjxm3u QqCrd90BLeSerB45DAM8f/zxHhqpapoW5e3gICBXla2bMp5wAN1ipJJCbKQ0oP/xmeRD rQXw== MIME-Version: 1.0 Received: by 10.229.135.194 with SMTP id o2mr6758725qct.125.1350369592463; Mon, 15 Oct 2012 23:39:52 -0700 (PDT) Received: by 10.49.108.194 with HTTP; Mon, 15 Oct 2012 23:39:52 -0700 (PDT) In-Reply-To: References: Date: Mon, 15 Oct 2012 23:39:52 -0700 Message-ID: Subject: Re: [asan] migrate runtime from llvm From: Wei Mi To: Andrew Pinski Cc: gcc-patches@gcc.gnu.org, Diego Novillo , David Li X-System-Of-Record: true X-Gm-Message-State: ALoCoQlVmYWfIdy2QVR56fkYfZU54iagzRQkjCJuLjEjYBRz7YT55wcI/Qfj5PevR4pJUNnb1XaISmYeykgw6d3rePhP4Qh7gUccSK8zmQ5e0OOuLPY6LQHPAnkTwhMQe37d/qqNhDL8SbMEjDuvsLltHCyGDpiAK9efnMbMxjzUP9k9W7Mfvf0DE93puidjfc+PY1kCFwvj 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 > > This is a good start. Can you send a patch out without including > libasan so at least the toplevel parts can be reviewed easier? > Also the changelog entry for gcc.c go under the gcc/ChangeLog rather > than the toplevel one. > > Thanks, > Andrew Pinski Sure, I attach it. Thanks for pointing out the changelog error. Thanks, Wei. Index: Makefile.in =================================================================== --- Makefile.in (revision 192487) +++ Makefile.in (working copy) @@ -575,7 +575,7 @@ all: # This is the list of directories that may be needed in RPATH_ENVVAR # so that programs built for the target machine work. -TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc) +TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libasan)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc) @if target-libstdc++-v3 TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: @@ -585,6 +585,10 @@ TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TAR TARGET_LIB_PATH_libmudflap = $$r/$(TARGET_SUBDIR)/libmudflap/.libs: @endif target-libmudflap +@if target-libasan +TARGET_LIB_PATH_libasan = $$r/$(TARGET_SUBDIR)/libasan/.libs: +@endif target-libasan + @if target-libssp TARGET_LIB_PATH_libssp = $$r/$(TARGET_SUBDIR)/libssp/.libs: @endif target-libssp @@ -914,6 +918,7 @@ configure-host: \ configure-target: \ maybe-configure-target-libstdc++-v3 \ maybe-configure-target-libmudflap \ + maybe-configure-target-libasan \ maybe-configure-target-libssp \ maybe-configure-target-newlib \ maybe-configure-target-libgcc \ @@ -1062,6 +1067,7 @@ all-host: maybe-all-lto-plugin all-target: maybe-all-target-libstdc++-v3 @endif target-libstdc++-v3-no-bootstrap all-target: maybe-all-target-libmudflap +all-target: maybe-all-target-libasan all-target: maybe-all-target-libssp all-target: maybe-all-target-newlib @if target-libgcc-no-bootstrap @@ -1152,6 +1158,7 @@ info-host: maybe-info-lto-plugin info-target: maybe-info-target-libstdc++-v3 info-target: maybe-info-target-libmudflap +info-target: maybe-info-target-libasan info-target: maybe-info-target-libssp info-target: maybe-info-target-newlib info-target: maybe-info-target-libgcc @@ -1233,6 +1240,7 @@ dvi-host: maybe-dvi-lto-plugin dvi-target: maybe-dvi-target-libstdc++-v3 dvi-target: maybe-dvi-target-libmudflap +dvi-target: maybe-dvi-target-libasan dvi-target: maybe-dvi-target-libssp dvi-target: maybe-dvi-target-newlib dvi-target: maybe-dvi-target-libgcc @@ -1314,6 +1322,7 @@ pdf-host: maybe-pdf-lto-plugin pdf-target: maybe-pdf-target-libstdc++-v3 pdf-target: maybe-pdf-target-libmudflap +pdf-target: maybe-pdf-target-libasan pdf-target: maybe-pdf-target-libssp pdf-target: maybe-pdf-target-newlib pdf-target: maybe-pdf-target-libgcc @@ -1395,6 +1404,7 @@ html-host: maybe-html-lto-plugin html-target: maybe-html-target-libstdc++-v3 html-target: maybe-html-target-libmudflap +html-target: maybe-html-target-libasan html-target: maybe-html-target-libssp html-target: maybe-html-target-newlib html-target: maybe-html-target-libgcc @@ -1476,6 +1486,7 @@ TAGS-host: maybe-TAGS-lto-plugin TAGS-target: maybe-TAGS-target-libstdc++-v3 TAGS-target: maybe-TAGS-target-libmudflap +TAGS-target: maybe-TAGS-target-libasan TAGS-target: maybe-TAGS-target-libssp TAGS-target: maybe-TAGS-target-newlib TAGS-target: maybe-TAGS-target-libgcc @@ -1557,6 +1568,7 @@ install-info-host: maybe-install-info-lt install-info-target: maybe-install-info-target-libstdc++-v3 install-info-target: maybe-install-info-target-libmudflap +install-info-target: maybe-install-info-target-libasan install-info-target: maybe-install-info-target-libssp install-info-target: maybe-install-info-target-newlib install-info-target: maybe-install-info-target-libgcc @@ -1638,6 +1650,7 @@ install-pdf-host: maybe-install-pdf-lto- install-pdf-target: maybe-install-pdf-target-libstdc++-v3 install-pdf-target: maybe-install-pdf-target-libmudflap +install-pdf-target: maybe-install-pdf-target-libasan install-pdf-target: maybe-install-pdf-target-libssp install-pdf-target: maybe-install-pdf-target-newlib install-pdf-target: maybe-install-pdf-target-libgcc @@ -1719,6 +1732,7 @@ install-html-host: maybe-install-html-lt install-html-target: maybe-install-html-target-libstdc++-v3 install-html-target: maybe-install-html-target-libmudflap +install-html-target: maybe-install-html-target-libasan install-html-target: maybe-install-html-target-libssp install-html-target: maybe-install-html-target-newlib install-html-target: maybe-install-html-target-libgcc @@ -1800,6 +1814,7 @@ installcheck-host: maybe-installcheck-lt installcheck-target: maybe-installcheck-target-libstdc++-v3 installcheck-target: maybe-installcheck-target-libmudflap +installcheck-target: maybe-installcheck-target-libasan installcheck-target: maybe-installcheck-target-libssp installcheck-target: maybe-installcheck-target-newlib installcheck-target: maybe-installcheck-target-libgcc @@ -1881,6 +1896,7 @@ mostlyclean-host: maybe-mostlyclean-lto- mostlyclean-target: maybe-mostlyclean-target-libstdc++-v3 mostlyclean-target: maybe-mostlyclean-target-libmudflap +mostlyclean-target: maybe-mostlyclean-target-libasan mostlyclean-target: maybe-mostlyclean-target-libssp mostlyclean-target: maybe-mostlyclean-target-newlib mostlyclean-target: maybe-mostlyclean-target-libgcc @@ -1962,6 +1978,7 @@ clean-host: maybe-clean-lto-plugin clean-target: maybe-clean-target-libstdc++-v3 clean-target: maybe-clean-target-libmudflap +clean-target: maybe-clean-target-libasan clean-target: maybe-clean-target-libssp clean-target: maybe-clean-target-newlib clean-target: maybe-clean-target-libgcc @@ -2043,6 +2060,7 @@ distclean-host: maybe-distclean-lto-plug distclean-target: maybe-distclean-target-libstdc++-v3 distclean-target: maybe-distclean-target-libmudflap +distclean-target: maybe-distclean-target-libasan distclean-target: maybe-distclean-target-libssp distclean-target: maybe-distclean-target-newlib distclean-target: maybe-distclean-target-libgcc @@ -2124,6 +2142,7 @@ maintainer-clean-host: maybe-maintainer- maintainer-clean-target: maybe-maintainer-clean-target-libstdc++-v3 maintainer-clean-target: maybe-maintainer-clean-target-libmudflap +maintainer-clean-target: maybe-maintainer-clean-target-libasan maintainer-clean-target: maybe-maintainer-clean-target-libssp maintainer-clean-target: maybe-maintainer-clean-target-newlib maintainer-clean-target: maybe-maintainer-clean-target-libgcc @@ -2260,6 +2279,7 @@ check-host: \ check-target: \ maybe-check-target-libstdc++-v3 \ maybe-check-target-libmudflap \ + maybe-check-target-libasan \ maybe-check-target-libssp \ maybe-check-target-newlib \ maybe-check-target-libgcc \ @@ -2414,6 +2434,7 @@ install-host: \ install-target: \ maybe-install-target-libstdc++-v3 \ maybe-install-target-libmudflap \ + maybe-install-target-libasan \ maybe-install-target-libssp \ maybe-install-target-newlib \ maybe-install-target-libgcc \ @@ -2515,6 +2536,7 @@ install-strip-host: \ install-strip-target: \ maybe-install-strip-target-libstdc++-v3 \ maybe-install-strip-target-libmudflap \ + maybe-install-strip-target-libasan \ maybe-install-strip-target-libssp \ maybe-install-strip-target-newlib \ maybe-install-strip-target-libgcc \ @@ -32337,6 +32359,463 @@ maintainer-clean-target-libmudflap: +.PHONY: configure-target-libasan maybe-configure-target-libasan +maybe-configure-target-libasan: +@if gcc-bootstrap +configure-target-libasan: stage_current +@endif gcc-bootstrap +@if target-libasan +maybe-configure-target-libasan: configure-target-libasan +configure-target-libasan: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + echo "Checking multilib configuration for libasan..."; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libasan ; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libasan/multilib.tmp 2> /dev/null ; \ + if test -r $(TARGET_SUBDIR)/libasan/multilib.out; then \ + if cmp -s $(TARGET_SUBDIR)/libasan/multilib.tmp $(TARGET_SUBDIR)/libasan/multilib.out; then \ + rm -f $(TARGET_SUBDIR)/libasan/multilib.tmp; \ + else \ + rm -f $(TARGET_SUBDIR)/libasan/Makefile; \ + mv $(TARGET_SUBDIR)/libasan/multilib.tmp $(TARGET_SUBDIR)/libasan/multilib.out; \ + fi; \ + else \ + mv $(TARGET_SUBDIR)/libasan/multilib.tmp $(TARGET_SUBDIR)/libasan/multilib.out; \ + fi; \ + test ! -f $(TARGET_SUBDIR)/libasan/Makefile || exit 0; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libasan ; \ + $(NORMAL_TARGET_EXPORTS) \ + echo Configuring in $(TARGET_SUBDIR)/libasan; \ + cd "$(TARGET_SUBDIR)/libasan" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ + *) topdir=`echo $(TARGET_SUBDIR)/libasan/ | \ + sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ + esac; \ + srcdiroption="--srcdir=$${topdir}/libasan"; \ + libsrcdir="$$s/libasan"; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ + --target=${target_alias} $${srcdiroption} \ + || exit 1 +@endif target-libasan + + + + + +.PHONY: all-target-libasan maybe-all-target-libasan +maybe-all-target-libasan: +@if gcc-bootstrap +all-target-libasan: stage_current +@endif gcc-bootstrap +@if target-libasan +TARGET-target-libasan=all +maybe-all-target-libasan: all-target-libasan +all-target-libasan: configure-target-libasan + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ + $(TARGET-target-libasan)) +@endif target-libasan + + + + + +.PHONY: check-target-libasan maybe-check-target-libasan +maybe-check-target-libasan: +@if target-libasan +maybe-check-target-libasan: check-target-libasan + +check-target-libasan: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + +@endif target-libasan + +.PHONY: install-target-libasan maybe-install-target-libasan +maybe-install-target-libasan: +@if target-libasan +maybe-install-target-libasan: install-target-libasan + +install-target-libasan: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + +@endif target-libasan + +.PHONY: install-strip-target-libasan maybe-install-strip-target-libasan +maybe-install-strip-target-libasan: +@if target-libasan +maybe-install-strip-target-libasan: install-strip-target-libasan + +install-strip-target-libasan: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) + +@endif target-libasan + +# Other targets (info, dvi, pdf, etc.) + +.PHONY: maybe-info-target-libasan info-target-libasan +maybe-info-target-libasan: +@if target-libasan +maybe-info-target-libasan: info-target-libasan + +info-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing info in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + info) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-dvi-target-libasan dvi-target-libasan +maybe-dvi-target-libasan: +@if target-libasan +maybe-dvi-target-libasan: dvi-target-libasan + +dvi-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + dvi) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-pdf-target-libasan pdf-target-libasan +maybe-pdf-target-libasan: +@if target-libasan +maybe-pdf-target-libasan: pdf-target-libasan + +pdf-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing pdf in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + pdf) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-html-target-libasan html-target-libasan +maybe-html-target-libasan: +@if target-libasan +maybe-html-target-libasan: html-target-libasan + +html-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing html in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + html) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-TAGS-target-libasan TAGS-target-libasan +maybe-TAGS-target-libasan: +@if target-libasan +maybe-TAGS-target-libasan: TAGS-target-libasan + +TAGS-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + TAGS) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-install-info-target-libasan install-info-target-libasan +maybe-install-info-target-libasan: +@if target-libasan +maybe-install-info-target-libasan: install-info-target-libasan + +install-info-target-libasan: \ + configure-target-libasan \ + info-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-info) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-install-pdf-target-libasan install-pdf-target-libasan +maybe-install-pdf-target-libasan: +@if target-libasan +maybe-install-pdf-target-libasan: install-pdf-target-libasan + +install-pdf-target-libasan: \ + configure-target-libasan \ + pdf-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-pdf in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-pdf) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-install-html-target-libasan install-html-target-libasan +maybe-install-html-target-libasan: +@if target-libasan +maybe-install-html-target-libasan: install-html-target-libasan + +install-html-target-libasan: \ + configure-target-libasan \ + html-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-html in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-html) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-installcheck-target-libasan installcheck-target-libasan +maybe-installcheck-target-libasan: +@if target-libasan +maybe-installcheck-target-libasan: installcheck-target-libasan + +installcheck-target-libasan: \ + configure-target-libasan + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + installcheck) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-mostlyclean-target-libasan mostlyclean-target-libasan +maybe-mostlyclean-target-libasan: +@if target-libasan +maybe-mostlyclean-target-libasan: mostlyclean-target-libasan + +mostlyclean-target-libasan: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + mostlyclean) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-clean-target-libasan clean-target-libasan +maybe-clean-target-libasan: +@if target-libasan +maybe-clean-target-libasan: clean-target-libasan + +clean-target-libasan: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing clean in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + clean) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-distclean-target-libasan distclean-target-libasan +maybe-distclean-target-libasan: +@if target-libasan +maybe-distclean-target-libasan: distclean-target-libasan + +distclean-target-libasan: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + distclean) \ + || exit 1 + +@endif target-libasan + +.PHONY: maybe-maintainer-clean-target-libasan maintainer-clean-target-libasan +maybe-maintainer-clean-target-libasan: +@if target-libasan +maybe-maintainer-clean-target-libasan: maintainer-clean-target-libasan + +maintainer-clean-target-libasan: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libasan/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libasan" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libasan && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + maintainer-clean) \ + || exit 1 + +@endif target-libasan + + + + + .PHONY: configure-target-libssp maybe-configure-target-libssp maybe-configure-target-libssp: @if gcc-bootstrap @@ -44591,6 +45070,7 @@ configure-stage4-target-libstdc++-v3: ma configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-gcc configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-gcc configure-target-libmudflap: stage_last +configure-target-libasan: stage_last configure-target-libssp: stage_last configure-target-newlib: stage_last configure-stage1-target-libgcc: maybe-all-stage1-gcc @@ -44626,6 +45106,7 @@ configure-target-libatomic: stage_last @if gcc-no-bootstrap configure-target-libstdc++-v3: maybe-all-gcc configure-target-libmudflap: maybe-all-gcc +configure-target-libasan: maybe-all-gcc configure-target-libssp: maybe-all-gcc configure-target-newlib: maybe-all-gcc configure-target-libgcc: maybe-all-gcc @@ -45405,6 +45886,7 @@ configure-stagefeedback-target-libgomp: @if gcc-no-bootstrap configure-target-libstdc++-v3: maybe-all-target-libgcc configure-target-libmudflap: maybe-all-target-libgcc +configure-target-libasan: maybe-all-target-libgcc configure-target-libssp: maybe-all-target-libgcc configure-target-newlib: maybe-all-target-libgcc configure-target-libbacktrace: maybe-all-target-libgcc @@ -45431,6 +45913,8 @@ configure-target-libstdc++-v3: maybe-all configure-target-libmudflap: maybe-all-target-newlib maybe-all-target-libgloss +configure-target-libasan: maybe-all-target-newlib maybe-all-target-libgloss + configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss Index: configure.ac =================================================================== --- configure.ac (revision 192487) +++ configure.ac (working copy) @@ -160,6 +160,7 @@ target_libraries="target-libgcc \ target-libitm \ target-libstdc++-v3 \ target-libmudflap \ + target-libasan \ target-libssp \ target-libquadmath \ target-libgfortran \ Index: configure =================================================================== --- configure (revision 192487) +++ configure (working copy) @@ -2725,6 +2725,7 @@ target_libraries="target-libgcc \ target-libitm \ target-libstdc++-v3 \ target-libmudflap \ + target-libasan \ target-libssp \ target-libquadmath \ target-libgfortran \ Index: gcc/gcc.c =================================================================== --- gcc/gcc.c (revision 192487) +++ gcc/gcc.c (working copy) @@ -679,6 +679,7 @@ proper position among the other output f %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\ %(mflib) " STACK_SPLIT_SPEC "\ %{fprofile-arcs|fprofile-generate*|coverage:-lgcov}\ + %{fasan|coverage:-lasan -lpthread -ldl -lstdc++}\ %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\ %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}" #endif Index: Makefile.def =================================================================== --- Makefile.def (revision 192487) +++ Makefile.def (working copy) @@ -119,6 +119,7 @@ target_modules = { module= libstdc++-v3; lib_path=src/.libs; raw_cxx=true; }; target_modules = { module= libmudflap; lib_path=.libs; }; +target_modules = { module= libasan; lib_path=.libs; }; target_modules = { module= libssp; lib_path=.libs; }; target_modules = { module= newlib; }; target_modules = { module= libgcc; bootstrap=true; no_check=true; };