From patchwork Thu Nov 15 16:02:24 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: 199335 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 6178C2C033A for ; Fri, 16 Nov 2012 03:02:43 +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=1353600163; 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: Content-Transfer-Encoding:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=QgLXBW/T6fxItqNigpFp3uZJ4Lk=; b=okbEiZQ1NKYW/Jo /eIVPOt0YS5rh3asPUaLojTGll7T+WgpMTIRM0OH0lLYCKg2gS665mt0mgIUDmDQ /pIdKitu3RtMPpNoFOivdaeAPTLUJOE47k51qrAm8az0v0YG+VYq/8daet8Q2CZp VK0ASzR8d/YXpcTTOwy1okI+tadw= 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:MIME-Version:Received:Received:In-Reply-To:References:Date:Message-ID:Subject:From:To:Cc:Content-Type:Content-Transfer-Encoding:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=hdlX1rXP/jDStaZGE91ODMdPuuWtHe3W4N7IyOtAsbWzlv5E/9dNRMd13aJEo+ MH3B19NwYVjDm01YyN4Wqsu2z9iyQY/Clt5CW5rSbg6QStEclewW8BQuqzucMCig i52YuE127iMcVR6KX9G884TcJApdogCrVtKu5RogfVSig=; Received: (qmail 28891 invoked by alias); 15 Nov 2012 16:02:37 -0000 Received: (qmail 28883 invoked by uid 22791); 15 Nov 2012 16:02:36 -0000 X-SWARE-Spam-Status: No, hits=-3.7 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, TW_CX, TW_DC, TW_GC, TW_GX X-Spam-Check-By: sourceware.org Received: from mail-pb0-f47.google.com (HELO mail-pb0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 15 Nov 2012 16:02:25 +0000 Received: by mail-pb0-f47.google.com with SMTP id ro12so1177131pbb.20 for ; Thu, 15 Nov 2012 08:02:25 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.238.199 with SMTP id vm7mr5937509pbc.105.1352995344951; Thu, 15 Nov 2012 08:02:24 -0800 (PST) Received: by 10.68.19.138 with HTTP; Thu, 15 Nov 2012 08:02:24 -0800 (PST) In-Reply-To: References: <50A2D1AF.9080605@gnu.org> <50A2D597.9050606@gnu.org> <50A2D83D.3070904@gnu.org> <50A2DC42.7070305@gnu.org> <20121115084758.GA235@x4> <20121115141931.GC235@x4> Date: Thu, 15 Nov 2012 08:02:24 -0800 Message-ID: Subject: Re: [PATCH] PR other/55291: Add support for GCC multilib run-time libraries to libsanitizer From: "H.J. Lu" To: Markus Trippelsdorf Cc: Paolo Bonzini , Jakub Jelinek , Alexandre Oliva , Dodji Seketeli , DJ Delorie , Ralf Wildenhues , gcc-patches@gcc.gnu.org X-IsSubscribed: yes 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 On Thu, Nov 15, 2012 at 7:14 AM, H.J. Lu wrote: > On Thu, Nov 15, 2012 at 6:44 AM, H.J. Lu wrote: >> On Thu, Nov 15, 2012 at 6:19 AM, Markus Trippelsdorf >> wrote: >>> On 2012.11.15 at 06:01 -0800, H.J. Lu wrote: >>>> On Thu, Nov 15, 2012 at 12:47 AM, Markus Trippelsdorf >>>> wrote: >>>> > On 2012.11.14 at 08:21 -0800, H.J. Lu wrote: >>>> >> On Tue, Nov 13, 2012 at 3:48 PM, Paolo Bonzini wrote: >>>> >> > Il 14/11/2012 00:43, H.J. Lu ha scritto: >>>> >> >> This works. >>>> >> > >>>> >> > Ok, then please test remove install-sh and friends and do >>>> >> > autoconf/automake again. If it works, commit the result (I don't care >>>> >> > if you make it one or two commits). >>>> >> > >>>> >> > Then, wait 24 hours for breakages and commit the multilib patch. >>>> >> > >>>> >> > Paolo >>>> >> >>>> >> This is the multilib patch I will commit later. >>>> > >>>> > And it still doesn't work (after applying the fix in my other reply): >>>> > >>>> > make[4]: Entering directory `/var/tmp/gcc_build_dir/x86_64-pc-linux-gnu/libsanitizer/asan' >>>> > /bin/mkdir -p '/usr/lib/gcc/x86_64-pc-linux-gnu/' >>>> > /bin/sh ../libtool --mode=install /usr/bin/install -c libasan.la '/usr/lib/gcc/x86_64-pc-linux-gnu/' >>>> > libtool: install: error: cannot install `libasan.la' to a directory not ending in /usr/lib/gcc/x86_64-pc-linux-gnu/ >>>> > make[4]: *** [install-toolexeclibLTLIBRARIES] Error 1 >>>> > >>>> >>>> It works for me. Did you do >>>> >>>> # ./contrib/gcc_update --touch >>> >>> Yes. >>> I've used the following to configure gcc: >>> >>> ~/gcc/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --enable-libsanitizer --enable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-initfini-array --with-gold --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --disable-libgomp --enable-cld --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/python --disable-libgcj --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-bootstrap --with-boot-ldflags="-Wl,-O1,--hash-style=gnu,--as-needed,--gc-sections" --enable-version-specific-runtime-libs --disable-libstdcxx-pch --enable-libstdcxx-time=yes >>> >>> -- >>> Markus >> >> I can reproduce it with --enable-version-specific-runtime-libs. I am >> taking a look. >> > > I am checking in this patch. > This is what I checked in. diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 62e884e..9b2420f 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,14 @@ +2012-11-15 H.J. Lu + + * configure.ac: Properly set MULTISUBDIR. + * asan/Makefile.am (gcc_version): New. + * interception/Makefile.am (gcc_version): Likewise. + * sanitizer_common/Makefile.am (gcc_version): Likewise. + * configure: Regenerated. + * asan/Makefile.in: Likewise. + * interception/Makefile.in: Likewise. + * sanitizer_common/Makefile.in: Likewise. + 2012-11-14 H.J. Lu PR other/55291 diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am index c76c158..3da1db3 100644 --- a/libsanitizer/asan/Makefile.am +++ b/libsanitizer/asan/Makefile.am @@ -1,8 +1,11 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=0 -DASAN_NEEDS_SEGV=1 AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config toolexeclib_LTLIBRARIES = libasan.la diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in index e4b2b5c..451490f 100644 --- a/libsanitizer/asan/Makefile.in +++ b/libsanitizer/asan/Makefile.in @@ -235,8 +235,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) + +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config toolexeclib_LTLIBRARIES = libasan.la asan_files = \ asan_allocator.cc \ diff --git a/libsanitizer/configure b/libsanitizer/configure index f42d2ac..9fbfccb 100755 --- a/libsanitizer/configure +++ b/libsanitizer/configure @@ -16693,6 +16693,9 @@ _EOF mv tmp$$ $ac_file rm vpsed$$ echo 'MULTISUBDIR =' >> $ac_file + ml_norecursion=yes + . ${multi_basedir}/config-ml.in + { ml_norecursion=; unset ml_norecursion;} ;; "sanitizer_common/Makefile":F) cat > vpsed$$ << \_EOF s!`test -f '$<' || echo '$(srcdir)/'`!! @@ -16701,6 +16704,9 @@ _EOF mv tmp$$ $ac_file rm vpsed$$ echo 'MULTISUBDIR =' >> $ac_file + ml_norecursion=yes + . ${multi_basedir}/config-ml.in + { ml_norecursion=; unset ml_norecursion;} ;; "asan/Makefile":F) cat > vpsed$$ << \_EOF s!`test -f '$<' || echo '$(srcdir)/'`!! @@ -16709,6 +16715,9 @@ _EOF mv tmp$$ $ac_file rm vpsed$$ echo 'MULTISUBDIR =' >> $ac_file + ml_norecursion=yes + . ${multi_basedir}/config-ml.in + { ml_norecursion=; unset ml_norecursion;} ;; esac diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac index 27a7f95..76a19b6 100644 --- a/libsanitizer/configure.ac +++ b/libsanitizer/configure.ac @@ -82,6 +82,9 @@ _EOF mv tmp$$ $ac_file rm vpsed$$ echo 'MULTISUBDIR =' >> $ac_file + ml_norecursion=yes + . ${multi_basedir}/config-ml.in + AS_UNSET([ml_norecursion]) ]) AC_OUTPUT diff --git a/libsanitizer/interception/Makefile.am b/libsanitizer/interception/Makefile.am index 4fd200c..b92a180 100644 --- a/libsanitizer/interception/Makefile.am +++ b/libsanitizer/interception/Makefile.am @@ -1,5 +1,8 @@ AM_CPPFLAGS = -I $(top_srcdir)/include +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/interception/Makefile.in index fa60646..a746ae5 100644 --- a/libsanitizer/interception/Makefile.in +++ b/libsanitizer/interception/Makefile.in @@ -203,6 +203,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I $(top_srcdir)/include + +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions ACLOCAL_AMFLAGS = -I m4 noinst_LTLIBRARIES = libinterception.la diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am index 70df1d9..2968c05 100644 --- a/libsanitizer/sanitizer_common/Makefile.am +++ b/libsanitizer/sanitizer_common/Makefile.am @@ -1,5 +1,8 @@ AM_CPPFLAGS = -I $(top_srcdir)/include +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions ACLOCAL_AMFLAGS = -I m4 diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in index 42e08a0..1e6098c 100644 --- a/libsanitizer/sanitizer_common/Makefile.in +++ b/libsanitizer/sanitizer_common/Makefile.in @@ -208,6 +208,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I $(top_srcdir)/include + +# May be used by toolexeclibdir. +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions ACLOCAL_AMFLAGS = -I m4 noinst_LTLIBRARIES = libsanitizer_common.la