[Bug 1155108] Tumbleweed OpenMP Programs Compiled With clang9 and libomp9-devel Receive SEGV During Exit Processing
http://bugzilla.suse.com/show_bug.cgi?id=1155108 http://bugzilla.suse.com/show_bug.cgi?id=1155108#c7 --- Comment #7 from Aaron Puchert <aaronpuchert@alice-dsl.net> --- 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.
participants (1)
-
bugzilla_noreply@novell.com