Opened 5 years ago

#791 new defect

dlsym/dl_get_public_fib_var test fails on ppc32

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone:
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

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.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88962

This ticket is for tracking purposes.

Change History (0)

Note: See TracTickets for help on using tickets.