The difference between release + debug and “debugoptimized” is that the former is “-O3 -g” while the latter is “-O2 -g”. The buildtypes are just shortcuts for setting optimization level and debug flags, and release is -O3 only flag.

 

From: Patrick Robb <probb@iol.unh.edu>
Sent: Wednesday, March 15, 2023 7:14 PM
To: Richardson, Bruce <bruce.richardson@intel.com>
Cc: David Marchand <david.marchand@redhat.com>; ci@dpdk.org; Aaron Conole <aconole@redhat.com>; Thomas Monjalon <thomas@monjalon.net>
Subject: Re: Meson buildtype for ci jobs?

 

Would passing "-Ddebug=true" be better than changing the default buildtype?
It's possible to have a release build (i.e. O3 optimized) with debug info.

 

Strangely, even with -Ddebug true if I'm running buildtype "release" it returns the same warnings. I'm inferring from your comment that release optimization == debugoptimized optimization and debug behavior from -Ddebug=true == debug behavior from debugoptimized, so release buildtype + debug "should" have the same behavior as just setting buildtype debugoptimized, and yet...

 

I'll have to look into this a little more. Hopefully by the end I'll be like David and understand the relations between these flags better, hah.

 

On Wed, Mar 15, 2023 at 1:02 PM Richardson, Bruce <bruce.richardson@intel.com> wrote:



> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Wednesday, March 15, 2023 4:08 PM
> To: Patrick Robb <probb@iol.unh.edu>
> Cc: ci@dpdk.org; Aaron Conole <aconole@redhat.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>
> Subject: Re: Meson buildtype for ci jobs?
>
> On Wed, Mar 15, 2023 at 4:52 PM Patrick Robb <probb@iol.unh.edu> wrote:
> >
> > Hello all,
> >
> > The lab recently received a request to re-enable Alpine compile jobs,
> which have been disabled for almost a year. In dry running the compile
> job, I noticed that it was failing. At the same time, David Marchand did
> an Alpine compile with Github Actions which was successful. It seems the
> source of the different behavior is the meson buildtype being used - the
> build script used by GHA sets meson buildtype to debugoptimized, whereas
> the script used by the community lab runs with buildtype debug (the meson
> default). I did my own Github Actions runs (with both buildtype options)
> to sanity check:
> https://github.com/PatrickRobbIOL/dpdk/actions/runs/4427160204/jobs/776436
> 8640
>
> Are you sure about the default value?
>
> Afaics, meson selects by default a "release" buildtype (and I think I
> always saw this value in the past).
> I have this with meson 1.0.
>
> $ meson setup qsdlgfh
> ...
> $ meson configure qsdlgfh | grep buildtype
>   buildtype                      release
> [plain, debug, debugoptimized,   Build type to use
>
> >
> > The reason I'm writing this email is that I'm wondering whether the
> buildtype decision made by those who wrote .ci/linux-build.sh for GHA was
> intentional and important. I know many of the people who have commits on
> that script follow this mailing list. Obviously if it's in some way more
> appropriate for CI purposes to run meson setup in this way, I'm happy to
> make that change at the lab and in the process that would free up bringing
> Alpine compile testing online. But, if not, then I think it's most
> appropriate to consider compile on Alpine as broken and avoid bringing
> coverage for Alpine online until that issue is resolved.
>
> The reason why we went with debugoptimized was primarly for the ABI
> checks, as by default, the debug symbols were missing (which would
> match with a "release" default buildtype).
> See 777014e56d07 ("devtools: add ABI checks").
>

Would passing "-Ddebug=true" be better than changing the default buildtype?
It's possible to have a release build (i.e. O3 optimized) with debug info.

/Bruce


 

--

Patrick Robb

Technical Service Manager

UNH InterOperability Laboratory

21 Madbury Rd, Suite 100, Durham, NH 03824

www.iol.unh.edu