[Mesa-dev] [PATCH 1/3] meson: Define NDEBUG for non-debug-builds
Rob Clark
robdclark at gmail.com
Tue Jul 17 17:28:20 UTC 2018
On Tue, Jul 17, 2018 at 12:40 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> 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.
I think there is a lot of assumption that DEBUG == !NDEBUG, from the
years of autotools
perhaps purging NDEBUG and using DEBUG as the switch is a good idea..
BR,
-R
More information about the mesa-dev
mailing list