On Fri, Jun 7, 2013 at 7:35 PM, Hendrik Sattler <p...@hendrik-sattler.de> wrote: > > > Mathieu Malaterre <ma...@debian.org> schrieb: > >>On Sat, Feb 23, 2013 at 11:09 AM, Vincent Cheng >><vincentc1...@gmail.com> wrote: >>> On Sat, Feb 23, 2013 at 1:39 AM, Mathieu Malaterre <ma...@debian.org> >>wrote: >>>> On Fri, Feb 22, 2013 at 9:52 PM, Russ Allbery <r...@debian.org> >>wrote: >>>>> Ian Jackson <ijack...@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... >> >>cmake from sid makes it even harder. RelWithDebInfo now contains >>-DNDEBUG ... I have to source-upload all my packages :( >> >>$ grep NDEBUG ChangeLog.manual >> Add -DNDEBUG to RelWithDebInfo flags where where Release flags had it. >> >> >>The solution (backward compat) is now: >> >>Either do *not* define CMAKE_BUILD_TYPE, or define CMAKE_BUILD_TYPE to >>Debug (and hope -DNDEBUG does not creep in ever) >> >>2cts > > Or just define CMAKE_C_FLAGS properly and don't rely on the default values. > It's not that hard, actually.
CMAKE_C_FLAGS gets popullated with whatever is set from ${CFLAGS}. So this is the right behavior, there is not need to change anything to that value. However CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE} get appended to the compilation line. Therefore we are back to what I previously stated: >Either do *not* define CMAKE_BUILD_TYPE, or define CMAKE_BUILD_TYPE to >Debug (and hope -DNDEBUG does not creep in ever) 2cts -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CA+7wUsy+no=4whzekb9x_xf93ojitm7eczahp7smbpsjww3...@mail.gmail.com