Initial commit
As of right now, rootfs.sh creates an initramfs that: - boots linux - builds mescc-tools-seed - compiles blynn-compiler (from oriansj's fork)
This commit is contained in:
commit
f0959ba2f4
|
@ -0,0 +1,2 @@
|
||||||
|
tmp/
|
||||||
|
kernel
|
|
@ -0,0 +1,9 @@
|
||||||
|
[submodule "mescc-tools-seed"]
|
||||||
|
path = mescc-tools-seed
|
||||||
|
url = https://github.com/oriansj/mescc-tools-seed/
|
||||||
|
[submodule "bootstrap-seeds"]
|
||||||
|
path = bootstrap-seeds
|
||||||
|
url = https://github.com/oriansj/bootstrap-seeds
|
||||||
|
[submodule "blynn-compiler-oriansj"]
|
||||||
|
path = blynn-compiler-oriansj
|
||||||
|
url = https://github.com/oriansj/blynn-compiler
|
|
@ -0,0 +1,102 @@
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
PATH=/bin
|
||||||
|
|
||||||
|
cd blynn-compiler
|
||||||
|
|
||||||
|
# compile pack_blobs.c
|
||||||
|
M2-Planet --architecture x86 \
|
||||||
|
-f functions/file.c \
|
||||||
|
-f functions/exit.c \
|
||||||
|
-f functions/malloc.c \
|
||||||
|
-f functions/calloc.c \
|
||||||
|
-f functions/file_print.c \
|
||||||
|
-f functions/match.c \
|
||||||
|
-f functions/require.c \
|
||||||
|
-f pack_blobs.c \
|
||||||
|
--debug \
|
||||||
|
-o bin/pack_blobs.M1
|
||||||
|
|
||||||
|
# Create dwarf stubs for pack_blobs
|
||||||
|
blood-elf -f bin/pack_blobs.M1 --entry _start -o bin/pack_blobs-footer.M1
|
||||||
|
|
||||||
|
# Convert to hex2 linker format
|
||||||
|
M1 -f test/common_x86/x86_defs.M1 \
|
||||||
|
-f test/common_x86/libc-core.M1 \
|
||||||
|
-f bin/pack_blobs.M1 \
|
||||||
|
-f bin/pack_blobs-footer.M1 \
|
||||||
|
--LittleEndian \
|
||||||
|
--architecture x86 \
|
||||||
|
-o bin/pack_blobs.hex2
|
||||||
|
|
||||||
|
# Link into final static binary
|
||||||
|
hex2 -f test/common_x86/ELF-i386-debug.hex2 \
|
||||||
|
-f bin/pack_blobs.hex2 \
|
||||||
|
--LittleEndian \
|
||||||
|
--architecture x86 \
|
||||||
|
--BaseAddress 0x8048000 \
|
||||||
|
-o bin/pack_blobs --exec_enable
|
||||||
|
|
||||||
|
# Build blobs
|
||||||
|
./bin/pack_blobs -f blob/parenthetically.source -o generated/parenthetically
|
||||||
|
./bin/pack_blobs -f blob/exponentially.source -o generated/exponentially
|
||||||
|
./bin/pack_blobs -f blob/practically.source -o generated/practically
|
||||||
|
./bin/pack_blobs -f blob/singularity.source -o generated/singularity_blob
|
||||||
|
|
||||||
|
# Compile to assembly vm.c
|
||||||
|
M2-Planet --architecture x86 \
|
||||||
|
-f functions/file.c \
|
||||||
|
-f functions/exit.c \
|
||||||
|
-f functions/malloc.c \
|
||||||
|
-f functions/calloc.c \
|
||||||
|
-f functions/file_print.c \
|
||||||
|
-f functions/in_set.c \
|
||||||
|
-f functions/numerate_number.c \
|
||||||
|
-f functions/match.c \
|
||||||
|
-f functions/require.c \
|
||||||
|
-f vm.c \
|
||||||
|
--debug \
|
||||||
|
-o bin/vm.M1
|
||||||
|
|
||||||
|
# Create dwarf stubs for vm
|
||||||
|
blood-elf -f bin/vm.M1 --entry _start -o bin/vm-footer.M1
|
||||||
|
|
||||||
|
# Convert to hex2 linker format
|
||||||
|
M1 -f test/common_x86/x86_defs.M1 \
|
||||||
|
-f test/common_x86/libc-core.M1 \
|
||||||
|
-f bin/vm.M1 \
|
||||||
|
-f bin/vm-footer.M1 \
|
||||||
|
--LittleEndian \
|
||||||
|
--architecture x86 \
|
||||||
|
-o bin/vm.hex2
|
||||||
|
|
||||||
|
# Link into final static binary
|
||||||
|
hex2 -f test/common_x86/ELF-i386-debug.hex2 \
|
||||||
|
-f bin/vm.hex2 \
|
||||||
|
--LittleEndian \
|
||||||
|
--architecture x86 \
|
||||||
|
--BaseAddress 0x8048000 \
|
||||||
|
-o bin/vm --exec_enable
|
||||||
|
|
||||||
|
# Generate raw file needed
|
||||||
|
./bin/vm --bootstrap \
|
||||||
|
-lf generated/parenthetically \
|
||||||
|
-lf generated/exponentially \
|
||||||
|
-lf generated/practically \
|
||||||
|
-lf generated/singularity_blob \
|
||||||
|
-lf singularity \
|
||||||
|
-lf semantically \
|
||||||
|
-lf stringy \
|
||||||
|
-lf binary \
|
||||||
|
-lf algebraically \
|
||||||
|
-lf parity.hs \
|
||||||
|
-lf fixity.hs \
|
||||||
|
-lf typically.hs \
|
||||||
|
-lf classy.hs \
|
||||||
|
-lf barely.hs \
|
||||||
|
-lf barely.hs \
|
||||||
|
-lfr barely.hs \
|
||||||
|
-o bin/raw
|
||||||
|
|
||||||
|
# Make lonely
|
||||||
|
./bin/vm -f lonely.hs -l bin/raw run effectively.hs -o generated/lonely.c
|
|
@ -0,0 +1,12 @@
|
||||||
|
--- kaem.run 2020-12-14 17:54:49.590792093 +1100
|
||||||
|
+++ kaem.run 2020-12-14 17:55:34.293053332 +1100
|
||||||
|
@@ -36,3 +36,9 @@
|
||||||
|
############################################
|
||||||
|
|
||||||
|
../bin/kaem --verbose --strict --file mes-m2.kaem
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+# Phase-14 Build blynn-compiler #
|
||||||
|
+############################################
|
||||||
|
+
|
||||||
|
+../bin/kaem --verbose --strict --file blynn-compiler/go.kaem
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit aa5b62d7358fa0a1b45730c190a15ca3a8408c2c
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit cfa108377c15382f58b20394150840e1099b6767
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 8a87a7689b9f92c218c2d6d519a3e61867a717db
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# Setup tmp
|
||||||
|
mkdir -p tmp/
|
||||||
|
sudo mount -t tmpfs -o size=8G tmpfs tmp
|
||||||
|
|
||||||
|
# Now copy everything over
|
||||||
|
|
||||||
|
# base: mescc-tools-seed
|
||||||
|
cp -r mescc-tools-seed/x86/* tmp
|
||||||
|
cp -r mescc-tools-seed/{M2-Planet,mes-m2,mescc-tools} tmp/
|
||||||
|
cp bootstrap-seeds/POSIX/x86/kaem-optional-seed tmp/init
|
||||||
|
cp bootstrap-seeds/POSIX/x86/kaem-optional-seed tmp/
|
||||||
|
cp -r bootstrap-seeds tmp/
|
||||||
|
mkdir tmp/bin
|
||||||
|
|
||||||
|
# blynn-compiler
|
||||||
|
pushd tmp
|
||||||
|
git clone ../blynn-compiler-oriansj blynn-compiler
|
||||||
|
cp ../blynn-compiler-extras/go.kaem blynn-compiler/
|
||||||
|
patch -Np0 -i ../blynn-compiler-extras/kaem.patch
|
||||||
|
mkdir blynn-compiler/{bin,generated}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# General cleanup
|
||||||
|
find tmp -name .git -exec rm -rf \;
|
||||||
|
|
||||||
|
# initramfs
|
||||||
|
cd tmp
|
||||||
|
find . | cpio -H newc -o | gzip > initramfs.igz
|
||||||
|
qemu-system-x86_64 -enable-kvm -kernel ../kernel -initrd initramfs.igz -append console=ttyS0 -nographic -m 16G
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
sudo umount tmp
|
Loading…
Reference in New Issue