This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] X86-64: Add _dl_runtime_resolve_avx[512]_opt [BZ #20508]
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: Richard Henderson <rth at twiddle dot net>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 4 Oct 2016 07:47:35 -0700
- Subject: Re: [PATCH] X86-64: Add _dl_runtime_resolve_avx[512]_opt [BZ #20508]
- Authentication-results: sourceware.org; auth=none
- References: <CAMe9rOojpuFz1jTbMpNcqZK1KVDqaWozNuEuS3E67dvD3Rh=hw@mail.gmail.com> <c6e21847-bc95-3c75-ed54-798c62194072@redhat.com> <CAMe9rOp=bvrk0MBF8SrP4JqLHembRdeyfGNqNkcVWvoEs3R=tA@mail.gmail.com> <CAMe9rOo7MmGNPKct=AzzbtR564yH1P96tUcLD7pFv7GtxF3-Ng@mail.gmail.com> <48eeea78-99e8-f255-bd26-b6d28929b4f0@twiddle.net> <CAMe9rOqXhVLVbT90JBfkJnCLzZBrkUHtkO4Ddfk9HPH7jiyEzw@mail.gmail.com> <CAMe9rOoDp7XYwLdDetFNghAdDo_zj-4342LKV4i0zCH36aBWtw@mail.gmail.com> <CAMe9rOo+_TQABBp0eC4nQcJ5ENLrZAOSvtAjo17E6H0ezDpWvg@mail.gmail.com> <CAMe9rOqoATTPzXqjtqenV0h+hMtMYcr+W-ZL3Bi4jFJWYBCUpg@mail.gmail.com> <76f9e5c1-d1de-04d1-49f5-30673bf3060b@redhat.com>
On Tue, Oct 4, 2016 at 3:52 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 09/27/2016 07:35 PM, H.J. Lu wrote:
>
>>> Any comments? I will check it in next week if there is no objection.
>>
>>
>> I'd like to backport it to 2.23 and 2.24 branches. Any objections?
>
>
> Just this change, or the requirement for an AVX512F-capable assembler as
> well?
>
Good question. This is also needed:
commit f43cb35c9b3c35addc6dc0f1427caf51786ca1d2
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Jul 1 05:54:43 2016 -0700
Require binutils 2.24 to build x86-64 glibc [BZ #20139]
If assembler doesn't support AVX512DQ, _dl_runtime_resolve_avx is used
to save the first 8 vector registers, which only saves the lower 256
bits of vector register, for lazy binding. When it is called on AVX512
platform, the upper 256 bits of ZMM registers are clobbered. Parameters
passed in ZMM registers will be wrong when the function is called the
first time. This patch requires binutils 2.24, whose assembler can store
and load ZMM registers, to build x86-64 glibc. Since mathvec library
needs assembler support for AVX512DQ, we disable mathvec if assembler
doesn't support AVX512DQ.
--
H.J.