Il 11/12/2012 16:03, H.J. Lu ha scritto: >>>>> 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. > > I don't believe it is possible with libsanitizer in GCC since it > uses GCC toplevel files. Where do you get those toplevel files > when you compile it standalone?
Does it use any GCC toplevel files except when regenerating the configury? But I think it's a useful refactoring anyway. >> Bonus points for using this macro elsewhere in the tree. >> >>>>> 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. > > I prefer to leave them where they are so that > > # cd asan > # make > > can compile. If they are passed from the parent directory, > this won't work. What do you mean? >>>>> 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. > > How do I AC_REQUIRE it? I just copied it from other places: > > [hjl@gnu-6 gcc]$ grep ACX_NONCANONICAL_TARGET */configure.* > boehm-gc/configure.ac:ACX_NONCANONICAL_TARGET > fixincludes/configure.ac:ACX_NONCANONICAL_TARGET > gcc/configure.ac:ACX_NONCANONICAL_TARGET > gnattools/configure.ac:ACX_NONCANONICAL_TARGET > libada/configure.ac:ACX_NONCANONICAL_TARGET > libgcc/configure.ac:ACX_NONCANONICAL_TARGET > libgfortran/configure.ac:ACX_NONCANONICAL_TARGET > libmudflap/configure.ac:ACX_NONCANONICAL_TARGET > libobjc/configure.ac:ACX_NONCANONICAL_TARGET > libquadmath/configure.ac:ACX_NONCANONICAL_TARGET > libssp/configure.ac:ACX_NONCANONICAL_TARGET This is connected to the change proposed above, of getting the -I options to a separate macro in config/*.m4. Paolo