This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Remove AM_MAKEFLAGS from libsanitizer
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