build: enable debug info by default in meson builds
authorBruce Richardson <bruce.richardson@intel.com>
Wed, 23 Oct 2019 01:07:49 +0000 (01:07 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 15 Jan 2020 08:52:25 +0000 (09:52 +0100)
We can turn on debug info by default in meson builds, since it has no
performance penalty. This is done by changing the default build type from
"release" to "debugoptimized". Since the latter using O2, we can using
extra cflags to override that back to O3, which will make little real
difference for actual debugging.

For real debug builds, the user can still do "meson --buildtype=debug ..."
and to remove the debug info "meson --buildtype=release ..." can be used.
These are all standard meson options.

The advantage of having debug builds by default using meson settings is
that we can then add checks for ABI compatibility into each build, and
disable them if we detect that the user has turned off the debug info.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
meson.build

index b7ae9c8..3b7a2e7 100644 (file)
@@ -7,10 +7,16 @@ project('DPDK', 'C',
        version: run_command(find_program('cat', 'more'),
                files('VERSION')).stdout().strip(),
        license: 'BSD',
-       default_options: ['buildtype=release', 'default_library=static'],
+       default_options: ['buildtype=debugoptimized',
+                       'default_library=static'],
        meson_version: '>= 0.47.1'
 )
 
+# for default "debugoptimized" builds override optimization level 2 with 3
+if get_option('buildtype') == 'debugoptimized'
+       add_project_arguments('-O3', language: 'c')
+endif
+
 # set up some global vars for compiler, platform, configuration, etc.
 cc = meson.get_compiler('c')
 dpdk_conf = configuration_data()