Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. Page to track building of ports for arm64. Bugs in bugzilla should be added as a dependency to [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201763|the tracker bug]] ===== 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 [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251254|fails to build]] as of 20210127). * some of the more obscure languages (Pascal, Ocaml, Common Lisp). ===== Package build status ===== As of a [[http://ampere2.nyi.freebsd.org/build.html?mastername=main-arm64-default&build=p561528_s7ae27c2d6c|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 [[http://ampere2.nyi.freebsd.org/jail.html?mastername=main-arm64-default|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 [[https://bugs.freebsd.org/bugzilla/buglist.cgi?list_id=156782&order=short_desc%2Cbug_id%20DESC&product=Ports%20%26%20Packages&query_format=advanced&resolution=---&short_desc=arm64&short_desc_type=allwordssubstr|Bugzilla search on arm64]] or [[https://bugs.freebsd.org/bugzilla/buglist.cgi?list_id=156782&order=short_desc%2Cbug_id%20DESC&product=Ports%20%26%20Packages&query_format=advanced&resolution=---&short_desc=aarch64&short_desc_type=allwordssubstr|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 [[http://ampere2.nyi.freebsd.org/build.html?mastername=main-arm64-default&build=p561528_s7ae27c2d6c|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|MarkLinimon]] if you need help. === Missing sbrk === **sbrk** was never available in any aarch64 release. All the ports that try to link with it [[/PortsBrokenWithSbrk|have already been marked BROKEN]]. But note that [[https://svnweb.freebsd.org/ports/head/graphics/graphviz/files/patch-lib-vmalloc-vmhdr.h?view=markup&pathrev=426075|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|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|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 | ---- {{tag>Ports}} arm64/ports.txt Last modified: 2021/01/27 19:51by RonaldKlop