packages: taglib/taglib.spec - add build type

Fryderyk Dziarmagowski freetz w gmx.net
Pią, 2 Paź 2009, 19:33:37 CEST


On Fri, 2 Oct 2009 19:20:00 +0200
Bartosz Świątek <shadzik w gmail.com> wrote:

> W dniu 2 października 2009 08:51 użytkownik Bartosz Świątek
> <shadzik w gmail.com> napisał:
> > W dniu 2 października 2009 07:27 użytkownik Jakub Bogusz
> > <qboosh w pld-linux.org> napisał:
> >> On Thu, Oct 01, 2009 at 04:43:38PM +0200, Jakub Bogusz wrote:
> >>> On Thu, Sep 24, 2009 at 09:50:22PM +0200, cactus wrote:
> >>> > Author: cactus                       Date: Thu Sep 24 19:50:22 2009 GMT
> >>> > Module: packages                      Tag: HEAD
> >>> > ---- Log message:
> >>> > - add build type
> >>>
> >>> >  %cmake \
> >>> >     -DCMAKE_INSTALL_PREFIX=%{_prefix} \
> >>> >     -DLIB_INSTALL_DIR=%{_libdir} \
> >>> > +   -DCMAKE_BUILD_TYPE=%{!?debug:Release}%{?debug:Debug} \
> >>>
> >>> CMAKE_BUILD_TYPE=Release causes cmake to override our optflags by
> >>> cmake-defined ones; particularly - by -O3, which causes code to be
> >>> bigger (because of more aggressive inlining), and thus - in larger
> >>> projects - possibly slower due to more code cache misses.
> >>
> >> Some solutions to choose from:
> >>
> >> - add "PLDRelease" build type to cmake, which just adds "-DNDEBUG" to
> >>  passed optflags (and use it instead of Release)
> >>
> >> - use Release builds, but pass -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG"
> >>  (and -DCMAKE_C_FLAGS_RELEASE for C code) to avoid adding -O3 globally
> >>
> >> - use "None" builds, but add -DNDEBUG to flags somehow
> >>
> >
> > Great. I'll do it as soon as I get to. The first option seems to be
> > the simpliest one.
> 
> I've been curious and had the oportunity to test kde4-kdelibs with
> build type Release. Unfortunately you're wrong. Nothing changes, our
> C(XX)FLAGS are not being overwritten.


of course they are overwritten with a second -O2, that's clearly wrong.

> Proof:
> 
> [ 14%] Building CXX object
> solid/solid/CMakeFiles/solid.dir/backends/fakehw/fakeblock.o
> cd /home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid/solid &&
> /usr/bin/x86_64-pld-linux-g++   -D_BSD_SOURCE -D_XOPEN_SOURCE=500
> -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT
> -DKDE_DEPRECATED_WARNINGS -DMAKE_SOLID_LIB -O2 -fno-strict-aliasing
> -fwrapv -march=x86-64   -Wnon-virtual-dtor -Wno-long-long -ansi
> -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith
> -Wformat-security -fno-exceptions -fno-check-new -fno-common
> -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden
> -fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -fPIC
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid/solid
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid/solid
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/interfaces
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid
> -I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid
> -I/usr/include/qt4   -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o
> CMakeFiles/solid.dir/backends/fakehw/fakeblock.o -c
> /home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid/solid/backends/fakehw/fakeblock.cpp
> /usr/bin/cmake -E cmake_progress_report
> /home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/CMakeFiles
[...]

-- 
Fryderyk Dziarmagowski


Więcej informacji o liście dyskusyjnej pld-devel-pl