summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2023-01-04 17:57:45 +0100
committerStephan Bergmann <sbergman@redhat.com>2023-01-05 07:14:18 +0000
commited259e5efe432386b54c553cbc644b3b64976852 (patch)
tree5b1cb798761002e8ce263101925ca0023b0f0cb6
parentsw doc model xml dump: extract part of SwTextAttr::dumpAsXml() ... (diff)
downloadcore-ed259e5efe432386b54c553cbc644b3b64976852.tar.gz
core-ed259e5efe432386b54c553cbc644b3b64976852.zip
Upgrade external/boost to latest Boost 1.81.0
<https://dev-www.libreoffice.org/src/boost_1_81_0.tar.xz> has been generated (on Fedora 37) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 > $ printf '71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa boost_1_81_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_81_0.html> > boost_1_81_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_81_0.tar.bz2 > Unpacking boost_1_81_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_81_0.tar.xz ... > Cleaning up ... > 1deb0a5a9e33a6626fcaa1d2efd4c0e74ca2b0eea87c1559e3917f3066b633d6 boost_1_81_0.tar.xz > Done. * external/boost/windows-no-utf8-locales.patch.0, introduced with f046fed2782f0d4244aff719ba70a56399a2583a "Don't ever attempt to initialise a std::locale with a UTF-8 locale on Windows", was presumably obsoleted by <https://github.com/boostorg/locale/commit/f45adfc9b963feacc827c3754e2549dd0cffaecb> "Use UTF-16 <-> UTF-8 codecvt on Windows". * external/boost/libc++.patch.0 was obsoleted by <https://github.com/boostorg/config/commit/f0af4a9184457939b89110795ae2d293582c5f66> "The std lib unary/binary_function base classes are deprecated/removed from libcpp15." * external/boost/0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.2 was obsoleted by <https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a> "Change mpl::integral_c to boost::integral_constant to avoid Clang 16 errors when constructing out of range enums (refs #24, boostorg/mpl#69)". * external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2 is needed to e.g. avoid > ./.libs/libetonyek_internal.a(libetonyek_internal_la-KEY1DivElement.o):(.bss+0x3e): multiple definition of `boost::phoenix::placeholders::uarg1'; ./.libs/libetonyek_internal.a(libetonyek_internal_la-IWORKFormula.o):(.bss+0x3e): first defined here etc. while building ExternalProject_libetonyek, caused by <https://github.com/boostorg/phoenix/commit/8b6a9c26c115bc2cefea300b5c0abf7edf6dd9b7> "std::tuple support (Resolving #103) (#104)". Change-Id: I48773166d0c50f2850d8bb37fa6215d9e5c0d51d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145044 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--download.lst4
-rw-r--r--external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.227
-rw-r--r--external/boost/0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.291
-rw-r--r--external/boost/UnpackedTarball_boost.mk10
-rw-r--r--external/boost/boost.between.warning.patch16
-rw-r--r--external/boost/boost.fallback.encoding.patch4
-rw-r--r--external/boost/boost.noiconv.patch78
-rw-r--r--external/boost/libc++.patch.012
-rw-r--r--external/boost/windows-no-utf8-locales.patch.020
9 files changed, 81 insertions, 181 deletions
diff --git a/download.lst b/download.lst
index 6cfc19a0573b..c41e59d336fb 100644
--- a/download.lst
+++ b/download.lst
@@ -9,8 +9,8 @@ ABW_TARBALL := libabw-0.1.3.tar.xz
# so that git cherry-pick
# will not run into conflicts
# please repack the tarball using external/boost/repack_tarball.sh
-BOOST_SHA256SUM := 322e567e98c466c0aa0e380ed8c647552fe4af48998648428f1b5f0c8eff4666
-BOOST_TARBALL := boost_1_80_0.tar.xz
+BOOST_SHA256SUM := 1deb0a5a9e33a6626fcaa1d2efd4c0e74ca2b0eea87c1559e3917f3066b633d6
+BOOST_TARBALL := boost_1_81_0.tar.xz
# three static lines
# so that git cherry-pick
# will not run into conflicts
diff --git a/external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2 b/external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2
new file mode 100644
index 000000000000..e0989727fb5a
--- /dev/null
+++ b/external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2
@@ -0,0 +1,27 @@
+From 50973dc10ea16931245ea61a00b2ce9041acc5ba Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Wed, 4 Jan 2023 17:33:31 +0100
+Subject: [PATCH] Avoid boost::phoenix::placeholders::uarg1..10 ODR violations
+
+Those variables, defined in an include file, had external linkage, causing ODR
+violations. Make them const to implicitly give them internal linkage.
+---
+ include/boost/phoenix/stl/tuple.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/boost/phoenix/stl/tuple.hpp b/include/boost/phoenix/stl/tuple.hpp
+index a83014a..7f61a40 100644
+--- a/include/boost/phoenix/stl/tuple.hpp
++++ b/include/boost/phoenix/stl/tuple.hpp
+@@ -110,7 +110,7 @@ namespace boost { namespace phoenix {
+ namespace placeholders {
+ #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT)
+ #define BOOST_PP_LOCAL_MACRO(N) \
+- auto uarg##N = \
++ auto const uarg##N = \
+ boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1);
+ #include BOOST_PP_LOCAL_ITERATE()
+ }
+--
+2.38.1
+
diff --git a/external/boost/0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.2 b/external/boost/0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.2
deleted file mode 100644
index 643ec0fd0fb7..000000000000
--- a/external/boost/0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.2
+++ /dev/null
@@ -1,91 +0,0 @@
-From 50a1eae942effb0a9b90724323ef8f2a67e7984a Mon Sep 17 00:00:00 2001
-From: Peter Dimov <pdimov@gmail.com>
-Date: Wed, 16 Nov 2022 10:43:31 +0200
-Subject: [PATCH] Change mpl::integral_c to boost::integral_constant to avoid
- Clang 16 errors when constructing out of range enums (refs #24,
- https://github.com/boostorg/mpl/issues/69)
-
----
- .../numeric/conversion/detail/int_float_mixture.hpp | 10 +++++-----
- .../boost/numeric/conversion/detail/sign_mixture.hpp | 10 +++++-----
- .../numeric/conversion/detail/udt_builtin_mixture.hpp | 10 +++++-----
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/include/boost/numeric/conversion/detail/int_float_mixture.hpp b/include/boost/numeric/conversion/detail/int_float_mixture.hpp
-index 464e527..7690d07 100644
---- a/include/boost/numeric/conversion/detail/int_float_mixture.hpp
-+++ b/include/boost/numeric/conversion/detail/int_float_mixture.hpp
-@@ -16,15 +16,15 @@
- #include "boost/numeric/conversion/int_float_mixture_enum.hpp"
- #include "boost/numeric/conversion/detail/meta.hpp"
-
--#include "boost/mpl/integral_c.hpp"
-+#include "boost/type_traits/integral_constant.hpp"
-
- namespace boost { namespace numeric { namespace convdetail
- {
- // Integral Constants for 'IntFloatMixture'
-- typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
-- typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ;
-- typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ;
-- typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ;
-+ typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
-+ typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ;
-+ typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ;
-+ typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ;
-
- // Metafunction:
- //
-diff --git a/include/boost/numeric/conversion/detail/sign_mixture.hpp b/include/boost/numeric/conversion/detail/sign_mixture.hpp
-index c7f9e42..fde1584 100644
---- a/include/boost/numeric/conversion/detail/sign_mixture.hpp
-+++ b/include/boost/numeric/conversion/detail/sign_mixture.hpp
-@@ -16,15 +16,15 @@
- #include "boost/numeric/conversion/sign_mixture_enum.hpp"
- #include "boost/numeric/conversion/detail/meta.hpp"
-
--#include "boost/mpl/integral_c.hpp"
-+#include "boost/type_traits/integral_constant.hpp"
-
- namespace boost { namespace numeric { namespace convdetail
- {
- // Integral Constants for 'SignMixture'
-- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
-- typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ;
-- typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
-- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
-+ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
-+ typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
-+ typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
-+ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
-
- // Metafunction:
- //
-diff --git a/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp b/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
-index 36dbc49..a39d29f 100644
---- a/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
-+++ b/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
-@@ -15,15 +15,15 @@
- #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
- #include "boost/numeric/conversion/detail/meta.hpp"
-
--#include "boost/mpl/integral_c.hpp"
-+#include "boost/type_traits/integral_constant.hpp"
-
- namespace boost { namespace numeric { namespace convdetail
- {
- // Integral Constants for 'UdtMixture'
-- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
-- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
-- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
-- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
-+ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
-+ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
-+ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
-+ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
-
- // Metafunction:
- //
---
-2.37.1 (Apple Git-137.1)
-
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index d3c945282b0d..acdc5d331c76 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -27,17 +27,13 @@ boost_patches += clang-cl.patch.0
boost_patches += boost_1_63_0.undef.warning.patch.1
-boost_patches += windows-no-utf8-locales.patch.0
-
boost_patches += msvc2017.patch.0
-boost_patches += libc++.patch.0
-
boost_patches += boost-ios.patch.0
-# <https://github.com/boostorg/numeric_conversion/pull/25> "Fix ill-formed constant expression
-# errors":
-boost_patches += 0001-Change-mpl-integral_c-to-boost-integral_constant-to-.patch.2
+# <https://github.com/boostorg/phoenix/pull/116> "Avoid boost::phoenix::placeholders::uarg1..10 ODR
+# violations":
+boost_patches += 0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2
$(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
diff --git a/external/boost/boost.between.warning.patch b/external/boost/boost.between.warning.patch
index 47a11ab0493f..8c9ba65a1d39 100644
--- a/external/boost/boost.between.warning.patch
+++ b/external/boost/boost.between.warning.patch
@@ -2,12 +2,12 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
--- foo/misc/boost.orig/libs/locale/src/encoding/codepage.cpp
+++ foo/misc/boost/libs/locale/src/boost/locale/encoding/codepage.cpp
@@ -58,6 +58,9 @@
- return cvt->convert(begin,end);
- #endif
- #endif
-+ // ensures we get a sensible warning in boost's gettext results about a real mismatch.
-+ if (to_charset && from_charset && !strcmp(to_charset, from_charset))
-+ return std::string(begin, end - begin);
- throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
- }
+ return cvt->convert(begin, end);
+ #endif
+ #endif
++ // ensures we get a sensible warning in boost's gettext results about a real mismatch.
++ if (to_charset && from_charset && !strcmp(to_charset, from_charset))
++ return std::string(begin, end - begin);
+ throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
+ }
diff --git a/external/boost/boost.fallback.encoding.patch b/external/boost/boost.fallback.encoding.patch
index abc0cf9253cc..3ad39c47b638 100644
--- a/external/boost/boost.fallback.encoding.patch
+++ b/external/boost/boost.fallback.encoding.patch
@@ -5,9 +5,9 @@
country.clear();
variant.clear();
- encoding = "us-ascii";
-- utf8=false;
+- utf8 = false;
+ encoding = "UTF-8";
-+ utf8=true;
++ utf8 = true;
parse_from_lang(locale_name);
}
diff --git a/external/boost/boost.noiconv.patch b/external/boost/boost.noiconv.patch
index 71a9e3d0961c..02f206375a4a 100644
--- a/external/boost/boost.noiconv.patch
+++ b/external/boost/boost.noiconv.patch
@@ -2,50 +2,50 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
--- foo/misc/boost.orig/libs/locale/src/encoding/codepage.cpp
+++ foo/misc/boost/libs/locale/src/boost/locale/encoding/codepage.cpp
@@ -39,6 +39,7 @@
- char const *from_charset,
- method_type how)
- {
-+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
- hold_ptr<converter_between> cvt;
- #ifdef BOOST_LOCALE_WITH_ICONV
- cvt.reset(new iconv_between());
+ const char* from_charset,
+ method_type how)
+ {
++#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
+ hold_ptr<converter_between> cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_between());
@@ -55,6 +56,7 @@
- if(cvt->open(to_charset,from_charset,how))
- return cvt->convert(begin,end);
- #endif
-+ #endif
- throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
- }
+ if(cvt->open(to_charset, from_charset, how))
+ return cvt->convert(begin, end);
+ #endif
++#endif
+ throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
+ }
@@ -65,6 +67,7 @@
- char const *charset,
- method_type how)
- {
-+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
- hold_ptr<converter_to_utf<CharType> > cvt;
- #ifdef BOOST_LOCALE_WITH_ICONV
- cvt.reset(new iconv_to_utf<CharType>());
+ template<typename CharType>
+ std::basic_string<CharType> convert_to(const char* begin, const char* end, const char* charset, method_type how)
+ {
++#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
+ hold_ptr<converter_to_utf<CharType>> cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_to_utf<CharType>());
@@ -81,6 +84,7 @@
- if(cvt->open(charset,how))
- return cvt->convert(begin,end);
- #endif
-+ #endif
- throw invalid_charset_error(charset);
- }
+ if(cvt->open(charset, how))
+ return cvt->convert(begin, end);
+ #endif
++#endif
+ throw invalid_charset_error(charset);
+ }
@@ -91,6 +95,7 @@
- char const *charset,
- method_type how)
- {
-+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
- hold_ptr<converter_from_utf<CharType> > cvt;
- #ifdef BOOST_LOCALE_WITH_ICONV
- cvt.reset(new iconv_from_utf<CharType>());
+ template<typename CharType>
+ std::string convert_from(const CharType* begin, const CharType* end, const char* charset, method_type how)
+ {
++#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
+ hold_ptr<converter_from_utf<CharType>> cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_from_utf<CharType>());
@@ -107,6 +112,7 @@
- if(cvt->open(charset,how))
- return cvt->convert(begin,end);
- #endif
-+ #endif
- throw invalid_charset_error(charset);
- }
+ if(cvt->open(charset, how))
+ return cvt->convert(begin, end);
+ #endif
++#endif
+ throw invalid_charset_error(charset);
+ }
diff --git a/external/boost/libc++.patch.0 b/external/boost/libc++.patch.0
deleted file mode 100644
index f912e6cdb6c7..000000000000
--- a/external/boost/libc++.patch.0
+++ /dev/null
@@ -1,12 +0,0 @@
---- boost/config/stdlib/libcpp.hpp
-+++ boost/config/stdlib/libcpp.hpp
-@@ -167,5 +167,9 @@
- #if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000)
- # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
- #endif
-+
-+#if __cplusplus >= 201103
-+# define BOOST_NO_CXX98_FUNCTION_BASE
-+#endif
-
- // --- end ---
diff --git a/external/boost/windows-no-utf8-locales.patch.0 b/external/boost/windows-no-utf8-locales.patch.0
deleted file mode 100644
index a6b9467d6a32..000000000000
--- a/external/boost/windows-no-utf8-locales.patch.0
+++ /dev/null
@@ -1,20 +0,0 @@
-Don't ever attempt to initialise a std::locale with a UTF-8 locale on Windows -*- Mode: Diff -*-
-
---- libs/locale/src/boost/locale/std/std_backend.cpp
-+++ libs/locale/src/boost/locale/std/std_backend.cpp
-@@ -109,12 +109,13 @@
- #endif
- }
- else {
-+ #if !defined(BOOST_WINDOWS)
- if(loadable(lid)) {
- name_ = lid;
- utf_mode_ = utf8_native_with_wide;
- }
-- #if defined(BOOST_WINDOWS)
-- else if(loadable(win_name)) {
-+ #else
-+ if(loadable(win_name)) {
- name_ = win_name;
- utf_mode_ = utf8_from_wide;
- }