This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH, AArch64] Detect assembler vector mov parsing bug
- From: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- To: Richard Earnshaw <rearnsha at arm dot com>
- Cc: Richard Henderson <rth at twiddle dot net>, GNU C Library <libc-alpha at sourceware dot org>, "Carlos O'Donell" <codonell at redhat dot com>
- Date: Tue, 15 Jul 2014 15:41:35 +0100
- Subject: Re: [PATCH, AArch64] Detect assembler vector mov parsing bug
- Authentication-results: sourceware.org; auth=none
- References: <53C43559 dot 5000907 at twiddle dot net> <53C52EC9 dot 7090702 at arm dot com>
On 15 July 2014 14:38, Richard Earnshaw <rearnsha@arm.com> wrote:
> On 14/07/14 20:54, Richard Henderson wrote:
>> The strchr implementation that was recently committed to mainline tickles an
>> assembler bug fixed by
>>
>> commit 8db49cc2de52033990ae5d4d6aacedc8f986e803
>> Author: Will Newton <will.newton@linaro.org>
>> Date: Thu Oct 31 17:21:11 2013 -0700
>>
>> config/tc-aarch64.c: Avoid trying to parse a vector mov as immediate.
>> ...
>>
>> Obviously not a problem with a relatively new binutils installed, but Carlos
>> ran into this problem building mainline glibc on a system using binutils 2.23.
>>
>> It's not a silent error (we die linking ld.so), but its somewhat cryptic.
>> Carlos opined to me that we ought to error out at configure time with an
>> understandable message.
>>
>> Rather than check for version numbers, let's check for functionality.
>>
>> Ok?
>>
>>
>
> We could probably work around the problem by using "mov x<n>, d<m>",
> since the two operations are architecturally equivalent. But I think
> the vector style more accurately reflects the intent of the code. Since
> we are only reading, rather than writing, part of the vector, I don't
> think there are likely to be major performance issues from such a change.
>
> I haven't tested the above, hence the 'probably'.
The more recent binutils 2.24 release does not have this issue. Rather
than tweak the code to work around the broken 2.23 binutils I'd prefer
to go with RTH's proposal and simply barf the build.
/Marcus