comparison OrthancFramework/Resources/Patches/boost-1.69.0-linux-standard-base.patch @ 4044:d25f4c0fa160 framework

splitting code into OrthancFramework and OrthancServer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 10 Jun 2020 20:30:34 +0200
parents Resources/Patches/boost-1.69.0-linux-standard-base.patch@fa8481daefd7
children caed453042db
comparison
equal deleted inserted replaced
4043:6c6239aec462 4044:d25f4c0fa160
1 diff -urEb boost_1_69_0.orig/boost/move/adl_move_swap.hpp boost_1_69_0/boost/move/adl_move_swap.hpp
2 --- boost_1_69_0.orig/boost/move/adl_move_swap.hpp 2019-02-22 15:05:32.682359994 +0100
3 +++ boost_1_69_0/boost/move/adl_move_swap.hpp 2019-02-22 15:05:48.426358034 +0100
4 @@ -28,6 +28,8 @@
5 //Try to avoid including <algorithm>, as it's quite big
6 #if defined(_MSC_VER) && defined(BOOST_DINKUMWARE_STDLIB)
7 #include <utility> //Dinkum libraries define std::swap in utility which is lighter than algorithm
8 +#elif defined(__LSB_VERSION__)
9 +# include <utility>
10 #elif defined(BOOST_GNU_STDLIB)
11 //For non-GCC compilers, where GNUC version is not very reliable, or old GCC versions
12 //use the good old stl_algobase header, which is quite lightweight
13 diff -urEb boost_1_69_0.orig/boost/system/detail/system_category_win32.hpp boost_1_69_0/boost/system/detail/system_category_win32.hpp
14 --- boost_1_69_0.orig/boost/system/detail/system_category_win32.hpp 2019-02-22 15:05:32.722359989 +0100
15 +++ boost_1_69_0/boost/system/detail/system_category_win32.hpp 2019-02-22 15:06:31.922352713 +0100
16 @@ -26,7 +26,7 @@
17 namespace detail
18 {
19
20 -#if ( defined(_MSC_VER) && _MSC_VER < 1900 ) || ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) )
21 +#if ( defined(_MSC_VER) && _MSC_VER < 1900 ) || ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) ) || 1 /* std::snprintf() does not seem to exist on Visual Studio 2015 */
22
23 inline char const * unknown_message_win32( int ev, char * buffer, std::size_t len )
24 {
25 diff -urEb boost_1_69_0.orig/boost/thread/detail/config.hpp boost_1_69_0/boost/thread/detail/config.hpp
26 --- boost_1_69_0.orig/boost/thread/detail/config.hpp 2019-02-22 15:05:32.598360004 +0100
27 +++ boost_1_69_0/boost/thread/detail/config.hpp 2019-02-22 15:05:48.426358034 +0100
28 @@ -418,7 +418,7 @@
29 #define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO
30 #elif defined(BOOST_THREAD_CHRONO_MAC_API)
31 #define BOOST_THREAD_HAS_MONO_CLOCK
32 -#elif defined(__ANDROID__)
33 +#elif defined(__ANDROID__) || defined(__LSB_VERSION__)
34 #define BOOST_THREAD_HAS_MONO_CLOCK
35 #if defined(__ANDROID_API__) && __ANDROID_API__ >= 21
36 #define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO
37 diff -urEb boost_1_69_0.orig/boost/type_traits/detail/has_postfix_operator.hpp boost_1_69_0/boost/type_traits/detail/has_postfix_operator.hpp
38 --- boost_1_69_0.orig/boost/type_traits/detail/has_postfix_operator.hpp 2019-02-22 15:05:32.650359998 +0100
39 +++ boost_1_69_0/boost/type_traits/detail/has_postfix_operator.hpp 2019-02-22 15:05:48.426358034 +0100
40 @@ -85,8 +85,11 @@
41 namespace boost {
42 namespace detail {
43
44 +// https://stackoverflow.com/a/15474269
45 +#ifndef Q_MOC_RUN
46 // This namespace ensures that argument-dependent name lookup does not mess things up.
47 namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
48 +#endif
49
50 // 1. a function to have an instance of type T without requiring T to be default
51 // constructible
52 @@ -234,7 +237,9 @@
53 BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
54 };
55
56 +#ifndef Q_MOC_RUN
57 } // namespace impl
58 +#endif
59 } // namespace detail
60
61 // this is the accessible definition of the trait to end user
62 diff -urEb boost_1_69_0.orig/boost/type_traits/detail/has_prefix_operator.hpp boost_1_69_0/boost/type_traits/detail/has_prefix_operator.hpp
63 --- boost_1_69_0.orig/boost/type_traits/detail/has_prefix_operator.hpp 2019-02-22 15:05:32.650359998 +0100
64 +++ boost_1_69_0/boost/type_traits/detail/has_prefix_operator.hpp 2019-02-22 15:05:48.426358034 +0100
65 @@ -114,8 +114,11 @@
66 namespace boost {
67 namespace detail {
68
69 +// https://stackoverflow.com/a/15474269
70 +#ifndef Q_MOC_RUN
71 // This namespace ensures that argument-dependent name lookup does not mess things up.
72 namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
73 +#endif
74
75 // 1. a function to have an instance of type T without requiring T to be default
76 // constructible
77 @@ -263,7 +266,9 @@
78 BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
79 };
80
81 +#ifndef Q_MOC_RUN
82 } // namespace impl
83 +#endif
84 } // namespace detail
85
86 // this is the accessible definition of the trait to end user
87 diff -urEb boost_1_69_0.orig/libs/filesystem/src/operations.cpp boost_1_69_0/libs/filesystem/src/operations.cpp
88 --- boost_1_69_0.orig/libs/filesystem/src/operations.cpp 2019-02-22 15:05:32.566360008 +0100
89 +++ boost_1_69_0/libs/filesystem/src/operations.cpp 2019-02-22 18:04:17.346573047 +0100
90 @@ -2111,9 +2111,16 @@
91 std::size_t path_size (0); // initialization quiets gcc warning (ticket #3509)
92 error_code ec = path_max(path_size);
93 if (ec)return ec;
94 - dirent de;
95 - buffer = std::malloc((sizeof(dirent) - sizeof(de.d_name))
96 - + path_size + 1); // + 1 for "/0"
97 +
98 + // Fixed possible use of uninitialized dirent::d_type in dir_iterator
99 + // https://github.com/boostorg/filesystem/commit/bbe9d1771e5d679b3f10c42a58fc81f7e8c024a9
100 + const std::size_t buffer_size = (sizeof(dirent) - sizeof(dirent().d_name))
101 + + path_size + 1; // + 1 for "\0"
102 + buffer = std::malloc(buffer_size);
103 + if (BOOST_UNLIKELY(!buffer))
104 + return make_error_code(boost::system::errc::not_enough_memory);
105 + std::memset(buffer, 0, buffer_size);
106 +
107 return ok;
108 }
109
110 @@ -2142,6 +2149,13 @@
111 *result = 0;
112 if ((p = ::readdir(dirp))== 0)
113 return errno;
114 +
115 + // Fixed possible use of uninitialized dirent::d_type in dir_iterator
116 + // https://github.com/boostorg/filesystem/commit/bbe9d1771e5d679b3f10c42a58fc81f7e8c024a9
117 +# ifdef BOOST_FILESYSTEM_STATUS_CACHE
118 + entry->d_type = p->d_type;
119 +# endif
120 +
121 std::strcpy(entry->d_name, p->d_name);
122 *result = entry;
123 return 0;