Re: It looks like devel/aarch64-none-elf-gcc and other aarch64 */gcc* 's suffer from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101723

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.toolchain,gmane.os.freebsd.devel.arm,gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On 2022-Apr-18, at 14:10, Mark Millard <[email protected]> wrote:

> On 2022-Apr-18, at 12:36, Mark Millard <[email protected]> wrote:
> 
>> In doing some experiments, it looks like I've run into:
>> 
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101723
>> 
>> which had fixes applied to gcc9 , gcc10, and gcc11 in very
>> late 2021-July into Aug (all after the most recent tagged
>> release). gcc8 was already out of support or it would have
>> had a commit too. ( aarch64-none-elf-gcc is currently at
>> 8.4.0 .)
>> 
>> The specific issue is that for compiles with -march=armv8-a+crc
>> specified the result is as if the +crc had not been specified.
>> In my context:
>> 
>> {standard input}: Assembler messages:
>> {standard input}:37: Error: selected processor does not support `crc32b w0,w0,w4'
>> 
>> The description of the fixes starts with:
>> 
>> QUOTE
>>   A change to the way gas interprets the .fpu directive in binutils-2.34
>>   means that issuing .fpu will clear any features set by .arch_extension
>>   that apply to the floating point or simd units.  This unfortunately
>>   causes problems for more recent versions of the architecture because
>>   we currently emit .arch, .arch_extension and .fpu directives at
>>   different times and try to suppress redundant changes.
>> . . .
>> END QUOTE
>> 
>> So seeing the problem or not also depends on the vintage of gas
>> in use, possibly explaining this not having been noticed before.
>> 
>> This was reported separately in:
>> 
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104439
>> 
>> for 11.2.0 and more and specifically for crc32b messages, but was
>> classified as a duplicate of the earlier one listed above.
>> 
>> As far as I can tell no tagged gcc release has the fix yet:
>> 
>> releases/gcc-11.2.0 (2021-Jul-27, so close: 29th commit)
>> releases/gcc-9.4.0  (2021-Jun-01)
>> releases/gcc-10.3.0 (2021-Apr-08)
>> 
>> This interfere with experimenting with an updated U-Boot for
>> aarch64.
>> 
> 
> I looked around and found:
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c1cdabe3aab817d95a8db00a8b5e9f6bcdea936f
> 
> arm: reorder assembler architecture directives [PR101723]
> author	Richard Earnshaw <[email protected]>	
> Thu, 29 Jul 2021 10:00:31 +0000 (11:00 +0100)
> committer	Richard Earnshaw <[email protected]>	
> Thu, 5 Aug 2021 11:51:14 +0000 (12:51 +0100)
> commit	c1cdabe3aab817d95a8db00a8b5e9f6bcdea936f
> tree	2e3b5461af89619f316ecefa9d46564aa7514d33	tree
> parent	6a37d0331c25f23628d4308e5a75624005c223b2	commit | diff
> 
> As well as the refs/heads/releases/gcc-* related commits . . .
> 
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c21ba5e57e49b870f1607944c0742e78feb7bc8d
> [Wed, 18 Aug 2021 15:22:38 +0000 (16:22 +0100)]
> 
> via https://gcc.gnu.org/git?p=gcc.git;a=shortlog;h=refs/heads/releases/gcc-11
> 
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=02d5a1988247207da46f25ce8b58515e25c1f250
> [Mon, 23 Aug 2021 14:31:16 +0000 (15:31 +0100)]
> 
> via https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/releases/gcc-10
> 
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=04c568961e793a1d7ad86248b4ca929fc84acf8d
> [Mon, 23 Aug 2021 14:39:20 +0000 (15:39 +0100)]
> 
> via https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/releases/gcc-9
> 
> 
> So possibly anything based on more recent snapshots than those
> refs/heads/releases/gcc-* related commits have the commit in
> place already.
> 

I looked and gcc 11.3.0 has source code from the fix. So, for
lang/gcc* (non -devel),

git: 06b81ba6804c - main - lang/gcc11: upgrade to 11.3.0 Piotr Kubaj

looks to bee the first (and so-far only) lang/gcc* (non -devel)
to contain the fix. The content of the other versions predate
the fix (so far).

A simple bugzilla search of what had been fixed in 11.3 did not list
PR 101723 but looking at the likes of

https://github.com/gcc-mirror/gcc/blob/releases/gcc-11.3.0/gcc/config/arm/arm.c

showed a history entry for the fix and code from the fix.

===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.