[v2,1/2] ci: fix ABI reference generation

Message ID 20210415194302.7738-1-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v2,1/2] ci: fix ABI reference generation |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

David Marchand April 15, 2021, 7:43 p.m. UTC
  The machine=generic is not understood by older version of dpdk.
It is directly passed to gcc as -march=generic.

Since DPDK requires SSE 4.2, this results in an error when configuring
v21.02 sources for generating the reference ABI.

From GHA [1] logs:

"""
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Wno-address-of-packed-member
-Waddress-of-packed-member: NO
Compiler for C supports arguments -Wno-packed-not-aligned
-Wpacked-not-aligned: NO
Compiler for C supports arguments -Wno-missing-field-initializers
-Wmissing-field-initializers: YES

config/x86/meson.build:14:6: ERROR:  Could not get define '__SSE4_2__'

A full log can be found at
/home/runner/work/dpdk/dpdk-v21.02/build/meson-logs/meson-log.txt
Error: Process completed with exit code 1.
"""

1: https://github.com/ovsrobot/dpdk/runs/2355005702

Stick to a compatible configuration passing -Dmachine=default.

Note: the breakage was not seen earlier this week as I guess the CI
workers are using a cached ABI reference for v20.11.

Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 .ci/linux-build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Juraj Linkeš April 16, 2021, 6:39 a.m. UTC | #1
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Thursday, April 15, 2021 9:43 PM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; mdr@ashroe.eu; Aaron Conole
> <aconole@redhat.com>; Michael Santana <maicolgabriel@hotmail.com>; Juraj
> Linkeš <juraj.linkes@pantheon.tech>; Honnappa Nagarahalli
> <honnappa.nagarahalli@arm.com>; Bruce Richardson
> <bruce.richardson@intel.com>
> Subject: [PATCH v2 1/2] ci: fix ABI reference generation
> 
> The machine=generic is not understood by older version of dpdk.
> It is directly passed to gcc as -march=generic.
> 
> Since DPDK requires SSE 4.2, this results in an error when configuring
> v21.02 sources for generating the reference ABI.
> 
> From GHA [1] logs:
> 
> """
> Compiler for C supports arguments -Wundef: YES Compiler for C supports
> arguments -Wwrite-strings: YES Compiler for C supports arguments -Wno-
> address-of-packed-member
> -Waddress-of-packed-member: NO
> Compiler for C supports arguments -Wno-packed-not-aligned
> -Wpacked-not-aligned: NO
> Compiler for C supports arguments -Wno-missing-field-initializers
> -Wmissing-field-initializers: YES
> 
> config/x86/meson.build:14:6: ERROR:  Could not get define '__SSE4_2__'
> 
> A full log can be found at
> /home/runner/work/dpdk/dpdk-v21.02/build/meson-logs/meson-log.txt
> Error: Process completed with exit code 1.
> """
> 
> 1: https://github.com/ovsrobot/dpdk/runs/2355005702
> 
> Stick to a compatible configuration passing -Dmachine=default.
> 
> Note: the breakage was not seen earlier this week as I guess the CI workers are
> using a cached ABI reference for v20.11.
> 
> Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>

Do we want to change this back to -Dmachine=generic after next release?

> ---
>  .ci/linux-build.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index 3cbeb193a1..91e43a975b
> 100755
> --- a/.ci/linux-build.sh
> +++ b/.ci/linux-build.sh
> @@ -77,7 +77,7 @@ else
>      OPTS="$OPTS -Dexamples=all"
>  fi
> 
> -OPTS="$OPTS -Dmachine=generic"
> +OPTS="$OPTS -Dmachine=default"
>  OPTS="$OPTS --default-library=$DEF_LIB"
>  OPTS="$OPTS --buildtype=debugoptimized"
>  OPTS="$OPTS -Dcheck_includes=true"
> --
> 2.23.0
>
  
David Marchand April 16, 2021, 9:17 a.m. UTC | #2
On Fri, Apr 16, 2021 at 8:39 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:
> >
> > Stick to a compatible configuration passing -Dmachine=default.
> >
> > Note: the breakage was not seen earlier this week as I guess the CI workers are
> > using a cached ABI reference for v20.11.
> >
> > Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
>
> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
>
> Do we want to change this back to -Dmachine=generic after next release?

This seems fine to me.
  
Thomas Monjalon April 16, 2021, 9:20 a.m. UTC | #3
16/04/2021 11:17, David Marchand:
> On Fri, Apr 16, 2021 at 8:39 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:
> > >
> > > Stick to a compatible configuration passing -Dmachine=default.
> > >
> > > Note: the breakage was not seen earlier this week as I guess the CI workers are
> > > using a cached ABI reference for v20.11.
> > >
> > > Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")
> > >
> > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> >
> > Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> >
> > Do we want to change this back to -Dmachine=generic after next release?
> 
> This seems fine to me.

If we change back in 21.08, we won't be able to test 21.08
against 20.11 or 21.02, right?
Wouldn't be better to wait 21.11?
  
David Marchand April 16, 2021, 9:49 a.m. UTC | #4
On Fri, Apr 16, 2021 at 11:20 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 16/04/2021 11:17, David Marchand:
> > On Fri, Apr 16, 2021 at 8:39 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:
> > > >
> > > > Stick to a compatible configuration passing -Dmachine=default.
> > > >
> > > > Note: the breakage was not seen earlier this week as I guess the CI workers are
> > > > using a cached ABI reference for v20.11.
> > > >
> > > > Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")
> > > >
> > > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > >
> > > Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > >
> > > Do we want to change this back to -Dmachine=generic after next release?
> >
> > This seems fine to me.
>
> If we change back in 21.08, we won't be able to test 21.08
> against 20.11 or 21.02, right?
> Wouldn't be better to wait 21.11?

I considered this too, but here, in Travis/GHA, we test only against
the n-1 release.
  
Thomas Monjalon April 16, 2021, 9:55 a.m. UTC | #5
16/04/2021 11:49, David Marchand:
> On Fri, Apr 16, 2021 at 11:20 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > 16/04/2021 11:17, David Marchand:
> > > On Fri, Apr 16, 2021 at 8:39 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:
> > > > >
> > > > > Stick to a compatible configuration passing -Dmachine=default.
> > > > >
> > > > > Note: the breakage was not seen earlier this week as I guess the CI workers are
> > > > > using a cached ABI reference for v20.11.
> > > > >
> > > > > Fixes: 5b3a6ca6fd28 ("build: alias default build as generic")
> > > > >
> > > > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > > >
> > > > Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > >
> > > > Do we want to change this back to -Dmachine=generic after next release?
> > >
> > > This seems fine to me.
> >
> > If we change back in 21.08, we won't be able to test 21.08
> > against 20.11 or 21.02, right?
> > Wouldn't be better to wait 21.11?
> 
> I considered this too, but here, in Travis/GHA, we test only against
> the n-1 release.

Yes. If we don't plan to change our CI test, that's fine.
  

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 3cbeb193a1..91e43a975b 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -77,7 +77,7 @@  else
     OPTS="$OPTS -Dexamples=all"
 fi
 
-OPTS="$OPTS -Dmachine=generic"
+OPTS="$OPTS -Dmachine=default"
 OPTS="$OPTS --default-library=$DEF_LIB"
 OPTS="$OPTS --buildtype=debugoptimized"
 OPTS="$OPTS -Dcheck_includes=true"