Re: git: f1e8b0ff4e13 - main - bsd.cpu.mk: Add a workaround for erratum 843419
Adrian Chadd <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.src |
|---|---|
| Message-ID | <CAJ-Vmok5KkeMYKqzTOcz4qS3NyhTY+BEiHTNLLVY1z1GsGkiag__41652.0176966273$1787243463$gmane$org@mail.gmail.com> |
Do they or do they not have workarounds for the a53 bug in question? Like, ok, I can understand an issue like "rust/go is looking at LDFLAGS" which is a whole fun bottle of wtf, but the end question I have here is whether rust/go have the workaround in question or not. Life may be easier if you live on later silicon without these bugs, but we live in a world where there's plenty of arm64 silicon revisions out there all with different fun bugs and if we want to ship single kernel/userland and package builds for them all, we /do/ need to compile code that runs on the least common denominator. -adrian On Thu, 20 Aug 2026 at 08:41, Dima Panov <[email protected]> wrote: > > Hello! > > At least it badly affected aarch64 build on Apple Silicon in VMWare guest and always set LDFLAGS += -Wl,--fix-cortex-a53-843419 > > However here is no cortex cores at all: > $ dmesg | grep CPU > Starting CPU 1 (10000) > Starting CPU 2 (20000) > Starting CPU 3 (30000) > Starting CPU 4 (40000) > Starting CPU 5 (50000) > FreeBSD/SMP: Multiprocessor System Detected: 6 CPUs > cpu0: <ACPI CPU> on acpi0 > CPU 0: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 0 0 0 > CPU 1: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 1 0 0 > CPU 2: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 2 0 0 > CPU 3: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 3 0 0 > CPU 4: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 4 0 0 > CPU 5: Apple Unknown CPU r0p0 (midr: 610f0000) affinity: 5 0 0 > > Some rust and go ports now failed with error "flag provided but not defined: -Wl,--fix-cortex-a53-843419", see www/gitea or lang/rust-bootstrap for example > > > On 14.07.2026 18:49, Andrew Turner wrote: > > The branch main has been updated by andrew: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=f1e8b0ff4e13b52c5e41a5eea3e686410af3dd0b > > > > commit f1e8b0ff4e13b52c5e41a5eea3e686410af3dd0b > > Author: Andrew Turner <[email protected]> > > AuthorDate: 2026-07-14 15:07:30 +0000 > > Commit: Andrew Turner <[email protected]> > > CommitDate: 2026-07-14 15:47:15 +0000 > > > > bsd.cpu.mk: Add a workaround for erratum 843419 > > > > Add a workaround for the Arm Cortex-A53 erratum 843419. This has been > > targeted when the build is either unoptimised for any CPU/architecture > > or targets the Cortex-A53 or ARMv8.0 architecture. > > > > PR: 296240 > > PR: 296395 > > Reported by: Hal Murray <[email protected]> > > Reported by: Andreas Schuh <[email protected]> > > Reviewed by: cognet, mmel > > Sponsored by: Arm Ltd > > Differential Revision: https://reviews.freebsd.org/D58212 > > --- > > share/mk/bsd.cpu.mk | 18 +++++++++++++++++- > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk > > index 33587b6ba25a..b743d3e71a36 100644 > > --- a/share/mk/bsd.cpu.mk > > +++ b/share/mk/bsd.cpu.mk > > @@ -6,7 +6,7 @@ > > .if !defined(CPUTYPE) || empty(CPUTYPE) > > _CPUCFLAGS = > > . if ${MACHINE_CPUARCH} == "aarch64" > > -MACHINE_CPU = arm64 > > +MACHINE_CPU = arm64 cortexa53 > > . elif ${MACHINE_CPUARCH} == "amd64" > > MACHINE_CPU = amd64 sse2 sse mmx > > . elif ${MACHINE_CPUARCH} == "arm" > > @@ -124,6 +124,14 @@ _CPUCFLAGS = -mcpu=${CPUTYPE} > > . elif ${MACHINE_ARCH:Mpowerpc64*} != "" > > _CPUCFLAGS = -mcpu=${CPUTYPE} > > . elif ${MACHINE_CPUARCH} == "aarch64" > > +MACHINE_CPU = arm64 > > +. if ${CPUTYPE} == "generic" > > +MACHINE_CPU += cortexa53 > > +. elif ${CPUTYPE} == "armv8-a" > > +MACHINE_CPU += cortexa53 > > +. elif ${CPUTYPE:M*cortex-a53*} != "" > > +MACHINE_CPU += cortexa53 > > +. endif > > . if ${CPUTYPE:Marmv*} != "" > > # Use -march when the CPU type is an architecture value, e.g. armv8.1-a > > _CPUCFLAGS = -march=${CPUTYPE} > > @@ -302,6 +310,14 @@ MACHINE_CPU = riscv > > . endif > > .endif > > > > +########## arm64/aarch64 > > +.if ${MACHINE_CPUARCH} == "aarch64" > > +# Add the Cortex-A53 erratum 843419 workaround if we are targeting it. > > +. if ${MACHINE_CPU:Mcortexa53} != "" > > +LDFLAGS += -Wl,--fix-cortex-a53-843419 > > +. endif > > +.endif > > + > > ########## arm > > .if ${MACHINE_CPUARCH} == "arm" > > MACHINE_CPU += arm > > -- > Sincerely, > Dima ([email protected], https://t.me/FluffyBSD, @fluffy:matrix-dev.freebsd.org) > (desktop, kde, x11, office, ports-secteam)@FreeBSD team >