From 98b95d154f9497114b1ba377043010d4dc15853f Mon Sep 17 00:00:00 2001 From: Ruslan Bukin Date: Thu, 11 Nov 2021 20:18:52 +0000 Subject: [PATCH 1/4] Rename run-dm target; Enable rng for it --- pycheribuild/projects/run_qemu.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pycheribuild/projects/run_qemu.py b/pycheribuild/projects/run_qemu.py index 8aced5fb7..c1470a2c5 100644 --- a/pycheribuild/projects/run_qemu.py +++ b/pycheribuild/projects/run_qemu.py @@ -649,18 +649,14 @@ def process(self): class LaunchDmQEMU(LaunchCheriBSD): - target = "run-dm" + target = "run-device-model" forward_ssh_port = False _enable_smbfs_support = False - _add_virtio_rng = False def __init__(self, config: CheriConfig): super().__init__(config) self.qemu_user_networking = False - def process(self): - super().process() - class LaunchFreeRTOSQEMU(LaunchQEMUBase): target = "run-freertos" From 70c0fa474c7f8d158cea28a0c0e157e371b7e6a5 Mon Sep 17 00:00:00 2001 From: Ruslan Bukin Date: Thu, 11 Nov 2021 20:19:46 +0000 Subject: [PATCH 2/4] Use setup when possible. --- pycheribuild/projects/cross/device-model.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pycheribuild/projects/cross/device-model.py b/pycheribuild/projects/cross/device-model.py index 319026abe..72b21628e 100644 --- a/pycheribuild/projects/cross/device-model.py +++ b/pycheribuild/projects/cross/device-model.py @@ -51,10 +51,10 @@ def install(self, **kwargs): self.install_file(self.build_dir / "obj/device-model-riscv.bin", self.real_install_root_dir / "device-model-riscv.bin") - def __init__(self, config: CheriConfig): - super().__init__(config) - cc = self.config.cheri_sdk_bindir / "clang" - objcopy = self.config.cheri_sdk_bindir / "objcopy" - self.make_args.env_vars = {"CC": str(cc), - "AS": str(cc), - "OBJCOPY": str(objcopy)} + def setup(self): + super().setup() + self.CC = self.sdk_bindir / "clang" + objcopy = self.sdk_bindir / "llvm-objcopy" + self.make_args.env_vars.update({"CC": str(self.CC), + "AS": str(self.CC), + "OBJCOPY": str(objcopy)}) From bcde96129a017f4b31d5086072f78c879382eee2 Mon Sep 17 00:00:00 2001 From: Ruslan Bukin Date: Thu, 11 Nov 2021 20:25:06 +0000 Subject: [PATCH 3/4] Dont include CheriConfig as unused --- pycheribuild/projects/cross/device-model.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pycheribuild/projects/cross/device-model.py b/pycheribuild/projects/cross/device-model.py index 72b21628e..f63537cf3 100644 --- a/pycheribuild/projects/cross/device-model.py +++ b/pycheribuild/projects/cross/device-model.py @@ -31,7 +31,6 @@ # SUCH DAMAGE. # -from .crosscompileproject import CheriConfig from .crosscompileproject import CompilationTargets, CrossCompileAutotoolsProject, DefaultInstallDir, GitRepository From 9e7e228c7f1269b263e5aae6eff977e2460b93a8 Mon Sep 17 00:00:00 2001 From: Ruslan Bukin Date: Thu, 11 Nov 2021 21:22:28 +0000 Subject: [PATCH 4/4] Restore device-model disk-image target. --- pycheribuild/projects/cross/cheribsd.py | 9 +++++++++ pycheribuild/projects/disk_image.py | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pycheribuild/projects/cross/cheribsd.py b/pycheribuild/projects/cross/cheribsd.py index 99c5f9547..05c349392 100644 --- a/pycheribuild/projects/cross/cheribsd.py +++ b/pycheribuild/projects/cross/cheribsd.py @@ -2224,6 +2224,15 @@ def process(self): target_manager.add_target_alias("cheribsd-x86_64", "cheribsd-amd64", deprecated=True) +class BuildCheriBsdDeviceModel(BuildCHERIBSD): + target = "cheribsd-device-model" + repository = GitRepository("https://github.com/CTSRD-CHERI/cheribsd.git", + default_branch="device-model-riscv") + default_extra_make_options = [] + supported_architectures = [CompilationTargets.CHERIBSD_RISCV_PURECAP] + hide_options_from_help = True + + class BuildDrmKMod(CrossCompileProject): target = "drm-kmod" repository = GitRepository("https://github.com/freebsd/drm-kmod", default_branch="master", force_branch=True) diff --git a/pycheribuild/projects/disk_image.py b/pycheribuild/projects/disk_image.py index b3f2642d3..d69aebfde 100644 --- a/pycheribuild/projects/disk_image.py +++ b/pycheribuild/projects/disk_image.py @@ -36,7 +36,8 @@ import typing from pathlib import Path -from .cross.cheribsd import (BuildCHERIBSD, BuildFreeBSD, BuildFreeBSDWithDefaultOptions) +from .cross.cheribsd import (BuildCHERIBSD, BuildCheriBsdDeviceModel, BuildFreeBSD, + BuildFreeBSDWithDefaultOptions) from .cross.gdb import (BuildGDB, BuildKGDB) from .project import (AutotoolsProject, CheriConfig, ComputedDefaultValue, CPUArchitecture, CrossCompileTarget, DefaultInstallDir, GitRepository, MakeCommandKind, SimpleProject) @@ -1425,6 +1426,12 @@ class BuildFreeBSDWithDefaultOptionsDiskImage(BuildFreeBSDImage): hide_options_from_help = True +class BuildCheriBSDDeviceModelDiskImage(BuildCheriBSDDiskImage): + target = "disk-image-cheribsd-device-model" + _source_class = BuildCheriBsdDeviceModel + hide_options_from_help = True + + # Backwards compatibility: target_manager.add_target_alias("disk-image-purecap", "disk-image-mips64-purecap", deprecated=True) target_manager.add_target_alias("disk-image-minimal-purecap", "disk-image-minimal-mips64-purecap", deprecated=True)