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

Marvin Scholz epirat07 at gmail.com
Mon Sep 30 17:50:35 CEST 2019


I am proposing this patch again, I know that I did a while ago and
some people had some concerns about this.
But without this patch cross compilation of contribs effectively
fails unless the build system can run the cross compiled binaries,
as the cross compilation flags are incorrectly used for the build
compiler too. Even though we do not build native tools in the
affected contribs, meson does check if the compiler works and
of course considers this not to be the case when the build machine
compiler can not create binaries that run on the build machine.

Without this patch effectively cross compilation of contribs for iOS
and probably Android is broken.

Regarding the concern that it might break some contribs that do not
correctly use the HOSTVARS to prepends the env variables to the
command, I did not found any that would be affected by this.

I compiled the contribs with this patch applied, for iOS and
Windows without errors. This patch does not affect non-cross
compilation at all.

On 30 Sep 2019, at 17:43, Marvin Scholz wrote:

> Meson always interprets these env variables for the build compiler,
> 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 | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/contrib/src/main.mak b/contrib/src/main.mak
> index 7eef7b85b6..b07b9a0855 100644
> --- a/contrib/src/main.mak
> +++ b/contrib/src/main.mak
> @@ -314,6 +314,19 @@ MESON_HOST_FLAGS := \
>  	LDFLAGS="$(LDFLAGS)"
>  ifdef HAVE_CROSS_COMPILE
>  HOSTVARS_MESON := PATH="$(PREFIX)/bin:$(PATH)"
> +# 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!
> +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) $(MESON_HOST_FLAGS)
>  endif
> -- 
> 2.20.1 (Apple Git-117)


More information about the vlc-devel mailing list