office-gobmx/external/boost/boost.noiconv.patch
Stephan Bergmann f65d7265c6 Upgrade external/boost to latest Boost 1.84.0
<https://dev-www.libreoffice.org/src/boost_1_84_0.tar.xz> has been generated (on
Fedora 39) with

> $ wget https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.bz2
> $ printf 'cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454 boost_1_84_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_84_0.html>
> boost_1_84_0.tar.bz2: OK
> $ external/boost/repack_tarball.sh boost_1_84_0.tar.bz2
> Unpacking boost_1_84_0.tar.bz2 ...
> Removing unnecessary files ...
> Creating boost_1_84_0.tar.xz ...
> Cleaning up ...
> fd4a2ee785ea0e4efc5221a4284e0cf51096e8409871fb70fdaced002eeffc0b  boost_1_84_0.tar.xz
> Done.

* external/boost/0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2
  was obsoleted by
  <665047aac2>
  "avoid ODR by making this const".

* The modified external/boost/windows-no-utf8-locales.patch.0, whose original
  version no longer applied as-is, should hopefully still mitigate the issue
  described in 072a25e1ef "tdf#157135 workaround:
  restore and update windows-no-utf8-locales.patch.0".

* external/boost/Wundef.patch.0 is needed to silence

> In file included from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/throw_exception.hpp:24,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/serialize_tracked_address.hpp:16,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/fca.hpp:117,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/implementation.hpp:17,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/map.hpp:7,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/unordered_map.hpp:17,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered_map.hpp:17,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/external/boost/include/boost/unordered_map.hpp:30,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/configmgr/source/modifications.hxx:28,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/configmgr/source/data.hxx:34,
>                  from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/configmgr/source/groupnode.cxx:26:
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/type_traits.hpp:51:22: error: "BOOST_LIBSTDCXX_VERSION_WORKAROUND_GUARD" is not defined, evaluates to 0 [-Werror=undef]
>    51 | #if BOOST_WORKAROUND(BOOST_LIBSTDCXX_VERSION, < 50000)
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/config/workaround.hpp:272:10: note: in definition of macro ‘BOOST_WORKAROUND’
>   272 |        ((symbol ## _WORKAROUND_GUARD + 0 == 0) &&     \
>       |          ^~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/type_traits.hpp:64:22: error: "BOOST_LIBSTDCXX_VERSION_WORKAROUND_GUARD" is not defined, evaluates to 0 [-Werror=undef]
>    64 | #if BOOST_WORKAROUND(BOOST_LIBSTDCXX_VERSION, < 50000)
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/config/workaround.hpp:272:10: note: in definition of macro ‘BOOST_WORKAROUND’
>   272 |        ((symbol ## _WORKAROUND_GUARD + 0 == 0) &&     \
>       |          ^~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/unordered/detail/type_traits.hpp:77:22: error: "BOOST_LIBSTDCXX_VERSION_WORKAROUND_GUARD" is not defined, evaluates to 0 [-Werror=undef]
>    77 | #if BOOST_WORKAROUND(BOOST_LIBSTDCXX_VERSION, < 50000)
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/boost/boost/config/workaround.hpp:272:10: note: in definition of macro ‘BOOST_WORKAROUND’
>   272 |        ((symbol ## _WORKAROUND_GUARD + 0 == 0) &&     \
>       |          ^~~~~~

  etc. (<https://ci.libreoffice.org/job/gerrit_linux_gcc_release/155922/>) as
  seen with some versions of GCC which apparently fail to honor in that
  situation the

> #pragma GCC diagnostic ignored "-Wundef"

  in the external/boost/include wrappers.  (Using

> #pragma GCC system_header

  in those external/boost/include wrappers had been dismissed with
  29661a886e "boost: stop using #pragma GCC
  system_header".)

Change-Id: Idf1d5a17bc198b8ea7a54751e8e2fa6ca2169167
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161138
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-07 18:11:24 +02:00

51 lines
1.8 KiB
Diff

diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs/locale/src/encoding/codepage.cpp
--- foo/misc/boost.orig/libs/locale/src/encoding/codepage.cpp
+++ foo/misc/boost/libs/locale/src/boost/locale/encoding/codepage.cpp
@@ -29,6 +29,7 @@
const std::string& from_charset,
method_type how)
{
+#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
#ifdef BOOST_LOCALE_WITH_ICONV
{
impl::iconv_between cvt;
@@ -50,6 +51,7 @@
return cvt.convert(begin, end);
}
#endif
+#endif
throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
}
@@ -56,6 +58,7 @@
template<typename CharType>
std::basic_string<CharType> to_utf(const char* begin, const char* end, const std::string& charset, method_type how)
{
+#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
#ifdef BOOST_LOCALE_WITH_ICONV
{
impl::iconv_to_utf<CharType> cvt;
@@ -77,6 +80,7 @@
return cvt.convert(begin, end);
}
#endif
+#endif
throw invalid_charset_error(charset);
}
@@ -83,6 +87,7 @@
template<typename CharType>
std::string from_utf(const CharType* begin, const CharType* end, const std::string& charset, method_type how)
{
+#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
#ifdef BOOST_LOCALE_WITH_ICONV
{
impl::iconv_from_utf<CharType> cvt;
@@ -104,6 +109,7 @@
return cvt.convert(begin, end);
}
#endif
+#endif
throw invalid_charset_error(charset);
}