[vlc-devel] [PATCH] contrib: Unexport env variables when cross-compiling

Marvin Scholz epirat07 at gmail.com
Thu Jun 6 15:01:23 CEST 2019



On 6 Jun 2019, at 14:55, Steve Lhomme wrote:

> On 2019-06-06 14:51, Marvin Scholz wrote:
>> On 6 Jun 2019, at 14:31, Steve Lhomme wrote:
>>
>>> On 2019-06-06 13:47, Marvin Scholz wrote:
>>>> Meson always interprets these env variables for the build compiler,
>>>
>>> This does not seem like a bug. The ones found in the cross compile 
>>> file are for the target and the environment ones are assumed to be 
>>> for the current host to compile native tools. I suppose that's the 
>>> intention.
>>
>> Yes it is, this is not a bug in meson, this is by design this way.
>>
>>>
>>> This is not how autotools does it though. There are CC_FOR_BUILD 
>>> (and other variants) to achieve that. And I think CMake has its own 
>>> probe to find a native compiler on the system.
>>>
>>> Is there a way to set the native compiler in the meson crossfile ?
>>
>> No, the cross file is just for the cross stuff. Meson correctly 
>> detects the native compiler though
>
> So what are you trying to solve if the cross compilation uses the 
> right stuff and the native compilation uses the right stuff ?

Thats the whole point of this patch, without it meson would try to use 
the cross compiler specified by CC, etc. as
native compiler, and use all the flags meant for the cross compiler too. 
So essentially doing the wrong thing.
This is not a huge issue currently, because as I said none of our deps 
build any tools for the build machine using
meson right now, but as meson still checks the native compiler, it might 
lead to some weirdness and meson warning
about the fact that the wrong compiler seems to be used.

>
> I fear unsetting some common values we had in the Makefile might break 
> some contrib compilation where it's not passed properly (or rather it 
> should be inherited in the first place)

Then those are anyway not built as expected already, as the makfile sets 
additional flags and does not export them.

>
>> so I do not think thats necessary currently. Afaik none of the 
>> dependencies we have that use meson
>> actually builds any native tools right now.
>>
>>>
>>>> even when cross-compiling, therefore we need to unset them,
>>>> they are anyway included in HOSTVARS already for other build 
>>>> systems.
>>>> ---
>>>>   contrib/src/main.mak | 22 +++++++++++++++++++---
>>>>   1 file changed, 19 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/contrib/src/main.mak b/contrib/src/main.mak
>>>> index 8944a5a1d7..c7a45964cb 100644
>>>> --- a/contrib/src/main.mak
>>>> +++ b/contrib/src/main.mak
>>>> @@ -329,9 +329,25 @@ HOSTVARS_PIC := $(HOSTTOOLS) \
>>>>       CXXFLAGS="$(CXXFLAGS) $(PIC)" \
>>>>       LDFLAGS="$(LDFLAGS)"
>>>>  -# Keep a version of HOSTVARS without the tools, since meson 
>>>> requires the
>>>> -# tools variables to point to the native ones
>>>> -HOSTVARS_MESON := $(HOSTVARS)
>>>> +# For cross-compilation with meson, we need to unset compiler and 
>>>> flags
>>>> +# env variables as meson will always use them for the BUILD 
>>>> machine compiler!
>>>> +ifdef HAVE_CROSS_COMPILE
>>>> +HOSTVARS_MESON := PATH="$(PREFIX)/bin:$(PATH)"
>>>> +unexport CC
>>>> +unexport CXX
>>>> +unexport LD
>>>> +unexport AR
>>>> +unexport CCAS
>>>> +unexport RANLIB
>>>> +unexport STRIP
>>>> +unexport CPPFLAGS
>>>> +unexport CFLAGS
>>>> +unexport CXXFLAGS
>>>> +unexport LDFLAGS
>>>> +else
>>>> +HOSTVARS_MESON := $(HOSTTOOLS) $(HOSTVARS)
>>>> +endif
>>>> +
>>>>   HOSTVARS := $(HOSTTOOLS) $(HOSTVARS)
>>>>    download_git = \
>>>> -- 
>>>> 2.20.1 (Apple Git-117)
>>>>
>>>> _______________________________________________
>>>> vlc-devel mailing list
>>>> To unsubscribe or modify your subscription options:
>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list