Some baseline thoughts

Stephan Bergmann sbergman at redhat.com
Thu Mar 16 11:20:54 UTC 2017


Some of our baselines on current master (towards LO 5.4) are as follows:


*  GCC 4.7 
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=e4b24c7399352642aeaeb412394d6230562d04d2> 
"configure: GCC 4.6 is no longer supported on master")

The latest version is GCC 6.  Noteworthy C++ conformance we would gain 
with a bump (according to 
<http://en.cppreference.com/w/cpp/compiler_support>) would be:

** GCC 4.8.1:
*** inheriting constructors
*** ref-qualifiers

** GCC 4.9:
*** decltype(auto), return type deduction for normal functions
*** generic lambdas
*** deprecated attribute
*** single quote as digit separator

** GCC 5:
*** variable templates
*** user-defined literals for <chrono> and <string>

The question is what old versions of GCC are required exactly by the 
various builds.


*  MSVC 2015 Update 3 
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=84b36c704d73362d4d86dc9e9c0efa0625958347> 
"Drop support for MSVC 2013")

Bumping this to MSVC 2017 is unlikely to happen anytime soon, given we 
bumped to MSVC 2015 Update 3 only recently.


*  For --enable-compiler-plugins, Clang 3.4 
(<https://cgit.freedesktop.org/libreoffice/core/commit/?id=733198de1b7fc3907609217147704f493f6146e6> 
"Remove support for Clang < 3.4")

The latest version is Clang 4 (just released the other day).  Bumping 
this would allow to clean up some #ifdefs across compilerplugins/clang/. 
  The question is what old versions of Clang are required exactly by 
people building with --enable-compiler-plugins.

(For our C++ conformance, the oldest supported Clang version is rarely 
the limiting factor.)


*  macOS 10.8 
(<https://wiki.documentfoundation.org/index.php?title=ReleaseNotes/4.4&oldid=99539#Mac_OS_X>)

Bumping this to macOS 10.9 would get rid of the last known case of 
!HAVE_THREADSAFE_STATICS (cf. 
<https://cgit.freedesktop.org/libreoffice/core/commit/?id=aa2fbfc4faa24cf7ee5aa9afdafddbd536ac4fec> 
"Found out that Mac OS X 10.9 has working threadsafe statics").  What is 
unknown however is the status on Android and iOS.  Having 
HAVE_THREADSAFE_STATICS everywhere would allow to clean up code, see 
e.g. <https://gerrit.libreoffice.org/#/c/35258/> "replace 
double-checked-locking with C++11 static initializer".


More information about the LibreOffice mailing list