Go to file
Thiago Macieira d2368cde70 Long live futexes for Darwin!
Like commit 91f6460aff which added support
for Windows, this commit does the same for our final major OS.

The Darwin kernel exposes a set of __ulock_{wait,wait2,wake} APIs [1],
but these APIs are marked as private, so we cannot rely on them being
stable, nor we can use these APIs in builds of Qt intended for
the Apple App Store. By wholesale disabling the use of the APIs
in App Store compliant builds, and runtime checking availability
of the APIs when we do build them in, we should be safe, unless
the semantics of the APIs change in ways we haven't accounted for,
but that's a risk we're willing to take.

Note that libc++ uses these private APIs to implement P1135R5
(the C++20 synchronization library) [2], but that use is under
a "special permission" from the Darwin team, and meant only for
use in the Apple vendored version of libc++ shipped with their
operating systems, where they control both the kernel and the
standard library.

[1] https://github.com/apple-oss-distributions/xnu/blob/xnu-8792.81.2/bsd/sys/ulock.h
[2] https://reviews.llvm.org/D68480.

Change-Id: Ib709fc1585f647a98d54fffd16663b4965458404
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-06-18 15:45:37 -07:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Add simple project generation based on existing source files 2023-02-08 12:59:19 +01:00
cmake Disable TRY_RUN when cross compiling 2023-06-17 20:26:12 +02:00
coin Add feature to disable building tests 2023-06-12 13:46:07 +00:00
config.tests Remove the mandatory x86-64 features from its feature list 2023-05-31 14:55:37 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Doc: Correct the expansion of the raisedaster macro for DocBook 2023-06-14 16:18:55 +02:00
examples Add missing QApplication include in streambookmarks example 2023-06-17 14:02:04 +02:00
lib
libexec Pass native path in qt-internal-configure-tests 2023-04-17 23:32:34 +02:00
LICENSES Clarify license of SHA-1 algorithm 2023-04-26 16:36:18 +02:00
mkspecs iOS: Don't add Qt libraries to PRE_TARGETDEPS of xcodebuild Makefile 2023-05-10 16:37:47 +02:00
qmake Re-fix QtLibraryInfo compilation issues 2023-06-09 14:45:14 +00:00
src Long live futexes for Darwin! 2023-06-18 15:45:37 -07:00
tests Moc: fix generated code for nested enum class corner case 2023-06-18 21:28:58 +03:00
util Bump version to 6.7.0 2023-06-12 14:46:07 +01:00
.cmake.conf Bump version to 6.7.0 2023-06-12 14:46:07 +01:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore git: ignore ._* files 2023-03-28 10:44:57 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag
CMakeLists.txt Introduce QT_ALLOW_SYMLINK_IN_PATHS flag 2023-05-03 19:44:45 +02:00
config_help.txt CMake: Remove the dysfunctional -testcocoon configure option 2023-06-16 23:39:01 +02:00
configure Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.bat Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.cmake Disable TEST_separate_debug_info when building with MSVC or on Apple 2023-06-17 23:21:18 +02:00
dependencies.yaml
qt_cmdline.cmake CMake: Remove the dysfunctional -testcocoon configure option 2023-06-16 23:39:01 +02:00
sync.profile rhi: Make it a QPA-style private but semi-public API 2023-05-21 15:42:58 +02:00