download.lst                                   |    4 
 external/coinmp/ExternalPackage_coinmp.mk      |   34 +-
 external/coinmp/ExternalProject_coinmp.mk      |   17 -
 external/coinmp/UnpackedTarball_coinmp.mk      |    4 
 external/coinmp/bind2nd.patch.1                |   74 ------
 external/coinmp/clang-with-path.patch          |  120 ++++++++++
 external/coinmp/no-binaries.patch.1            |    4 
 external/coinmp/osi_cuts_iterator.patch.0      |   12 -
 external/coinmp/register.patch                 |  294 -------------------------
 external/coinmp/werror-format-pedantic.patch.0 |   10 
 external/coinmp/werror-format-security.patch.0 |   12 -
 external/coinmp/windows.build.patch.1          |   28 +-
 12 files changed, 175 insertions(+), 438 deletions(-)

New commits:
commit 2193650b3373ee1889961cfb72d1fe97f73e2c23
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Thu Sep 15 21:06:04 2022 +0200
Commit:     Stephan Bergmann <[email protected]>
CommitDate: Fri Jun 9 12:24:56 2023 +0200

    external/coinmp: Update to CoinMP 1.8.4
    
    ...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 b97e8b9d13ef0f57f7cf0badbefcb038a8bbd137 "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 <[email protected]> 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 <[email protected]>

diff --git a/download.lst b/download.lst
index 1b40709f0858..fb5226385dee 100644
--- a/download.lst
+++ b/download.lst
@@ -65,8 +65,8 @@ LIBCMIS_TARBALL := libcmis-0.5.2.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-COINMP_SHA256SUM := 
86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f
-COINMP_TARBALL := CoinMP-1.7.6.tgz
+COINMP_SHA256SUM := 
3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d
+COINMP_TARBALL := CoinMP-1.8.4.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/coinmp/ExternalPackage_coinmp.mk 
b/external/coinmp/ExternalPackage_coinmp.mk
index 23fbb10b820f..91c3d4531748 100644
--- a/external/coinmp/ExternalPackage_coinmp.mk
+++ b/external/coinmp/ExternalPackage_coinmp.mk
@@ -19,23 +19,25 @@ $(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/CoinMP.dll,C
 else ifneq ($(DISABLE_DYNLOADING),)
 # Just use the static archives from workdir. See bin/lo-all-static-libs
 else ifeq ($(OS),MACOSX)
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.3.dylib,Cbc/src/.libs/libCbc.3.8.8.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.3.dylib,Cbc/src/.libs/libCbcSolver.3.8.8.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.1.dylib,Cgl/src/.libs/libCgl.1.8.5.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.1.dylib,Clp/src/.libs/libClp.1.12.6.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.1.dylib,Clp/src/OsiClp/.libs/libOsiClp.1.12.6.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.1.dylib,CoinMP/src/.libs/libCoinMP.1.7.6.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.3.dylib,CoinUtils/src/.libs/libCoinUtils.3.9.11.dylib))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.1.dylib,Osi/src/Osi/.libs/libOsi.1.11.5.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.3.dylib,Cbc/src/.libs/libCbc.3.9.10.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.3.dylib,Cbc/src/.libs/libCbcSolver.3.9.10.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.1.dylib,Cgl/src/.libs/libCgl.1.9.11.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.1.dylib,Clp/src/.libs/libClp.1.13.12.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClpSolver.1.dylib,Clp/src/.libs/libClpSolver.1.13.12.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.1.dylib,Clp/src/OsiClp/.libs/libOsiClp.1.13.12.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.1.dylib,CoinMP/src/.libs/libCoinMP.1.8.4.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.3.dylib,CoinUtils/src/.libs/libCoinUtils.3.10.15.dylib))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.1.dylib,Osi/src/Osi/.libs/libOsi.1.12.10.dylib))
 else
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.so.3,Cbc/src/.libs/libCbc.so.3.8.8))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.so.3,Cbc/src/.libs/libCbcSolver.so.3.8.8))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.so.1,Cgl/src/.libs/libCgl.so.1.8.5))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.so.1,Clp/src/.libs/libClp.so.1.12.6))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.so.1,Clp/src/OsiClp/.libs/libOsiClp.so.1.12.6))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.so.1,CoinMP/src/.libs/libCoinMP.so.1.7.6))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.so.3,CoinUtils/src/.libs/libCoinUtils.so.3.9.11))
-$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.so.1,Osi/src/Osi/.libs/libOsi.so.1.11.5))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.so.3,Cbc/src/.libs/libCbc.so.3.9.10))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.so.3,Cbc/src/.libs/libCbcSolver.so.3.9.10))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.so.1,Cgl/src/.libs/libCgl.so.1.9.11))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.so.1,Clp/src/.libs/libClp.so.1.13.12))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClpSolver.so.1,Clp/src/.libs/libClpSolver.so.1.13.12))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.so.1,Clp/src/OsiClp/.libs/libOsiClp.so.1.13.12))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.so.1,CoinMP/src/.libs/libCoinMP.so.1.8.4))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.so.3,CoinUtils/src/.libs/libCoinUtils.so.3.10.15))
+$(eval $(call 
gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.so.1,Osi/src/Osi/.libs/libOsi.so.1.12.10))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/coinmp/ExternalProject_coinmp.mk 
b/external/coinmp/ExternalProject_coinmp.mk
index 0a9c44c5e05f..559d9eb1b11b 100644
--- a/external/coinmp/ExternalProject_coinmp.mk
+++ b/external/coinmp/ExternalProject_coinmp.mk
@@ -43,14 +43,15 @@ $(call gb_ExternalProject_get_state_target,coinmp,build) :
                && $(MAKE) \
                $(if $(filter MACOSX,$(OS)),&& $(PERL) \
                        $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl 
OOO \
-                       $(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbc.3.8.8.dylib \
-                       
$(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbcSolver.3.8.8.dylib \
-                       $(EXTERNAL_WORKDIR)/Cgl/src/.libs/libCgl.1.8.5.dylib \
-                       $(EXTERNAL_WORKDIR)/Clp/src/.libs/libClp.1.12.6.dylib \
-                       
$(EXTERNAL_WORKDIR)/Clp/src/OsiClp/.libs/libOsiClp.1.12.6.dylib \
-                       
$(EXTERNAL_WORKDIR)/CoinMP/src/.libs/libCoinMP.1.7.6.dylib \
-                       
$(EXTERNAL_WORKDIR)/CoinUtils/src/.libs/libCoinUtils.3.9.11.dylib \
-                       
$(EXTERNAL_WORKDIR)/Osi/src/Osi/.libs/libOsi.1.11.5.dylib) \
+                       $(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbc.3.9.10.dylib \
+                       
$(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbcSolver.3.9.10.dylib \
+                       $(EXTERNAL_WORKDIR)/Cgl/src/.libs/libCgl.1.9.11.dylib \
+                       $(EXTERNAL_WORKDIR)/Clp/src/.libs/libClp.1.13.12.dylib \
+                       
$(EXTERNAL_WORKDIR)/Clp/src/.libs/libClpSolver.1.13.12.dylib \
+                       
$(EXTERNAL_WORKDIR)/Clp/src/OsiClp/.libs/libOsiClp.1.13.12.dylib \
+                       
$(EXTERNAL_WORKDIR)/CoinMP/src/.libs/libCoinMP.1.8.4.dylib \
+                       
$(EXTERNAL_WORKDIR)/CoinUtils/src/.libs/libCoinUtils.3.10.15.dylib \
+                       
$(EXTERNAL_WORKDIR)/Osi/src/Osi/.libs/libOsi.1.12.10.dylib) \
        )
        $(call gb_Trace_EndRange,coinmp,EXTERNAL)
 
diff --git a/external/coinmp/UnpackedTarball_coinmp.mk 
b/external/coinmp/UnpackedTarball_coinmp.mk
index b874f2b290f3..75fa5aaf653a 100644
--- a/external/coinmp/UnpackedTarball_coinmp.mk
+++ b/external/coinmp/UnpackedTarball_coinmp.mk
@@ -33,13 +33,10 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,coinmp,\
 #   
<https://list.coin-or.org/pipermail/coin-discuss/2020-February/003972.html> 
"[Coin-discuss]
 #   Small patch to fix Clang -Wnon-c-typedef-for-linkage in Clp":
 $(eval $(call gb_UnpackedTarball_add_patches,coinmp,\
-       external/coinmp/osi_cuts_iterator.patch.0 \
        external/coinmp/no-binaries.patch.1 \
-       external/coinmp/werror-format-security.patch.0 \
        external/coinmp/werror-undef.patch.0 \
        external/coinmp/coinmp-msvc-disable-sse2.patch.1 \
        $(if $(filter MSC,$(COM)),external/coinmp/windows.build.patch.1) \
-       external/coinmp/werror-format-pedantic.patch.0 \
        external/coinmp/ubsan.patch.0 \
        external/coinmp/rpath.patch \
        external/coinmp/libtool.patch \
@@ -48,6 +45,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,coinmp,\
        external/coinmp/configure-exit.patch \
        external/coinmp/pedantic-errors.patch \
        external/coinmp/bind2nd.patch.1 \
+       external/coinmp/clang-with-path.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/coinmp/bind2nd.patch.1 b/external/coinmp/bind2nd.patch.1
index 5b3222eea9a0..6ef10a03e102 100644
--- a/external/coinmp/bind2nd.patch.1
+++ b/external/coinmp/bind2nd.patch.1
@@ -11,77 +11,3 @@
    si->setObjective(objective) ;
    si->resolve() ;
    OSIUNITTEST_ASSERT_ERROR(si->isProvenOptimal(),          return false, *si, 
"test16SebastianNowozin second resolve");
-
-The below is an excerpt from
-<https://github.com/coin-or/CoinUtils/commit/4f0dab267fc3976d0542f56e2939f900857147a6>
 "make c++17
-compatible":
-
-diff --git a/CoinUtils/src/CoinPackedMatrix.cpp 
b/CoinUtils/src/CoinPackedMatrix.cpp
-index c7631289..0b103159 100644
---- a/CoinUtils/src/CoinPackedMatrix.cpp
-+++ b/CoinUtils/src/CoinPackedMatrix.cpp
-@@ -1490,11 +1490,11 @@ CoinPackedMatrix::minorAppendSameOrdered(const 
CoinPackedMatrix& matrix)
- 
-    // now insert the entries of matrix
-    for (i = majorDim_ - 1; i >= 0; --i) {
--      const int l = matrix.length_[i];
--      std::transform(matrix.index_ + matrix.start_[i],
--              matrix.index_ + (matrix.start_[i] + l),
--              index_ + (start_[i] + length_[i]),
--              std::bind2nd(std::plus<int>(), minorDim_));
-+      int l = matrix.length_[i];
-+      CoinBigIndex put = start_[i]+length_[i];
-+      const CoinBigIndex get = matrix.start_[i];
-+      for (int j=0;j<l;j++)
-+      index_[put+j]=matrix.index_[get+j]+minorDim_;
-       CoinMemcpyN(matrix.element_ + matrix.start_[i], l,
-                      element_ + (start_[i] + length_[i]));
-       length_[i] += l;
-diff --git a/CoinUtils/src/CoinPackedVector.cpp 
b/CoinUtils/src/CoinPackedVector.cpp
-index 7d90b3de..158a8373 100644
---- a/CoinUtils/src/CoinPackedVector.cpp
-+++ b/CoinUtils/src/CoinPackedVector.cpp
-@@ -284,8 +284,8 @@ CoinPackedVector::truncate( int n )
- void
- CoinPackedVector::operator+=(double value) 
- {
--   std::transform(elements_, elements_ + nElements_, elements_,
--                std::bind2nd(std::plus<double>(), value) );
-+  for (int i=0 ; i < nElements_; i++)
-+    elements_[i] += value;
- }
- 
- 
//-----------------------------------------------------------------------------
-@@ -293,8 +293,8 @@ CoinPackedVector::operator+=(double value)
- void
- CoinPackedVector::operator-=(double value) 
- {
--   std::transform(elements_, elements_ + nElements_, elements_,
--                std::bind2nd(std::minus<double>(), value) );
-+  for (int i=0 ; i < nElements_; i++)
-+    elements_[i] -= value;
- }
- 
- 
//-----------------------------------------------------------------------------
-@@ -302,8 +302,8 @@ CoinPackedVector::operator-=(double value)
- void
- CoinPackedVector::operator*=(double value) 
- {
--   std::transform(elements_, elements_ + nElements_, elements_,
--                std::bind2nd(std::multiplies<double>(), value) );
-+  for (int i=0 ; i < nElements_; i++)
-+    elements_[i] *= value;
- }
- 
- 
//-----------------------------------------------------------------------------
-@@ -311,8 +311,8 @@ CoinPackedVector::operator*=(double value)
- void
- CoinPackedVector::operator/=(double value) 
- {
--   std::transform(elements_, elements_ + nElements_, elements_,
--                std::bind2nd(std::divides<double>(), value) );
-+  for (int i=0 ; i < nElements_; i++)
-+    elements_[i] /= value;
- }
- 
- 
//#############################################################################
diff --git a/external/coinmp/clang-with-path.patch 
b/external/coinmp/clang-with-path.patch
new file mode 100644
index 000000000000..c66bcb30b01e
--- /dev/null
+++ b/external/coinmp/clang-with-path.patch
@@ -0,0 +1,120 @@
+--- Cbc/configure
++++ Cbc/configure
+@@ -3208,7 +3208,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4081,7 +4081,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+--- Cgl/configure
++++ Cgl/configure
+@@ -3174,7 +3174,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4045,7 +4045,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+--- Clp/configure
++++ Clp/configure
+@@ -3204,7 +3204,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4075,7 +4075,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+--- CoinMP/configure
++++ CoinMP/configure
+@@ -3143,7 +3143,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4016,7 +4016,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+--- CoinUtils/configure
++++ CoinUtils/configure
+@@ -3200,7 +3200,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4071,7 +4071,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+--- Osi/configure
++++ Osi/configure
+@@ -3172,7 +3172,7 @@
+ 
+ # Correct the LD variable if we are using the MS or Intel-windows compiler
+ case "$CC" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
+@@ -4845,7 +4845,7 @@
+ 
+ # correct the LD variable in a build with MS or Intel-windows compiler
+ case "$CXX" in
+-  clang* ) ;;
++  clang* | */clang* ) ;;
+   cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
+     LD=link
+     ;;
diff --git a/external/coinmp/no-binaries.patch.1 
b/external/coinmp/no-binaries.patch.1
index 0c36950c1a29..789e8a7f7e60 100644
--- a/external/coinmp/no-binaries.patch.1
+++ b/external/coinmp/no-binaries.patch.1
@@ -11,7 +11,7 @@
 +bin_PROGRAMS = 
  @COIN_HAS_CHOLMOD_TRUE@am__append_7 = -I`$(CYGPATH_W) $(CHOLMODINCDIR)`
  @COIN_HAS_AMD_TRUE@am__append_8 = -I`$(CYGPATH_W) $(AMDINCDIR)`
- @COIN_HAS_ABC_TRUE@am__append_9 = AbcSimplex.hpp CoinAbcCommon.hpp 
AbcCommon.hpp
+ @COIN_HAS_ABC_TRUE@am__append_9 = AbcSimplex.hpp CoinAbcCommon.hpp 
AbcCommon.hpp AbcNonLinearCost.hpp
 --- coinmp/Cbc/src/Makefile.in
 +++ coinmp/Cbc/src/Makefile.in
 @@ -44,7 +44,7 @@
@@ -20,6 +20,6 @@
  host_triplet = @host@
 -bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
 +bin_PROGRAMS =
+ @COIN_HAS_NTY_TRUE@am__append_1 = -I$(NTYINCDIR)
  
  ########################################################################
- #                            cbc program                               #
diff --git a/external/coinmp/osi_cuts_iterator.patch.0 
b/external/coinmp/osi_cuts_iterator.patch.0
deleted file mode 100644
index 42ed5afdcf83..000000000000
--- a/external/coinmp/osi_cuts_iterator.patch.0
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru coinmp.orig/Osi/src/Osi/OsiCuts.hpp coinmp/Osi/src/Osi/OsiCuts.hpp
---- Osi/src/Osi/OsiCuts.hpp    2011-06-13 17:08:11.000000000 +0200
-+++ Osi/src/Osi/OsiCuts.hpp    2016-03-03 22:21:04.669838200 +0100
-@@ -74,7 +74,7 @@
-     class const_iterator {
-       friend class OsiCuts;
-       public:
--        typedef std::bidirectional_iterator_tag iterator_category;
-+        typedef std::forward_iterator_tag iterator_category;
-         typedef OsiCut* value_type;
-         typedef size_t difference_type;
-         typedef OsiCut ** pointer;
diff --git a/external/coinmp/register.patch b/external/coinmp/register.patch
index cf4ca4d06c01..050b47f97fa6 100644
--- a/external/coinmp/register.patch
+++ b/external/coinmp/register.patch
@@ -1,249 +1,3 @@
---- CoinUtils/src/CoinHelperFunctions.hpp
-+++ CoinUtils/src/CoinHelperFunctions.hpp
-@@ -41,7 +41,7 @@
-     handled correctly. */
- 
- template <class T> inline void
--CoinCopyN(register const T* from, const int size, register T* to)
-+CoinCopyN(const T* from, const int size, T* to)
- {
-     if (size == 0 || from == to)
-       return;
-@@ -52,10 +52,10 @@
-                       "CoinCopyN", "");
- #endif
- 
--    register int n = (size + 7) / 8;
-+    int n = (size + 7) / 8;
-     if (to > from) {
--      register const T* downfrom = from + size;
--      register T* downto = to + size;
-+      const T* downfrom = from + size;
-+      T* downto = to + size;
-       // Use Duff's device to copy
-       switch (size % 8) {
-       case 0: do{     *--downto = *--downfrom;
-@@ -99,7 +99,7 @@
-     the difference down to int.  -- lh, 100823 --
- */
- template <class T> inline void
--CoinCopy(register const T* first, register const T* last, register T* to)
-+CoinCopy(const T* first, const T* last, T* to)
- {
-     CoinCopyN(first, static_cast<int>(last-first), to);
- }
-@@ -114,7 +114,7 @@
-     Note JJF - the speed claim seems to be false on IA32 so I have added 
-     CoinMemcpyN which can be used for atomic data */
- template <class T> inline void
--CoinDisjointCopyN(register const T* from, const int size, register T* to)
-+CoinDisjointCopyN(const T* from, const int size, T* to)
- {
- #ifndef _MSC_VER
-     if (size == 0 || from == to)
-@@ -135,7 +135,7 @@
-       throw CoinError("overlapping arrays", "CoinDisjointCopyN", "");
- #endif
- 
--    for (register int n = size / 8; n > 0; --n, from += 8, to += 8) {
-+    for (int n = size / 8; n > 0; --n, from += 8, to += 8) {
-       to[0] = from[0];
-       to[1] = from[1];
-       to[2] = from[2];
-@@ -167,8 +167,8 @@
-     are copied at a time. The source array is given by its first and "after
-     last" entry; the target array is given by its first entry. */
- template <class T> inline void
--CoinDisjointCopy(register const T* first, register const T* last,
--               register T* to)
-+CoinDisjointCopy(const T* first, const T* last,
-+               T* to)
- {
-     CoinDisjointCopyN(first, static_cast<int>(last - first), to);
- }
-@@ -256,7 +256,7 @@
-     alternative coding if USE_MEMCPY defined*/
- #ifndef COIN_USE_RESTRICT
- template <class T> inline void
--CoinMemcpyN(register const T* from, const int size, register T* to)
-+CoinMemcpyN(const T* from, const int size, T* to)
- {
- #ifndef _MSC_VER
- #ifdef USE_MEMCPY
-@@ -296,7 +296,7 @@
-       throw CoinError("overlapping arrays", "CoinMemcpyN", "");
- #endif
- 
--    for (register int n = size / 8; n > 0; --n, from += 8, to += 8) {
-+    for (int n = size / 8; n > 0; --n, from += 8, to += 8) {
-       to[0] = from[0];
-       to[1] = from[1];
-       to[2] = from[2];
-@@ -343,8 +343,8 @@
-     are copied at a time. The source array is given by its first and "after
-     last" entry; the target array is given by its first entry. */
- template <class T> inline void
--CoinMemcpy(register const T* first, register const T* last,
--         register T* to)
-+CoinMemcpy(const T* first, const T* last,
-+         T* to)
- {
-     CoinMemcpyN(first, static_cast<int>(last - first), to);
- }
-@@ -358,7 +358,7 @@
-     Note JJF - the speed claim seems to be false on IA32 so I have added 
-     CoinZero to allow for memset. */
- template <class T> inline void
--CoinFillN(register T* to, const int size, register const T value)
-+CoinFillN(T* to, const int size, const T value)
- {
-     if (size == 0)
-       return;
-@@ -369,7 +369,7 @@
-                       "CoinFillN", "");
- #endif
- #if 1
--    for (register int n = size / 8; n > 0; --n, to += 8) {
-+    for (int n = size / 8; n > 0; --n, to += 8) {
-       to[0] = value;
-       to[1] = value;
-       to[2] = value;
-@@ -413,7 +413,7 @@
-     entries are filled at a time. The array is given by its first and "after
-     last" entry. */
- template <class T> inline void
--CoinFill(register T* first, register T* last, const T value)
-+CoinFill(T* first, T* last, const T value)
- {
-     CoinFillN(first, last - first, value);
- }
-@@ -427,7 +427,7 @@
-     Note JJF - the speed claim seems to be false on IA32 so I have allowed 
-     for memset as an alternative */
- template <class T> inline void
--CoinZeroN(register T* to, const int size)
-+CoinZeroN(T* to, const int size)
- {
- #ifdef USE_MEMCPY
-     // Use memset - seems faster on Intel with gcc
-@@ -448,7 +448,7 @@
-                       "CoinZeroN", "");
- #endif
- #if 1
--    for (register int n = size / 8; n > 0; --n, to += 8) {
-+    for (int n = size / 8; n > 0; --n, to += 8) {
-       to[0] = 0;
-       to[1] = 0;
-       to[2] = 0;
-@@ -519,7 +519,7 @@
-     entries are filled at a time. The array is given by its first and "after
-     last" entry. */
- template <class T> inline void
--CoinZero(register T* first, register T* last)
-+CoinZero(T* first, T* last)
- {
-     CoinZeroN(first, last - first);
- }
-@@ -545,7 +545,7 @@
-     This function was introduced because for some reason compiler tend to
-     handle the <code>max()</code> function differently. */
- template <class T> inline T
--CoinMax(register const T x1, register const T x2)
-+CoinMax(const T x1, const T x2)
- {
-     return (x1 > x2) ? x1 : x2;
- }
-@@ -556,7 +556,7 @@
-     This function was introduced because for some reason compiler tend to
-     handle the min() function differently. */
- template <class T> inline T
--CoinMin(register const T x1, register const T x2)
-+CoinMin(const T x1, const T x2)
- {
-     return (x1 < x2) ? x1 : x2;
- }
-@@ -578,7 +578,7 @@
-     according to operator<. The array is given by a pointer to its first entry
-     and by its size. */
- template <class T> inline bool
--CoinIsSorted(register const T* first, const int size)
-+CoinIsSorted(const T* first, const int size)
- {
-     if (size == 0)
-       return true;
-@@ -590,7 +590,7 @@
- #if 1
-     // size1 is the number of comparisons to be made
-     const int size1 = size  - 1;
--    for (register int n = size1 / 8; n > 0; --n, first += 8) {
-+    for (int n = size1 / 8; n > 0; --n, first += 8) {
-       if (first[8] < first[7]) return false;
-       if (first[7] < first[6]) return false;
-       if (first[6] < first[5]) return false;
-@@ -627,7 +627,7 @@
-     according to operator<. The array is given by its first and "after
-     last" entry. */
- template <class T> inline bool
--CoinIsSorted(register const T* first, register const T* last)
-+CoinIsSorted(const T* first, const T* last)
- {
-     return CoinIsSorted(first, static_cast<int>(last - first));
- }
-@@ -638,7 +638,7 @@
-     etc. For speed 8 entries are filled at a time. The array is given by a
-     pointer to its first entry and its size. */
- template <class T> inline void
--CoinIotaN(register T* first, const int size, register T init)
-+CoinIotaN(T* first, const int size, T init)
- {
-     if (size == 0)
-       return;
-@@ -648,7 +648,7 @@
-       throw CoinError("negative number of entries", "CoinIotaN", "");
- #endif
- #if 1
--    for (register int n = size / 8; n > 0; --n, first += 8, init += 8) {
-+    for (int n = size / 8; n > 0; --n, first += 8, init += 8) {
-       first[0] = init;
-       first[1] = init + 1;
-       first[2] = init + 2;
-@@ -706,7 +706,7 @@
-     integer array specified by the last two arguments (again, first and "after
-     last" entry). */
- template <class T> inline T *
--CoinDeleteEntriesFromArray(register T * arrayFirst, register T * arrayLast,
-+CoinDeleteEntriesFromArray(T * arrayFirst, T * arrayLast,
-                          const int * firstDelPos, const int * lastDelPos)
- {
-     int delNum = static_cast<int>(lastDelPos - firstDelPos);
---- CoinUtils/src/CoinModelUseful2.cpp
-+++ CoinUtils/src/CoinModelUseful2.cpp
-@@ -917,8 +917,8 @@
-   
-   int position=0;
-   int nEof=0; // Number of time send of string
--  register int yystate;
--  register int yyn;
-+  int yystate;
-+  int yyn;
-   int yyresult;
-   /* Number of tokens to shift before error messages enabled.  */
-   int yyerrstatus;
-@@ -936,12 +936,12 @@
-   /* The state stack.  */
-   short       yyssa[YYINITDEPTH];
-   short *yyss = yyssa;
--  register short *yyssp;
-+  short *yyssp;
- 
-   /* The semantic value stack.  */
-   YYSTYPE yyvsa[YYINITDEPTH];
-   YYSTYPE *yyvs = yyvsa;
--  register YYSTYPE *yyvsp;
-+  YYSTYPE *yyvsp;
- 
- 
- 
 --- CoinUtils/src/CoinOslC.h
 +++ CoinUtils/src/CoinOslC.h
 @@ -34,30 +34,30 @@
@@ -319,51 +73,3 @@
  {
    int * hrow = fact->xeradr;
    int * hcol = fact->xecadr;
---- CoinUtils/src/CoinPackedVectorBase.cpp
-+++ CoinUtils/src/CoinPackedVectorBase.cpp
-@@ -194,8 +194,8 @@
- double
- CoinPackedVectorBase::oneNorm() const
- {
--   register double norm = 0.0;
--   register const double* elements = getElements();
-+   double norm = 0.0;
-+   const double* elements = getElements();
-    for (int i = getNumElements() - 1; i >= 0; --i) {
-       norm += fabs(elements[i]);
-    }
-@@ -224,8 +224,8 @@
- double
- CoinPackedVectorBase::infNorm() const
- {
--   register double norm = 0.0;
--   register const double* elements = getElements();
-+   double norm = 0.0;
-+   const double* elements = getElements();
-    for (int i = getNumElements() - 1; i >= 0; --i) {
-       norm = CoinMax(norm, fabs(elements[i]));
-    }
---- CoinUtils/src/CoinSearchTree.hpp
-+++ CoinUtils/src/CoinSearchTree.hpp
-@@ -153,8 +153,8 @@
-   static inline const char* name() { return "CoinSearchTreeComparePreferred"; 
}
-   inline bool operator()(const CoinTreeSiblings* x,
-                        const CoinTreeSiblings* y) const {
--    register const CoinTreeNode* xNode = x->currentNode();
--    register const CoinTreeNode* yNode = y->currentNode();
-+    const CoinTreeNode* xNode = x->currentNode();
-+    const CoinTreeNode* yNode = y->currentNode();
-     const BitVector128 xPref = xNode->getPreferred();
-     const BitVector128 yPref = yNode->getPreferred();
-     bool retval = true;
---- CoinUtils/src/CoinSimpFactorization.cpp
-+++ CoinUtils/src/CoinSimpFactorization.cpp
-@@ -2440,7 +2440,7 @@
-       const int row=secRowOfU_[i];
-       const int column=colOfU_[i];
-       if ( denseVector_[column]==0.0 ) continue;
--      register const double multiplier=denseVector_[column]*invOfPivots_[row];
-+      const double multiplier=denseVector_[column]*invOfPivots_[row];
-       denseVector_[column]=0.0;
-       const int rowBeg=UrowStarts_[row];
-       const int rowEnd=rowBeg+UrowLengths_[row];
diff --git a/external/coinmp/werror-format-pedantic.patch.0 
b/external/coinmp/werror-format-pedantic.patch.0
deleted file mode 100644
index a604c4354fc6..000000000000
--- a/external/coinmp/werror-format-pedantic.patch.0
+++ /dev/null
@@ -1,10 +0,0 @@
---- Cbc/configure
-+++ Cbc/configure
-@@ -3780,7 +3780,6 @@
-           *-darwin*)
-             ;;
-           *)
--            coin_warn_cxxflags="-pedantic-errors $coin_warn_cxxflags"
-             ;;
-         esac
-     esac
diff --git a/external/coinmp/werror-format-security.patch.0 
b/external/coinmp/werror-format-security.patch.0
deleted file mode 100644
index 90c116b5b06d..000000000000
--- a/external/coinmp/werror-format-security.patch.0
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur coinmp.org/CoinUtils/src/CoinMessageHandler.cpp 
coinmp/CoinUtils/src/CoinMessageHandler.cpp
---- CoinUtils/src/CoinMessageHandler.cpp       2014-05-21 23:14:01.384874167 
+0200
-+++ CoinUtils/src/CoinMessageHandler.cpp       2014-05-21 23:14:47.708874712 
+0200
-@@ -820,7 +820,7 @@
-         sprintf(messageOut_,g_format_,doublevalue);
-         if (next != format_+2) {
-           messageOut_+=strlen(messageOut_);
--          sprintf(messageOut_,format_+2);
-+          sprintf(messageOut_,"%s",format_+2);
-         }
-       }
-       messageOut_+=strlen(messageOut_);
diff --git a/external/coinmp/windows.build.patch.1 
b/external/coinmp/windows.build.patch.1
index 2bd0526ac2c4..a412729e1c80 100644
--- a/external/coinmp/windows.build.patch.1
+++ b/external/coinmp/windows.build.patch.1
@@ -1,8 +1,8 @@
 diff -urN coinmp.org/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj 
coinmp/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj
 --- coinmp.org/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj     1970-01-01 
01:00:00.000000000 +0100
-+++ coinmp/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj 2014-02-28 
15:32:36.548600694 +0100
-@@ -0,0 +1,506 @@
-+<?xml version="1.0" encoding="utf-8"?>
++++ coinmp/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj 2023-05-24 
20:35:48.642884800 +0900
+@@ -0,0 +1,515 @@
++<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
 +  <ItemGroup Label="ProjectConfigurations">
 +    <ProjectConfiguration Include="Debug|Win32">
@@ -318,6 +318,14 @@ diff -urN 
coinmp.org/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj coinmp/Cbc/MSVi
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
 +    </ClCompile>
++    <ClCompile Include="..\..\..\src\CbcHeuristicDW.cpp">
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
++      <BasicRuntimeChecks 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
++      <BasicRuntimeChecks 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
++    </ClCompile>
 +    <ClCompile Include="..\..\..\src\CbcHeuristicFPump.cpp">
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
 +      <BasicRuntimeChecks 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
@@ -475,6 +483,7 @@ diff -urN 
coinmp.org/Cbc/MSVisualStudio/v9/libCbc/libCbc.vcxproj coinmp/Cbc/MSVi
 +    <ClInclude Include="..\..\..\src\CbcHeuristicDiveLineSearch.hpp" />
 +    <ClInclude Include="..\..\..\src\CbcHeuristicDivePseudoCost.hpp" />
 +    <ClInclude Include="..\..\..\src\CbcHeuristicDiveVectorLength.hpp" />
++    <ClInclude Include="..\..\..\src\CbcHeuristicDW.hpp" />
 +    <ClInclude Include="..\..\..\src\CbcHeuristicFPump.hpp" />
 +    <ClInclude Include="..\..\..\src\CbcHeuristicGreedy.hpp" />
 +    <ClInclude Include="..\..\..\src\CbcHeuristicLocal.hpp" />
@@ -2361,8 +2370,8 @@ diff -urN 
coinmp.org/CoinMP/MSVisualStudio/v9/unitTest/unitTest.vcxproj coinmp/C
 \ No newline at end of file
 diff -urN 
coinmp.org/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxproj 
coinmp/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxproj
 --- coinmp.org/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxproj   
1970-01-01 01:00:00.000000000 +0100
-+++ coinmp/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxproj       
2014-02-28 15:32:36.564600694 +0100
-@@ -0,0 +1,650 @@
++++ coinmp/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxproj       
2023-06-09 07:25:34.205534300 +0900
+@@ -0,0 +1,659 @@
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
 +  <ItemGroup Label="ProjectConfigurations">
@@ -2890,6 +2899,14 @@ diff -urN 
coinmp.org/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxpr
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
 +    </ClCompile>
++    <ClCompile Include="..\..\..\src\CoinRational.cpp">
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
++      <BasicRuntimeChecks 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
++      <BasicRuntimeChecks 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
++      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
++    </ClCompile>
 +    <ClCompile Include="..\..\..\src\CoinSearchTree.cpp" />
 +    <ClCompile Include="..\..\..\src\CoinShallowPackedVector.cpp">
 +      <Optimization 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
@@ -2992,6 +3009,7 @@ diff -urN 
coinmp.org/CoinUtils/MSVisualStudio/v9/libCoinUtils/libCoinUtils.vcxpr
 +    <ClInclude Include="..\..\..\src\CoinPresolveTripleton.hpp" />
 +    <ClInclude Include="..\..\..\src\CoinPresolveUseless.hpp" />
 +    <ClInclude Include="..\..\..\src\CoinPresolveZeros.hpp" />
++    <ClInclude Include="..\..\..\src\CoinRational.hpp" />
 +    <ClInclude Include="..\..\..\src\CoinSearchTree.hpp" />
 +    <ClInclude Include="..\..\..\src\CoinShallowPackedVector.hpp" />
 +    <ClInclude Include="..\..\..\src\CoinSimpFactorization.hpp" />

Reply via email to