diff options
| author | claude <[email protected]> | 2026-07-12 01:19:32 +0000 |
|---|---|---|
| committer | claude <[email protected]> | 2026-07-12 01:19:32 +0000 |
| commit | a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1 (patch) | |
| tree | b0a0ad513792f5c0ddc524d67f6ab89e2044c642 /scripts/setup.sh | |
| download | plan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.tar.gz plan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.zip | |
🌭 plan9-kencc-linux: кросс-тулчейн Plan9 (cc/as/ld) + EFI-болванка
- build_arch.sh / build_al.sh: сборка kencc-компиляторов, ассемблеров,
линкеров всех арок (5/6/8/v/q/k) на Linux-хосте через plan9port.
- патчи под musl/gcc: sbrk->mmap, round/log2->p9*, Runemask, swcmp const,
-fcommon, machcap/omachcap, /sys рантайм-файлы. Подробно в PATCHES.md.
- bin/: готовые 8c 6c 5c vc qc kc + 6a 6l (Linux/musl x86_64).
- efi/: болваночный bootx64.efi (PE32+) тем же тулчейном (6a+6c+6l+dd),
референс — 9legacy nboot/efi; ESP-образ через mkesp.py.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Diffstat (limited to 'scripts/setup.sh')
| -rw-r--r-- | scripts/setup.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100644 index 0000000..2d693f0 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Готовит зависимости для сборки тулчейна: исходники plan9 + собранный plan9port. +# Требуется: git, gcc/clang, make, yacc (или plan9port-овский). Каталоги кладутся +# рядом со скриптом (или в $DEPS). После — экспортни PLAN9SRC/PLAN9PORT (печатает в конце). +set -e +DEPS="${DEPS:-$PWD/deps}" +mkdir -p "$DEPS"; cd "$DEPS" + +# 1) дерево исходников plan9 (plan9foundation — тут живут cc/ и Xc/Xa/Xl) +if [ ! -d plan9foundation ]; then + echo ">> клонирую plan9foundation ..." + git clone --depth 1 https://github.com/plan9foundation/plan9.git plan9foundation \ + || git clone --depth 1 https://git.9front.org/plan9front/plan9front plan9foundation +fi + +# 2) plan9port (даёт 9c/9l/9ar/yacc + lib9/libbio/libmach — ими и собираем kencc) +if [ ! -d plan9port ]; then + echo ">> клонирую plan9port ..." + git clone --depth 1 https://github.com/9fans/plan9port.git plan9port +fi +if [ ! -x plan9port/bin/9c ]; then + echo ">> собираю plan9port (может занять пару минут) ..." + ( cd plan9port && ./INSTALL -b ) # -b: только собрать, без установки в систему +fi + +echo +echo "Готово. Экспортни:" +echo " export PLAN9SRC=$DEPS/plan9foundation" +echo " export PLAN9PORT=$DEPS/plan9port" +echo " # если используешь musl-тулчейн: export MUSL_ENV=/path/to/env.sh" |
