Re: git: f1e8b0ff4e13 - main - bsd.cpu.mk: Add a workaround for erratum 843419
Date: Thu, 20 Aug 2026 16:30:20 UTC
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 <fluffy@freebsd.org> 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 <andrew@FreeBSD.org>
> > AuthorDate: 2026-07-14 15:07:30 +0000
> > Commit: Andrew Turner <andrew@FreeBSD.org>
> > 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 <halmurray+freebsd@sonic.net>
> > Reported by: Andreas Schuh <x55839@icloud.com>
> > 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 (fluffy@FreeBSD.org, https://t.me/FluffyBSD, @fluffy:matrix-dev.freebsd.org)
> (desktop, kde, x11, office, ports-secteam)@FreeBSD team
>