summaryrefslogtreecommitdiff
path: root/external/coinmp
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-09-15 21:06:04 +0200
committerStephan Bergmann <sbergman@redhat.com>2023-06-09 12:24:56 +0200
commit2193650b3373ee1889961cfb72d1fe97f73e2c23 (patch)
treeaf4cff5c00a498f2ddd7776e4c04e3055cb7e64c /external/coinmp
parent3c7813b095c18744954bb21ec7f773cbba5d4a63 (diff)
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 <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>
Diffstat (limited to 'external/coinmp')
-rw-r--r--external/coinmp/ExternalPackage_coinmp.mk34
-rw-r--r--external/coinmp/ExternalProject_coinmp.mk17
-rw-r--r--external/coinmp/UnpackedTarball_coinmp.mk4
-rw-r--r--external/coinmp/bind2nd.patch.174
-rw-r--r--external/coinmp/clang-with-path.patch120
-rw-r--r--external/coinmp/no-binaries.patch.14
-rw-r--r--external/coinmp/osi_cuts_iterator.patch.012
-rw-r--r--external/coinmp/register.patch294
-rw-r--r--external/coinmp/werror-format-pedantic.patch.010
-rw-r--r--external/coinmp/werror-format-security.patch.012
-rw-r--r--external/coinmp/windows.build.patch.128
11 files changed, 173 insertions, 436 deletions
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" />