public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* 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).