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
Date: Mon, 18 Apr 2022 19:36:01 UTC
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.
===
Mark Millard
marklmi at yahoo.com