[lsb-discuss] Bug in LSB 5.0 SDK, I think
Mats Wichmann
mats at wichmann.us
Tue Feb 20 14:39:32 UTC 2018
On 02/20/2018 07:11 AM, Dallman, John wrote:
> /opt/lsb/lib64-5.0/libgcc_s.so.1 does not provide __gcc_personality_v0, which is causing all my attempts to link the product I work on with LSBCC to fail. The product is written in a domain-specific language which generates C code, using it as a kind of high-level assembly language.
>
> This symbol is present in the system libgcc_s.so on this CentOS 7.2 system:
>
> $ readelf -sW /usr/lib64/libgcc_s-4.8.5-20150702.so.1 | grep gcc_personality
> 163: 0000000000011e20 620 FUNC GLOBAL DEFAULT 12 __gcc_personality_v0@@GCC_3.3.1
>
> Note that this is __gcc_personality_v0, for C code, not __g++_personality_v0 which is for C++ code.
>
> References to __gcc_personality_v0 are only emitted in .o files when one compiles C code with the -fexceptions option, to allow C++ exceptions to be thrown through C stack frames. That's presumably how this sneaked through testing.
>
> I have lsb-sdk-5.0.0-3.x86_64.tar.gz, which seems to be the latest available. Any chance of a fix? Is there a way for me to fix it myself?
>
> Thanks,
It's indeed missing.
(by the way - did you actually mean g++_personality_v0? we have
gxx_personality_v0 in our database)
This isn't anything I'm familiar with - we need to get a bugzilla filed
and sort it out.
In the meantime, if you want to build your own libgcc_s.so it should be
a pretty simple patch to add this symbol - obviously on an unsupported
basis, etc (not that we're able to do much in the way of "support"
anyway). The change to build_env source would look like this for just
the one architecture, you'd have to repeat if if you need others:
=== modified file 'stub_libs/5.0/x86-64/libgcc_s.Version'
--- stub_libs/5.0/x86-64/libgcc_s.Version
revid:mats at linuxfoundation.org-20170424152416-mexuq1nhgpi0fz6x
+++ stub_libs/5.0/x86-64/libgcc_s.Version 2018-02-20 14:37:04 +0000
@@ -20,6 +20,9 @@
_Unwind_GetCFA;
_Unwind_Resume_or_Rethrow;
};
+GCC_3.3.1 {
+ __gcc_personality_v0;
+};
GCC_4.2.0 {
_Unwind_GetIPInfo;
};
=== modified file 'stub_libs/5.0/x86-64/libgcc_s.c'
--- stub_libs/5.0/x86-64/libgcc_s.c
revid:mats at linuxfoundation.org-20170424152416-mexuq1nhgpi0fz6x
+++ stub_libs/5.0/x86-64/libgcc_s.c 2018-02-20 14:36:31 +0000
@@ -16,3 +16,4 @@
void _Unwind_Resume_or_Rethrow() {} ;
void _Unwind_SetGR() {} ;
void _Unwind_SetIP() {} ;
+void __gcc_personality_v0() {} ;
More information about the lsb-discuss
mailing list