-O2 in Debug build?
Alexander Neundorf
neundorf at kde.org
Thu Nov 6 00:34:08 CET 2008
On Saturday 19 July 2008, Andreas Pakulat wrote:
> On 18.07.08 23:06:50, Alexander Neundorf wrote:
> > On Friday 18 July 2008, Thiago Macieira wrote:
> > > Alexander Neundorf wrote:
> > > >On Friday 18 July 2008, Andreas Pakulat wrote:
> > > >> Hi,
> > > >>
> > > >> Whats the reasoning behind using -O2 in the Debug CXX flags? A debug
> > > >> build shouldn't use _any_ optimizations IMHO.
> > > >
> > > >I think there were lengthy discussion about the flags for the
> > > > different build types. I guess this was the result.
> > > >/me hasn't slept a lot this week, so I don't feel like searching for
> > > > this now
> > >
> > > The reason is that we split the build types in (for gcc):
> > >
> > > Release
> > > optimised for speed, qDebug/kDebug turned off, no debug symbols
> > > Release with debug info
> > > optimised for speed, debugging symbols on (-g)
> > > Debug
> > > optimised but debuggable, debugging on (-g)
> > > (-fno-reorder-blocks -fno-schedule-insns -fno-inline)
> > > DebugFull
> > > no optimisation, full debugging on (-g3)
> > > Profile
> > > DebugFull + -ftest-coverage -fprofile-arcs
> > >
> > > It is expected that the "Debug" build type be still debuggable with gdb
> > > without going all over the place, but still produce better performance.
> > > It's also important to note that gcc cannot detect all warning
> > > conditions unless the optimiser is active.
> > >
> > > I'd say that "debug" is recommended for kdelibs for people developing
> > > KDE applications, since oftentimes they may have to go into kdelibs
> > > functions. Their own code should be build under debugfull while still
> > > in development, but should be built a few times in release before a
> > > release.
> >
> > Thanks for the explanation :-)
> > Can you put that on techbase, somewhere related to cmake/building ?
>
> I'm putting it on techbase in a minute (if I find the right spot).
> However I'd also like to add the information to FindKDE4Internal.cmake
> and more importantly make Debugfull work with CMake 2.6. As I didn't
> find a reference of CMAKE_CONFIGURATION_TYPES for cmake 2.4 I've set it
> only for 2.6.
Question (somewhat late, I know...)
Why do you actually set CMAKE_CONFIGURATION_TYPES ?
If I set CMAKE_BUILD_TYPE to DebugFull it works here with cmake HEAD and
Makefiles.
Alex
More information about the Kde-buildsystem
mailing list