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)