cheribsd
cheribsd copied to clipboard
CHERI-RISC-V CheriABI package repository
Required changes:
- [ ] In the pure-capability world:
- [ ]
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
.
- [ ]
- [ ] In the hybrid world:
- [ ]
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. - [ ] 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
;
- [ ] Replace CheriABI base utilities with host utilities to speed up build times, e.g.
- [ ] 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.
Depends on:
- CTSRD-CHERI/qemu#163.