Opened 5 years ago
dlsym/dl_get_public_fib_var test fails on ppc32
|Reported by:||Jiri Svoboda||Owned by:|
|Blocker for:||Depends on:|
On ppc32 with optimization -O2/-O3 and a static thread-local variable, the compiler/linker generates code that subtracts 32 K bias from address returned from function
__tls_get_addr. This seems to be consistent with the PowerPC SysV ABI.
However, for non-static thread-local variable, the bias is not subtracted. This leads to dltest failing or crashing in the public fibril var test(s).
Also for -O0 there is no bias subtracted.
I can reproduce this with a simple code snippet compiled by hand with trivial compiler arguments and either using ppc-helenos or ppc-linux-gnu (from upstream gcc-8.2.0) cross-compiler.
I believe this is a bug in GCC. I filed GCC bug 88962.
This ticket is for tracking purposes.