* PATCH: Remove AM_MAKEFLAGS from libsanitizer @ 2012-12-11 21:39 H.J. Lu 2012-12-12 8:49 ` Paolo Bonzini 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-11 21:39 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Tue, Dec 11, 2012 at 6:36 AM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 11/12/2012 14:47, H.J. Lu ha scritto: >> On Thu, Dec 6, 2012 at 7:07 AM, H.J. Lu <hjl.tools@gmail.com> wrote: >>> On Thu, Nov 29, 2012 at 10:30 AM, H.J. Lu <hongjiu.lu@intel.com> wrote: >>>> Hi, >>>> >>>> Since libsanitizer is used for bootstrap and compiled with raw_cxx, >>>> we need to use explicit -I for libstdc++-v3 header files in >>>> libsanitizer. Otherwise, we will get >>>> >>>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>>> libtool: compile: Try `libtool --help' for more information. >>>> >>>> This patch fixes it. OK to install? >>>> >>>> Thanks. >>>> >>>> >>>> H.J. >>>> --- >>>> libsanitizer/Makefile.am | 2 -- >>>> libsanitizer/Makefile.in | 6 +++--- >>>> libsanitizer/aclocal.m4 | 1 + >>>> libsanitizer/asan/Makefile.am | 6 ++++-- >>>> libsanitizer/asan/Makefile.in | 14 ++++++++++---- >>>> libsanitizer/configure | 22 ++++++++++++++++++++-- >>>> libsanitizer/configure.ac | 1 + >>>> libsanitizer/interception/Makefile.am | 6 ++++-- >>>> libsanitizer/interception/Makefile.in | 14 ++++++++++---- >>>> libsanitizer/sanitizer_common/Makefile.am | 6 ++++-- >>>> libsanitizer/sanitizer_common/Makefile.in | 14 ++++++++++---- >>>> libsanitizer/tsan/Makefile.am | 6 ++++-- >>>> libsanitizer/tsan/Makefile.in | 13 +++++++++---- >>>> 14 files changed, 97 insertions(+), 31 deletions(-) >>>> create mode 100644 libsanitizer/ChangeLog.asan >>>> >>>> 2012-11-22 H.J. Lu <hongjiu.lu@intel.com> >>>> >>>> * Makefile.am (AM_MAKEFLAGS): Remove CC and CXX. >>>> * configure.ac (ACX_NONCANONICAL_TARGET): New. >>>> * asan/Makefile.am (AM_CXXFLAGS): Add -I for libstdc++-v3 header >>>> files. >>>> (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/libsanitizer/Makefile.am b/libsanitizer/Makefile.am >>>> index 64d3d2e..cd4e92d 100644 >>>> --- a/libsanitizer/Makefile.am >>>> +++ b/libsanitizer/Makefile.am >>>> @@ -37,8 +37,6 @@ AM_MAKEFLAGS = \ >>>> "includedir=$(includedir)" \ >>>> "AR=$(AR)" \ >>>> "AS=$(AS)" \ >>>> - "CC=$(CC)" \ >>>> - "CXX=$(CXX)" \ >>>> "LD=$(LD)" \ >>>> "LIBCFLAGS=$(LIBCFLAGS)" \ >>>> "NM=$(NM)" \ > > 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. > Here is a patch to remove AM_MAKEFLAGS from libsanitizer. Tested on Linux/x86-64. OK to install? Thanks. H.J. --- 2012-12-11 H.J. Lu <hongjiu.lu@intel.com> * Makefile.am (AM_MAKEFLAGS): Removed. * interception/Makefile.am: Likewise. * sanitizer_common/Makefile.am: Likewise. * tsan/Makefile.am: Likewise. * Makefile.in: Regenerated. * asan/Makefile.in: Likewise. * interception/Makefile.in: Likewise. * sanitizer_common/Makefile.in: Likewise. * tsan/Makefile.in: Likewise. diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am index 308d438..272a218 100644 --- a/libsanitizer/Makefile.am +++ b/libsanitizer/Makefile.am @@ -10,44 +10,6 @@ if USING_MAC_INTERPOSE SUBDIRS = sanitizer_common asan endif -# Work around what appears to be a GNU make bug handling MAKEFLAGS -# values defined in terms of make variables, as is the case for CC and -# friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "JC1FLAGS=$(JC1FLAGS)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "prefix=$(prefix)" \ - "includedir=$(includedir)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "NM=$(NM)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" - MAKEOVERRIDES= ## ################################################################ diff --git a/libsanitizer/interception/Makefile.am b/libsanitizer/interception/Makefile.am index 6ae59b5..aab68f0 100644 --- a/libsanitizer/interception/Makefile.am +++ b/libsanitizer/interception/Makefile.am @@ -17,44 +17,6 @@ interception_files = \ libinterception_la_SOURCES = $(interception_files) -# Work around what appears to be a GNU make bug handling MAKEFLAGS -# values defined in terms of make variables, as is the case for CC and -# friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "JC1FLAGS=$(JC1FLAGS)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "prefix=$(prefix)" \ - "includedir=$(includedir)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "NM=$(NM)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" - MAKEOVERRIDES= ## ################################################################ diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am index 708b2a4..8d414b3 100644 --- a/libsanitizer/sanitizer_common/Makefile.am +++ b/libsanitizer/sanitizer_common/Makefile.am @@ -29,44 +29,6 @@ sanitizer_common_files = \ libsanitizer_common_la_SOURCES = $(sanitizer_common_files) -# Work around what appears to be a GNU make bug handling MAKEFLAGS -# values defined in terms of make variables, as is the case for CC and -# friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "JC1FLAGS=$(JC1FLAGS)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "prefix=$(prefix)" \ - "includedir=$(includedir)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "NM=$(NM)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" - MAKEOVERRIDES= ## ################################################################ diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am index 867c152..a4e3e51 100644 --- a/libsanitizer/tsan/Makefile.am +++ b/libsanitizer/tsan/Makefile.am @@ -37,44 +37,6 @@ libtsan_la_SOURCES = $(tsan_files) libtsan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la $(top_builddir)/interception/libinterception.la $(top_builddir)/../libstdc++-v3/src/libstdc++.la libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lpthread -ldl -# Work around what appears to be a GNU make bug handling MAKEFLAGS -# values defined in terms of make variables, as is the case for CC and -# friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "JC1FLAGS=$(JC1FLAGS)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "prefix=$(prefix)" \ - "includedir=$(includedir)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "NM=$(NM)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" - MAKEOVERRIDES= ## ################################################################ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-11 21:39 PATCH: Remove AM_MAKEFLAGS from libsanitizer H.J. Lu @ 2012-12-12 8:49 ` Paolo Bonzini 2012-12-12 14:42 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2012-12-12 8:49 UTC (permalink / raw) To: H.J. Lu Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches Il 11/12/2012 22:39, H.J. Lu ha scritto: > On Tue, Dec 11, 2012 at 6:36 AM, Paolo Bonzini <bonzini@gnu.org> wrote: >> Il 11/12/2012 14:47, H.J. Lu ha scritto: >>> On Thu, Dec 6, 2012 at 7:07 AM, H.J. Lu <hjl.tools@gmail.com> wrote: >>>> On Thu, Nov 29, 2012 at 10:30 AM, H.J. Lu <hongjiu.lu@intel.com> wrote: >>>>> Hi, >>>>> >>>>> Since libsanitizer is used for bootstrap and compiled with raw_cxx, >>>>> we need to use explicit -I for libstdc++-v3 header files in >>>>> libsanitizer. Otherwise, we will get >>>>> >>>>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>>>> libtool: compile: Try `libtool --help' for more information. >>>>> >>>>> This patch fixes it. OK to install? >>>>> >>>>> Thanks. >>>>> >>>>> >>>>> H.J. >>>>> --- >>>>> libsanitizer/Makefile.am | 2 -- >>>>> libsanitizer/Makefile.in | 6 +++--- >>>>> libsanitizer/aclocal.m4 | 1 + >>>>> libsanitizer/asan/Makefile.am | 6 ++++-- >>>>> libsanitizer/asan/Makefile.in | 14 ++++++++++---- >>>>> libsanitizer/configure | 22 ++++++++++++++++++++-- >>>>> libsanitizer/configure.ac | 1 + >>>>> libsanitizer/interception/Makefile.am | 6 ++++-- >>>>> libsanitizer/interception/Makefile.in | 14 ++++++++++---- >>>>> libsanitizer/sanitizer_common/Makefile.am | 6 ++++-- >>>>> libsanitizer/sanitizer_common/Makefile.in | 14 ++++++++++---- >>>>> libsanitizer/tsan/Makefile.am | 6 ++++-- >>>>> libsanitizer/tsan/Makefile.in | 13 +++++++++---- >>>>> 14 files changed, 97 insertions(+), 31 deletions(-) >>>>> create mode 100644 libsanitizer/ChangeLog.asan >>>>> >>>>> 2012-11-22 H.J. Lu <hongjiu.lu@intel.com> >>>>> >>>>> * Makefile.am (AM_MAKEFLAGS): Remove CC and CXX. >>>>> * configure.ac (ACX_NONCANONICAL_TARGET): New. >>>>> * asan/Makefile.am (AM_CXXFLAGS): Add -I for libstdc++-v3 header >>>>> files. >>>>> (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/libsanitizer/Makefile.am b/libsanitizer/Makefile.am >>>>> index 64d3d2e..cd4e92d 100644 >>>>> --- a/libsanitizer/Makefile.am >>>>> +++ b/libsanitizer/Makefile.am >>>>> @@ -37,8 +37,6 @@ AM_MAKEFLAGS = \ >>>>> "includedir=$(includedir)" \ >>>>> "AR=$(AR)" \ >>>>> "AS=$(AS)" \ >>>>> - "CC=$(CC)" \ >>>>> - "CXX=$(CXX)" \ >>>>> "LD=$(LD)" \ >>>>> "LIBCFLAGS=$(LIBCFLAGS)" \ >>>>> "NM=$(NM)" \ >> >> 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. >> > > Here is a patch to remove AM_MAKEFLAGS from > libsanitizer. Tested on Linux/x86-64. OK to install? > > Thanks. > > > H.J. > --- > 2012-12-11 H.J. Lu <hongjiu.lu@intel.com> > > * Makefile.am (AM_MAKEFLAGS): Removed. > * interception/Makefile.am: Likewise. > * sanitizer_common/Makefile.am: Likewise. > * tsan/Makefile.am: Likewise. > * Makefile.in: Regenerated. > * asan/Makefile.in: Likewise. > * interception/Makefile.in: Likewise. > * sanitizer_common/Makefile.in: Likewise. > * tsan/Makefile.in: Likewise. > > diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am > index 308d438..272a218 100644 > --- a/libsanitizer/Makefile.am > +++ b/libsanitizer/Makefile.am > @@ -10,44 +10,6 @@ if USING_MAC_INTERPOSE > SUBDIRS = sanitizer_common asan > endif > > -# Work around what appears to be a GNU make bug handling MAKEFLAGS > -# values defined in terms of make variables, as is the case for CC and > -# friends when we are called from the top level Makefile. > -AM_MAKEFLAGS = \ > - "AR_FLAGS=$(AR_FLAGS)" \ > - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ > - "CFLAGS=$(CFLAGS)" \ > - "CXXFLAGS=$(CXXFLAGS)" \ > - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ > - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ > - "INSTALL=$(INSTALL)" \ > - "INSTALL_DATA=$(INSTALL_DATA)" \ > - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ > - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ > - "JC1FLAGS=$(JC1FLAGS)" \ > - "LDFLAGS=$(LDFLAGS)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ > - "MAKE=$(MAKE)" \ > - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ > - "PICFLAG=$(PICFLAG)" \ > - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ > - "SHELL=$(SHELL)" \ > - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ > - "exec_prefix=$(exec_prefix)" \ > - "infodir=$(infodir)" \ > - "libdir=$(libdir)" \ > - "prefix=$(prefix)" \ > - "includedir=$(includedir)" \ > - "AR=$(AR)" \ > - "AS=$(AS)" \ > - "LD=$(LD)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "NM=$(NM)" \ > - "PICFLAG=$(PICFLAG)" \ > - "RANLIB=$(RANLIB)" \ > - "DESTDIR=$(DESTDIR)" > - > MAKEOVERRIDES= > > ## ################################################################ > diff --git a/libsanitizer/interception/Makefile.am > b/libsanitizer/interception/Makefile.am > index 6ae59b5..aab68f0 100644 > --- a/libsanitizer/interception/Makefile.am > +++ b/libsanitizer/interception/Makefile.am > @@ -17,44 +17,6 @@ interception_files = \ > > libinterception_la_SOURCES = $(interception_files) > > -# Work around what appears to be a GNU make bug handling MAKEFLAGS > -# values defined in terms of make variables, as is the case for CC and > -# friends when we are called from the top level Makefile. > -AM_MAKEFLAGS = \ > - "AR_FLAGS=$(AR_FLAGS)" \ > - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ > - "CFLAGS=$(CFLAGS)" \ > - "CXXFLAGS=$(CXXFLAGS)" \ > - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ > - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ > - "INSTALL=$(INSTALL)" \ > - "INSTALL_DATA=$(INSTALL_DATA)" \ > - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ > - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ > - "JC1FLAGS=$(JC1FLAGS)" \ > - "LDFLAGS=$(LDFLAGS)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ > - "MAKE=$(MAKE)" \ > - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ > - "PICFLAG=$(PICFLAG)" \ > - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ > - "SHELL=$(SHELL)" \ > - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ > - "exec_prefix=$(exec_prefix)" \ > - "infodir=$(infodir)" \ > - "libdir=$(libdir)" \ > - "prefix=$(prefix)" \ > - "includedir=$(includedir)" \ > - "AR=$(AR)" \ > - "AS=$(AS)" \ > - "LD=$(LD)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "NM=$(NM)" \ > - "PICFLAG=$(PICFLAG)" \ > - "RANLIB=$(RANLIB)" \ > - "DESTDIR=$(DESTDIR)" > - > MAKEOVERRIDES= > > ## ################################################################ > diff --git a/libsanitizer/sanitizer_common/Makefile.am > b/libsanitizer/sanitizer_common/Makefile.am > index 708b2a4..8d414b3 100644 > --- a/libsanitizer/sanitizer_common/Makefile.am > +++ b/libsanitizer/sanitizer_common/Makefile.am > @@ -29,44 +29,6 @@ sanitizer_common_files = \ > > libsanitizer_common_la_SOURCES = $(sanitizer_common_files) > > -# Work around what appears to be a GNU make bug handling MAKEFLAGS > -# values defined in terms of make variables, as is the case for CC and > -# friends when we are called from the top level Makefile. > -AM_MAKEFLAGS = \ > - "AR_FLAGS=$(AR_FLAGS)" \ > - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ > - "CFLAGS=$(CFLAGS)" \ > - "CXXFLAGS=$(CXXFLAGS)" \ > - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ > - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ > - "INSTALL=$(INSTALL)" \ > - "INSTALL_DATA=$(INSTALL_DATA)" \ > - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ > - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ > - "JC1FLAGS=$(JC1FLAGS)" \ > - "LDFLAGS=$(LDFLAGS)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ > - "MAKE=$(MAKE)" \ > - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ > - "PICFLAG=$(PICFLAG)" \ > - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ > - "SHELL=$(SHELL)" \ > - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ > - "exec_prefix=$(exec_prefix)" \ > - "infodir=$(infodir)" \ > - "libdir=$(libdir)" \ > - "prefix=$(prefix)" \ > - "includedir=$(includedir)" \ > - "AR=$(AR)" \ > - "AS=$(AS)" \ > - "LD=$(LD)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "NM=$(NM)" \ > - "PICFLAG=$(PICFLAG)" \ > - "RANLIB=$(RANLIB)" \ > - "DESTDIR=$(DESTDIR)" > - > MAKEOVERRIDES= > > ## ################################################################ > diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am > index 867c152..a4e3e51 100644 > --- a/libsanitizer/tsan/Makefile.am > +++ b/libsanitizer/tsan/Makefile.am > @@ -37,44 +37,6 @@ libtsan_la_SOURCES = $(tsan_files) > libtsan_la_LIBADD = > $(top_builddir)/sanitizer_common/libsanitizer_common.la > $(top_builddir)/interception/libinterception.la > $(top_builddir)/../libstdc++-v3/src/libstdc++.la > libtsan_la_LDFLAGS = -version-info `grep -v '^\#' > $(srcdir)/libtool-version` -lpthread -ldl > > -# Work around what appears to be a GNU make bug handling MAKEFLAGS > -# values defined in terms of make variables, as is the case for CC and > -# friends when we are called from the top level Makefile. > -AM_MAKEFLAGS = \ > - "AR_FLAGS=$(AR_FLAGS)" \ > - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ > - "CFLAGS=$(CFLAGS)" \ > - "CXXFLAGS=$(CXXFLAGS)" \ > - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ > - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ > - "INSTALL=$(INSTALL)" \ > - "INSTALL_DATA=$(INSTALL_DATA)" \ > - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ > - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ > - "JC1FLAGS=$(JC1FLAGS)" \ > - "LDFLAGS=$(LDFLAGS)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ > - "MAKE=$(MAKE)" \ > - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ > - "PICFLAG=$(PICFLAG)" \ > - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ > - "SHELL=$(SHELL)" \ > - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ > - "exec_prefix=$(exec_prefix)" \ > - "infodir=$(infodir)" \ > - "libdir=$(libdir)" \ > - "prefix=$(prefix)" \ > - "includedir=$(includedir)" \ > - "AR=$(AR)" \ > - "AS=$(AS)" \ > - "LD=$(LD)" \ > - "LIBCFLAGS=$(LIBCFLAGS)" \ > - "NM=$(NM)" \ > - "PICFLAG=$(PICFLAG)" \ > - "RANLIB=$(RANLIB)" \ > - "DESTDIR=$(DESTDIR)" > - > MAKEOVERRIDES= You need to remove MAKEOVERRIDES too. Ok with that change. Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 8:49 ` Paolo Bonzini @ 2012-12-12 14:42 ` H.J. Lu 2012-12-12 14:47 ` Paolo Bonzini 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-12 14:42 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 12:49 AM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 11/12/2012 22:39, H.J. Lu ha scritto: >> On Tue, Dec 11, 2012 at 6:36 AM, Paolo Bonzini <bonzini@gnu.org> wrote: >>> Il 11/12/2012 14:47, H.J. Lu ha scritto: >>>> On Thu, Dec 6, 2012 at 7:07 AM, H.J. Lu <hjl.tools@gmail.com> wrote: >>>>> On Thu, Nov 29, 2012 at 10:30 AM, H.J. Lu <hongjiu.lu@intel.com> wrote: >>>>>> Hi, >>>>>> >>>>>> Since libsanitizer is used for bootstrap and compiled with raw_cxx, >>>>>> we need to use explicit -I for libstdc++-v3 header files in >>>>>> libsanitizer. Otherwise, we will get >>>>>> >>>>>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>>>>> libtool: compile: Try `libtool --help' for more information. >>>>>> >>>>>> This patch fixes it. OK to install? >>>>>> >>>>>> Thanks. >>>>>> >>>>>> >>>>>> H.J. >>>>>> --- >>>>>> libsanitizer/Makefile.am | 2 -- >>>>>> libsanitizer/Makefile.in | 6 +++--- >>>>>> libsanitizer/aclocal.m4 | 1 + >>>>>> libsanitizer/asan/Makefile.am | 6 ++++-- >>>>>> libsanitizer/asan/Makefile.in | 14 ++++++++++---- >>>>>> libsanitizer/configure | 22 ++++++++++++++++++++-- >>>>>> libsanitizer/configure.ac | 1 + >>>>>> libsanitizer/interception/Makefile.am | 6 ++++-- >>>>>> libsanitizer/interception/Makefile.in | 14 ++++++++++---- >>>>>> libsanitizer/sanitizer_common/Makefile.am | 6 ++++-- >>>>>> libsanitizer/sanitizer_common/Makefile.in | 14 ++++++++++---- >>>>>> libsanitizer/tsan/Makefile.am | 6 ++++-- >>>>>> libsanitizer/tsan/Makefile.in | 13 +++++++++---- >>>>>> 14 files changed, 97 insertions(+), 31 deletions(-) >>>>>> create mode 100644 libsanitizer/ChangeLog.asan >>>>>> >>>>>> 2012-11-22 H.J. Lu <hongjiu.lu@intel.com> >>>>>> >>>>>> * Makefile.am (AM_MAKEFLAGS): Remove CC and CXX. >>>>>> * configure.ac (ACX_NONCANONICAL_TARGET): New. >>>>>> * asan/Makefile.am (AM_CXXFLAGS): Add -I for libstdc++-v3 header >>>>>> files. >>>>>> (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/libsanitizer/Makefile.am b/libsanitizer/Makefile.am >>>>>> index 64d3d2e..cd4e92d 100644 >>>>>> --- a/libsanitizer/Makefile.am >>>>>> +++ b/libsanitizer/Makefile.am >>>>>> @@ -37,8 +37,6 @@ AM_MAKEFLAGS = \ >>>>>> "includedir=$(includedir)" \ >>>>>> "AR=$(AR)" \ >>>>>> "AS=$(AS)" \ >>>>>> - "CC=$(CC)" \ >>>>>> - "CXX=$(CXX)" \ >>>>>> "LD=$(LD)" \ >>>>>> "LIBCFLAGS=$(LIBCFLAGS)" \ >>>>>> "NM=$(NM)" \ >>> >>> 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. >>> >> >> Here is a patch to remove AM_MAKEFLAGS from >> libsanitizer. Tested on Linux/x86-64. OK to install? >> >> Thanks. >> >> >> H.J. >> --- >> 2012-12-11 H.J. Lu <hongjiu.lu@intel.com> >> >> * Makefile.am (AM_MAKEFLAGS): Removed. >> * interception/Makefile.am: Likewise. >> * sanitizer_common/Makefile.am: Likewise. >> * tsan/Makefile.am: Likewise. >> * Makefile.in: Regenerated. >> * asan/Makefile.in: Likewise. >> * interception/Makefile.in: Likewise. >> * sanitizer_common/Makefile.in: Likewise. >> * tsan/Makefile.in: Likewise. >> >> diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am >> index 308d438..272a218 100644 >> --- a/libsanitizer/Makefile.am >> +++ b/libsanitizer/Makefile.am >> @@ -10,44 +10,6 @@ if USING_MAC_INTERPOSE >> SUBDIRS = sanitizer_common asan >> endif >> >> -# Work around what appears to be a GNU make bug handling MAKEFLAGS >> -# values defined in terms of make variables, as is the case for CC and >> -# friends when we are called from the top level Makefile. >> -AM_MAKEFLAGS = \ >> - "AR_FLAGS=$(AR_FLAGS)" \ >> - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ >> - "CFLAGS=$(CFLAGS)" \ >> - "CXXFLAGS=$(CXXFLAGS)" \ >> - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ >> - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ >> - "INSTALL=$(INSTALL)" \ >> - "INSTALL_DATA=$(INSTALL_DATA)" \ >> - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ >> - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ >> - "JC1FLAGS=$(JC1FLAGS)" \ >> - "LDFLAGS=$(LDFLAGS)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ >> - "MAKE=$(MAKE)" \ >> - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ >> - "SHELL=$(SHELL)" \ >> - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ >> - "exec_prefix=$(exec_prefix)" \ >> - "infodir=$(infodir)" \ >> - "libdir=$(libdir)" \ >> - "prefix=$(prefix)" \ >> - "includedir=$(includedir)" \ >> - "AR=$(AR)" \ >> - "AS=$(AS)" \ >> - "LD=$(LD)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "NM=$(NM)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "RANLIB=$(RANLIB)" \ >> - "DESTDIR=$(DESTDIR)" >> - >> MAKEOVERRIDES= >> >> ## ################################################################ >> diff --git a/libsanitizer/interception/Makefile.am >> b/libsanitizer/interception/Makefile.am >> index 6ae59b5..aab68f0 100644 >> --- a/libsanitizer/interception/Makefile.am >> +++ b/libsanitizer/interception/Makefile.am >> @@ -17,44 +17,6 @@ interception_files = \ >> >> libinterception_la_SOURCES = $(interception_files) >> >> -# Work around what appears to be a GNU make bug handling MAKEFLAGS >> -# values defined in terms of make variables, as is the case for CC and >> -# friends when we are called from the top level Makefile. >> -AM_MAKEFLAGS = \ >> - "AR_FLAGS=$(AR_FLAGS)" \ >> - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ >> - "CFLAGS=$(CFLAGS)" \ >> - "CXXFLAGS=$(CXXFLAGS)" \ >> - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ >> - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ >> - "INSTALL=$(INSTALL)" \ >> - "INSTALL_DATA=$(INSTALL_DATA)" \ >> - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ >> - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ >> - "JC1FLAGS=$(JC1FLAGS)" \ >> - "LDFLAGS=$(LDFLAGS)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ >> - "MAKE=$(MAKE)" \ >> - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ >> - "SHELL=$(SHELL)" \ >> - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ >> - "exec_prefix=$(exec_prefix)" \ >> - "infodir=$(infodir)" \ >> - "libdir=$(libdir)" \ >> - "prefix=$(prefix)" \ >> - "includedir=$(includedir)" \ >> - "AR=$(AR)" \ >> - "AS=$(AS)" \ >> - "LD=$(LD)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "NM=$(NM)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "RANLIB=$(RANLIB)" \ >> - "DESTDIR=$(DESTDIR)" >> - >> MAKEOVERRIDES= >> >> ## ################################################################ >> diff --git a/libsanitizer/sanitizer_common/Makefile.am >> b/libsanitizer/sanitizer_common/Makefile.am >> index 708b2a4..8d414b3 100644 >> --- a/libsanitizer/sanitizer_common/Makefile.am >> +++ b/libsanitizer/sanitizer_common/Makefile.am >> @@ -29,44 +29,6 @@ sanitizer_common_files = \ >> >> libsanitizer_common_la_SOURCES = $(sanitizer_common_files) >> >> -# Work around what appears to be a GNU make bug handling MAKEFLAGS >> -# values defined in terms of make variables, as is the case for CC and >> -# friends when we are called from the top level Makefile. >> -AM_MAKEFLAGS = \ >> - "AR_FLAGS=$(AR_FLAGS)" \ >> - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ >> - "CFLAGS=$(CFLAGS)" \ >> - "CXXFLAGS=$(CXXFLAGS)" \ >> - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ >> - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ >> - "INSTALL=$(INSTALL)" \ >> - "INSTALL_DATA=$(INSTALL_DATA)" \ >> - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ >> - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ >> - "JC1FLAGS=$(JC1FLAGS)" \ >> - "LDFLAGS=$(LDFLAGS)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ >> - "MAKE=$(MAKE)" \ >> - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ >> - "SHELL=$(SHELL)" \ >> - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ >> - "exec_prefix=$(exec_prefix)" \ >> - "infodir=$(infodir)" \ >> - "libdir=$(libdir)" \ >> - "prefix=$(prefix)" \ >> - "includedir=$(includedir)" \ >> - "AR=$(AR)" \ >> - "AS=$(AS)" \ >> - "LD=$(LD)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "NM=$(NM)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "RANLIB=$(RANLIB)" \ >> - "DESTDIR=$(DESTDIR)" >> - >> MAKEOVERRIDES= >> >> ## ################################################################ >> diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am >> index 867c152..a4e3e51 100644 >> --- a/libsanitizer/tsan/Makefile.am >> +++ b/libsanitizer/tsan/Makefile.am >> @@ -37,44 +37,6 @@ libtsan_la_SOURCES = $(tsan_files) >> libtsan_la_LIBADD = >> $(top_builddir)/sanitizer_common/libsanitizer_common.la >> $(top_builddir)/interception/libinterception.la >> $(top_builddir)/../libstdc++-v3/src/libstdc++.la >> libtsan_la_LDFLAGS = -version-info `grep -v '^\#' >> $(srcdir)/libtool-version` -lpthread -ldl >> >> -# Work around what appears to be a GNU make bug handling MAKEFLAGS >> -# values defined in terms of make variables, as is the case for CC and >> -# friends when we are called from the top level Makefile. >> -AM_MAKEFLAGS = \ >> - "AR_FLAGS=$(AR_FLAGS)" \ >> - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ >> - "CFLAGS=$(CFLAGS)" \ >> - "CXXFLAGS=$(CXXFLAGS)" \ >> - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ >> - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ >> - "INSTALL=$(INSTALL)" \ >> - "INSTALL_DATA=$(INSTALL_DATA)" \ >> - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ >> - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ >> - "JC1FLAGS=$(JC1FLAGS)" \ >> - "LDFLAGS=$(LDFLAGS)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ >> - "MAKE=$(MAKE)" \ >> - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ >> - "SHELL=$(SHELL)" \ >> - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ >> - "exec_prefix=$(exec_prefix)" \ >> - "infodir=$(infodir)" \ >> - "libdir=$(libdir)" \ >> - "prefix=$(prefix)" \ >> - "includedir=$(includedir)" \ >> - "AR=$(AR)" \ >> - "AS=$(AS)" \ >> - "LD=$(LD)" \ >> - "LIBCFLAGS=$(LIBCFLAGS)" \ >> - "NM=$(NM)" \ >> - "PICFLAG=$(PICFLAG)" \ >> - "RANLIB=$(RANLIB)" \ >> - "DESTDIR=$(DESTDIR)" >> - >> MAKEOVERRIDES= > > You need to remove MAKEOVERRIDES too. > > Ok with that change. > > Paolo MAKEOVERRIDES is used for multilib. I got /bin/sh ../libtool --tag=CXX --mode=compile -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 -I. -I/export/gnu/import/git/gcc/libsanitizer/asan -I /export/gnu/import/git/gcc/libsanitizer/include -I /export/gnu/import/git/gcc/libsanitizer -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 -I../../libstdc++-v3/include -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/gnu/import/git/gcc/libsanitizer/../libstdc++-v3/libsupc++ -g -O2 -D_GNU_SOURCE -m32 -MT asan_malloc_linux.lo -MD -MP -MF .deps/asan_malloc_linux.Tpo -c -o asan_malloc_linux.lo /export/gnu/import/git/gcc/libsanitizer/asan/asan_malloc_linux.cc libtool: compile: unrecognized option `-D_GNU_SOURCE' libtool: compile: Try `libtool --help' for more information. make[8]: *** [asan_allocator.lo] Error 1 make[8]: *** Waiting for unfinished jobs.... libtool: compile: unrecognized option `-D_GNU_SOURCE' libtool: compile: Try `libtool --help' for more information I checked in this patch to restore MAKEOVERRIDES. -- H.J. --- Index: ChangeLog =================================================================== --- ChangeLog (revision 194449) +++ ChangeLog (working copy) @@ -1,5 +1,18 @@ 2012-12-12 H.J. Lu <hongjiu.lu@intel.com> + * Makefile.am (MAKEOVERRIDES): Restored. + * asan/Makefile.am: Likewise. + * interception/Makefile.am: Likewise. + * sanitizer_common/Makefile.am: Likewise. + * tsan/Makefile.am: Likewise. + * Makefile.in: Regenerated. + * asan/Makefile.in: Likewise. + * interception/Makefile.in: Likewise. + * sanitizer_common/Makefile.in: Likewise. + * tsan/Makefile.in: Likewise. + +2012-12-12 H.J. Lu <hongjiu.lu@intel.com> + * asan/Makefile.am (libasan_la_LIBADD): Use $(LIBSTDCXX_RAW_CXX_LDLAGS). * tsan/Makefile.am (libtsan_la_LIBADD): Likewise. * Makefile.in: Regenerated. Index: Makefile.am =================================================================== --- Makefile.am (revision 194449) +++ Makefile.am (working copy) @@ -10,5 +10,7 @@ if USING_MAC_INTERPOSE SUBDIRS = sanitizer_common asan endif +MAKEOVERRIDES= + ## ################################################################ Index: asan/Makefile.am =================================================================== --- asan/Makefile.am (revision 194449) +++ asan/Makefile.am (working copy) @@ -44,5 +44,7 @@ libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lpthread -ldl +MAKEOVERRIDES= + ## ################################################################ Index: interception/Makefile.am =================================================================== --- interception/Makefile.am (revision 194449) +++ interception/Makefile.am (working copy) @@ -17,5 +17,7 @@ interception_files = \ libinterception_la_SOURCES = $(interception_files) +MAKEOVERRIDES= + ## ################################################################ Index: sanitizer_common/Makefile.am =================================================================== --- sanitizer_common/Makefile.am (revision 194449) +++ sanitizer_common/Makefile.am (working copy) @@ -29,5 +29,7 @@ sanitizer_common_files = \ libsanitizer_common_la_SOURCES = $(sanitizer_common_files) +MAKEOVERRIDES= + ## ################################################################ Index: tsan/Makefile.am =================================================================== --- tsan/Makefile.am (revision 194449) +++ tsan/Makefile.am (working copy) @@ -37,5 +37,7 @@ libtsan_la_SOURCES = $(tsan_files) libtsan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la $(top_builddir)/interception/libinterception.la $(LIBSTDCXX_RAW_CXX_LDLAGS) libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lpthread -ldl +MAKEOVERRIDES= + ## ################################################################ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 14:42 ` H.J. Lu @ 2012-12-12 14:47 ` Paolo Bonzini 2012-12-12 17:30 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2012-12-12 14:47 UTC (permalink / raw) To: H.J. Lu Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches Il 12/12/2012 15:41, H.J. Lu ha scritto: > MAKEOVERRIDES is used for multilib. I got > > /bin/sh ../libtool --tag=CXX --mode=compile -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 -I. > -I/export/gnu/import/git/gcc/libsanitizer/asan -I > /export/gnu/import/git/gcc/libsanitizer/include -I > /export/gnu/import/git/gcc/libsanitizer -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 > -I../../libstdc++-v3/include > -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu > -I/export/gnu/import/git/gcc/libsanitizer/../libstdc++-v3/libsupc++ -g > -O2 -D_GNU_SOURCE -m32 -MT asan_malloc_linux.lo -MD -MP -MF > .deps/asan_malloc_linux.Tpo -c -o asan_malloc_linux.lo > /export/gnu/import/git/gcc/libsanitizer/asan/asan_malloc_linux.cc > libtool: compile: unrecognized option `-D_GNU_SOURCE' > libtool: compile: Try `libtool --help' for more information. > make[8]: *** [asan_allocator.lo] Error 1 > make[8]: *** Waiting for unfinished jobs.... > libtool: compile: unrecognized option `-D_GNU_SOURCE' > libtool: compile: Try `libtool --help' for more information > > I checked in this patch to restore MAKEOVERRIDES. This will break "make CFLAGS=-g". Please revert the AM_MAKEFLAGS change fully. However, your patch that removed AM_MAKEFLAGS similarly broke "make CC=foo". While it is much less useful, this nevertheless may be the sign of a bigger problem. Why did you need to remove CC/CXX from AM_MAKEFLAGS in the first place? Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 14:47 ` Paolo Bonzini @ 2012-12-12 17:30 ` H.J. Lu 2012-12-12 18:01 ` Paolo Bonzini 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-12 17:30 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 6:46 AM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 12/12/2012 15:41, H.J. Lu ha scritto: >> MAKEOVERRIDES is used for multilib. I got >> >> /bin/sh ../libtool --tag=CXX --mode=compile -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 -I. >> -I/export/gnu/import/git/gcc/libsanitizer/asan -I >> /export/gnu/import/git/gcc/libsanitizer/include -I >> /export/gnu/import/git/gcc/libsanitizer -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 >> -I../../libstdc++-v3/include >> -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu >> -I/export/gnu/import/git/gcc/libsanitizer/../libstdc++-v3/libsupc++ -g >> -O2 -D_GNU_SOURCE -m32 -MT asan_malloc_linux.lo -MD -MP -MF >> .deps/asan_malloc_linux.Tpo -c -o asan_malloc_linux.lo >> /export/gnu/import/git/gcc/libsanitizer/asan/asan_malloc_linux.cc >> libtool: compile: unrecognized option `-D_GNU_SOURCE' >> libtool: compile: Try `libtool --help' for more information. >> make[8]: *** [asan_allocator.lo] Error 1 >> make[8]: *** Waiting for unfinished jobs.... >> libtool: compile: unrecognized option `-D_GNU_SOURCE' >> libtool: compile: Try `libtool --help' for more information >> >> I checked in this patch to restore MAKEOVERRIDES. > > This will break "make CFLAGS=-g". Please revert the AM_MAKEFLAGS change > fully. Done. > However, your patch that removed AM_MAKEFLAGS similarly broke "make > CC=foo". While it is much less useful, this nevertheless may be the > sign of a bigger problem. Why did you need to remove CC/CXX from > AM_MAKEFLAGS in the first place? > After further investigation, I found RAW_CXX_TARGET_EXPORTS = \ $(BASE_TARGET_EXPORTS) \ CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; ... all-stage1-target-libsanitizer: configure-stage1-target-libsanitizer @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start @r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ TFLAGS="$(STAGE1_TFLAGS)"; \ $(RAW_CXX_TARGET_EXPORTS) \ cd $(TARGET_SUBDIR)/libsanitizer && \ $(MAKE) $(BASE_FLAGS_TO_PASS) \ CFLAGS="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' \ \ TFLAGS="$(STAGE1_TFLAGS)" \ $(TARGET-stage1-target-libsanitizer) The problem is CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' Those are bogus since 1. We never set RAW_CXX_FOR_TARGET. 2. We have set CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. As the result, we get empty CXX and CXX_FOR_TARGET for multilib libsanitizer build. That is why removing CC/CXX from AM_MAKEFLAGS was needed. I am testing this patch. But we don't want to pass CC/CXX to multilib build since: [hjl@gnu-mic-2 x86_64-unknown-linux-gnu]$ grep "^CXX =" libsanitizer/Makefile 32/libsanitizer/Makefile libsanitizer/Makefile:CXX = /export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/xgcc -shared-libgcc -B/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include 32/libsanitizer/Makefile:CXX = /export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/xgcc -shared-libgcc -B/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -m32 [hjl@gnu-mic-2 x86_64-unknown-linux-gnu]$ As you can see, CXX are different for multilib. If we CXX down: all-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) we may get the wrong CXX for multilib. This patch fixes multilib build. But we may still want to keep AM_MAKEFLAGS for "make CFLAGS=-g". -- H.J. --- diff --git a/Makefile.tpl b/Makefile.tpl index 5cdc119..dbcd5c3 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1281,7 +1281,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(RAW_CXX_TARGET_EXPORTS)" - args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] + args="$(EXTRA_TARGET_FLAGS)" +] [+ ELSE +] [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)" check_multilibs=true @@ -1313,11 +1313,7 @@ ELSE normal_cxx +] $(NORMAL_TARGET_EXPORTS) \[+ ENDIF raw_cxx +] (cd $(TARGET_SUBDIR)/[+module+] && \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ - IF raw_cxx - +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ - ENDIF raw_cxx - +] [+extra_make_flags+] check) + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+extra_make_flags+] check) [+ ENDIF no_check +] @endif target-[+module+] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 17:30 ` H.J. Lu @ 2012-12-12 18:01 ` Paolo Bonzini 2012-12-12 18:11 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2012-12-12 18:01 UTC (permalink / raw) To: H.J. Lu Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches Il 12/12/2012 18:30, H.J. Lu ha scritto: > On Wed, Dec 12, 2012 at 6:46 AM, Paolo Bonzini <bonzini@gnu.org> wrote: >> Il 12/12/2012 15:41, H.J. Lu ha scritto: >>> MAKEOVERRIDES is used for multilib. I got >>> >>> /bin/sh ../libtool --tag=CXX --mode=compile -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 -I. >>> -I/export/gnu/import/git/gcc/libsanitizer/asan -I >>> /export/gnu/import/git/gcc/libsanitizer/include -I >>> /export/gnu/import/git/gcc/libsanitizer -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 >>> -I../../libstdc++-v3/include >>> -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu >>> -I/export/gnu/import/git/gcc/libsanitizer/../libstdc++-v3/libsupc++ -g >>> -O2 -D_GNU_SOURCE -m32 -MT asan_malloc_linux.lo -MD -MP -MF >>> .deps/asan_malloc_linux.Tpo -c -o asan_malloc_linux.lo >>> /export/gnu/import/git/gcc/libsanitizer/asan/asan_malloc_linux.cc >>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>> libtool: compile: Try `libtool --help' for more information. >>> make[8]: *** [asan_allocator.lo] Error 1 >>> make[8]: *** Waiting for unfinished jobs.... >>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>> libtool: compile: Try `libtool --help' for more information >>> >>> I checked in this patch to restore MAKEOVERRIDES. >> >> This will break "make CFLAGS=-g". Please revert the AM_MAKEFLAGS change >> fully. > > Done. > >> However, your patch that removed AM_MAKEFLAGS similarly broke "make >> CC=foo". While it is much less useful, this nevertheless may be the >> sign of a bigger problem. Why did you need to remove CC/CXX from >> AM_MAKEFLAGS in the first place? >> > > After further investigation, I found > > RAW_CXX_TARGET_EXPORTS = \ > $(BASE_TARGET_EXPORTS) \ > CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ > CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; > export CXX; > ... > > all-stage1-target-libsanitizer: configure-stage1-target-libsanitizer > @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start > @r=`${PWD_COMMAND}`; export r; \ > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ > TFLAGS="$(STAGE1_TFLAGS)"; \ > $(RAW_CXX_TARGET_EXPORTS) \ > cd $(TARGET_SUBDIR)/libsanitizer && \ > $(MAKE) $(BASE_FLAGS_TO_PASS) \ > CFLAGS="$(CFLAGS_FOR_TARGET)" \ > CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \ > LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \ > CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ > CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ > LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ > $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' > 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' \ > \ > TFLAGS="$(STAGE1_TFLAGS)" \ > $(TARGET-stage1-target-libsanitizer) > > The problem is > > CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' > > Those are bogus since > > 1. We never set RAW_CXX_FOR_TARGET. > 2. We have set > > CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ > CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; > export CXX; > > in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. Nope, if you remove this you get the wrong definition of CC and CXX from EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. Paolo > As the result, we get empty CXX and CXX_FOR_TARGET for multilib > libsanitizer build. That is why removing CC/CXX from AM_MAKEFLAGS > was needed. I am testing this patch. But we don't want to pass > CC/CXX to multilib build since: > > [hjl@gnu-mic-2 x86_64-unknown-linux-gnu]$ grep "^CXX =" > libsanitizer/Makefile 32/libsanitizer/Makefile > libsanitizer/Makefile:CXX = > /export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/xgcc > -shared-libgcc -B/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc > -nostdinc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src > -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs > -B/usr/local/x86_64-unknown-linux-gnu/bin/ > -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem > /usr/local/x86_64-unknown-linux-gnu/include -isystem > /usr/local/x86_64-unknown-linux-gnu/sys-include > 32/libsanitizer/Makefile:CXX = > /export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/xgcc > -shared-libgcc -B/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc > -nostdinc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src > -L/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs > -B/usr/local/x86_64-unknown-linux-gnu/bin/ > -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem > /usr/local/x86_64-unknown-linux-gnu/include -isystem > /usr/local/x86_64-unknown-linux-gnu/sys-include -m32 > [hjl@gnu-mic-2 x86_64-unknown-linux-gnu]$ > > As you can see, CXX are different for multilib. If we CXX down: > > all-multi: > $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) > > we may get the wrong CXX for multilib. > > This patch fixes multilib build. But we may still want to keep > AM_MAKEFLAGS for "make CFLAGS=-g". > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 18:01 ` Paolo Bonzini @ 2012-12-12 18:11 ` H.J. Lu 2012-12-12 22:13 ` Paolo Bonzini 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-12 18:11 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 10:01 AM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 12/12/2012 18:30, H.J. Lu ha scritto: >> On Wed, Dec 12, 2012 at 6:46 AM, Paolo Bonzini <bonzini@gnu.org> wrote: >>> Il 12/12/2012 15:41, H.J. Lu ha scritto: >>>> MAKEOVERRIDES is used for multilib. I got >>>> >>>> /bin/sh ../libtool --tag=CXX --mode=compile -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 -I. >>>> -I/export/gnu/import/git/gcc/libsanitizer/asan -I >>>> /export/gnu/import/git/gcc/libsanitizer/include -I >>>> /export/gnu/import/git/gcc/libsanitizer -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 >>>> -I../../libstdc++-v3/include >>>> -I../../libstdc++-v3/include/x86_64-unknown-linux-gnu >>>> -I/export/gnu/import/git/gcc/libsanitizer/../libstdc++-v3/libsupc++ -g >>>> -O2 -D_GNU_SOURCE -m32 -MT asan_malloc_linux.lo -MD -MP -MF >>>> .deps/asan_malloc_linux.Tpo -c -o asan_malloc_linux.lo >>>> /export/gnu/import/git/gcc/libsanitizer/asan/asan_malloc_linux.cc >>>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>>> libtool: compile: Try `libtool --help' for more information. >>>> make[8]: *** [asan_allocator.lo] Error 1 >>>> make[8]: *** Waiting for unfinished jobs.... >>>> libtool: compile: unrecognized option `-D_GNU_SOURCE' >>>> libtool: compile: Try `libtool --help' for more information >>>> >>>> I checked in this patch to restore MAKEOVERRIDES. >>> >>> This will break "make CFLAGS=-g". Please revert the AM_MAKEFLAGS change >>> fully. >> >> Done. >> >>> However, your patch that removed AM_MAKEFLAGS similarly broke "make >>> CC=foo". While it is much less useful, this nevertheless may be the >>> sign of a bigger problem. Why did you need to remove CC/CXX from >>> AM_MAKEFLAGS in the first place? >>> >> >> After further investigation, I found >> >> RAW_CXX_TARGET_EXPORTS = \ >> $(BASE_TARGET_EXPORTS) \ >> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >> export CXX; >> ... >> >> all-stage1-target-libsanitizer: configure-stage1-target-libsanitizer >> @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start >> @r=`${PWD_COMMAND}`; export r; \ >> s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> TFLAGS="$(STAGE1_TFLAGS)"; \ >> $(RAW_CXX_TARGET_EXPORTS) \ >> cd $(TARGET_SUBDIR)/libsanitizer && \ >> $(MAKE) $(BASE_FLAGS_TO_PASS) \ >> CFLAGS="$(CFLAGS_FOR_TARGET)" \ >> CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \ >> LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \ >> CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ >> CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ >> LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \ >> $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' >> 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' \ >> \ >> TFLAGS="$(STAGE1_TFLAGS)" \ >> $(TARGET-stage1-target-libsanitizer) >> >> The problem is >> >> CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' >> >> Those are bogus since >> >> 1. We never set RAW_CXX_FOR_TARGET. >> 2. We have set >> >> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >> export CXX; >> >> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. > > Nope, if you remove this you get the wrong definition of CC and CXX from > EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to > AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. > We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS is used: RAW_CXX_TARGET_EXPORTS = \ $(BASE_TARGET_EXPORTS) \ CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; Shouldn't we the right CXX and CXX_FOR_TARGET? -- H.J. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 18:11 ` H.J. Lu @ 2012-12-12 22:13 ` Paolo Bonzini 2012-12-12 23:01 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2012-12-12 22:13 UTC (permalink / raw) To: H.J. Lu Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches Il 12/12/2012 19:11, H.J. Lu ha scritto: >>> >> >>> >> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >> > >> > Nope, if you remove this you get the wrong definition of CC and CXX from >> > EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >> > AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >> > > We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS > is used: > > RAW_CXX_TARGET_EXPORTS = \ > $(BASE_TARGET_EXPORTS) \ > CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ > CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; > export CXX; > > Shouldn't we the right CXX and CXX_FOR_TARGET? The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET variable passed on the command line to the toplevel Makefile. Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 22:13 ` Paolo Bonzini @ 2012-12-12 23:01 ` H.J. Lu 2012-12-12 23:23 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-12 23:01 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 2:13 PM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 12/12/2012 19:11, H.J. Lu ha scritto: >>>> >> >>>> >> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >>> > >>> > Nope, if you remove this you get the wrong definition of CC and CXX from >>> > EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >>> > AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >>> > >> We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS >> is used: >> >> RAW_CXX_TARGET_EXPORTS = \ >> $(BASE_TARGET_EXPORTS) \ >> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >> export CXX; >> >> Shouldn't we the right CXX and CXX_FOR_TARGET? > > The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET > variable passed on the command line to the toplevel Makefile. > We don't pass down RAW_CXX_FOR_TARGET from toplevel Makefile. If one wants to change RAW_CXX_FOR_TARGET from command line, he/she should do # make RAW_CXX_FOR_TARGET=xxx and RAW_CXX_TARGET_EXPORTS should handle it properly. -- H.J. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 23:01 ` H.J. Lu @ 2012-12-12 23:23 ` H.J. Lu 2012-12-13 7:32 ` Paolo Bonzini 0 siblings, 1 reply; 12+ messages in thread From: H.J. Lu @ 2012-12-12 23:23 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 3:01 PM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Wed, Dec 12, 2012 at 2:13 PM, Paolo Bonzini <bonzini@gnu.org> wrote: >> Il 12/12/2012 19:11, H.J. Lu ha scritto: >>>>> >> >>>>> >> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >>>> > >>>> > Nope, if you remove this you get the wrong definition of CC and CXX from >>>> > EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >>>> > AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >>>> > >>> We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS >>> is used: >>> >>> RAW_CXX_TARGET_EXPORTS = \ >>> $(BASE_TARGET_EXPORTS) \ >>> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >>> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >>> export CXX; >>> >>> Shouldn't we the right CXX and CXX_FOR_TARGET? >> >> The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET >> variable passed on the command line to the toplevel Makefile. >> > > We don't pass down RAW_CXX_FOR_TARGET from toplevel > Makefile. If one wants to change RAW_CXX_FOR_TARGET > from command line, he/she should do > > # make RAW_CXX_FOR_TARGET=xxx > > and RAW_CXX_TARGET_EXPORTS should handle it properly. Also there are: # ------------------------------ # Special directives to GNU Make # ------------------------------ # Don't pass command-line variables to submakes. .NOEXPORT: MAKEOVERRIDES= in toplevel Makefile. How does # make *_FOR_TARGET=xxxx work at toplevel? -- H.J. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-12 23:23 ` H.J. Lu @ 2012-12-13 7:32 ` Paolo Bonzini 2012-12-17 19:20 ` H.J. Lu 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2012-12-13 7:32 UTC (permalink / raw) To: H.J. Lu Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches Il 13/12/2012 00:23, H.J. Lu ha scritto: > On Wed, Dec 12, 2012 at 3:01 PM, H.J. Lu <hjl.tools@gmail.com> wrote: >> On Wed, Dec 12, 2012 at 2:13 PM, Paolo Bonzini <bonzini@gnu.org> wrote: >>> Il 12/12/2012 19:11, H.J. Lu ha scritto: >>>>>>>> >>>>>>>> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >>>>>> >>>>>> Nope, if you remove this you get the wrong definition of CC and CXX from >>>>>> EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >>>>>> AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >>>>>> >>>> We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS >>>> is used: >>>> >>>> RAW_CXX_TARGET_EXPORTS = \ >>>> $(BASE_TARGET_EXPORTS) \ >>>> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >>>> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >>>> export CXX; >>>> >>>> Shouldn't we the right CXX and CXX_FOR_TARGET? >>> >>> The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET >>> variable passed on the command line to the toplevel Makefile. >>> >> >> We don't pass down RAW_CXX_FOR_TARGET from toplevel >> Makefile. If one wants to change RAW_CXX_FOR_TARGET >> from command line, he/she should do >> >> # make RAW_CXX_FOR_TARGET=xxx >> >> and RAW_CXX_TARGET_EXPORTS should handle it properly. NORMAL_TARGET_EXPORTS and RAW_CXX_TARGET_EXPORTS is (mostly) for configure time. Makefiles do not use the environment variables, so you need EXTRA_TARGET_FLAGS (and more generally the args argument to the "all" macro) instead. > > Also there are: > > # ------------------------------ > # Special directives to GNU Make > # ------------------------------ > > # Don't pass command-line variables to submakes. > .NOEXPORT: > MAKEOVERRIDES= > > in toplevel Makefile. How does > > # make *_FOR_TARGET=xxxx > > work at toplevel? That's what I'm trying to say: the purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET>> variable passed on the command line to the toplevel Makefile. Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer 2012-12-13 7:32 ` Paolo Bonzini @ 2012-12-17 19:20 ` H.J. Lu 0 siblings, 0 replies; 12+ messages in thread From: H.J. Lu @ 2012-12-17 19:20 UTC (permalink / raw) To: Paolo Bonzini Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches On Wed, Dec 12, 2012 at 11:32 PM, Paolo Bonzini <bonzini@gnu.org> wrote: > Il 13/12/2012 00:23, H.J. Lu ha scritto: >> On Wed, Dec 12, 2012 at 3:01 PM, H.J. Lu <hjl.tools@gmail.com> wrote: >>> On Wed, Dec 12, 2012 at 2:13 PM, Paolo Bonzini <bonzini@gnu.org> wrote: >>>> Il 12/12/2012 19:11, H.J. Lu ha scritto: >>>>>>>>> >>>>>>>>> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >>>>>>> >>>>>>> Nope, if you remove this you get the wrong definition of CC and CXX from >>>>>>> EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >>>>>>> AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >>>>>>> >>>>> We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS >>>>> is used: >>>>> >>>>> RAW_CXX_TARGET_EXPORTS = \ >>>>> $(BASE_TARGET_EXPORTS) \ >>>>> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >>>>> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >>>>> export CXX; >>>>> >>>>> Shouldn't we the right CXX and CXX_FOR_TARGET? >>>> >>>> The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET >>>> variable passed on the command line to the toplevel Makefile. >>>> >>> >>> We don't pass down RAW_CXX_FOR_TARGET from toplevel >>> Makefile. If one wants to change RAW_CXX_FOR_TARGET >>> from command line, he/she should do >>> >>> # make RAW_CXX_FOR_TARGET=xxx >>> >>> and RAW_CXX_TARGET_EXPORTS should handle it properly. > > NORMAL_TARGET_EXPORTS and RAW_CXX_TARGET_EXPORTS is (mostly) for > configure time. Makefiles do not use the environment variables, so you > need EXTRA_TARGET_FLAGS (and more generally the args argument to the > "all" macro) instead. > >> >> Also there are: >> >> # ------------------------------ >> # Special directives to GNU Make >> # ------------------------------ >> >> # Don't pass command-line variables to submakes. >> .NOEXPORT: >> MAKEOVERRIDES= >> >> in toplevel Makefile. How does >> >> # make *_FOR_TARGET=xxxx >> >> work at toplevel? > > That's what I'm trying to say: the purpose of EXTRA_TARGET_FLAGS is to > forward any *_FOR_TARGET>> variable passed on the command line to the > toplevel Makefile. > > Paolo This patch allows me to override RAW_CXX_FOR_TARGET from command-line at toplevel. -- H.J. --- 2012-12-17 H.J. Lu <hongjiu.lu@intel.com> * Makefile.tpl (CXX_FOR_TARGET_FLAG_TO_PASS): Add "RAW_CXX_FOR_TARGET=$(RAW_CXX_FOR_TARGET)" if we are building libstdc++-v3. (target_modules): Remove 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'. * Makefile.in: Regenerated. diff --git a/Makefile.tpl b/Makefile.tpl index 5cdc119..c0e0106 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -574,6 +574,7 @@ CXX_FOR_TARGET_FLAG_TO_PASS = \ # really work, for C++ host programs can't depend on the current-stage # C++ target library. CXX_FOR_TARGET_FLAG_TO_PASS = \ + "RAW_CXX_FOR_TARGET=$(RAW_CXX_FOR_TARGET)" \ $(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi) @endif target-libstdc++-v3 @@ -1281,7 +1282,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(RAW_CXX_TARGET_EXPORTS)" - args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] + args="$(EXTRA_TARGET_FLAGS)" +] [+ ELSE +] [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)" check_multilibs=true @@ -1313,11 +1314,7 @@ ELSE normal_cxx +] $(NORMAL_TARGET_EXPORTS) \[+ ENDIF raw_cxx +] (cd $(TARGET_SUBDIR)/[+module+] && \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ - IF raw_cxx - +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ - ENDIF raw_cxx - +] [+extra_make_flags+] check) + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+extra_make_flags+] check) [+ ENDIF no_check +] @endif target-[+module+] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-12-17 19:20 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-12-11 21:39 PATCH: Remove AM_MAKEFLAGS from libsanitizer H.J. Lu 2012-12-12 8:49 ` Paolo Bonzini 2012-12-12 14:42 ` H.J. Lu 2012-12-12 14:47 ` Paolo Bonzini 2012-12-12 17:30 ` H.J. Lu 2012-12-12 18:01 ` Paolo Bonzini 2012-12-12 18:11 ` H.J. Lu 2012-12-12 22:13 ` Paolo Bonzini 2012-12-12 23:01 ` H.J. Lu 2012-12-12 23:23 ` H.J. Lu 2012-12-13 7:32 ` Paolo Bonzini 2012-12-17 19:20 ` H.J. Lu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).