This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] [BZ #19058] Better workaround for aliases of *_finite symbols in vector math library
- From: Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>
- To: Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Thu, 3 Dec 2015 15:48:58 +0300
- Subject: Re: [PATCH] [BZ #19058] Better workaround for aliases of *_finite symbols in vector math library
- Authentication-results: sourceware.org; auth=none
- References: <CAMXFM3uVghLzryBppyfCny2vxkhW4tORyFU=PM-O4=4+qp5yEw at mail dot gmail dot com> <20151202203736 dot GA6861 at aurel32 dot net>
2015-12-02 23:37 GMT+03:00 Aurelien Jarno <aurelien@aurel32.net>:
> On 2015-11-26 19:17, Andrew Senkevich wrote:
>> Hi,
>>
>> BZ #19058 shows that current workaround based on assembly aliases can
>> lead to link fail with -fopenmp and -flto options.
>> This patch makes workaround in another way to avoid such linker fails.
>>
>> 2015-11-26 Andrew Senkevich <andrew.senkevich@intel.com>
>>
>> [BZ #19058]
>> * math/Makefile ($(inst_libdir)/libm.so): Added libmvec_nonshared.a to
>> AS_NEEDED.
>> * sysdeps/x86/fpu/bits/math-vector.h: Removed code with old
>> workaround.
>> * sysdeps/x86_64/fpu/Makefile (libmvec-support,
>> libmvec-static-only-routines): Added new file.
>> * sysdeps/x86_64/fpu/svml_finite_alias.S: New file.
>>
>> diff --git a/math/Makefile b/math/Makefile
>> index 0ff3baa..6a926e9 100644
>> --- a/math/Makefile
>> +++ b/math/Makefile
>> @@ -99,7 +99,7 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
>> (echo '/* GNU ld script'; echo '*/';\
>> cat $<; \
>> echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \
>> - 'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
>> + 'AS_NEEDED ( $(slibdir)/libmvec_nonshared.a
>> $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
>> ) > $@
>> endif
>
> This is wrong. libmvec_nonshared.a is installed in $(libdir) and not in
> $(slibdir). Thus linking fails.
Thank you, unfortunately it was not found on x86-64 testing.
* math/Makefile ($(inst_libdir)/libm.so): Correct path for
diff --git a/math/Makefile b/math/Makefile
index 6a926e9..20f90d9 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -99,7 +99,7 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
(echo '/* GNU ld script'; echo '*/';\
cat $<; \
echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \
- 'AS_NEEDED ( $(slibdir)/libmvec_nonshared.a
$(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
+ 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a
$(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
) > $@
endif
Is it ok for trunk and 2.22 branch?
--
WBR,
Andrew