--enable-debug vs --enable-symbols (Re: [Libreoffice-commits] .: 12 commits - config_host.mk.in configure.in filter/source oox/source sal/inc sc/source solenv/gbuild toolkit/source xmlhelp/source)

Stephan Bergmann sbergman at redhat.com
Wed May 16 07:45:13 PDT 2012


On 05/16/2012 04:07 PM, Lubos Lunak wrote:
> On Wednesday 16 of May 2012, Stephan Bergmann wrote:
>> On 05/16/2012 03:09 PM, Lubos Lunak wrote:
>>>    Now --enable-debug=-sc/ means that sc/ is built without -g and with
>>> -O2. In other words, the compiler spends extra time working on code I
>>> don't care about at all. There was a reason why OPT flags was empty in
>>> --enable-debug build - as soon as I do a developer build, I don't want
>>> the compiler to optimize any code, anywhere, unless explicitly told so.
>>
>> As code is traditionally known to occasionally behave differently for
>> different -O levels, I'm fine with my personal builds by default using
>> the same -O2 as production builds.
>
>   That's probably because you have something really fast to build LO on?

Not really.  I just tend to stick to conservative approaches, even if 
they carry certain penalties.

> Building with -O2 usually makes the build several times slower than without.
> It should be a huge difference for people who hack on whatever they have as
> their home machine.
>
>   Given that those differences you mention should be either irrelevant in
> practice or compiler bugs, even I, having rather fast build system, do not
> see -O2 worth using.

...yes, I mainly alluded to compiler bugs.  But even those need to be 
found somehow...

Then again, my views might indeed be over-conservative here.

>> Re "unless explicitly told so"---how is one supposed to tell the build
>> system?
>
>   I'm not the build expert here :). You can pass -O2 explicitly to CXXFLAGS, at
> least. It's rather a corner case to build with --enable-debug and -O2 at the
> same time.

I think a root problem for confusion still is that we have those various 
configure switches that lead to specific compiler switches in opaque 
ways.  How do other projects handle that?  Never automatically add any 
-g or -O switches, so requiring the user to always explicitly specify 
CFLAGS/CXXFLAGS if he wants anything other than the compiler's default 
-O0?  (Would that mean all the gccs, emacs', etc. I built for my 
personal use over the years were needlessly under-optimized?)  This, of 
course, would run counter to OOo/LO's tradition of taking care itself 
how to map high-level configuration options into platform-specific 
compiler switches (which would IMO not necessarily mean that it is a bad 
idea, just that it is deviating from our traditional views).

Stephan


More information about the LibreOffice mailing list