This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Non-PIC call sequence in shared objects that call libmvec functions.
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, "Zamyatin, Igor" <igor dot zamyatin at intel dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Date: Tue, 9 Feb 2016 12:51:26 -0500
- Subject: Re: Non-PIC call sequence in shared objects that call libmvec functions.
- Authentication-results: sourceware.org; auth=none
- References: <56BA11B9 dot 7010908 at redhat dot com> <CAMe9rOppQbdfiJ5fa2TOtBP2DdAgNi8V2mvgFH_R_BCYptY7Uw at mail dot gmail dot com>
On 02/09/2016 12:02 PM, H.J. Lu wrote:
> On Tue, Feb 9, 2016 at 8:20 AM, Carlos O'Donell <carlos@redhat.com> wrote:
>> Igor,
>>
>> Shouldn't this be a PIC call sequence to support
>> creating shared objects that call through the alias?
>>
>> diff --git a/sysdeps/x86_64/fpu/svml_finite_alias.S b/sysdeps/x86_64/fpu/svml_finite_alias.S
>> index 0062fe4..61725b7 100644
>> --- a/sysdeps/x86_64/fpu/svml_finite_alias.S
>> +++ b/sysdeps/x86_64/fpu/svml_finite_alias.S
>> @@ -23,7 +23,7 @@
>>
>> #define ALIAS_IMPL(alias, target) \
>> ENTRY (alias); \
>> - call target; \
>> + jmp target@plt; \
>> ret; \
>> END (alias)
>>
>> With GCC6 generating vectorized calls now we're seeing package build
>> failures because having shared libraries call these entry points fails
>> with the following:
>>
>> /usr/bin/ld: /usr/lib64/libmvec_nonshared.a(svml_finite_alias.oS):
>> relocation R_X86_64_PC32 against undefined symbol `_ZGVbN2v_log@@GLIBC_2.22'
>> can not be used when making a shared object; recompile with -fPIC
>>
>
> Would you mind opening a glibc bug?
Bug 19590 - Fail to build shared objects that use libmvec.so functions.
https://sourceware.org/bugzilla/show_bug.cgi?id=19590
Cheers,
Carlos.