summaryrefslogtreecommitdiff
path: root/external/boost
AgeCommit message (Collapse)Author
2023-04-17Upgrade external/boost to latest Boost 1.82.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_82_0.tar.xz> has been generated (on Fedora 38) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2 > $ printf 'a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6 boost_1_82_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_82_0.html> > boost_1_82_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_82_0.tar.bz2 > Unpacking boost_1_82_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_82_0.tar.xz ... > Cleaning up ... > e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de boost_1_82_0.tar.xz > Done. * Updating StaticLibrary_boost_locale.mk is needed to avoid > workdir/UnpackedTarball/boost/libs/locale/src/boost/locale/util/locale_data.cpp:137: error: undefined reference to 'boost::locale::util::normalize_encoding(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' Change-Id: Iff3f5249df0fcf75f5a50e7eb35ef64373af8184 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150516 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-05Upgrade external/boost to latest Boost 1.81.0Stephan Bergmann
<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>
2022-11-24Drop redundant -Wnon-virtual-dtorStephan Bergmann
Inspired by <https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607102.html> "[PATCH] doc: -Wdelete-non-virtual-dtor supersedes -Wnon-virtual-dtor", drop explicitly enabling -Wnon-virtual-dtor in favor of -Wdelete-non-virtual-dtor, which is already enabled by -Wall. (-Wdelete-non-virtual-dtor first appeared in Clang 3.0, <https://github.com/llvm/llvm-project/commit/8bd428574c717e68a8274739d2ba0f6dc16fd0fb> "Add new warning that warns when invoking 'delete' on a polymorphic, non-final, class without a virtual destructor", and GCC 4.7, <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=014ab419efc12a59efebd2720d79e1c055675c85> "invoke.texi: Document -Wdelete-non-virtual-dtor. [...]") Dropping the explicit setting of -Wnon-virtual-dtor (and nowhere setting it implicitly via -Weffc++) means we can get rid of lots of places that either set -Wno-non-virtual-dtor or use some pragma to ignore -Wnon-virtual-dtor. (In various places across extensions/source/activex/ and winaccessibility/, the commits f26996bd3398afa789a5491968244563ccf70908 "Silence -Werror,-Wnon-virtual-dtor in generated so_activex.h (clang-cl)" and c6086ca6535692496fbd718d174d8eb5a5dea7c7 "Silence -Werror,-Wnon-virtual-dtor in generated UAccCOM.h (clang-cl)" had singled out some includes to wrap them in pragmas. Now that those pragmas are gone again, move those includes back to where they had been prior to being singled out. And the -Wno-non-virtual-dtor in external/firebird/macos-arm64.patch.0 appeared first in ccd0e5f445d4a7d0e7aca6c23c02c61bf14510b2 "Make firebird build for macOS on arm64", which, though it doesn't state it explicitly, apparently created that patch's builds/posix/prefix.darwin_arm64 as a copy of firebird's already existing builds/posix/prefix.* files, which routinely include that warning option too, so keep it there too even if it is probably irrelevant throughout.) Change-Id: I7e4fa9f2c07e267b2ed15607905027f6b78142f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143182 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-11-17external/boost: Replace constexpr.patch.0 with alternative upstream fixStephan Bergmann
Change-Id: I168c3bfbf5a194f7f5565ba2dc6086f3b4053d12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142828 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-25tdf#126788 speed up export to pdf of complex table documentNoel Grandin
We can avoid an allocation in the common case, shaves 10% off the --convert-to pdf time. Change-Id: I9263d3dc8fd6a1d74cd063ba13e2e0160f7a9dd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141769 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-14Fix build of boost for iOSTor Lillqvist
Change-Id: If5d812e1b37c9aa16b2b6075585f5f3023aca431 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139827 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2022-08-19Upgrade external/boost to latest Boost 1.80.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_80_0.tar.xz> has been generated (on Fedora 36) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 > $ printf '1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0 boost_1_80_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_80_0.html> > boost_1_80_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_80_0.tar.bz2 > Unpacking boost_1_80_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_80_0.tar.xz ... > Cleaning up ... > 322e567e98c466c0aa0e380ed8c647552fe4af48998648428f1b5f0c8eff4666 boost_1_80_0.tar.xz > Done. * In StaticLibrary_boost_filesystem, <https://github.com/boostorg/filesystem/commit/36cf9aaf816a39dce3d32e2bfe09e214d7f3ab64> "Updated protection of remove_all against CVE-2022-21658 on POSIX" had introduced uses of certain POSIX *at functions (like utimensat) conditionally on some new BOOST_FILESYSTEM_HAS_POSIX_AT_APIS, to be discovered by workdir/UnpackedTarball/boost/libs/filesystem/CMakeLists.txt which we don't run. At least AT_NO_AUTOMOUNT, as used in workdir/UnpackedTarball/boost/libs/filesystem/src/operations.cpp, appears to be unavailable on the macOS baseline, but otherwise assume that all that POSIX functionality is available on all other non-Windows baselines and hardcode that in external/boost/StaticLibrary_boost_filesystem.mk. (If it turns out that we need to exclude some more platforms there, we /might/ need to backport <https://github.com/boostorg/filesystem/commit/5864f397ccad30f6e73221b90bdac57a303b9752> "Fixed a missing include on POSIX systems that don't support *at APIs" from the develop branch towards Boost 1.81.) * In StaticLibrary_boost_locale, <https://github.com/boostorg/locale/commit/41868c62a0519799696b544518f1efd831ff71c2> "Support systems without implicit include path" had moved source files around (and then would have failed with > workdir/UnpackedTarball/boost/libs/locale/src/boost/locale/shared/mo_lambda.cpp:7:10: fatal error: 'boost/locale/shared/mo_lambda.hpp' file not found > #include "boost/locale/shared/mo_lambda.hpp" > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ etc. without the additional -I option). * Some Clang builds would have started to fail with > In file included from desktop/qa/unit/desktop-lok-init.cxx:19: > In file included from desktop/inc/lib/init.hxx:20: > In file included from workdir/UnpackedTarball/boost/boost/container/flat_map.hpp:26: > workdir/UnpackedTarball/boost/boost/container/new_allocator.hpp:168:12: error: '__cpp_sized_deallocation' is not defined, evaluates to 0 [-Werror,-Wundef] > # if __cpp_sized_deallocation > ^ so add another external/boost/include/ wrapper. Change-Id: I5e53f7ddab07eadba9bdf653acad571f50517b46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138511 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-09Mark external/boost/constexpr.patch.0 as upstreamedStephan Bergmann
Change-Id: I23898f6aebd5a1fd28a2de9da6a89503b25eb6ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138035 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-03external/boost: Fix ill-formed constant expression errorsStephan Bergmann
...with recent Clang 16 trunk since <https://github.com/llvm/llvm-project/commit/b3645353041818f61e2580635409ddb81ff5a272> "[Clang] Diagnose ill-formed constant expression when setting a non fixed enum to a value outside the range of the enumeration values", causing > In file included from IWORKTable.cpp:10: > In file included from ./IWORKTable.h:21: > In file included from ./IWORKTypes.h:20: > In file included from external/boost/include/boost/variant.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/variant.hpp:17: > In file included from workdir/UnpackedTarball/boost/boost/variant/variant.hpp:34: > In file included from workdir/UnpackedTarball/boost/boost/variant/detail/hash_variant.hpp:22: > In file included from workdir/UnpackedTarball/boost/boost/variant/apply_visitor.hpp:16: > In file included from workdir/UnpackedTarball/boost/boost/variant/detail/apply_visitor_unary.hpp:21: > In file included from workdir/UnpackedTarball/boost/boost/mpl/advance.hpp:19: > In file included from workdir/UnpackedTarball/boost/boost/mpl/negate.hpp:17: > In file included from workdir/UnpackedTarball/boost/boost/mpl/integral_c.hpp:32: > workdir/UnpackedTarball/boost/boost/mpl/aux_/integral_wrapper.hpp:73:31: error: non-type template argument is not a constant expression > typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; > ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost/boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST' > # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr) > ^ > workdir/UnpackedTarball/boost/boost/mpl/integral_c.hpp:31:54: note: expanded from macro 'AUX_WRAPPER_INST' > #define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value > > ^~~~~ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/meta.hpp:30:46: note: in instantiation of template class 'mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>' requested here > enum { x = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value ) }; > ^ > workdir/UnpackedTarball/boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>' requested here > BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value) > ^ > workdir/UnpackedTarball/boost/boost/mpl/eval_if.hpp:37:22: note: in instantiation of template class 'boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>>, boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>>, boost::mpl::identity<boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>>, boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::udt_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>>>' requested here > typedef typename if_<C,F1,F2>::type f_; > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/meta.hpp:81:12: note: in instantiation of template class 'boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>>, boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>>, boost::mpl::identity<boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>>, boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::udt_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>>>' requested here > mpl::eval_if<is_case0,Case0TypeQ,choose_1_2_3Q>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/udt_builtin_mixture.hpp:41:7: note: in instantiation of template class 'boost::numeric::convdetail::ct_switch4<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::udt_to_builtin>, boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>, boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>' requested here > ct_switch4<UdtMixture > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/is_subranged.hpp:205:9: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) > for_udt_builtin_mixture<udt_builtin_mixture, BuiltIn2BuiltInQ, BuiltIn2UdtQ, Udt2BuiltInQ, Udt2UdtQ>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/conversion_traits.hpp:22:7: note: in instantiation of template class 'boost::numeric::convdetail::non_trivial_traits_impl<int, unsigned long>' requested here > : convdetail::get_conversion_traits<T,S>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/converter.hpp:584:22: note: in instantiation of template class 'boost::numeric::conversion_traits<int, unsigned long>' requested here > typedef typename Traits::trivial trivial ; > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/converter.hpp:29:32: note: in instantiation of template class 'boost::numeric::convdetail::get_converter_impl<boost::numeric::conversion_traits<int, unsigned long>, boost::numeric::def_overflow_handler, boost::numeric::Trunc<unsigned long>, boost::numeric::raw_converter<boost::numeric::conversion_traits<int, unsigned long>>, boost::numeric::UseInternalRangeChecker>' requested here > struct converter : convdetail::get_converter_impl<Traits, > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/cast.hpp:53:16: note: in instantiation of template class 'boost::numeric::converter<int, unsigned long, boost::numeric::conversion_traits<int, unsigned long>, boost::numeric::def_overflow_handler, boost::numeric::Trunc<unsigned long>>' requested here > return converter::convert(arg); > ^ > IWORKTable.cpp:782:45: note: in instantiation of function template specialization 'boost::numeric_cast<int, unsigned long>' requested here > cellProps.insert("librevenge:column", numeric_cast<int>(c)); > ^ > workdir/UnpackedTarball/boost/boost/mpl/aux_/integral_wrapper.hpp:73:31: note: integer value -1 is outside the valid range of values [0, 3] for this enumeration type > typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; > ^ > workdir/UnpackedTarball/boost/boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST' > # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr) > ^ etc. when building ExternalProject_libetonyek Change-Id: I1830c1182a7ab966bb068b5eb97db099c9678fe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137757 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-07-14Adapt to new Clang 15 trunk -Wdeprecated-builtinsStephan Bergmann
...<https://github.com/llvm/llvm-project/commit/0b89d1d59f82cf5b45c250cd5c3351e43ce35ef9> "[Sema] Add deprecation warnings for some compiler provided __has_* type traits", which hits in Boost include files, > In file included from libreofficekit/qa/tilebench/tilebench.cxx:27: > In file included from external/boost/include/boost/property_tree/json_parser.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/json_parser.hpp:14: > In file included from external/boost/include/boost/property_tree/ptree.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/ptree.hpp:16: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/string_path.hpp:15: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/id_translator.hpp:16: > In file included from external/boost/include/boost/optional.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/optional.hpp:15: > In file included from workdir/UnpackedTarball/boost/boost/optional/optional.hpp:42: > workdir/UnpackedTarball/boost/boost/type_traits/has_nothrow_constructor.hpp:27:84: error: builtin __has_nothrow_constructor is deprecated; use __is_nothrow_constructible instead [-Werror,-Wdeprecated-builtins] > template <class T> struct has_nothrow_constructor : public integral_constant<bool, BOOST_HAS_NOTHROW_CONSTRUCTOR(T)>{}; > ^ > workdir/UnpackedTarball/boost/boost/type_traits/intrinsics.hpp:199:48: note: expanded from macro 'BOOST_HAS_NOTHROW_CONSTRUCTOR' > # define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) && is_default_constructible<T>::value) > ^ etc. Change-Id: I08376710e25013b44279532d6e5fc256ed95cb76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137046 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-29Adapt to LLVM 15 trunk libc++ dropping std::unary_/binary_functionStephan Bergmann
...for C++17 and beyond with <https://github.com/llvm/llvm-project/commit/681cde7dd8b5613dbafc9ca54e0288477f946be3> "[libc++] Complete the implementation of N4190". (Unless explicitly opted-in with _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION. This is similar to the MSVC standard library needing _HAS_AUTO_PTR_ETC=1 to enable those zombie functions for quite some time now. Only libstdc++ still supports them unconditionally.) Most uses of those zombie functions across LibreOffice itself and the bundled external/* are indirectly within Boost include files. And many (but not all) of those Boost include files only use those zombie functions conditionally, based on BOOST_NO_CXX98_FUNCTION_BASE. For the (Dinkumware-derived) MSVC standard library, workdir/UnpackedTarball/boost/boost/config/stdlib/dinkumware.hpp already defined BOOST_NO_CXX98_FUNCTION_BASE. So add a patch to define that also in workdir/UnpackedTarball/boost/boost/config/stdlib/libcpp.hpp (for all of C++11 and beyond, even if those functions were still available as deprecated in C++11 and C++14, but which shouldn't make a difference with our C++17 baseline anyway; only make sure that things still work if those Boost include files ever get used by code built with gb_CXX03FLAGS). (Patching our bundled external/boost of course doesn't help when building with such a new libc++ and --with-system-boost against an unpatched Boost, but lets consider that "not my problem". Also, one could always use a sledgehammer like passing CPPFLAGS=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION into gbuild in such a case.) Then there are two places that include boost/multi_array.hpp, which indirectly includes workdir/UnpackedTarball/boost/boost/functional.hpp, which still uses those zombie functions for non-MSVC builds (at least in the bundled Boost 1.79.0). Lets do a targeted _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION in those cases. (Alternatively, we could patch workdir/UnpackedTarball/boost/boost/functional.hpp. Also, I decided to make loplugin:reservedid support the new suppression mechanism, rather than extending its existing ignorelist even further.) And then there is external/clucene using those zombie functions even outside of a Boost include file, so extend the existing hack there that was already needed for MSVC. (And adapt the accompanying comment: For one, we are unconditionally "in C++17 mode" by now. And for another, the exact places where external/clucene uses those functions have apparently changed over time.) Change-Id: Id0eec3bedcfddae86b16d33c02c7b5d3b3f8a16f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136579 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-28The std::unary_function workaround should no longer be necessaryStephan Bergmann
...with the bundled Boost 1.79.0, as workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/converter.hpp no longer uses it since <https://github.com/boostorg/numeric_conversion/commit/ebfded1d7d4a2f773e8233c4df6f96131f79d72e> "Remove the deprecated uses of std::unary_function (again)" in Boost 1.66.0 Change-Id: I58808cc2a7836c63ee13cf63c8528fc95f4e2cea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136555 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-05Upgrade external/boost to latest Boost 1.79.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_79_0.tar.xz> has been generated (on Fedora 35) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2 > $ printf '475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39 boost_1_79_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_79_0.html> > boost_1_79_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_79_0.tar.bz2 > Unpacking boost_1_79_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_79_0.tar.xz ... > Cleaning up ... > 2058aa88758a0e1aaac1759b3c4bad2526f899c6ecc6eeea79aa5e8fd3ea95dc boost_1_79_0.tar.xz > Done. boost.utility.Wundef.warnings.patch was obsoleted by <https://github.com/boostorg/utility/commit/c3aab6a18411e637842247e0dd845c58ce8c6d6b> "Use #ifdef to test for BOOST_MSVC." Change-Id: I959f8ab42c3e20b9424cc3054421af60f6edd0d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133895 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-25Upgrade external/boost to latest Boost 1.78.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_78_0.tar.xz> has been generated (on Fedora 35) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 > --2022-02-24 12:05:39-- https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 > $ printf '8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc boost_1_78_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_78_0.html> > boost_1_78_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_78_0.tar.bz2 > Unpacking boost_1_78_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_78_0.tar.xz ... > Cleaning up ... > 0df00d3699c2c7c7fd490c5e165a3e72641861ea5d26428de2f008fb9a75659f boost_1_78_0.tar.xz > Done. external/boost/boost_1_60_0.undef.warning.patch was obsoleted by <https://github.com/boostorg/config/commit/9e80993844cb3d69bfdfa10f059706d7f22eb324> "Define __clang_major___WORKAROUND_GUARD" Change-Id: I7e59ef01ace4ff3c28a285e978e63279b119b07d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130514 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-18boost: use utf-8 encoding for unknown locales.Michael Meeks
More exotic locales like es-419 cannot be parsed by boost, so we fall-back to the default encoding. This avoids an exception: invalid_charset_error of the form: "Invalid or unsupported charset:us-ascii or UTF-8" for this case. Change-Id: I6796dd893ec774b221956ea9febbcc19495d47b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130102 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2022-02-16Remove apparently obsolete external/boost/boost-android-unified.patch.1Stephan Bergmann
The two checks for __clang_major__ == 5 etc. had been added with 23a8d5ffbbe58761b89f590f0735abccd69a3681 "Upgrade external/boost to Boost 1.69.0" because "with the non-standard Clang 5.0.300080 from NDK r16b, the build now caused failures". But for our current Android build baseline NDK r19c (cf. README.md), > $ android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --version > Android (5058415 based on r339409) clang version 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec746213857d083c0e8b0abb568790) (https://android.googlesource.com/toolchain/llvm 7a6618d69e7e8111e1d49dc9e7813767c5ca756a) (based on LLVM 8.0.2svn) [...] has __clang_major__ == 8 by now. Change-Id: I5a5131c14ddf410ed60337992c2d827792c3bbc5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130029 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-07boost / gettext warning improvement.Michael Meeks
std::runtime_exception of: "Invalid or unsupported charset:UTF-8 or UTF-8" is less useful than it could be when spat out from the boost gettext impl. Survive for the next (and probably more useful) exception. Change-Id: Ibeb60b4a34f09f47051844c3e8048f38618d0e05 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129566 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2022-01-19WASM boost: fix build with EmscriptenJan-Marek Glogowski
boost probably expects a WASI, not Emscripten. Change-Id: I7f275e1b501d6ea46d43637be815bf5a45b1cc40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128586 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-11-10Upgrade external/boost to latest Boost 1.77.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_77_0.tar.xz> has been generated (on Fedora 35) with > $ wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2 > $ printf 'fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854 boost_1_77_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_77_0.html> > boost_1_77_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_77_0.tar.bz2 > Unpacking boost_1_77_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_77_0.tar.xz ... > Cleaning up ... > 9b334d6c6d7af5a0687280788cd84444398b8e0b472cd88e52bbc3c3ef11d98e boost_1_77_0.tar.xz > Done. Change-Id: I527cad7eb2f311d968da371f268644bdd31f6462 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124947 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-04The std::auto_ptr workarounds should no longer be necessaryStephan Bergmann
...with the bundled Boost 1.76.0, as boost/locale no longer uses it since <https://github.com/boostorg/locale/commit/322437a485c63d9fce4dc620597b6c75b6396daf> "Adding dual auto_ptr/unique_ptr support" in Boost 1.67.0 in combination with BOOST_NO_AUTO_PTR being set automatically when building for C++17 and beyond for both libc++ (via <https://github.com/boostorg/config/commit/0df7552f38cc059defa4189d7a36101925559eb8> "define BOOST_NO_AUTO_PTR when building with libc++ and C++17" in Boost 1.65.0) and MSVC (via <https://github.com/boostorg/config/commit/776bc8ac107e864fc4c51d6aee0e532026a50281> "Update for MSVC14's _HAS_AUTO_PTR_ETC" in Boost 1.60.0; if we didn't globally set _HAS_AUTO_PTR_ETC in gb_COMPILERDEFS in solenv/gbuild/platform/com_MSC_defs.mk since 61c88ae6945c241f5f2aeb844eeca0776b487132 "gbuild: always compile as C++17 with MSVC 2017" anyway) Change-Id: Idd9d44c8350217f19ad2fa6749b90a9ffce38511 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124712 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-12disable gcc warnings when using boost::make_sharedNoel Grandin
Change-Id: I02a54d9ab9c1faf36ce0b03b6ca42b3708f02667 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120394 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-10Clean up remaining uses of boost::logic::triboolStephan Bergmann
obFitShapeToText and obRelFlipV can just as well be modelled with std::optional<bool>, and obFlipH and obFlipV apparently only need two states anyway (as for a boost::logic::tribool x, bool(x == true) is true iff x has the value true) Change-Id: Ic35e33ffa4ee30d1c2cdf9f8d4aa3bae29ece2af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120281 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-10Upgrade external/boost to latest Boost 1.76.0Stephan Bergmann
* <https://dev-www.libreoffice.org/src/boost_1_76_0.tar.xz> has been generated (on Fedora 34) with > $ wget https://boostorg.jfrog.io/native/main/release/1.76.0/source/boost_1_76_0.tar.bz2 > $ printf 'f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41 boost_1_76_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_76_0.html> > boost_1_76_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_76_0.tar.bz2 > Unpacking boost_1_76_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_76_0.tar.xz ... > Cleaning up ... > adfa0ca971c56006a8304b6146d1382e6369815d568f6e6a7440fe29995d51b8 boost_1_76_0.tar.xz > Done. * external/boost/0001-Fix-include-inside-boost-namespace.patch.2 is necessary to fix > checking for boost/math/constants/constants.hpp... no > configure: error: Required boost headers not found. > make[1]: *** [external/libzmf/ExternalProject_libzmf.mk:28: workdir/ExternalProject/libzmf/build] Error 1 with recent libstdc++ 12 trunk (presumably since <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=261d5a4a459bd49942e53bc83334ccc7154a09d5> "libstdc++: Reduce header dependencies on <array> and <utility>", and with other standard libraries <utility> was likely already included indirectly earlier, so the include nested in namespace boost::math::tools::meta_programming in the middle of workdir/UnpackedTarball/boost/boost/math/tools/mp.hpp didn't cause harm). Change-Id: I1eee23915fea48bbb383cbeefc4ddfdeaac63e14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120253 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-05WASM: add initial support for Emscripten cross buildJan-Marek Glogowski
- configure with: - --host=wasm64-local-emscripten - had to make a few externals optional, so adding: - --disable-nss - --disable-cmis - --disable-curl Change-Id: I48d1c73d2675ad2e2beaf2c341578199efbd24ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111130 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-01-14external/boost: Silence Boost bind deprecation warningStephan Bergmann
> In file included from desktop/source/lib/lokinteractionhandler.cxx:22: > In file included from external/boost/include/boost/property_tree/json_parser.hpp:30: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/json_parser.hpp:16: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/json_parser/detail/read.hpp:13: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/json_parser/detail/parser.hpp:7: > In file included from external/boost/include/boost/bind.hpp:30: > workdir/UnpackedTarball/boost/boost/bind.hpp:36:1: warning: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior. [-W#pragma-messages] > BOOST_PRAGMA_MESSAGE( > ^ etc. from within boost/property_tree/json_parser.hpp wherever that is included, since e0f1b5bd94550835c639efda4e4c9a801c78dbe9 "Upgrade external/boost to latest Boost 1.75.0". Change-Id: I2c780966e4774a8d58d1cbdf21f77d685da00689 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109229 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-06Upgrade external/boost to latest Boost 1.75.0Stephan Bergmann
* <https://dev-www.libreoffice.org/src/boost_1_75_0.tar.xz> has been generated (on Fedora 33) with > $ wget https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2 > $ printf '953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb boost_1_75_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_75_0.html> > boost_1_75_0.tar.bz2: OK > $ external/boost/repack_tarball.sh boost_1_75_0.tar.bz2 > Unpacking boost_1_75_0.tar.bz2 ... > Removing unnecessary files ... > Creating boost_1_75_0.tar.xz ... > Cleaning up ... > cc378a036a1cfd3af289f3da24deeb8dba7a729f61ab104c7b018a622e22d21b boost_1_75_0.tar.xz > Done. * external/boost/StaticLibrary_boost_date_time.mk: Even though date_generators.cpp and greg_weekday.cpp are still present, their function definitions are now covered by inline function definitions in include files, > workdir/UnpackedTarball/boost/libs/date_time/src/gregorian/greg_weekday.cpp:23:17: error: redefinition of 'as_short_string' > greg_weekday::as_short_string() const > ^ > workdir/UnpackedTarball/boost/boost/date_time/gregorian/greg_weekday.hpp:52:17: note: previous definition is here > const char* as_short_string() const > ^ etc. and > workdir/UnpackedTarball/boost/libs/date_time/src/gregorian/date_generators.cpp:23:36: error: redefinition of 'nth_as_str' > BOOST_DATE_TIME_DECL const char* nth_as_str(int ele) > ^ > workdir/UnpackedTarball/boost/boost/date_time/date_generators.hpp:157:22: note: previous definition is here > inline const char* nth_as_str(int ele) > ^ * external/boost/StaticLibrary_boost_filesystem.mk now lacked various symbols, as seen when linking external/liborcus' orcus-parser library: > "boost::filesystem::emit_error(int, boost::system::error_code*, char const*)", referenced from: [...] > "boost::filesystem::emit_error(int, boost::filesystem::path const&, boost::system::error_code*, char const*)", referenced from: [...] > "boost::filesystem::emit_error(int, boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*, char const*)", referenced from: [...] > "boost::filesystem::filesystem_error::filesystem_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::filesystem::path const&, boost::system::error_code)", referenced from: [...] > "boost::filesystem::filesystem_error::filesystem_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code)", referenced from: [...] > "boost::filesystem::filesystem_error::~filesystem_error()", referenced from: [...] > "boost::filesystem::detail::dir_itr_close(void*&, void*&)", referenced from: [...] > "boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, unsigned int, boost::system::error_code*)", referenced from: [...] > "boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)", referenced from: [...] > "typeinfo for boost::filesystem::filesystem_error", referenced from: [...] * No longer sure why external/boost/gcc9.patch.0 from e7b8728f5c0292a6c6a18e76220b1769ecf25aa3 "external/boost: silence -Werror=deprecated-copy (GCC trunk towards GCC 9)" was necessary at all, in addition to that commit's > #pragma GCC diagnostic ignored "-Wdeprecated-copy" changes, but at least a build with recent GCC 11 trunk appears to work fine now without it. (And the patch would no longer have applied as-is.) * The dropped patches in external/boost/c++20-allocator.patch.0 and external/boost/clang-cl.patch.0 would no longer have applied as-is, but also appear not to be needed any more. * external/boost/include/boost/property_tree/ptree_fwd.hpp became necessary to silence > In file included from workdir/UnpackedTarball/boost/boost/property_tree/ptree_fwd.hpp:16, > from libreofficekit/qa/gtktiledviewer/gtv-helpers.hxx:21, > from libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx:19: > workdir/UnpackedTarball/boost/boost/throw_exception.hpp: In instantiation of ‘boost::wrapexcept<E>::wrapexcept(const E&, const boost::source_location&) [with E = boost::property_tree::ptree_bad_data]’: > workdir/UnpackedTarball/boost/boost/throw_exception.hpp:171:11: required from ‘void boost::throw_exception(const E&, const boost::source_location&) [with E = boost::property_tree::ptree_bad_data]’ > workdir/UnpackedTarball/boost/boost/property_tree/detail/ptree_implementation.hpp:826:13: required from ‘void boost::property_tree::basic_ptree<Key, Data, KeyCompare>::put_value(const Type&, Translator) [with Type = char [8]; Translator = boost::property_tree::stream_translator<char, std::char_traits<char>, std::allocator<char>, char [8]>; Key = std::__cxx11::basic_string<char>; Data = std::__cxx11::basic_string<char>; KeyCompare = std::less<std::__cxx11::basic_string<char> >]’ > workdir/UnpackedTarball/boost/boost/property_tree/detail/ptree_implementation.hpp:845:34: required from ‘boost::property_tree::basic_ptree<K, D, C>& boost::property_tree::basic_ptree<Key, Data, KeyCompare>::put(const path_type&, const Type&, Translator) [with Type = char [8]; Translator = boost::property_tree::stream_translator<char, std::char_traits<char>, std::allocator<char>, char [8]>; Key = std::__cxx11::basic_string<char>; Data = std::__cxx11::basic_string<char>; KeyCompare = std::less<std::__cxx11::basic_string<char> >; boost::property_tree::basic_ptree<Key, Data, KeyCompare>::path_type = boost::property_tree::string_path<std::__cxx11::basic_string<char>, boost::property_tree::id_translator<std::__cxx11::basic_string<char> > >]’ > workdir/UnpackedTarball/boost/boost/property_tree/detail/ptree_implementation.hpp:859:19: required from ‘boost::property_tree::basic_ptree<K, D, C>& boost::property_tree::basic_ptree<Key, Data, KeyCompare>::put(const path_type&, const Type&) [with Type = char [8]; Key = std::__cxx11::basic_string<char>; Data = std::__cxx11::basic_string<char>; KeyCompare = std::less<std::__cxx11::basic_string<char> >; boost::property_tree::basic_ptree<Key, Data, KeyCompare>::path_type = boost::property_tree::string_path<std::__cxx11::basic_string<char>, boost::property_tree::id_translator<std::__cxx11::basic_string<char> > >]’ > libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx:300:103: required from here > workdir/UnpackedTarball/boost/boost/throw_exception.hpp:134:82: error: implicitly-declared ‘boost::property_tree::ptree_bad_data::ptree_bad_data(const boost::property_tree::ptree_bad_data&)’ is deprecated [-Werror=deprecated-copy-dtor] > 134 | explicit wrapexcept( E const & e, boost::source_location const & loc ): E( e ) > | ^ > In file included from workdir/UnpackedTarball/boost/boost/property_tree/exceptions.hpp:84, > from workdir/UnpackedTarball/boost/boost/property_tree/string_path.hpp:16, > from workdir/UnpackedTarball/boost/boost/property_tree/ptree.hpp:16, > from external/boost/include/boost/property_tree/ptree.hpp:30, > from workdir/UnpackedTarball/boost/boost/property_tree/json_parser.hpp:14, > from external/boost/include/boost/property_tree/json_parser.hpp:30, > from libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx:26: > workdir/UnpackedTarball/boost/boost/property_tree/detail/exception_implementation.hpp:51:12: note: because ‘boost::property_tree::ptree_bad_data’ has user-provided ‘virtual boost::property_tree::ptree_bad_data::~ptree_bad_data()’ > 51 | inline ptree_bad_data::~ptree_bad_data() throw() > | ^~~~~~~~~~~~~~ etc. Change-Id: I36fcd04ca6f109910761a5802535a18cfb17ddd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108878 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-06external/boost: Backport a Boost 1.72.0 fixStephan Bergmann
...for issues with MSVC 2019 16.8.3 --with-latest-c++ in external/libwpd: > [build CXX] workdir/UnpackedTarball/libwpd/src/lib/libwpd_internal.cpp > C:\lo\core\workdir\UnpackedTarball\boost\boost/proto/generate.hpp(239): error C2039: 'value': is not a member of 'boost::proto' > C:\lo\core\workdir\UnpackedTarball\boost\boost/proto/generate.hpp(32): note: see declaration of 'boost::proto' > C:\lo\core\workdir\UnpackedTarball\boost\boost/proto/generate.hpp(239): note: This diagnostic occurred in the compiler generated function 'Extends<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<MemberClass::* >,boost::proto::argsns_::term<MemberClass::* >::arity>> boost::proto::pod_generator<Extends>::operator ()(const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<MemberClass::* >,boost::proto::argsns_::term<MemberClass::* >::arity> &) const' > C:\lo\core\workdir\UnpackedTarball\boost\boost/proto/generate.hpp(252): note: see reference to class template instantiation 'boost::proto::pod_generator<Extends>' being compiled [...] Change-Id: Iae62b41e09b89bd387efab2744d47d938a868d17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108839 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-22Silence GCC 11 trunk -Werror=nonnull in external/boostStephan Bergmann
...like > In file included from workdir/UnpackedTarball/boost/boost/concept/assert.hpp:35, > from workdir/UnpackedTarball/boost/boost/concept_check.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/concepts.hpp:19, > from workdir/UnpackedTarball/boost/boost/range/size_type.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/size.hpp:21, > from workdir/UnpackedTarball/boost/boost/range/functions.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/iterator_range_core.hpp:38, > from workdir/UnpackedTarball/boost/boost/range/iterator_range.hpp:13, > from external/boost/include/boost/range/iterator_range.hpp:29, > from workdir/UnpackedTarball/boost/boost/range/as_literal.hpp:22, > from workdir/UnpackedTarball/boost/boost/algorithm/string/trim.hpp:19, > from workdir/UnpackedTarball/boost/boost/algorithm/string.hpp:19, > from external/boost/include/boost/algorithm/string.hpp:29, > from sal/cppunittester/cppunittester.cxx:61: > workdir/UnpackedTarball/boost/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::algorithm::FinderConcept<boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, const char*>]’: > workdir/UnpackedTarball/boost/boost/algorithm/string/iter_find.hpp:81:13: required from ‘SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&&, FinderT) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >]’ > workdir/UnpackedTarball/boost/boost/algorithm/string/split.hpp:158:50: required from ‘SequenceSequenceT& boost::algorithm::split(SequenceSequenceT&, RangeT&&, PredicateT, boost::algorithm::token_compress_mode_type) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; PredicateT = boost::algorithm::detail::is_any_ofF<char>]’ > sal/cppunittester/cppunittester.cxx:303:71: required from here > workdir/UnpackedTarball/boost/boost/concept/detail/general.hpp:47:52: error: ‘this’ pointer null [-Werror=nonnull] > 47 | static void failed() { ((Model*)0)->constraints(); } > | ~~~~~~~~~~~~~~~~~~~~~~~~^~ Change-Id: Ia22b5d510ba41bea138dfcc8d8e0b9eb1e9ad41c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99217 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-03-30Mark external/boost/c++20-allocator.patch.0 as partially covered upstreamStephan Bergmann
Change-Id: I086e51c581202cd8c68a5a408b8d7575c953461d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91347 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-03-18repack the boost tarball to be smaller and fasterLuboš Luňák
The tarball is almost 100MiB and it unpacks to roughly 0.75GiB, because it contains tons of generated html docs and other stuff that is not needed for building. Unpacking it on Cygwin takes several minutes (done in parallel, but still) and even on Linux the unpacking takes longer than the actual compilation. Change-Id: Ied9f3059530f4e9a856170ec3fcc304631ff8e0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89825 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-02-24boost: disable -Wmaybe-uninitialized from GCC 9.2.1 -OgMichael Stahl
This warning is notorious for false positives so let's disable it here. from sal/cppunittester/cppunittester.cxx:61: workdir/UnpackedTarball/boost/boost/function/function_template.hpp: In function ‘SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&&, FinderT) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >]’: workdir/UnpackedTarball/boost/boost/function/function_template.hpp:904:22: error: ‘*((void*)&<anonymous> +8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 904 | std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); Change-Id: Id3cf9fae8db190337b6a3eb0c847c019394088ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89349 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-02-24boost: remove unused boost wrapper headersMichael Stahl
Change-Id: I543e60e295cf87f773f05faf6cfb8da285fac466 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89348 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-15Bump boost version to 1.71David Ostrovsky
Change-Id: Ica4aba467aa00236a4d1c5b0411d1ebc657ea4df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86594 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-12Enable -Wdeprecated-copy-dtor where availableStephan Bergmann
We already get -Wdeprecated-copy (warning about implicitly defined copy functions that will in the future be deleted because other user-provided copy functions exist) automatically through -Wextra, where available. -Wdeprecated-copy-dtor (warning about implicitly defined copy functions that will in the future be deleted because of a user-provided dtor) is split off into its own warning excluded from -Wextra for somewhat unclear reasons, see the discussion at <https://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=88136> "-Wdeprecated-copy is draconian and shouldn't be in -Wall". But -Wdeprecated-copy-dtor has been useful in finding issues (esp. the Clang 10 trunk version, which, unlike the GCC 9 version, also finds copy functions that are implicitly defined because they are used from template instantiations), see 3e59716375a240576fd6d8759b32b4319506ed70 "Prevent BroadcastRecalcOnRefMoveHandler copies" and 4f98cd0f9ce9c2a331a5d34b3ef9d18f9bb6b235 "ScShapeChild has broken copy functions". We need to disable -Wdeprecated-copy-dtor in files included from external/boost, and in two compilerplugin/clang/test/ files. Change-Id: I74b159c3a046e23661473ddbfe53c92c4136a9db Reviewed-on: https://gerrit.libreoffice.org/85073 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28external/boost: Adapt to std::allocator parts removed in C++20Stephan Bergmann
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html#4.2> "Deprecating Vestigial Library Parts in C++17" deprecated, among others, std::allocator::rebind and std::allocator::allocate's hint parameter, and <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html#3.9> "Reviewing Deprecated Facilities of C++17 for C++20" removed them completely. (And <https://gcc.gnu.org/git/?p=gcc.git;a=commit; h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "Remove redundant std::allocator members for C++20" removed them from libstdc++ now for -std=c++2a.) The change to boost/bimap/detail/bimap_core.hpp was necessary in Library_pdfimport: > In file included from workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:61, > from external/boost/include/boost/bimap/bimap.hpp:30, > from sdext/source/pdfimport/inc/pdfiprocessor.hxx:49, > from sdext/source/pdfimport/pdfiadaptor.cxx:27: > workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp: In instantiation of ‘class boost::bimaps::detail::bimap_core<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int>, mpl_::na, mpl_::na, mpl_::na>’: > workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:133:7: required from ‘class boost::bimaps::bimap<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int> >’ > sdext/source/pdfimport/inc/pdfiprocessor.hxx:190:44: required from here > workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp:410:7: error: no class template named ‘rebind’ in ‘boost::bimaps::detail::manage_additional_parameters<mpl_::na, mpl_::na, mpl_::na>::case_NNN::allocator’ {aka ‘class std::allocator<void>’} > 410 | > core_type; > | ^~~~~~~~~ [...] The change to boost/format/alt_sstream_impl.hpp was necessary in ExternalProject_libpagemaker: > In file included from libpagemaker_utils.h:22, > from geometry.h:20, > from OutputShape.h:17, > from OutputShape.cpp:10: > external/boost/include/boost/cstdint.hpp:30:2: warning: #include_next is a GCC extension > 30 | #include_next <boost/cstdint.hpp> > | ^~~~~~~~~~~~ > In file included from workdir/UnpackedTarball/boost/boost/format/alt_sstream.hpp:174, > from workdir/UnpackedTarball/boost/boost/format/internals.hpp:24, > from workdir/UnpackedTarball/boost/boost/format.hpp:38, > from PMDExceptions.h:15, > from OutputShape.h:16, > from OutputShape.cpp:10: > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp: In instantiation of ‘boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type boost::io::basic_altstringbuf<Ch, Tr, Alloc>::overflow(boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type = int]’: > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:227:9: required from here > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:261:45: error: no matching function for call to ‘std::allocator<char>::allocate(std::size_t&, char*)’ > 261 | newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); > | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from gcc/trunk/inst/include/c++/10.0.0/memory:64, > from OutputShape.h:13, > from OutputShape.cpp:10: > gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate: ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = char; std::size_t = long unsigned int]’ > 164 | allocate(size_t __n) > | ^~~~~~~~ > gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate expects 1 argument, 2 provided Change-Id: Id423f7597fe2e84e57df1d48a2ecc4d636c4a913 Reviewed-on: https://gerrit.libreoffice.org/81584 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01external/boost: clang-cl cannot use MSVC's ATOMIC_FLAG_INITStephan Bergmann
The C++ standard leaves it unspecified how ATOMIC_FLAG_INIT is defined, and at least MS Visual Studio 2017 version 15.9 defines it as {0}, asking for list- initialization, but std::atomic_flag is no aggregate (it has a default ctor) and has no suitable ctor for that initializer list. Other standard library implementations solve that by e.g. adding a std::atomic_flag ctor taking a bool parameter, and defining ATOMIC_FLAG_INIT as std::atomic_flag(false); but MSVC apparently relies on some non-standard behavior here that allows to initialize std::atomic_flag from {0}. But that is apparently not supported by clang-cl, causing failures like > [build CXX] workdir/UnpackedTarball/boost/libs/locale/src/shared/date_time.cpp > In file included from workdir/UnpackedTarball/boost/libs/locale/src/shared/date_time.cpp:11: > In file included from workdir/UnpackedTarball/boost\boost/thread/locks.hpp:10: > In file included from workdir/UnpackedTarball/boost\boost/thread/lock_algorithms.hpp:11: > In file included from workdir/UnpackedTarball/boost\boost/thread/lock_types.hpp:18: > In file included from workdir/UnpackedTarball/boost\boost/thread/thread_time.hpp:9: > In file included from workdir/UnpackedTarball/boost\boost/date_time/time_clock.hpp:17: > In file included from external/boost/include\boost/shared_ptr.hpp:27: > In file included from workdir/UnpackedTarball/boost\boost/shared_ptr.hpp:17: > In file included from workdir/UnpackedTarball/boost\boost/smart_ptr/shared_ptr.hpp:36: > workdir/UnpackedTarball/boost\boost/smart_ptr/detail/spinlock_pool.hpp(77,5): error: no matching constructor for initialization of 'std::atomic_flag' > BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, > ^~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost\boost/smart_ptr/detail/spinlock_std_atomic.hpp(81,38): note: expanded from macro 'BOOST_DETAIL_SPINLOCK_INIT' > #define BOOST_DETAIL_SPINLOCK_INIT { ATOMIC_FLAG_INIT } > ^~~~~~~~~~~~~~~~ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(158,26): note: expanded from macro 'ATOMIC_FLAG_INIT' > #define ATOMIC_FLAG_INIT {0} > ^~~ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(169,2): note: candidate constructor not viable: no known conversion from 'int' to 'const std::atomic_flag' for 1st argument > atomic_flag(const atomic_flag&) = delete; > ^ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(168,2): note: candidate constructor not viable: requires 0 arguments, but 1 was provided > atomic_flag() noexcept = default; > ^ The internals of external/boost appear to be the only place where we currently use ATOMIC_FLAG_INIT, and we can work around that easily by picking a different backend in boost/smart_ptr/detail/spinlock.hpp for the problematic combination of Clang and _MSC_VER 1916 (which may need to be extended to further MSVC versions). Change-Id: Ie6aa62556efbedd3897ad7803b546cb8088ebe10 Reviewed-on: https://gerrit.libreoffice.org/79967 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-24disable warnings in external libsLuboš Luňák
As in, really disable, so that they do not even show. This moreover avoids tons of D9025 warnings from MSVC about overriding -W4 with -w. Change-Id: Ia2e72fd72d883d91bdd89e467ee42f259e2ae033 Reviewed-on: https://gerrit.libreoffice.org/72899 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-01-30external/boost/boost_1_60_0.undef.warning.patch should no longer be necessaryStephan Bergmann
...(at least the original BOOST_GCC_VERSION part) as Boost 1.69.0 boost/config/workaround.hpp contains > #ifndef BOOST_GCC > #define BOOST_GCC_WORKAROUND_GUARD 1 > #define BOOST_GCC_VERSION_WORKAROUND_GUARD 1 > #else > #define BOOST_GCC_WORKAROUND_GUARD 0 > #define BOOST_GCC_VERSION_WORKAROUND_GUARD 0 > #endif Change-Id: I7690db147dbe776ff51b94fc9950b890bb290bda Reviewed-on: https://gerrit.libreoffice.org/67000 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-30Just define the __clang_major___WORKAROUND_GUARDJan-Marek Glogowski
Change-Id: I84e969005ac2a96da449b5434ee5fdb37fc9b432 Reviewed-on: https://gerrit.libreoffice.org/66928 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-15Avoid -Werror=undef in boost/optional.hppStephan Bergmann
...after 23a8d5ffbbe58761b89f590f0735abccd69a3681 "Upgrade external/boost to Boost 1.69.0", where at least some GCC versions apparently choke on -Wundef there even though going through external/boost/include/boost/optional.hpp with #pragma GCC diagnostic ignored "-Wundef" (<https://ci.libreoffice.org/job/lo_tb_master_linux_dbg/23929/>): > In file included from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/core/explicit_operator_bool.hpp:22:0, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/optional/optional.hpp:30, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/external/boost/include/boost/optional/optional.hpp:27, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/optional.hpp:15, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/external/boost/include/boost/optional.hpp:27, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/outdevstate.hxx:31, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/outdev.hxx:39, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/window.hxx:25, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/ctrl.hxx:25, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/fixed.hxx:25, > from /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/comphelper/source/misc/xmlsechelper.cxx:25: > /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/type_traits/detail/config.hpp:85:69: error: "__clang_major___WORKAROUND_GUARD" is not defined, evaluates to 0 [-Werror=undef] > && !BOOST_WORKAROUND(BOOST_MSVC, < 1900) && !BOOST_WORKAROUND(__clang_major__, <= 4) > ^ > /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/config/workaround.hpp:253:10: note: in definition of macro ‘BOOST_WORKAROUND’ > ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ > ^~~~~~ > /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/type_traits/detail/config.hpp:85:69: error: "__clang_major__" is not defined, evaluates to 0 [-Werror=undef] > && !BOOST_WORKAROUND(BOOST_MSVC, < 1900) && !BOOST_WORKAROUND(__clang_major__, <= 4) > ^ > /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/UnpackedTarball/boost/boost/config/workaround.hpp:254:9: note: in definition of macro ‘BOOST_WORKAROUND’ > (symbol != 0) && (1 % (( (symbol test) ) + 1))) > ^~~~~~ Change-Id: I9fe6bf0019fcddad7e1b5606a162474130a9250e Reviewed-on: https://gerrit.libreoffice.org/66349 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-15Upgrade external/boost to Boost 1.69.0Stephan Bergmann
<https://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2> is a copy of <https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.bz2>, SHA256 hash as given at <https://www.boost.org/users/download/>. * removed from external/boost/include/boost/ those files that are no longer present in workdir/UnpackedTarball/boost/boost/ * the shrunk external/boost/rtti.patch.0 can probably be removed completely in a follow-up commit * the patch to libs/filesystem/src/operations.cpp in external/boost/boost-android-unified.patch.1 no longer applied, and appears to be no longer necessary anyway (seeing a working build without it of --with-distro=LibreOfficeAndroid and NDK r16b); but with the non-standard Clang 5.0.300080 from NDK r16b, the build now caused failures like > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:36:11: error: class template partial specialization contains a template parameter that cannot be deduced; this partial specialization will never be used [-Wunusable-partial-specialization] > struct is_function<Ret BOOST_TT_DEF_CALL(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {}; > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:35:38: note: non-deducible template parameter 'NE' > template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM> > ^ > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:22:40: note: expanded from macro 'BOOST_TT_NOEXCEPT_PARAM' > #define BOOST_TT_NOEXCEPT_PARAM , bool NE > ^ showing that that version of Clang has the same problem handling noexcept(b) as a deduced template parameter as MSVC has, as already supported by the code * new external/boost/sse.patch.0 needed on Windows x86 to silence errors like > C:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\UnpackedTarball\boost\boost/type_traits/detail/is_function_cxx_11.hpp(111): error C2215: '__vectorcall' cannot be used with '/arch:SSE' (<https://ci.libreoffice.org/job/gerrit_windows/26117/>); according to <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros ?view=vs-2017>: "_M_IX86_FP Defined as an integer literal value that indicates the /arch compiler option that was set, or the default. This macro is always defined when the compilation target is an x86 processor. Otherwise, undefined. When defined, the value is: [...] 1 if the /arch:SSE compiler option was set." and we specify /arch:SSE explicitly for Windows x86 since 8bd6bf93b7711a7ac7c5cbd7c3bb980481570ebd "fdo#82430: configure: MSVC build: avoid using SSE2 instructions" * boost::logic::tribool conversion operator to bool is explicit now Change-Id: Iea49560d734f545539f062dce46740fbf812dd84 Reviewed-on: https://gerrit.libreoffice.org/66189 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-11Drop external/boost/boost.gcc47679.patchStephan Bergmann
The corresponding <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679> "[5 Regression] Strange uninitialized warning after SRA" is claimed to be fixed in GCC 6, so should no longer be needed (with our current baseline of GCC 7). Change-Id: Ia9435dbf6644639961094d6bfb47e47500ab70b7 Reviewed-on: https://gerrit.libreoffice.org/66181 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-30Remove obsolete _MSC_VER checksStephan Bergmann
...after 206b8c4ae320d7d8614f21800d8f77fa29f8f5ff "On Windows, check for at least Visual Studio 2017 version 15.7" Change-Id: I38ee86e1649bbdc828a7e328f2dbbac0dc163c8a Reviewed-on: https://gerrit.libreoffice.org/64250 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-31cl version 19.15.26726 (VS 2017 15.8.1) still produces those warningsStephan Bergmann
...see d84bf553afa510e5c674817fa480ac0af62e4945 "Silence external/boost deprecated std::iterator warnings with MSVC 2017" Change-Id: I886ce27b90184aa0044f5a89f40cdd69507a70c4 Reviewed-on: https://gerrit.libreoffice.org/59831 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-09Silence external/boost deprecated std::iterator warnings with MSVC 2017Stephan Bergmann
At least cl version 19.14.26433 generates such warning C4996 now. While the one about the using declaration in boost/iterator.hpp looks somewhat bogus, the one in boost/circular_buffer/details.hpp is about an actual use of std::iterator as a base class in Boost-internal code. If further such places in external/boost crop up that need fixing, an alternative approach could be to extend the external/boost/include/ wrappers to be also used with MSVC. (Globally setting _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING has avoided, as it also finds uses in our own code that should be fixed, like 58222feb7fee0c08fb54b9ee29f8f0674c5cf508 "warning STL4015: std::iterator is deprecated (clang-cl)".) Change-Id: I6a41421a590fcee57b4ac8bcb7c3631fdfdecb81 Reviewed-on: https://gerrit.libreoffice.org/58755 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-26external/boost: silence -Werror=deprecated-copy (GCC trunk towards GCC 9)Stephan Bergmann
Change-Id: I25703979ebe94649f9cf1464d282b21a70cfe1fa Reviewed-on: https://gerrit.libreoffice.org/58041 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-05-17Don't ever attempt to initialise a std::locale with a UTF-8 locale on WindowsTor Lillqvist
As I said in 2ff121f298e64ff204621220622472fe697d599d, passing a POSIX-style locale name to the std::locale constructor on Windows is decidedly odd, and apparently boost adds insult to injury by even really attempting to use a UTF-8 one if that is what our code thinks it wants. Or something. This commit avoids the ton of "warn:unotools.i18n:7996:3544:unotools/source/i18n/resmgr.cxx:123: CRT Report Hook: ASSERT: f:\dd\vctools\crt\crtw32\stdcpp\xmbtowc.c(89) : Assertion failed: ploc->_Mbcurmax == 1 || ploc->_Mbcurmax == 2" we otherwise get when built with --enable-dbgutil and a current VS2015 (or 2017?). Change-Id: I3a774dff7b12d9960f553c9f242e0463c6d13d5d Reviewed-on: https://gerrit.libreoffice.org/54444 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-05-04Removed executable permission on data filesAndrea Gelmini
chmod -x for doc, xlsx, png, hxx, cxx, xls, ppt, hpp Change-Id: I52aed261e318cfd765e9adb3ed8edd226c8a59d8 Reviewed-on: https://gerrit.libreoffice.org/52569 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-02-01external: MSVC: pragma warning: make more specific, remove obsoleteMike Kaganski
Change-Id: Ic17ffd6fc34504cf848d963e787e685ed2142080 Reviewed-on: https://gerrit.libreoffice.org/48978 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-01-24Silence upcoming GCC 8 -Werror=parentheses in external/boostStephan Bergmann
...reporting such delights as > [CXX] sal/cppunittester/cppunittester.cxx > In file included from workdir/UnpackedTarball/boost/boost/mpl/aux_/na_assert.hpp:23, [...] > from external/boost/include/boost/algorithm/string.hpp:25, > from sal/cppunittester/cppunittester.cxx:60: > workdir/UnpackedTarball/boost/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses] > failed ************ (Pred::************ > ^ where boost/mpl/assert.hpp contains > template< typename Pred > > failed ************ (Pred::************ > assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type ) > ); Change-Id: I6976b2cc23f1d309d27d3fde9098b10c9d877599 Reviewed-on: https://gerrit.libreoffice.org/48386 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>