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".