https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125182
Bug ID: 125182
Summary: libgcc/config/aarch64/cpuinfo.c now presumes linux
ABI's AT_HWCAP, other ABI's need not match
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgcc
Assignee: unassigned at gcc dot gnu.org
Reporter: markmigm at gmail dot com
Target Milestone: ---
This is tied to:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294062
for aarch65 lang/gcc16-devel builds not working after the
libgcc/config/aarch64/cpuinfo.c changes.
FreeBSD had 16 in use in its list of values before it added
AT_HWCAP (for example) and has historically used the cpuinfo.c
#ifndef . . . #endif structure to deal with providing such
differences by predefining the value. Now the example value
is hardwired to exactly match Linux and overrides the
FreeBSD OS value.
asm/hwcap.h was a linux header. So a change being something
that avoids looking for that file and instead uses some path
that would be expected to not already exist unless deliberately
being newly created would work for them avoiding the linux
header.
May be such a change could involve a name something like:
hwcap_os_specific_abi_value_overrides.h
that would be unlikely to otherwise be created.
For FreeBSD use, as an example, that file could exist and in
turn #include the normal FreeBSD source of values. But normal
gcc16+ could avoid the linux header use as well.
Overall: this suggests making an allowance for having OS
specific ABI values that need not always match the Linux ABI
values, even if it not via the specific type of handing
referenced above.