Static builds can take a lot of space, so reduce the number of examples built when testing those static builds. As makefile-based build is close to end of life, completely skip examples in case of static linkage with make. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- devtools/test-build.sh | 1 + devtools/test-meson-builds.sh | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/devtools/test-build.sh b/devtools/test-build.sh index e6e40588c6..a298115002 100755 --- a/devtools/test-build.sh +++ b/devtools/test-build.sh @@ -257,6 +257,7 @@ for conf in $configs ; do echo "================== Build examples for $conf" export RTE_SDK=$(readlink -f $dir)/install/share/dpdk ln -sTf $(pwd)/lib $RTE_SDK/lib # workaround for vm_power_manager + grep -q 'SHARED_LIB=n' $dir/.config || # skip examples with static libs ${MAKE} -j$J -sC examples \ EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose \ O=$(readlink -f $dir)/examples diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index c1ff2bb50a..b1c0380809 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -74,7 +74,12 @@ config () # <dir> <builddir> <meson options> return fi options= - options="$options --werror -Dexamples=all" + options="$options --werror" + if echo $* | grep -qw -- '--default-library=static' ; then + options="$options -Dexamples=l3fwd" + else + options="$options -Dexamples=all" + fi options="$options --buildtype=debugoptimized" for option in $DPDK_MESON_OPTIONS ; do options="$options -D$option" -- 2.26.0
On Sat, Apr 18, 2020 at 3:20 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> Static builds can take a lot of space, so reduce the number of examples
> built when testing those static builds.
>
> As makefile-based build is close to end of life, completely skip examples
> in case of static linkage with make.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> devtools/test-build.sh | 1 +
> devtools/test-meson-builds.sh | 7 ++++++-
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/devtools/test-build.sh b/devtools/test-build.sh
> index e6e40588c6..a298115002 100755
> --- a/devtools/test-build.sh
> +++ b/devtools/test-build.sh
> @@ -257,6 +257,7 @@ for conf in $configs ; do
> echo "================== Build examples for $conf"
> export RTE_SDK=$(readlink -f $dir)/install/share/dpdk
> ln -sTf $(pwd)/lib $RTE_SDK/lib # workaround for vm_power_manager
> + grep -q 'SHARED_LIB=n' $dir/.config || # skip examples with static libs
> ${MAKE} -j$J -sC examples \
> EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose \
> O=$(readlink -f $dir)/examples
> diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
> index c1ff2bb50a..b1c0380809 100755
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -74,7 +74,12 @@ config () # <dir> <builddir> <meson options>
> return
> fi
> options=
> - options="$options --werror -Dexamples=all"
> + options="$options --werror"
> + if echo $* | grep -qw -- '--default-library=static' ; then
> + options="$options -Dexamples=l3fwd"
> + else
> + options="$options -Dexamples=all"
> + fi
Ok, this is hypothetical, but this would not work when no
default-library option is passed (static is the default value).
How about inverting the check and look for default-library=shared ?
Besides, you won't catch already configured directories.
While for make environments, this change will have an effect right away.
--
David Marchand
19/04/2020 09:08, David Marchand: > On Sat, Apr 18, 2020 at 3:20 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > --- a/devtools/test-meson-builds.sh > > +++ b/devtools/test-meson-builds.sh > > - options="$options --werror -Dexamples=all" > > + options="$options --werror" > > + if echo $* | grep -qw -- '--default-library=static' ; then > > + options="$options -Dexamples=l3fwd" > > + else > > + options="$options -Dexamples=all" > > + fi > > Ok, this is hypothetical, but this would not work when no > default-library option is passed (static is the default value). No, with meson, shared is the default: https://mesonbuild.com/Builtin-options.html#core-options > How about inverting the check and look for default-library=shared ? > > Besides, you won't catch already configured directories. > While for make environments, this change will have an effect right away. Yes, I think it is OK to keep old configuration in meson builds until the build directories are trashed.
19/04/2020 16:29, Thomas Monjalon: > 19/04/2020 09:08, David Marchand: > > On Sat, Apr 18, 2020 at 3:20 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > > --- a/devtools/test-meson-builds.sh > > > +++ b/devtools/test-meson-builds.sh > > > - options="$options --werror -Dexamples=all" > > > + options="$options --werror" > > > + if echo $* | grep -qw -- '--default-library=static' ; then > > > + options="$options -Dexamples=l3fwd" > > > + else > > > + options="$options -Dexamples=all" > > > + fi > > > > Ok, this is hypothetical, but this would not work when no > > default-library option is passed (static is the default value). > > No, with meson, shared is the default: > https://mesonbuild.com/Builtin-options.html#core-options Thanks to an offline explanation, it appears I'm wrong. The default value is changed in our root meson.build file: default_options: ['buildtype=release', 'default_library=static'], > > How about inverting the check and look for default-library=shared ? Yes I will invert the check in v2. > > Besides, you won't catch already configured directories. > > While for make environments, this change will have an effect right away. > > Yes, I think it is OK to keep old configuration in meson builds > until the build directories are trashed.
Static builds can take a lot of space, so reduce the number of examples built when testing those static builds. As makefile-based build is close to end of life, completely skip examples in case of static linkage with make. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- v2: invert logic with meson because static is the default --- devtools/test-build.sh | 1 + devtools/test-meson-builds.sh | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/devtools/test-build.sh b/devtools/test-build.sh index e6e40588c6..a298115002 100755 --- a/devtools/test-build.sh +++ b/devtools/test-build.sh @@ -257,6 +257,7 @@ for conf in $configs ; do echo "================== Build examples for $conf" export RTE_SDK=$(readlink -f $dir)/install/share/dpdk ln -sTf $(pwd)/lib $RTE_SDK/lib # workaround for vm_power_manager + grep -q 'SHARED_LIB=n' $dir/.config || # skip examples with static libs ${MAKE} -j$J -sC examples \ EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose \ O=$(readlink -f $dir)/examples diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index c1ff2bb50a..e8df017596 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -74,7 +74,12 @@ config () # <dir> <builddir> <meson options> return fi options= - options="$options --werror -Dexamples=all" + options="$options --werror" + if echo $* | grep -qw -- '--default-library=shared' ; then + options="$options -Dexamples=all" + else + options="$options -Dexamples=l3fwd" # save disk space + fi options="$options --buildtype=debugoptimized" for option in $DPDK_MESON_OPTIONS ; do options="$options -D$option" -- 2.26.0
On Tue, Apr 21, 2020 at 2:31 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> Static builds can take a lot of space, so reduce the number of examples
> built when testing those static builds.
>
> As makefile-based build is close to end of life, completely skip examples
> in case of static linkage with make.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
--
David Marchand
21/04/2020 08:59, David Marchand:
> On Tue, Apr 21, 2020 at 2:31 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > Static builds can take a lot of space, so reduce the number of examples
> > built when testing those static builds.
> >
> > As makefile-based build is close to end of life, completely skip examples
> > in case of static linkage with make.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>
> Acked-by: David Marchand <david.marchand@redhat.com>
Applied