[Mesa-dev] [PATCH 1/3] meson: Define NDEBUG for non-debug-builds

Dylan Baker dylan at pnwbakers.com
Tue Jul 17 16:40:32 UTC 2018


Quoting Eric Engestrom (2018-07-17 07:05:32)
> On Tuesday, 2018-07-17 09:01:46 -0400, mesa-dev-bounces at lists.freedesktop.org wrote:
> > On Mon, Apr 16, 2018 at 5:19 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> > > Quoting Jan Alexander Steffens (heftig) (2018-04-14 10:23:20)
> > >> This is for parity with autotools. We were suddenly getting assertion
> > >> failures after switching to meson, see [1].
> > >>
> > >> [1]: https://bugs.archlinux.org/task/58218
> > >>
> > >> Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
> > >> ---
> > >>  meson.build | 2 ++
> > >>  1 file changed, 2 insertions(+)
> > >>
> > >> diff --git a/meson.build b/meson.build
> > >> index a4dfa62255..931e0389e6 100644
> > >> --- a/meson.build
> > >> +++ b/meson.build
> > >> @@ -705,6 +705,8 @@ endif
> > >>  # Define DEBUG for debug builds only (debugoptimized is not included on this one)
> > >>  if get_option('buildtype') == 'debug'
> > >>    pre_args += '-DDEBUG'
> > >> +else
> > >> +  pre_args += '-DNDEBUG'
> > >>  endif
> > >>
> > >>  if get_option('shader-cache')
> > >> --
> > >> 2.16.2
> > >
> > > NAK.
> > >
> > > meson has -Db_ndebug for controlling NDEBUG, which is done separately from
> > > optimization levels, this is in our documentation as well as the meson
> > > documentation. For builds without asserts, set b_ndebug=true.
> > >
> > 
> > Is it possible to make b_ndebug default to true for release builds?
> > That would be far less surprising..
> 
> Since 0.45 (we support 0.44.1 right now, so we would need to bump),
> b_ndebug is no longer a boolean, but now accepts `if-release` as well.
> 
> If that's the preferred solution, I can send this patch:
> ----8<----
> diff --git a/meson.build b/meson.build
> index c62cdd0e395259ec984e..eb90f4cf9b265435fb19 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -25,8 +25,8 @@ project(
>      [find_program('python', 'python2', 'python3'), 'bin/meson_get_version.py']
>    ).stdout(),
>    license : 'MIT',
> -  meson_version : '>= 0.44.1',
> -  default_options : ['buildtype=debugoptimized', 'c_std=c99', 'cpp_std=c++11']
> +  meson_version : '>= 0.45',
> +  default_options : ['buildtype=debugoptimized', 'b_ndebug=if-release', 'c_std=c99', 'cpp_std=c++11']
>  )
>  
>  cc = meson.get_compiler('c')
> ---->8----
> 
> Dylan, thoughts?
> 
> 

I don't know if others are okay bumping to 0.45 yet, but in my
not-always-so-humble opinion I like this option, or Michel's option to switch
some of the very expensive checks to be guarded by DEBUG instead of NDEBUG.
Or maybe both, since a lot of people equate assertions with debug builds.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180717/e1fc0e27/attachment.sig>


More information about the mesa-dev mailing list