[v2] devtools/test-meson-build: use shared libraries to save space
Checks
Commit Message
For usability, the default build type in meson is static, so that
binaries can be run from the build directory easily. However, static
builds take more space, so for build-testing purposes default to using
shared builds where possible.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
With this patch applied on Debian 9 (Stretch) the space used by a DPDK
checkout and test builds drops from ~2.5G to <1G. [Including space used
by cross compiles]
V2: fix typo in commit message
---
devtools/test-meson-builds.sh | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
Comments
On Fri, 2018-09-14 at 17:17 +0100, Bruce Richardson wrote:
> For usability, the default build type in meson is static, so that
> binaries can be run from the build directory easily. However, static
> builds take more space, so for build-testing purposes default to
> using
> shared builds where possible.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> With this patch applied on Debian 9 (Stretch) the space used by a
> DPDK
> checkout and test builds drops from ~2.5G to <1G. [Including space
> used
> by cross compiles]
>
> V2: fix typo in commit message
> ---
> devtools/test-meson-builds.sh | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
Acked-by: Luca Boccassi <bluca@debian.org>
14/09/2018 18:21, Luca Boccassi:
> On Fri, 2018-09-14 at 17:17 +0100, Bruce Richardson wrote:
> > For usability, the default build type in meson is static, so that
> > binaries can be run from the build directory easily. However, static
> > builds take more space, so for build-testing purposes default to
> > using
> > shared builds where possible.
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> > With this patch applied on Debian 9 (Stretch) the space used by a
> > DPDK
> > checkout and test builds drops from ~2.5G to <1G. [Including space
> > used
> > by cross compiles]
> >
> > V2: fix typo in commit message
> > ---
> > devtools/test-meson-builds.sh | 9 +++++----
> > 1 file changed, 5 insertions(+), 4 deletions(-)
>
> Acked-by: Luca Boccassi <bluca@debian.org>
Applied (without 32-bit part), thanks
@@ -9,6 +9,7 @@
srcdir=$(dirname $(readlink -m $0))/..
MESON=${MESON:-meson}
+use_shared="--default-library=shared"
if command -v ninja >/dev/null 2>&1 ; then
ninja_cmd=ninja
@@ -42,23 +43,23 @@ for c in gcc clang ; do
done
# test compilation with minimal x86 instruction set
-build build-x86-default -Dmachine=nehalem
+build build-x86-default -Dmachine=nehalem $use_shared
# test 32-bit x86 compilation
# NOTE: meson >0.47 recommended for best results
-build build-i686 --cross-file config/x86/i686_sse4_linuxapp_gcc
+build build-i686 --cross-file config/x86/i686_sse4_linuxapp_gcc $use_shared
# enable cross compilation if gcc cross-compiler is found
c=aarch64-linux-gnu-gcc
if command -v $c >/dev/null 2>&1 ; then
# compile the general v8a also for clang to increase coverage
export CC="ccache clang"
- build build-arm64-host-clang --cross-file \
+ build build-arm64-host-clang $use_shared --cross-file \
config/arm/arm64_armv8_linuxapp_gcc
for f in config/arm/arm*gcc ; do
export CC="ccache gcc"
build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) \
- --cross-file $f
+ --cross-file $f $use_shared
done
fi