[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: NDEBUG when building packages?



On Sat, Feb 23, 2013 at 1:39 AM, Mathieu Malaterre <malat@debian.org> wrote:
> On Fri, Feb 22, 2013 at 9:52 PM, Russ Allbery <rra@debian.org> wrote:
>> Ian Jackson <ijackson@chiark.greenend.org.uk> writes:
>>> Mathieu Malaterre writes ("Re: NDEBUG when building packages?"):
>>
>>>> In that case, this should really be clarified. A lot of debian/cmake
>>>> packages are actually doing:
>>
>>>> -DCMAKE_BUILD_TYPE:STRING=Release
>>
>>>> within there debian/rules files. This settings by default compiles
>>>> with: `-O3 -DNDEBUG`
>>
>>> OMG WTF BBQ
>>
>>> Certainly -DNDEBUG should never be used unless upstream explicitly say
>>> that it's intended to be supported, and usually not even then.
>>
>> Also, -O3 is generally considered rather iffy.  It's not very well-tested
>> and in various versions of GCC it tended to make the code slower, not
>> faster (usually because it unrolled loops too far and blew the CPU cache).
>> It's also had various code generation bugs from time to time.
>>
>> I wouldn't use -O3 without benchmarking of that specific code to confirm
>> that it really improves matters.
>
> Seems like everyone agreed. I'll report a bug to lintian package to
> have it check for this string in d/rules:
>
> http://codesearch.debian.net/search?q=DCMAKE_BUILD_TYPE:STRING%3DRelease

We should also suggest that packages use
-DCMAKE_BUILD_TYPE=RelWithDebInfo instead (-g -O2). In fact, I think
that this would be a sensible default for packages using debhelper's
cmake integration. Sounds like another wishlist bug for debhelper...

Regards,
Vincent


Reply to: