From 5d5f3cf0ca357186b9d4c3cc1875cd0fa85cdbd9 Mon Sep 17 00:00:00 2001 From: Peter Chubb Date: Wed, 14 Feb 2024 13:53:51 +1100 Subject: [PATCH 1/5] Add dependencies to README.md Make the list of dependencies for building the microkit tool more complete. This list was created by making a minimal Debian stable chroot environment, and adding packages until the build worked. Signed-off-by: Peter Chubb --- README.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 11fca0699..1133640d3 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,30 @@ Please file an issue if additional packages are required. * python3.9 * python3.9-venv * musl-1.2.2 -* ARM GCC compiler; 10.2-2020.11 - +* cmake +* ninja-build +* ARM GCC compiler for none-elf; 10.2-2020.11 +* aarch64 Linux gcc compiler +* device tree compiler +* xmllint + +To build the documentation you also need +* pandoc +* pdflatex +* texlive-latex-recommended +* texlive-fonts-recommended +* texlive-fonts-extra +* texlive-latex-extra + +On a Debian-like system you can do: + + $ sudo apt install build-essential git cmake ninja-build \ + gcc-aarch64-linux-gnu device-tree-compiler libxml2-utils \ + pandoc texlive-latex-base telive-latex-recommended \ + texlive-fonts-recommended texlive-fonts-extra \ + python3 python3-venv \ + musl-dev musl-tools + On Ubuntu 18.04 there are no packages available for musl-1.2.2; it must be compiled from source. On Ubuntu 18.04 Python 3.9 is available via the *deadsnakes* PPA: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa To use this: @@ -75,6 +97,11 @@ https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-t On macOS Intel/x86-64 the following version is used: https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz?rev=09b11f159fc24fdda01e05bb32695dd5&hash=6AAF4239F28AE17389AB3E611DFFE0A6 +Recent Linux systems may not be compatible with the desired version of +`pyoxidiser`. If the invocation of `pyoxidizer` fails, update it to +the latest version with + ./pyenv/bin/pip install --upgrade pyoxidizer + ## seL4 Version The SDK includes a binary of the seL4 kernel. From b38007c5d25f62b16d7e188bc8c0de3d3b137bae Mon Sep 17 00:00:00 2001 From: Peter Chubb Date: Wed, 14 Feb 2024 14:00:18 +1100 Subject: [PATCH 2/5] Remove trailing whitespace Some trailing whitespace had crept in. Signed-off-by: Peter Chubb --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1133640d3..4fc98bb54 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ On a Debian-like system you can do: texlive-fonts-recommended texlive-fonts-extra \ python3 python3-venv \ musl-dev musl-tools - + On Ubuntu 18.04 there are no packages available for musl-1.2.2; it must be compiled from source. On Ubuntu 18.04 Python 3.9 is available via the *deadsnakes* PPA: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa To use this: From 63912187badd5801dd39d220050e7a7247186de5 Mon Sep 17 00:00:00 2001 From: Peter Chubb Date: Wed, 14 Feb 2024 15:17:08 +1100 Subject: [PATCH 3/5] Minor review changes Remove aarch64-linux-gnu-gcc as a dependency; update aarch64-none-elf compiler version; remove note about pyoxidiser. Signed-off-by: Peter Chubb --- README.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4fc98bb54..5f357424d 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,7 @@ Please file an issue if additional packages are required. * musl-1.2.2 * cmake * ninja-build -* ARM GCC compiler for none-elf; 10.2-2020.11 -* aarch64 Linux gcc compiler +* ARM GCC compiler for none-elf; version 12.2.1 20221205 * device tree compiler * xmllint @@ -57,8 +56,8 @@ To build the documentation you also need On a Debian-like system you can do: $ sudo apt install build-essential git cmake ninja-build \ - gcc-aarch64-linux-gnu device-tree-compiler libxml2-utils \ - pandoc texlive-latex-base telive-latex-recommended \ + device-tree-compiler libxml2-utils \ + pandoc texlive-latex-base texlive-latex-recommended \ texlive-fonts-recommended texlive-fonts-extra \ python3 python3-venv \ musl-dev musl-tools @@ -97,10 +96,6 @@ https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-t On macOS Intel/x86-64 the following version is used: https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz?rev=09b11f159fc24fdda01e05bb32695dd5&hash=6AAF4239F28AE17389AB3E611DFFE0A6 -Recent Linux systems may not be compatible with the desired version of -`pyoxidiser`. If the invocation of `pyoxidizer` fails, update it to -the latest version with - ./pyenv/bin/pip install --upgrade pyoxidizer ## seL4 Version From 2afeb91c26baf969e6e289a4ff2ed4560f8b65df Mon Sep 17 00:00:00 2001 From: Ivan Velickovic Date: Sat, 17 Feb 2024 15:48:00 +1100 Subject: [PATCH 4/5] Remove extra line Signed-off-by: Ivan Velickovic --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5f357424d..64a80005b 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,6 @@ https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-t On macOS Intel/x86-64 the following version is used: https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz?rev=09b11f159fc24fdda01e05bb32695dd5&hash=6AAF4239F28AE17389AB3E611DFFE0A6 - ## seL4 Version The SDK includes a binary of the seL4 kernel. From 246cd6e797ef3eb4cabd7248cbfc95888754dfa1 Mon Sep 17 00:00:00 2001 From: Ivan Velickovic Date: Sat, 17 Feb 2024 15:53:39 +1100 Subject: [PATCH 5/5] Adding macOS instructions Signed-off-by: Ivan Velickovic --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 64a80005b..51fd3feb2 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The remainder of this README is for Microkit developers. ## Developer system requirements -Development of Microkit has primarily been performed on Ubuntu 18.04 LTS (x86_64). +Building the Microkit SDK is supported on Linux (x86_64) and macOS (Apple Silicon/Intel). This section attempts to list the packages or external development tools which are required during development. At this stage it may be incomplete. @@ -38,7 +38,7 @@ Please file an issue if additional packages are required. * make * python3.9 * python3.9-venv -* musl-1.2.2 +* musl-1.2.2 (only when targeting Linux) * cmake * ninja-build * ARM GCC compiler for none-elf; version 12.2.1 20221205 @@ -62,14 +62,18 @@ On a Debian-like system you can do: python3 python3-venv \ musl-dev musl-tools -On Ubuntu 18.04 there are no packages available for musl-1.2.2; it must be compiled from source. -On Ubuntu 18.04 Python 3.9 is available via the *deadsnakes* PPA: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa +If you do not have Python 3.9 available, you can get it via the +*deadsnakes* PPA: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa To use this: $ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.9 python3.9-venv +On macOS, with the [Homebrew](https://brew.sh) package manager you can do: + + $ brew install pandoc cmake dtc ninja qemu libxml2 python@3.9 coreutils texlive + Additonally, a number of Python libraries are needed. These should be installed using `pip`.