C++11

Stephan Bergmann sbergman at redhat.com
Mon Sep 15 05:23:24 PDT 2014


On 09/15/2014 12:20 PM, Jan-Marek Glogowski wrote:
> Well - we'll release our 12.04 based rollout this year (I know we're
> late ;-) and it'll be at least supported for the next 2-3 years. This
> change means we won't be able to do any LO updates after 4.3, not even
> thinking of building a LO version for our old 10.04 based release, which
> we'll support at least for another year.

That's certainly unfortunate.

> Current master still builds on 12.04 (except for collada), so it seems
> all used C++11 features are also supported by gcc 4.6. There is a
> unsupported gcc-4.7 in universe (4.7.0-0ubuntu4) with a newer version
> (4.7.2-0ubuntu3) in precise-updates,

Note that the current master does not really make unconditional use of 
any C++11 features yet, except for the one commit introducing a scoped 
enum, which /is/ already supported by GCC 4.6.

Also note that "our configure.ac currently still allows some GCC < 4.7, 
and some tinderboxes still make use of that," so at least as long as we 
do not deliberately use an features requiring GCC 4.7 you could still be 
happy with a GCC 4.6 toolchain.

Looking at least at the core language features at 
<http://wiki.apache.org/stdcxx/C++0xCompilerSupport>, about the only 
relevant feature that requires GCC 4.7 rather than 4.6 (and is also 
supported by MSVC 2012) is delegating constructors.  Not sure how urgent 
the demand is to use those, but if that should turn out to be the only 
issue, there might be a way to address that.  (The other relevant 
feature is override/final, but we already conditionalize that with 
SAL_OVERRIDE/SAL_FINAL, so could probably continue to do so for now.) 
No idea though what standard library features we would like to use that 
require GCC 4.7's libstdc++.

 From the LO codebase standpoint, the preferred solution would of course 
be if you could upgrade your toolchain to GCC 4.7.  (Depending on our 
standard library demands and the actual differences between GCC 4.6 and 
4.7 libstdc++, that might or might not imply also upgrading libstdc++ in 
your runtime environment, or using technology similar to RHEL's 
Developer Tools.)

Stephan


More information about the LibreOffice mailing list