[ ] pkg should use ABI=riscv64c and ALTABI=freebsd:13:riscv:64:cheri:hf, install and register packages as upstream;
[ ] pkg64 should use ABI=riscv64, ALTABI=freebsd:13:riscv:64:hf, install packages in /usr/local64 and register them in a database in /var/db/pkg64.
[ ] In the hybrid world:
[ ] pkg should install and register packages as upstream;
[ ] pkg64c should behave as pkg from the pure-capability world but install packages in /usr/local64c and register them in a database in /var/db/pkg64c;
[ ] emulators/qemu-user-static configure binmiscctl for riscv64c in rc.d/qemu_user_static (see CTSRD-CHERI/poudriere-infrastructure);
An ELF header for riscv64 should not be conflicting with an ELF header for riscv64c. The e_flags field should be considered to differentiate them.
[ ] Generate repository keys and sign packages with them;
[ ] Include the repository keys and a repository configuration in CheriBSD.
Optional improvements:
[ ] FreeBSD port (emulators/qemu-cheri-user-static) with the qemu-cheri-bsd-user branch;
[ ] Build a static toolchain so that host libraries (/lib, /usr/lib, /usr/local/lib) are not required to use a toolchain;
[ ] A core dump of a failed QEMU user-mode process should be stored in a location so that it can be attached to a report on a failed QEMU-based build;
[ ] For optimisations, compare building times for a QEMU-based build, a host build and a host cross-build:
[ ] Replace CheriABI base utilities with host utilities to speed up build times, e.g. tar;
[ ] Compiler warnings that usually lead to incorrect package builds should be treated as errors, e.g. cheri-capability-misues, cheri-inefficient;
[ ] (?) Repository integration with Poudriere and Jenkins.
Required changes:
pkg
should useABI=riscv64c
andALTABI=freebsd:13:riscv:64:cheri:hf
, install and register packages as upstream;pkg64
should useABI=riscv64
,ALTABI=freebsd:13:riscv:64:hf
, install packages in/usr/local64
and register them in a database in/var/db/pkg64
.pkg
should install and register packages as upstream;pkg64c
should behave aspkg
from the pure-capability world but install packages in/usr/local64c
and register them in a database in/var/db/pkg64c
;emulators/qemu-user-static
configurebinmiscctl
for riscv64c in rc.d/qemu_user_static (see CTSRD-CHERI/poudriere-infrastructure); An ELF header for riscv64 should not be conflicting with an ELF header for riscv64c. Thee_flags
field should be considered to differentiate them.Optional improvements:
/lib
,/usr/lib
,/usr/local/lib
) are not required to use a toolchain;tar
;cheri-capability-misues
,cheri-inefficient
;Depends on: