Kaydet (Commit) 23a8d5ff authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Upgrade external/boost to Boost 1.69.0

<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
  8bd6bf93 "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/66189Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
Tested-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst 05b9bf20
......@@ -6,8 +6,8 @@ export APR_SHA256SUM := 1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c7
export APR_TARBALL := apr-1.5.2.tar.gz
export APR_UTIL_SHA256SUM := 976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19
export APR_UTIL_TARBALL := apr-util-1.5.4.tar.gz
export BOOST_SHA256SUM := 5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9
export BOOST_TARBALL := boost_1_66_0.tar.bz2
export BOOST_SHA256SUM := 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406
export BOOST_TARBALL := boost_1_69_0.tar.bz2
export BREAKPAD_SHA256SUM := 7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9
export BREAKPAD_TARBALL := breakpad.zip
export BSH_SHA256SUM := 9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96
......
......@@ -30,7 +30,6 @@ boost_patches += clang-cl.patch.0
boost_patches += boost_1_60_0.undef.warning.patch
boost_patches += boost_1_63_0.undef.warning.patch.1
# https://svn.boost.org/trac10/ticket/13230
boost_patches += boost-android-unified.patch.1
boost_patches += windows-no-utf8-locales.patch.0
......@@ -39,6 +38,8 @@ boost_patches += gcc9.patch.0
boost_patches += msvc2017.patch.0
boost_patches += sse.patch.0
$(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
$(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
......
https://svn.boost.org/trac10/ticket/13230 unified headers causing trouble with that..
diff -ur boost.org/libs/filesystem/src/operations.cpp boost/libs/filesystem/src/operations.cpp
--- boost.org/libs/filesystem/src/operations.cpp 2017-11-22 02:21:33.724304181 +0100
+++ boost/libs/filesystem/src/operations.cpp 2017-11-22 02:21:59.686302450 +0100
@@ -11,23 +11,6 @@
//--------------------------------------------------------------------------------------//
--- a/boost/type_traits/detail/is_function_cxx_11.hpp
+++ b/boost/type_traits/detail/is_function_cxx_11.hpp
@@ -18,7 +18,7 @@
template <class T>
struct is_function : public false_type {};
// define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355)
-#if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED))
-#define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect,
-#endif
-#if !defined(__PGI)
-#define __USE_FILE_OFFSET64 // but that is harmless on Windows and on POSIX
- // 64-bit systems or on 32-bit systems which don't have files larger
- // than can be represented by a traditional POSIX/UNIX off_t type.
- // OTOH, defining them should kick in 64-bit off_t's (and thus
- // st_size)on 32-bit systems that provide the Large File
- // Support (LFS)interface, such as Linux, Solaris, and IRIX.
- // The defines are given before any headers are included to
- // ensure that they are available to all included headers.
- // That is required at least on Solaris, and possibly on other
- // systems as well.
-#else
-#define _FILE_OFFSET_BITS 64
-#endif
-#if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER)
+#if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER) && !(defined __ANDROID__ && defined __clang__ && __clang_major__ == 5 && __clang_minor__ == 0 && __clang_patchlevel__ == 300080)
#define BOOST_TT_NOEXCEPT_PARAM , bool NE
#define BOOST_TT_NOEXCEPT_DECL noexcept(NE)
#else
--- a/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
+++ b/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
@@ -31,7 +31,7 @@
template <class T>
struct is_member_function_pointer<T const volatile> : public is_member_function_pointer<T> {};
// define BOOST_FILESYSTEM_SOURCE so that <boost/filesystem/config.hpp> knows
// the library is being built (possibly exporting rather than importing code)
-#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703)
+#if (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703)) || (defined __ANDROID__ && defined __clang__ && __clang_major__ == 5 && __clang_minor__ == 0 && __clang_patchlevel__ == 300080)
// MSVC can't handle noexcept(b) as a deduced template parameter
// so we will have to write everything out :(
#define BOOST_TT_NOEXCEPT_PARAM
......@@ -6,7 +6,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
method_type how)
{
+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
std::auto_ptr<converter_between> cvt;
hold_ptr<converter_between> cvt;
#ifdef BOOST_LOCALE_WITH_ICONV
cvt.reset(new iconv_between());
@@ -55,6 +56,7 @@
......@@ -22,7 +22,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
method_type how)
{
+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
std::auto_ptr<converter_to_utf<CharType> > cvt;
hold_ptr<converter_to_utf<CharType> > cvt;
#ifdef BOOST_LOCALE_WITH_ICONV
cvt.reset(new iconv_to_utf<CharType>());
@@ -81,6 +84,7 @@
......@@ -38,7 +38,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
method_type how)
{
+ #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
std::auto_ptr<converter_from_utf<CharType> > cvt;
hold_ptr<converter_from_utf<CharType> > cvt;
#ifdef BOOST_LOCALE_WITH_ICONV
cvt.reset(new iconv_from_utf<CharType>());
@@ -107,6 +112,7 @@
......
......@@ -19,24 +19,6 @@
typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference,
mutable_iterator_tag> iterator;
# workdir/UnpackedTarball/boost\boost/smart_ptr/detail/yield_k.hpp(63,29) : error: 'Sleep' redeclared without 'dllimport' attribute: previous 'dll# import' ignored [-Werror,-Winconsistent-dllimport]
# extern "C" void __stdcall Sleep( unsigned long ms );
# ^
# C:/PROGRA~2/WI3CF2~1/8.1/include/um\synchapi.h(908,1) : note: previous declaration is here
# Sleep(
# ^
--- boost/smart_ptr/detail/yield_k.hpp
+++ boost/smart_ptr/detail/yield_k.hpp
@@ -61,7 +61,7 @@
#if !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME
#if !BOOST_COMP_CLANG || !defined __MINGW32__
- extern "C" void __stdcall Sleep( unsigned long ms );
+ extern "C" __declspec(dllimport) void __stdcall Sleep( unsigned long ms );
#else
#include <_mingw.h>
#if !defined __MINGW64_VERSION_MAJOR
# workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) : error: dllimport cannot be applied to non-inline function definition
# BOOST_THREAD_DECL void __cdecl on_process_enter()
# ^
......
/* generated by bin/gen-boost-headers, do not edit! */
#pragma once
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas" /* first! for GCC */
#pragma GCC diagnostic ignored "-Wunknown-warning-option" // second! for Clang 5
#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated-copy"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#pragma GCC diagnostic ignored "-Winvalid-constexpr"
#pragma GCC diagnostic ignored "-Wmicrosoft-unqualified-friend"
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
#pragma GCC diagnostic ignored "-Wparentheses"
#pragma GCC diagnostic ignored "-Wplacement-new"
#pragma GCC diagnostic ignored "-Wreturn-type"
#pragma GCC diagnostic ignored "-Wshadow"
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
#pragma GCC diagnostic ignored "-Wtype-limits"
#pragma GCC diagnostic ignored "-Wundef"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-macros"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-variable"
#include_next <boost/uuid/sha1.hpp>
#pragma GCC diagnostic pop
--- boost/circular_buffer/details.hpp
+++ boost/circular_buffer/details.hpp
@@ -216,12 +216,19 @@
// Helper types
//! Base iterator.
+#if defined _MSC_VER && !defined __clang__
+#pragma warning(push)
+#pragma warning(disable: 4996)
+#endif
typedef std::iterator<
std::random_access_iterator_tag,
typename Traits::value_type,
typename Traits::difference_type,
typename Traits::pointer,
typename Traits::reference> base_iterator;
+#if defined _MSC_VER && !defined __clang__
+#pragma warning(pop)
+#endif
//! Non-const iterator.
typedef iterator<Buff, typename Traits::nonconst_self> nonconst_self;
--- boost/iterator.hpp
+++ boost/iterator.hpp
@@ -13,7 +13,14 @@
......
......@@ -2,15 +2,6 @@ Visible function type RTTI for Clang -fsanitize=function
--- boost/function/function_base.hpp
+++ boost/function/function_base.hpp
@@ -97,7 +97,7 @@
} obj_ref;
};
- union function_buffer
+ union BOOST_SYMBOL_VISIBLE function_buffer
{
// Type-specific union members
mutable function_buffer_members members;
@@ -159,7 +159,7 @@
};
......
This diff is collapsed.
......@@ -144,7 +144,7 @@ bool LoadModule()
#endif // ENABLE_QUICKSTART_APPLET
}
assert(!boost::logic::indeterminate(loaded));
return loaded;
return bool(loaded);
}
}
......
......@@ -33,6 +33,17 @@ $(eval $(call gb_Library_use_externals,ucpcmis1,\
libxml2 \
))
# On Windows, libcmis.lib(ws-relatedmultipart.o) references BCryptCloseAlgorithmProvider,
# BCryptGenRandom, and BCryptOpenAlgorithmProvider via
# workdir/UnpackedTarball/boost/boost/winapi/bcrypt.hpp:
ifeq ($(OS),WNT)
ifeq ($(SYSTEM_LIBCMIS)$(SYSTEM_BOOST),)
$(eval $(call gb_Library_add_libs,ucpcmis1, \
Bcrypt.lib \
))
endif
endif
$(eval $(call gb_Library_add_exception_objects,ucpcmis1,\
ucb/source/ucp/cmis/auth_provider \
ucb/source/ucp/cmis/certvalidation_handler \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment