...originally started mostly to simplify a then-upcoming change to address
std::bind2nd gone from libc++ for C++17 (which turned out to already be
partially addressed in this new CoinMP revision). But that has since been
addressed with b97e8b9d13 "external/coinmp: Adapt
to std::bind2nd gone from C++17" on top of the old CoinMP 1.7.6, because
updating to 1.8.4 turned out to run into issues on Windows, see the email thread
starting at
<https://lists.freedesktop.org/archives/libreoffice/2022-September/089383.html>
"Maintaining building external/coinmp on Windows".
* <https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz> is a copy of
<https://www.coin-or.org/download/source/CoinMP/CoinMP-1.8.4.tgz>.
* Various of our patches are meanwhile addressed upstream, partially or in
whole.
* The upstream configure scripts deteriorated and caused one of my Linux build's
CC=/absolute/path/to/some/clang to be mistaken for MSVC which caused them to
force LD=link, which in turn caused them to only build archives and not the
shared libraries that we expect. external/coinmp/clang-with-path.patch
addresses that.
* There's apparently a new ClpSolver library now that also needs to be
installed. Otherwise at least CppunitTest_sccomp_swarmsolvertest failed due
to
> warn:sal.osl:1950612:1950612:sal/osl/unx/module.cxx:152: dlopen(instdir/program/libsolverlo.so, 257): libClpSolver.so.1: cannot open shared object file: No such file or directory
* Plus modifications to external/coinmp/windows.build.patch.1 thankfully done by
Taichi Haradaguchi <20001722@ymail.ne.jp> to make this actually compile on
Windows (cf. the mailing list thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2022-September/089383.html>
"Maintaining building external/coinmp on Windows")
Change-Id: I498c9513fa0d96d8ae2b9ba4c09dd792340db730
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140057
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...which started to be an issue when building with recent Clang 16 trunk after
<https://github.com/llvm/llvm-project/commit/3e99b8d947ac024831e59be2b604ac67a24fed94>
"C++/ObjC++: switch to gnu++17 as the default standard" against libc++. (Recent
versions of GCC similarly default to C++17, but libstdc++ by default still
provides bind2nd even for C++17.) Alternatively, we could define
_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS to work around this. But as these appear
to be the only leftover occurrence of bind2nd across all of the code base, and
all but one of them have already been addressed upstream, lets address it for
good with this little patch. (Where the last remaining occurrence not yet
addressed upstream is fixed in the same way as the other upstream fixes, using a
loop rather than e.g. a lambda that would force us to start to pass
CXXFLAGS_CXX11 into ExternalProejct_coinmp.)
Change-Id: Iddcdddd22ea4c6d537b64bf2cf0b887d11da162f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139931
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>