package/meson: fix cpu_family format
PATCH v3 1/1 package/meson: fix cpu_family format
From: James Hilliard <[email protected]>
Meson expects the cpu_family to be in a specific format for cross compilation, otherwise packages that use cpu_family detection may fail to build.
We also need to set needs_exe_wrapper = true to ensure that meson won't try and execute test binaries.
---
Changes v1 -> v2:
- change riscv to 64 bit
Changes v2 -> v3:
- combine HOST_MESON_TARGET_CPU_FAMILY archs
--- package/meson/cross-compilation.conf.in | 1 + package/meson/meson.mk | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-)
package/meson/cross-compilation.conf.in +1 -0
@@ -11,6 +11,7 @@ strip = '@TARGET_CROSS at strip' pkgconfig = '@HOST_DIR@/usr/bin/pkg-config' [properties] +needs_exe_wrapper = true c_args = [@TARGET_CFLAGS@] c_link_args = [@TARGET_LDFLAGS@] cpp_args = [@TARGET_CXXFLAGS@]
package/meson/meson.mk +30 -1
@@ -16,6 +16,35 @@ HOST_MESON_NEEDS_HOST_PYTHON = python3 HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN)) HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) +# https://mesonbuild.com/Reference-tables.html#cpu-families +ifeq ($(BR2_arcle)$(BR2_arceb),y) +HOST_MESON_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +HOST_MESON_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +HOST_MESON_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +HOST_MESON_TARGET_CPU_FAMILY = x86 +else ifeq ($(BR2_mips)$(BR2_mipsel),y) +HOST_MESON_TARGET_CPU_FAMILY = mips +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +HOST_MESON_TARGET_CPU_FAMILY = mips64 +else ifeq ($(BR2_powerpc),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc +else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc64 +else ifeq ($(BR2_riscv),y) +HOST_MESON_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_sparc),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc +else ifeq ($(BR2_sparc64),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc64 +else ifeq ($(BR2_x86_64),y) +HOST_MESON_TARGET_CPU_FAMILY = x86_64 +else +HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) +endif + HOST_MESON_SED_CFLAGS = $(if $(TARGET_CFLAGS),`printf '"%s"$(comma) ' $(TARGET_CFLAGS)`) HOST_MESON_SED_LDFLAGS = $(if $(TARGET_LDFLAGS),`printf '"%s"$(comma) ' $(TARGET_LDFLAGS)`) HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARGET_CXXFLAGS)`)
@@ -23,7 +52,7 @@ HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARG define HOST_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ - -e "s%@TARGET_ARCH@%$(ARCH)%g" \ + -e "s%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g" \ -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \ -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \ -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)%g" \
Signature · 1 line
2.7.4
PATCH v3 1/1 package/meson: fix cpu_family format
James, All,
On 2018-12-17 07:14 +0800, james.hilliard1 at gmail.com spake thusly:
Quoted 5 lines
From: James Hilliard <[email protected]>
Meson expects the
cpu_familyto be in a specific format for cross compilation, otherwise packages that usecpu_familydetection may fail to build.
As explained in:
https://mesonbuild.com/Reference-tables.html#cpu-families
Quoted 2 lines
We also need to set
needs_exe_wrapper= true to ensure that meson won't try and execute test binaries.
As explained in:
https://mesonbuild.com/Cross-compilation.html
Regards,
Yann E. MORIN.
Quoted 80 lines
Signed-off-by James Hilliard <[email protected]>---
Changes v1 -> v2:
- change riscv to 64 bitChanges v2 -> v3:
- combineHOST_MESON_TARGET_CPU_FAMILYarchs--- package/meson/cross-compilation.conf.in | 1 + package/meson/meson.mk | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-)package/meson/cross-compilation.conf.in +1
-0@@ -11,6 +11,7 @@ strip = '@TARGET_CROSS at strip' pkgconfig = '@HOST_DIR@/usr/bin/pkg-config' [properties] +needs_exe_wrapper = true c_args = [@TARGET_CFLAGS@] c_link_args = [@TARGET_LDFLAGS@] cpp_args = [@TARGET_CXXFLAGS@]package/meson/meson.mk +30
-1@@ -16,6 +16,35 @@ HOST_MESON_NEEDS_HOST_PYTHON = python3 HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN)) HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) +# https://mesonbuild.com/Reference-tables.html#cpu-families +ifeq ($(BR2_arcle)$(BR2_arceb),y) +HOST_MESON_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +HOST_MESON_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +HOST_MESON_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +HOST_MESON_TARGET_CPU_FAMILY = x86 +else ifeq ($(BR2_mips)$(BR2_mipsel),y) +HOST_MESON_TARGET_CPU_FAMILY = mips +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +HOST_MESON_TARGET_CPU_FAMILY = mips64 +else ifeq ($(BR2_powerpc),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc +else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc64 +else ifeq ($(BR2_riscv),y) +HOST_MESON_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_sparc),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc +else ifeq ($(BR2_sparc64),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc64 +else ifeq ($(BR2_x86_64),y) +HOST_MESON_TARGET_CPU_FAMILY = x86_64 +else +HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) +endif + HOST_MESON_SED_CFLAGS = $(if $(TARGET_CFLAGS),`printf '"%s"$(comma) ' $(TARGET_CFLAGS)`) HOST_MESON_SED_LDFLAGS = $(if $(TARGET_LDFLAGS),`printf '"%s"$(comma) ' $(TARGET_LDFLAGS)`) HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARGET_CXXFLAGS)`)@@ -23,7 +52,7 @@ HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARG define HOST_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ - -e "s%@TARGET_ARCH@%$(ARCH)%g" \ + -e "s%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g" \ -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \ -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \ -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)%g" \Signature · 6 lines
2.7.4 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v3 1/1 package/meson: fix cpu_family format
James, All,
On 2018-12-25 19:56 +0100, Yann E. MORIN spake thusly:
Quoted 10 lines
On 2018-12-17 07:14 +0800, james.hilliard1 at gmail.com spake thusly:
Quoted 5 lines
From: James Hilliard <[email protected]>
Meson expects the
cpu_familyto be in a specific format for cross compilation, otherwise packages that usecpu_familydetection may fail to build.As explained in:
https://mesonbuild.com/Reference-tables.html#cpu-families
Quoted 7 lines
Quoted 2 lines
We also need to set
needs_exe_wrapper= true to ensure that meson won't try and execute test binaries.As explained in:
https://mesonbuild.com/Cross-compilation.htmlReviewed-by "Yann E. MORIN" <[email protected]>
Well, now I think this should have really been two patches, like Thomas initially suggested:
1- prevent meson from ever thinking it can run what it builds, and so
add needs_exe_wrapper on its own, because we may already have that situation today (e.g. x86_64 targetting x86_64)
2- add the CPU fix on a second patch, which can safely be applied now
that meson will never try to run what it builds.
Besides, you forgot, in your systemd-boot series, to specify that this patch was required first. But I'll reply further in that series...
Regards,
Yann E. MORIN.
Quoted 95 lines
Regards,
Yann E. MORIN.Quoted 80 lines
Signed-off-by James Hilliard <[email protected]>---
Changes v1 -> v2:
- change riscv to 64 bitChanges v2 -> v3:
- combineHOST_MESON_TARGET_CPU_FAMILYarchs--- package/meson/cross-compilation.conf.in | 1 + package/meson/meson.mk | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-)package/meson/cross-compilation.conf.in +1
-0@@ -11,6 +11,7 @@ strip = '@TARGET_CROSS at strip' pkgconfig = '@HOST_DIR@/usr/bin/pkg-config' [properties] +needs_exe_wrapper = true c_args = [@TARGET_CFLAGS@] c_link_args = [@TARGET_LDFLAGS@] cpp_args = [@TARGET_CXXFLAGS@]package/meson/meson.mk +30
-1@@ -16,6 +16,35 @@ HOST_MESON_NEEDS_HOST_PYTHON = python3 HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN)) HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) +# https://mesonbuild.com/Reference-tables.html#cpu-families +ifeq ($(BR2_arcle)$(BR2_arceb),y) +HOST_MESON_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +HOST_MESON_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +HOST_MESON_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +HOST_MESON_TARGET_CPU_FAMILY = x86 +else ifeq ($(BR2_mips)$(BR2_mipsel),y) +HOST_MESON_TARGET_CPU_FAMILY = mips +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +HOST_MESON_TARGET_CPU_FAMILY = mips64 +else ifeq ($(BR2_powerpc),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc +else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc64 +else ifeq ($(BR2_riscv),y) +HOST_MESON_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_sparc),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc +else ifeq ($(BR2_sparc64),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc64 +else ifeq ($(BR2_x86_64),y) +HOST_MESON_TARGET_CPU_FAMILY = x86_64 +else +HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) +endif + HOST_MESON_SED_CFLAGS = $(if $(TARGET_CFLAGS),`printf '"%s"$(comma) ' $(TARGET_CFLAGS)`) HOST_MESON_SED_LDFLAGS = $(if $(TARGET_LDFLAGS),`printf '"%s"$(comma) ' $(TARGET_LDFLAGS)`) HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARGET_CXXFLAGS)`)@@ -23,7 +52,7 @@ HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARG define HOST_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ - -e "s%@TARGET_ARCH@%$(ARCH)%g" \ + -e "s%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g" \ -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \ -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \ -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)%g" \Signature · 6 lines
2.7.4 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildrootSignature · 10 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v3 1/1 package/meson: fix cpu_family format
Quoted 20 lines · Yann E. MORIN
James, All,
On 2018-12-25 19:56 +0100, Yann E. MORIN spake thusly:
Quoted 16 lines
On 2018-12-17 07:14 +0800, james.hilliard1 at gmail.com spake thusly:
Quoted 5 lines
From: James Hilliard <[email protected]>
Meson expects the
cpu_familyto be in a specific format for cross compilation, otherwise packages that usecpu_familydetection may fail to build.As explained in:
https://mesonbuild.com/Reference-tables.html#cpu-familiesQuoted 2 lines
We also need to set
needs_exe_wrapper= true to ensure that meson won't try and execute test binaries.As explained in:
https://mesonbuild.com/Cross-compilation.html
Quoted 8 lines
Quoted 1 line
Reviewed-by "Yann E. MORIN" <[email protected]>Well, now I think this should have really been two patches, like Thomas initially suggested:
1- prevent meson from ever thinking it can run what it builds, and so
addneeds_exe_wrapperon its own, because we may already have that situation today (e.g.x86_64targettingx86_64)
We actually never get that issue right now AFAICT because we are setting the wrong cpu_family so the host target comparison always fails to match.
Quoted 113 lines
2- add the CPU fix on a second patch, which can safely be applied now
that meson will never try to run what it builds.Besides, you forgot, in your systemd-boot series, to specify that this patch was required first. But I'll reply further in that series...
Regards,
Yann E. MORIN.Quoted 90 lines
Regards,
Yann E. MORIN.Quoted 76 lines
Signed-off-by James Hilliard <[email protected]>---
Changes v1 -> v2:
- change riscv to 64 bitChanges v2 -> v3:
- combineHOST_MESON_TARGET_CPU_FAMILYarchs--- package/meson/cross-compilation.conf.in | 1 + package/meson/meson.mk | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-)package/meson/cross-compilation.conf.in +1
-0@@ -11,6 +11,7 @@ strip = '@TARGET_CROSS at strip' pkgconfig = '@HOST_DIR@/usr/bin/pkg-config' [properties] +needs_exe_wrapper = true c_args = [@TARGET_CFLAGS@] c_link_args = [@TARGET_LDFLAGS@] cpp_args = [@TARGET_CXXFLAGS@]package/meson/meson.mk +30
-2@@ -16,6 +16,35 @@ HOST_MESON_NEEDS_HOST_PYTHON = python3 HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN)) HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) +# https://mesonbuild.com/Reference-tables.html#cpu-families +ifeq ($(BR2_arcle)$(BR2_arceb),y) +HOST_MESON_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +HOST_MESON_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +HOST_MESON_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +HOST_MESON_TARGET_CPU_FAMILY = x86 +else ifeq ($(BR2_mips)$(BR2_mipsel),y) +HOST_MESON_TARGET_CPU_FAMILY = mips +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +HOST_MESON_TARGET_CPU_FAMILY = mips64 +else ifeq ($(BR2_powerpc),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc +else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) +HOST_MESON_TARGET_CPU_FAMILY = ppc64 +else ifeq ($(BR2_riscv),y) +HOST_MESON_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_sparc),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc +else ifeq ($(BR2_sparc64),y) +HOST_MESON_TARGET_CPU_FAMILY = sparc64 +else ifeq ($(BR2_x86_64),y) +HOST_MESON_TARGET_CPU_FAMILY = x86_64 +else +HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) +endif + HOST_MESON_SED_CFLAGS = $(if $(TARGET_CFLAGS),`printf '"%s"$(comma) ' $(TARGET_CFLAGS)`) HOST_MESON_SED_LDFLAGS = $(if $(TARGET_LDFLAGS),`printf '"%s"$(comma) ' $(TARGET_LDFLAGS)`) HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARGET_CXXFLAGS)`)@@ -23,7 +52,7 @@ HOST_MESON_SED_CXXFLAGS = $(if $(TARGET_CXXFLAGS),`printf '"%s"$(comma) ' $(TARG define HOST_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ - -e "s%@TARGET_ARCH@%$(ARCH)%g" \ + -e "s%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g" \ -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \ -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \ -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)%g" \ --2.7.4
Quoted 4 lines
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.--------------------.| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |Quoted 5 lines
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.--------------------.| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |'------------------------------^-------^------------------^--------------------'
PATCH v3 1/1 package/meson: fix cpu_family format
James, All,
On 2018-12-26 02:34 -0600, James Hilliard spake thusly:
Quoted 23 lines · Yann E. MORIN
Quoted 22 lines
On 2018-12-25 19:56 +0100, Yann E. MORIN spake thusly:
Quoted 10 lines
On 2018-12-17 07:14 +0800, james.hilliard1 at gmail.com spake thusly:
Quoted 5 lines
From: James Hilliard <[email protected]>
Meson expects the
cpu_familyto be in a specific format for cross compilation, otherwise packages that usecpu_familydetection may fail to build.As explained in:
https://mesonbuild.com/Reference-tables.html#cpu-familiesQuoted 7 lines
Quoted 2 lines
We also need to set
needs_exe_wrapper= true to ensure that meson won't try and execute test binaries.As explained in:
https://mesonbuild.com/Cross-compilation.htmlReviewed-by "Yann E. MORIN" <[email protected]>Well, now I think this should have really been two patches, like Thomas initially suggested:
Quoted 6 lines
Quoted 3 lines
1- prevent meson from ever thinking it can run what it builds, and so
addneeds_exe_wrapperon its own, because we may already have that situation today (e.g.x86_64targettingx86_64)We actually never get that issue right now AFAICT because we are setting the wrong
cpu_familyso the host target comparison always fails to match.
But for x86_64, we currently do pass the correct value 'x86_64', so the comparison does not fail when both the host and target are x86_64.
And since meson only uses the CPU familly name and the 'system' name to decide, and that the 'system' name is linux in both cases, then we do have the issue currently, even if it never got triggered yet.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v3 1/1 package/meson: fix cpu_family format
Quoted 30 lines · Yann E. MORIN
James, All,
On 2018-12-26 02:34 -0600, James Hilliard spake thusly:
Quoted 26 lines · Yann E. MORIN
Quoted 25 lines
On 2018-12-25 19:56 +0100, Yann E. MORIN spake thusly:
Quoted 10 lines
On 2018-12-17 07:14 +0800, james.hilliard1 at gmail.com spake thusly:
Quoted 5 lines
From: James Hilliard <[email protected]>
Meson expects the
cpu_familyto be in a specific format for cross compilation, otherwise packages that usecpu_familydetection may fail to build.As explained in:
https://mesonbuild.com/Reference-tables.html#cpu-familiesQuoted 7 lines
Quoted 2 lines
We also need to set
needs_exe_wrapper= true to ensure that meson won't try and execute test binaries.As explained in:
https://mesonbuild.com/Cross-compilation.htmlReviewed-by "Yann E. MORIN" <[email protected]>Well, now I think this should have really been two patches, like Thomas initially suggested:
1- prevent meson from ever thinking it can run what it builds, and so
addneeds_exe_wrapperon its own, because we may already have that situation today (e.g.x86_64targettingx86_64)
Quoted 6 lines
Quoted 3 lines
We actually never get that issue right now AFAICT because we are setting the wrong
cpu_familyso the host target comparison always fails to match.But for
x86_64, we currently do pass the correct value 'x86_64', so the comparison does not fail when both the host and target arex86_64.
Ah, you're right, it's not an issue currently for x86_64 in that case since the tests do succeed for x86_64(I tested this just now), the failure happens for 32 bit x86 since meson incorrectly thinks it can run x86 test binaries on x86_64. So fixing cpu_family without the exe wrapper fix probably only causes regular x86 builds to fail. The x86 cpu_family was definitely incorrect so that's why the comparison would fail and the build would succeed.
Quoted 15 lines
And since meson only uses the CPU familly name and the 'system' name to decide, and that the 'system' name is linux in both cases, then we do have the issue currently, even if it never got triggered yet.
Regards,
Yann E. MORIN.--
.-----------------.--------------------.------------------.--------------------.| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |'------------------------------^-------^------------------^--------------------'