vcpkg/ports/boost-atomic/0001-fix-compilation-for-uwp.patch
Yury Bura 76d4836f3b
[boost] update to 1.78.0 (#21928)
* [scripts] update scripts

* [boost-*] generate ports

* update versions

* [scripts] update boost version in boost-modular-headers.cmake

* [scripts] add post source stubs for boost-json and boost-nowide ports and re-generate Boost ports

* update versions

* [boost-asio] make OpenSSL optional #20718

* update versions

* [boost] [boost-mpi] [boost-python] disable python for iOS and Android, fixes #21474

* update versions

* [boost-fiber] add NUMA support, fixes #16507

* update version

* [boost-build] apply patch https://github.com/bfgroup/b2/pull/113 for fix build boost-fiber and boost-stacktrace

* update version

* [boost-atomic] fix compilation for uwp

* update version

* ignore mapnik's fail on arm64-windows

* [boost-python] support ARM on Windows

* update versions

* Boost features testing within CI

* [boost-modular-build-helper] fix boost_python file name in Jamroot.jam

* [boost-mpi] fix build with python2 or python3

* update versions

* [boost-fiber] fix build with numa=on

* update version

* [boost-multiprecision] fix build with MSVC on ARM

* update version

* [boost-mpi] try to fix build on linux and osx

* update versions

* exclude static

* guarantee the same result across platforms

* minor changes to boost-modular-build-helper's CMake

* correct versions

* [boost-modular-build-helper] install Python extensions on Windows

* [boost-mpi] add patch to fix build Python extension on Windows

* update versions

* [boost-mpi] remove python2 by request @BillyONeal @strega-nil-ms

* update version

* update versions

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
2022-01-10 11:47:12 -08:00

82 lines
2.5 KiB
Diff

From bf08155d16ea8c359d1bfab6bac684cdfada4a5b Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Wed, 15 Dec 2021 02:06:11 +0300
Subject: [PATCH] Fix compilation for UWP.
UWP does not support APIs related to dynamic symbol binding and dlls.
Disable runtime detection of WaitOnAddress & co. for that target. These
APIs should be enabled at compile time on Windows 8.
Fixes https://github.com/boostorg/atomic/issues/54.
---
doc/changelog.qbk | 4 ++++
src/wait_on_address.cpp | 16 ++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/doc/changelog.qbk b/doc/changelog.qbk
index 9c370c9..ffbd902 100644
--- a/doc/changelog.qbk
+++ b/doc/changelog.qbk
@@ -7,6 +7,10 @@
[section:changelog Changelog]
+[heading Boost 1.79]
+
+* Fixed compilation for Universal Windows Platform (UWP). ([github_issue 54])
+
[heading Boost 1.78]
* Use process-local futex operations on Android for non-IPC waiting and notifying operations.
diff --git a/src/wait_on_address.cpp b/src/wait_on_address.cpp
index 7cf5bd0..6f8a165 100644
--- a/src/wait_on_address.cpp
+++ b/src/wait_on_address.cpp
@@ -25,6 +25,8 @@
#include <boost/atomic/detail/once_flag.hpp>
#include <boost/atomic/detail/wait_on_address.hpp>
+#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
+
#include <boost/static_assert.hpp>
#include <boost/memory_order.hpp>
#include <boost/winapi/thread.hpp>
@@ -33,6 +35,8 @@
#include <boost/atomic/detail/core_operations.hpp>
+#endif // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
+
#include <boost/atomic/detail/header.hpp>
namespace boost {
@@ -43,6 +47,8 @@ BOOST_ATOMIC_DECL wait_on_address_t* wait_on_address = NULL;
BOOST_ATOMIC_DECL wake_by_address_t* wake_by_address_single = NULL;
BOOST_ATOMIC_DECL wake_by_address_t* wake_by_address_all = NULL;
+#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
+
BOOST_ATOMIC_DECL once_flag wait_functions_once_flag = { 2u };
BOOST_ATOMIC_DECL void initialize_wait_functions() BOOST_NOEXCEPT
@@ -90,6 +96,16 @@ BOOST_ATOMIC_DECL void initialize_wait_functions() BOOST_NOEXCEPT
}
}
+#else // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
+
+BOOST_ATOMIC_DECL once_flag wait_functions_once_flag = { 0u };
+
+BOOST_ATOMIC_DECL void initialize_wait_functions() BOOST_NOEXCEPT
+{
+}
+
+#endif // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
+
} // namespace detail
} // namespace atomics
} // namespace boost
--
2.34.1.windows.1