[PATCH] BZ #19590: Fixed build of shared objects that use libmvec.so functions

H.J. Lu hjl.tools@gmail.com
Wed Feb 10 16:44:00 GMT 2016


On Wed, Feb 10, 2016 at 8:33 AM, Joseph Myers <joseph@codesourcery.com> wrote:
> On Wed, 10 Feb 2016, H.J. Lu wrote:
>
>> >> I don't think we should put a GCC bug workaround in glibc. It should
>> >> be fixed or worked around it in GCC.
>> >
>> > Since GCC 4.9 vector function name is formed based on asm declaration
>> > name, to support that GCC versions we need to have such workaround.
>> >
>>
>> So it is the part of ABI, isn't it?
>
> It is deliberately only part of the static library ABI, not part of the
> shared library ABI, because the shared libraries should not need more than
> one internal-namespace exported name for the same interface (and it's a
> compiler limitation that the other name exists at all).
>

Let me try to understand the problem:

1. GCC should generate an alias, foo, which points to bar defined
in libmvec.so.
2. But the alias foo may be removed by GCC sometimes (LTO?).
3. As a workaround, we put an alias foo, in libmvec_nonshared.a which
points to bar defined in libmvec.so.

Am I correct?

-- 
H.J.



More information about the Libc-alpha mailing list