[RFC] devtools/test-meson-builds: use cross file for 32bit build

Message ID 20240904140313.333098-1-bruce.richardson@intel.com (mailing list archive)
State Superseded
Delegated to: Thomas Monjalon
Headers
Series [RFC] devtools/test-meson-builds: use cross file for 32bit build |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-sample-apps-testing success Testing PASS

Commit Message

Bruce Richardson Sept. 4, 2024, 2:03 p.m. UTC
When testing the 32-bit x86 build on debian or ubuntu linux systems, use
the cross-file rather than using args and pkgconfig environment
variable. The advantage of using the cross-file is that the paths are
saved across runs. While the '-m32' args settings are preserved in the
current setup, the PKG_CONFIG_LIBDIR value from environment is not,
which can cause rebuilds of the build-32b directory to fail if meson
needs to do a reconfiguration first.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 devtools/test-meson-builds.sh | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
  

Comments

Bruce Richardson Sept. 6, 2024, 4:14 p.m. UTC | #1
On Wed, Sep 04, 2024 at 03:03:02PM +0100, Bruce Richardson wrote:
> When testing the 32-bit x86 build on debian or ubuntu linux systems, use
> the cross-file rather than using args and pkgconfig environment
> variable. The advantage of using the cross-file is that the paths are
> saved across runs. While the '-m32' args settings are preserved in the
> current setup, the PKG_CONFIG_LIBDIR value from environment is not,
> which can cause rebuilds of the build-32b directory to fail if meson
> needs to do a reconfiguration first.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Merged this RFC, with more complete implementation, into series[1]

/Bruce

[1] https://patches.dpdk.org/project/dpdk/list/?series=32933
  

Patch

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index d71bb1ded0..1d9d04ce7c 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -253,21 +253,24 @@  build build-x86-generic cc skipABI -Dcheck_includes=true \
 
 # 32-bit with default compiler
 if check_cc_flags '-m32' ; then
+	target_override='i386-pc-linux-gnu'
 	if [ -d '/usr/lib/i386-linux-gnu' ] ; then
-		# 32-bit pkgconfig on Debian/Ubuntu
-		export PKG_CONFIG_LIBDIR='/usr/lib/i386-linux-gnu/pkgconfig'
+		# 32-bit pkgconfig on Debian/Ubuntu, use cross file
+		build build-32b $srcdir/config/x86/cross-debian-32bit ABI
 	elif [ -d '/usr/lib32' ] ; then
 		# 32-bit pkgconfig on Arch
 		export PKG_CONFIG_LIBDIR='/usr/lib32/pkgconfig'
+		build build-32b cc ABI -Dc_args='-m32' -Dc_link_args='-m32' \
+				-Dcpp_args='-m32' -Dcpp_link_args='-m32'
+		unset PKG_CONFIG_LIBDIR
 	else
 		# 32-bit pkgconfig on RHEL/Fedora (lib vs lib64)
 		export PKG_CONFIG_LIBDIR='/usr/lib/pkgconfig'
+		build build-32b cc ABI -Dc_args='-m32' -Dc_link_args='-m32' \
+				-Dcpp_args='-m32' -Dcpp_link_args='-m32'
+		unset PKG_CONFIG_LIBDIR
 	fi
-	target_override='i386-pc-linux-gnu'
-	build build-32b cc ABI -Dc_args='-m32' -Dc_link_args='-m32' \
-			-Dcpp_args='-m32' -Dcpp_link_args='-m32'
 	target_override=
-	unset PKG_CONFIG_LIBDIR
 fi
 
 # x86 MinGW