http://bugzilla.suse.com/show_bug.cgi?id=1155108
http://bugzilla.suse.com/show_bug.cgi?id=1155108#c7
--- Comment #7 from Aaron Puchert ---
While there is a .fini section in libomp.so, the FINI tag in .dynamic is 0x0:
$ readelf -d /usr/lib64/libomp.so
Dynamic section at offset 0xeec80 contains 32 entries:
Tag Type Name/Value
[...]
0x000000000000000c (INIT) 0x1af00
0x000000000000000d (FINI) 0x0
[...]
That's why we are reading an offset of zero. Now why does that happen? In
openmp/runtime/cmake/LibompHandleFlags.cmake there is a flag added to LDFLAGS:
-Wl,-fini=__kmp_internal_end_fini
Now without ThinLTO (which I activated with LLVM 9), this works fine, but with
ThinLTO the FINI either doesn't appear (with ld.bfd and ld.lld) or is 0x0 (with
ld.gold). That could be a bug in the ThinLTO linker plugin, or maybe -fini is
not supported there. I'm a bit puzzled that the symbol doesn't appear at all in
the final binary, and I fear that it might be optimized out. (LTO has a habit
of doing that, but in this case it shouldn't...)
--
You are receiving this mail because:
You are on the CC list for the bug.