On Tue, Dec 11, 2012 at 6:36 AM, Paolo Bonzini <bonz...@gnu.org> wrote:
> > As a followup please check if AM_MAKEFLAGS is needed at all. > >>>> diff --git a/libsanitizer/Makefile.in b/libsanitizer/Makefile.in >>>> index 21c2711..53e0be9 100644 >>>> --- a/libsanitizer/Makefile.in >>>> +++ b/libsanitizer/Makefile.in > > Please do not include regenerated files in the patch. > >>>> diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am >>>> index 3da1db3..45fb3b3 100644 >>>> --- a/libsanitizer/asan/Makefile.am >>>> +++ b/libsanitizer/asan/Makefile.am >>>> @@ -5,6 +5,10 @@ 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 >>>> +## We require libstdc++-v3 to be in the same build tree. >>>> +AM_CXXFLAGS += -I../../libstdc++-v3/include \ >>>> + -I../../libstdc++-v3/include/$(target_noncanonical) \ >>>> + -I$(srcdir)/../../libstdc++-v3/libsupc++ > > As a followup, please bring back the possibility to build libsanitizer > standalone, also wrapping the chooice of flags to link to libstdc++-v3 > in a new config/libstdc++-raw-cxx.m4 file. Done. > Bonus points for using this macro elsewhere in the tree. That will be a separate patch. >>>> ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config >>>> >>>> toolexeclib_LTLIBRARIES = libasan.la >>>> @@ -64,8 +68,6 @@ AM_MAKEFLAGS = \ >>>> "includedir=$(includedir)" \ >>>> "AR=$(AR)" \ >>>> "AS=$(AS)" \ >>>> - "CC=$(CC)" \ >>>> - "CXX=$(CXX)" \ >>>> "LD=$(LD)" \ >>>> "LIBCFLAGS=$(LIBCFLAGS)" \ >>>> "NM=$(NM)" \ > > Same as above, and same for other .am files. > > >>>> diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac >>>> index 2d62ec4..9c73904 100644 >>>> --- a/libsanitizer/configure.ac >>>> +++ b/libsanitizer/configure.ac >>>> @@ -19,6 +19,7 @@ AC_MSG_RESULT($version_specific_libs) >>>> # Do not delete or change the following two lines. For why, see >>>> # http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html >>>> AC_CANONICAL_SYSTEM >>>> +ACX_NONCANONICAL_TARGET > > Note that if you create a new macro, ACX_NONCANONICAL_TARGET should be > AC_REQUIREd there. > Here is the updated patch. OK to install? Thanks. -- H.J. --- config/ 2012-12-11 H.J. Lu <hongjiu...@intel.com> PR sanitizer/55533 * libstdc++-raw-cxx.m4: New file. libsanitizer/ 2012-12-11 H.J. Lu <hongjiu...@intel.com> PR sanitizer/55533 * Makefile.am (AM_MAKEFLAGS): Remove CC and CXX. * configure.ac (GCC_LIBSTDCXX_RAW_CXX_CXXFLAGS): New. * asan/Makefile.am (AM_CXXFLAGS): Add $(LIBSTDCXX_RAW_CXX_CXXFLAGS). (AM_MAKEFLAGS): Remove CC and CXX. * interception/Makefile.am: Likewise. * sanitizer_common/Makefile.am: Likewise. * tsan/Makefile.am: Likewise. * Makefile.in: Regenerated. * aclocal.m4: Likewise. * configure: Likewise. * asan/Makefile.in: Likewise. * interception/Makefile.in: Likewise. * sanitizer_common/Makefile.in: Likewise. * tsan/Makefile.in: Likewise. diff --git a/config/libstdc++-raw-cxx.m4 b/config/libstdc++-raw-cxx.m4 new file mode 100644 index 0000000..453153c --- /dev/null +++ b/config/libstdc++-raw-cxx.m4 @@ -0,0 +1,26 @@ +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3, or (at your option) any later +# version. +# +# GCC is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# Define compiler flags, LIBSTDCXX_RAW_CXX_CXXFLAGS, for libstdc++-v3 +# header files to compile libraries in C++ with raw_cxx=true. +AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_CXXFLAGS], [ + AC_REQUIRE([ACX_NONCANONICAL_TARGET]) + LIBSTDCXX_RAW_CXX_CXXFLAGS="\ + -I\$(top_builddir)/../libstdc++-v3/include \ + -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \ + -I\$(top_srcdir)/../libstdc++-v3/libsupc++" + AC_SUBST(LIBSTDCXX_RAW_CXX_CXXFLAGS) +]) diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am index 9a06839..308d438 100644 --- a/libsanitizer/Makefile.am +++ b/libsanitizer/Makefile.am @@ -41,8 +41,6 @@ AM_MAKEFLAGS = \ "includedir=$(includedir)" \ "AR=$(AR)" \ "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \ diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am index 7656f9f..59327a0 100644 --- a/libsanitizer/asan/Makefile.am +++ b/libsanitizer/asan/Makefile.am @@ -8,6 +8,7 @@ if USING_MAC_INTERPOSE DEFS += -DMAC_INTERPOSE_FUNCTIONS -DMISSING_BLOCKS_SUPPORT endif 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 +AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config toolexeclib_LTLIBRARIES = libasan.la @@ -73,8 +74,6 @@ AM_MAKEFLAGS = \ "includedir=$(includedir)" \ "AR=$(AR)" \ "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \ diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac index 30614e5..4090e6c 100644 --- a/libsanitizer/configure.ac +++ b/libsanitizer/configure.ac @@ -21,6 +21,7 @@ AC_MSG_RESULT($version_specific_libs) AC_CANONICAL_SYSTEM target_alias=${target_alias-$host_alias} AC_SUBST(target_alias) +GCC_LIBSTDCXX_RAW_CXX_CXXFLAGS AM_INIT_AUTOMAKE(foreign) AM_ENABLE_MULTILIB(, ..) diff --git a/libsanitizer/interception/Makefile.am b/libsanitizer/interception/Makefile.am index a815dcf..6ae59b5 100644 --- a/libsanitizer/interception/Makefile.am +++ b/libsanitizer/interception/Makefile.am @@ -5,6 +5,7 @@ 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 +AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ACLOCAL_AMFLAGS = -I m4 noinst_LTLIBRARIES = libinterception.la @@ -47,8 +48,6 @@ AM_MAKEFLAGS = \ "includedir=$(includedir)" \ "AR=$(AR)" \ "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \ diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am index 2968c05..708b2a4 100644 --- a/libsanitizer/sanitizer_common/Makefile.am +++ b/libsanitizer/sanitizer_common/Makefile.am @@ -5,6 +5,7 @@ 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 +AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ACLOCAL_AMFLAGS = -I m4 noinst_LTLIBRARIES = libsanitizer_common.la @@ -59,8 +60,6 @@ AM_MAKEFLAGS = \ "includedir=$(includedir)" \ "AR=$(AR)" \ "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \ diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am index a391986..867c152 100644 --- a/libsanitizer/tsan/Makefile.am +++ b/libsanitizer/tsan/Makefile.am @@ -5,6 +5,7 @@ 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 +AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ACLOCAL_AMFLAGS = -I m4 toolexeclib_LTLIBRARIES = libtsan.la @@ -67,8 +68,6 @@ AM_MAKEFLAGS = \ "includedir=$(includedir)" \ "AR=$(AR)" \ "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ "LD=$(LD)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "NM=$(NM)" \