[dpdk-dev] [PATCH 1/1] devtools: avoid installing static binaries

Bruce Richardson bruce.richardson at intel.com
Mon Dec 7 18:47:54 CET 2020


On Mon, Dec 07, 2020 at 06:33:19PM +0100, Thomas Monjalon wrote:
> When testing compilation and checking ABI compatibility,
> there is no real need of static binaries eating disks.
> The static linkage of applications are tested with GCC and Clang,
> plus some examples are statically linked.
> The after-installation build test is limited to "helloworld" example.
> Note the meson static build test was already limited to "l3fwd" example.
> 
> The ABI compatibility is checked on shared libraries, so no need
> running this test a second time on builds intended for static linking.
> However, limiting ABI check to "shared builds" means all test cases
> must have a "shared build" occurence.
> As a consequence the 32-bit build test is switched to shared linking.
> 
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
>  devtools/test-meson-builds.sh | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)

I think this might be better as two patches - one for the ABI check changes
and a second for the example build changes with installed DPDK.

> 
> diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
> index 7280b7a93d..ed44d4ffb1 100755
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -166,6 +166,9 @@ build () # <directory> <target compiler | cross file> <meson options>
>  	config $srcdir $builds_dir/$targetdir $cross --werror $*
>  	compile $builds_dir/$targetdir
>  	if [ -n "$DPDK_ABI_REF_VERSION" ]; then
> +		if echo $* | grep -qw -- '--default-library=static' ; then
> +			return # skip ABI check for static build
> +		fi
>  		abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION
>  		if [ ! -d $abirefdir/$targetdir ]; then
>  			# clone current sources
> @@ -230,7 +233,7 @@ if check_cc_flags '-m32' ; then
>  		export PKG_CONFIG_LIBDIR='/usr/lib/pkgconfig'
>  	fi
>  	target_override='i386-pc-linux-gnu'
> -	build build-32b cc -Dc_args='-m32' -Dc_link_args='-m32'
> +	build build-32b cc -Dc_args='-m32' -Dc_link_args='-m32' $use_shared
>  	target_override=
>  	unset PKG_CONFIG_LIBDIR
>  fi
> @@ -274,7 +277,8 @@ if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then
>  	export PKGCONF="pkg-config --define-prefix"
>  	for example in $examples; do
>  		echo "## Building $example"
> +		[ $example = helloworld ] && static=static || static= # save disk space
>  		$MAKE -C $DESTDIR/usr/local/share/dpdk/examples/$example \
> -			clean shared static >&$veryverbose
> +			clean shared $static >&$veryverbose
>  	done
>  fi

Just wonder are we likely to miss things with this change? Would changing
the order to do a clean at the end to free back up the disk space not
achieve much the same result while still saving disk space?


More information about the dev mailing list