diff options
author | Robert Nagy <robert@cvs.openbsd.org> | 2021-11-12 10:08:36 +0000 |
---|---|---|
committer | Robert Nagy <robert@cvs.openbsd.org> | 2021-11-12 10:08:36 +0000 |
commit | 2cf182e58430457230d4fe3042e29d50082478bf (patch) | |
tree | c159bd3ef2111aeea14e124a5341107b8d2230ce /gnu/lib | |
parent | 4fbd3e11caf31cd3bc6e893f332752b395d80542 (diff) |
backport https://reviews.llvm.org/D107127 to fix shared libraries using emutls
Our emulated TLS implementation relies on local state (e.g. for the pthread
key), and if we duplicate this state across different shared libraries,
accesses to the same TLS variable from different shared libraries will yield
different results (see https://github.com/android/ndk/issues/1551 for an
example). __emutls_get_address is the only external entry point for emulated
TLS, and by making it default visibility and weak, we can rely on the dynamic
linker to coalesce multiple copies at runtime and ensure a single unique copy
of TLS state. This is a best effort;
Also bump the libc++abi minor because now it picks up the __emutls_get_address
symbol.
ok kettenis@
Diffstat (limited to 'gnu/lib')
-rw-r--r-- | gnu/lib/libcxxabi/shlib_version | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gnu/lib/libcxxabi/shlib_version b/gnu/lib/libcxxabi/shlib_version index 7f748745dab..23268d4770a 100644 --- a/gnu/lib/libcxxabi/shlib_version +++ b/gnu/lib/libcxxabi/shlib_version @@ -1,3 +1,3 @@ # Don't forget to give libc++ the same type of bump! major=5 -minor=0 +minor=1 |