Page to track building of ports for arm64. Bugs in bugzilla should be added as a dependency to the tracker bug
Contents
Overview
Most ports that build on amd64 do build on arm64, with the following notable exceptions:
- ports that reference Intel-hardware or AMD-specific hardware.
- ports that require Linux emulation.
ports that depend on rust (which fails to build as of 20210127).
- some of the more obscure languages (Pascal, Ocaml, Common Lisp).
Package build status
As of a recent 13-STABLE poudriere build on the cluster, there were 799 IGNOREd ports (including zero blacklisted) and 265 failures, for a total number of SKIPPED 3049. (You may also view the index to all the latest builds.)
Some of the IGNOREd ports are expected failures for non-x86 architectures (e.g. no linux emulation support). This list attempts to help coordinate the efforts to fix the other ones.
Patches already available for testing
Please see Bugzilla search on arm64 or Bugzilla search on aarch64 and "attachment is patch"; sorted by Summary (which is usuallly portname)
Build failures
Build failures that are already known
These ports have already been marked BROKEN or IGNORE.
BROKEN is for ports that should be expected to build on the arch, but have failures.
IGNORE is for ports that are not expected to build on the arch.
In general only the first case is worth working on; however, port maintainers are inconsistent in their use.
The best way to browse these problems:
go to, e.g., a recent 13-STABLE poudriere build on the cluster
scroll down to Ignored ports
right-click on Reason to sort alpha
The Search textbox may be used to narrow down the results.
Examples that should be relatively easy to address:
asm or assembler: uses x86-specific assembler
c99, c11
Less easy:
Blacklisted: it was intentionally not built on the cluster.
runaway builds
FreeBSD 13.0: probably not your problem
Finally, the reason may be missing. Contact MarkLinimon if you need help.
Missing sbrk
sbrk was never available in any aarch64 release. All the ports that try to link with it were marked BROKEN. But note that this commit to graphics/graphviz was sufficient to fix one of them.
TODO item: investigate whether this is sufficient for all the others.
Build failures that are new
These fall into several categories:
- ports that have recently been added
- ports that are actually broken elsewhere (e.g. "everywhere", "only on -CURRENT", and so forth)
- ports that newly fail on arm64.
It requires some detective work to figure out which is which, but for now, let's narrow it down to the latter group.
New errors
These may have been caused by the change to the lld linker. Some changes have already been committed but not yet built on the cluster. Contact EdMaste.
- ld: error: can't create dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol
- ld: error: unable to find libraries -lm, -lcrypto, -lssl, -lpthread, -lz, -lc (and so forth)
/usr/bin/ld: error: duplicate symbol: <foo>
How you can help
- As of 20210127, the failure of lang/rust is the most painful, blocking 2119.
MarkLinimon is continuing to go through failures to classify errors, marking ports broken, and submitting patches.
- Various people were working on lang/ocaml and games/oolite, but work seems to have stalled as of 20210127.
- Some of the ports already marked BROKEN need to be investigated, starting with:
portname |
affects |
comments |
graphics/gegl |
?? |
Segmentation fault in docs/gallery/ (currently blocked by lang/rust 20210127) |
net/asterisk* |
13 |
NOT_FOR |
lang/luajit |
8 |
no support for this architecture (yet) |
devel/tex-libtexluajit |
6 |
Does not configure: error: Sorry, cannot preprocess lj_arch.h |
lang/spidermonkey185 |
2 |
cacheFlush support is missing on this platform |