logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 5a369dc783d83355a0f1c735777ccd9e04f74342
parent e5cbaa9e040be6f4245230abdb8db8a741e85b05
Author: fosslinux <fosslinux@aussies.space>
Date:   Wed, 20 Jan 2021 12:43:40 +1100

Restructure

Diffstat:

M.gitmodules38++++++++++++++++++++++----------------
ADEVEL.md45+++++++++++++++++++++++++++++++++++++++++++++
Dbootstrap-seeds1-
Mrootfs.sh66++++++++++++++++++++++--------------------------------------------
Asources/.placeholder0
Msysa/after.kaem2++
Msysa/after.kaem.run118++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Dsysa/bash-2.05b.kaem31-------------------------------
Asysa/bash-2.05b/bash-2.05b.kaem38++++++++++++++++++++++++++++++++++++++
Asysa/bash-2.05b/build/.placeholder0
Rsysa/bash-2.05b-builtins.mk -> sysa/bash-2.05b/mk/builtins.mk0
Rsysa/bash-2.05b-common.mk -> sysa/bash-2.05b/mk/common.mk0
Rsysa/bash-2.05b.mk -> sysa/bash-2.05b/mk/main.mk0
Rsysa/patches/bash-2.05b/dev-tty.patch -> sysa/bash-2.05b/patches/dev-tty.patch0
Rsysa/patches/bash-2.05b/extern.patch -> sysa/bash-2.05b/patches/extern.patch0
Rsysa/patches/bash-2.05b/locale.patch -> sysa/bash-2.05b/patches/locale.patch0
Rsysa/patches/bash-2.05b/mes-libc.patch -> sysa/bash-2.05b/patches/mes-libc.patch0
Rsysa/patches/bash-2.05b/missing-defines.patch -> sysa/bash-2.05b/patches/missing-defines.patch0
Rsysa/patches/bash-2.05b/tinycc.patch -> sysa/bash-2.05b/patches/tinycc.patch0
Asysa/bash-2.05b/src/.placeholder0
Dsysa/blynn-compiler-oriansj1-
Dsysa/blynn-compiler.kaem248-------------------------------------------------------------------------------
Asysa/blynn-compiler/blynn-compiler.kaem255+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asysa/blynn-compiler/src1+
Asysa/bootstrap-seeds1+
Dsysa/bzip2-1.0.8.kaem13-------------
Asysa/bzip2-1.0.8/build/.placeholder0
Asysa/bzip2-1.0.8/bzip2-1.0.8.kaem26++++++++++++++++++++++++++
Asysa/bzip2-1.0.8/patches/coreutils.patch34++++++++++++++++++++++++++++++++++
Asysa/bzip2-1.0.8/patches/mes-libc.patch23+++++++++++++++++++++++
Asysa/bzip2-1.0.8/src/.placeholder0
Dsysa/diffutils-2.7.kaem38--------------------------------------
Asysa/diffutils-2.7/build/.placeholder0
Asysa/diffutils-2.7/diffutils-2.7.kaem44++++++++++++++++++++++++++++++++++++++++++++
Asysa/diffutils-2.7/src/.placeholder0
Dsysa/gzip-1.2.4.kaem34----------------------------------
Asysa/gzip-1.2.4/build/.placeholder0
Asysa/gzip-1.2.4/gzip-1.2.4.kaem41+++++++++++++++++++++++++++++++++++++++++
Asysa/gzip-1.2.4/src/.placeholder0
Dsysa/m4-1.4.kaem14--------------
Asysa/m4-1.4/build/.placeholder0
Asysa/m4-1.4/m4-1.4.kaem26++++++++++++++++++++++++++
Rsysa/m4-1.4.mk -> sysa/m4-1.4/mk/main.mk0
Rsysa/patches/m4-1.4/m4-signal-include.patch -> sysa/m4-1.4/patches/signal-include.patch0
Asysa/m4-1.4/src/.placeholder0
Dsysa/make-3.80.kaem46----------------------------------------------
Asysa/make-3.80/build/.placeholder0
Asysa/make-3.80/make-3.80.kaem53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Rsysa/patches/make-3.80/mes-libc.patch -> sysa/make-3.80/patches/mes-libc.patch0
Asysa/make-3.80/src/.placeholder0
Dsysa/mes1-
Dsysa/mes.kaem293-------------------------------------------------------------------------------
Rsysa/mes-files/config.h -> sysa/mes/files/config.h0
Rsysa/mes-files/mescc.scm -> sysa/mes/files/mescc.scm0
Asysa/mes/mes.kaem293+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asysa/mes/src/mes1+
Asysa/mes/src/nyacc1+
Dsysa/mescc-tools-extra/go.kaem81-------------------------------------------------------------------------------
Asysa/mescc-tools-extra/mescc-tools-extra.kaem86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rsysa/mescc-tools-extra/chmod.c -> sysa/mescc-tools-extra/src/chmod.c0
Rsysa/mescc-tools-extra/cp.c -> sysa/mescc-tools-extra/src/cp.c0
Rsysa/mescc-tools-extra/functions/file_print.c -> sysa/mescc-tools-extra/src/functions/file_print.c0
Rsysa/mescc-tools-extra/functions/in_set.c -> sysa/mescc-tools-extra/src/functions/in_set.c0
Rsysa/mescc-tools-extra/functions/match.c -> sysa/mescc-tools-extra/src/functions/match.c0
Rsysa/mescc-tools-extra/functions/numerate_number.c -> sysa/mescc-tools-extra/src/functions/numerate_number.c0
Rsysa/mescc-tools-extra/functions/require.c -> sysa/mescc-tools-extra/src/functions/require.c0
Rsysa/mescc-tools-extra/functions/string.c -> sysa/mescc-tools-extra/src/functions/string.c0
Dsysa/mescc-tools-patched1-
Dsysa/mescc-tools-seed1-
Asysa/mescc-tools-seed/src/mescc-tools-patched1+
Asysa/mescc-tools-seed/src/mescc-tools-seed1+
Dsysa/nyacc1-
Dsysa/patch-2.5.9.kaem41-----------------------------------------
Asysa/patch-2.5.9/build/.placeholder0
Asysa/patch-2.5.9/patch-2.5.9.kaem47+++++++++++++++++++++++++++++++++++++++++++++++
Asysa/patch-2.5.9/src/.placeholder0
Dsysa/patches/bzip2-1.0.8/bzip2-1.0.8.patch61-------------------------------------------------------------
Dsysa/sed-4.0.71-
Dsysa/sed-4.0.7.kaem39---------------------------------------
Asysa/sed-4.0.7/sed-4.0.7.kaem41+++++++++++++++++++++++++++++++++++++++++
Asysa/sed-4.0.7/src1+
Dsysa/tar-1.12.kaem52----------------------------------------------------
Asysa/tar-1.12/src/.placeholder0
Asysa/tar-1.12/tar-1.12.kaem53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsysa/tcc-0.9.261-
Asysa/tcc-0.9.26/src/mes-libc1+
Asysa/tcc-0.9.26/src/tcc-0.9.261+
Asysa/tcc-0.9.26/tcc-0.9.26.kaem378+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsysa/tcc-0.9.271-
Asysa/tcc-0.9.27/build/.placeholder0
Rsysa/patches/tcc/static-link.patch -> sysa/tcc-0.9.27/patches/static-link.patch0
Asysa/tcc-0.9.27/src/mes-libc1+
Asysa/tcc-0.9.27/src/tcc-0.9.271+
Asysa/tcc-0.9.27/tcc-0.9.27.kaem58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asysa/tcc-0.9.27/tcc-patched.kaem33+++++++++++++++++++++++++++++++++
Dsysa/tcc-patched.kaem34----------------------------------
Dsysa/tcc.kaem433-------------------------------------------------------------------------------
97 files changed, 1700 insertions(+), 1576 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -1,27 +1,33 @@ -[submodule "mescc-tools-seed"] - path = sysa/mescc-tools-seed +[submodule "sysa/mescc-tools-seed/src/mescc-tools-seed"] + path = sysa/mescc-tools-seed/src/mescc-tools-seed url = https://github.com/oriansj/mescc-tools-seed/ [submodule "bootstrap-seeds"] - path = bootstrap-seeds + path = sysa/bootstrap-seeds url = https://github.com/oriansj/bootstrap-seeds -[submodule "blynn-compiler-oriansj"] - path = sysa/blynn-compiler-oriansj +[submodule "sysa/blynn-compiler/src"] + path = sysa/blynn-compiler/src url = https://github.com/oriansj/blynn-compiler -[submodule "sysa/mes"] - path = sysa/mes +[submodule "sysa/mes/src/mes"] + path = sysa/mes/src/mes url = https://gitlab.com/janneke/mes.git -[submodule "sysa/nyacc"] - path = sysa/nyacc +[submodule "sysa/mes/src/nyacc"] + path = sysa/mes/src/nyacc url = https://git.savannah.gnu.org/git/nyacc.git -[submodule "sysa/tcc-0.9.26p1"] - path = sysa/tcc-0.9.26 +[submodule "sysa/tcc-0.9.26/src/tcc-0.9.26"] + path = sysa/tcc-0.9.26/src/tcc-0.9.26 url = https://gitlab.com/janneke/tinycc [submodule "sysa/mescc-tools-patched"] - path = sysa/mescc-tools-patched + path = sysa/mescc-tools-seed/src/mescc-tools-patched url = https://github.com/oriansj/mescc-tools -[submodule "sysa/tcc-0.9.27"] - path = sysa/tcc-0.9.27 +[submodule "sysa/tcc-0.9.27/src/tcc-0.9.27"] + path = sysa/tcc-0.9.27/src/tcc-0.9.27 url = git://repo.or.cz/tinycc.git -[submodule "sysa/sed-4.0.7"] - path = sysa/sed-4.0.7 +[submodule "sysa/sed-4.0.7/src"] + path = sysa/sed-4.0.7/src url = https://git.savannah.gnu.org/git/sed/sed-history.git +[submodule "sysa/tcc-0.9.26/src/mes-libc"] + path = sysa/tcc-0.9.26/src/mes-libc + url = https://gitlab.com/janneke/mes +[submodule "sysa/tcc-0.9.27/src/mes-libc"] + path = sysa/tcc-0.9.27/src/mes-libc + url = https://gitlab.com/janneke/mes diff --git a/DEVEL.md b/DEVEL.md @@ -0,0 +1,45 @@ +# Development Guidelines + +## Testing + +Before making a PR, please test your change locally. It is OK to develop outside +of the live environment, but please be sure to test inside the live environment +and that a full build completes. + +## Structure + +Each system corresponds to a reboot of the live environment. There is only one +appropriate structure as shown below (eg for sysa): + +``` +sysa +├── any-global-files.sh +├── somepackage-version +│   ├── somepackage-version.kaem (or .sh) +│   ├── files +│   ├── mk +│   ├── patches +│   └── src +└── tmp +``` + +Global scripts that drive the entire system go directly under `sysx`. `tmp` +contains the temporary system used for QEMU or a chroot. + +Then, each package is in its own specific directory, named `package-version`. +Within that, there must be a driving script, labelled either +`package-version.kaem` when driven by kaem or `package-version.sh` when driven +by a shell (normally bash). + +In this folder, there are other folders. `src` is required, others are optional. +Permissable folders: + +- `files`: auxiliary files required for the build distributed by live-bootstrap. +- `mk`: makefiles. +- `patches`: patches for the source. +- `src`: the upstream unmodified source code. This must be either: + - a submodule + - a folder contianing only `.placeholder` as distributed by git and gitignored, + where the tarball is saved to in rootfs.sh. (The gitignore is already + global, so the first time it is created with `.placeholder` it must be git + added with `-f`). diff --git a/bootstrap-seeds b/bootstrap-seeds @@ -1 +0,0 @@ -Subproject commit cfa108377c15382f58b20394150840e1099b6767 diff --git a/rootfs.sh b/rootfs.sh @@ -14,13 +14,13 @@ sudo mount -t tmpfs -o size=8G tmpfs tmp # base: mescc-tools-seed # copy in all the mescc-tools-seed stuff -cp -r mescc-tools-seed/x86/* tmp -cp -r mescc-tools-seed/{M2-Planet,mes-m2} tmp/ -cp -r mescc-tools-patched tmp/mescc-tools +cp -r mescc-tools-seed/src/mescc-tools-seed/x86/* tmp +cp -r mescc-tools-seed/src/mescc-tools-seed/{M2-Planet,mes-m2} tmp/ +cp -r mescc-tools-seed/src/mescc-tools-patched tmp/mescc-tools # and the kaem seed -cp ../bootstrap-seeds/POSIX/x86/kaem-optional-seed tmp/init -cp ../bootstrap-seeds/POSIX/x86/kaem-optional-seed tmp/ -cp -r ../bootstrap-seeds 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/ # replace the init kaem with our own custom one mv tmp/kaem.run tmp/mescc-tools-seed.kaem.run cp base.kaem.run tmp/kaem.run @@ -40,49 +40,34 @@ mkdir -p tmp/tmp cp after.kaem tmp/ cp after.kaem.run tmp/after/kaem.run -# Copy in all of the patches -cp -r patches tmp/after/ - # mescc-tools-extra cp -r mescc-tools-extra tmp/after/ # blynn-compiler -pushd tmp/after -git clone ../../blynn-compiler-oriansj blynn-compiler -cp ../../blynn-compiler.kaem blynn-compiler/go.kaem -mkdir -p blynn-compiler/{bin,generated} -popd +cp -r blynn-compiler tmp/after/ +mkdir -p tmp/after/blynn-compiler/src/{bin,generated} # mes cp -r mes tmp/after/ -cp -r mes tmp/after/tcc-mes -ln -s lib/x86-mes tmp/after/mes/x86-mes -cp -r nyacc tmp/after/ -cp mes.kaem tmp/after/ -cp mes-files/mescc.scm tmp/after/bin/ -cp mes-files/config.h tmp/after/mes/include/mes/ -cp mes-files/config.h tmp/after/tcc-mes/include/mes/ -mkdir -p tmp/after/mes/{bin,m2} - -# tcc -cp tcc.kaem tmp/after/ +#ln -s lib/x86-mes tmp/after/mes/src/mes/x86-mes +mkdir -p tmp/after/mes/src/mes/{bin,m2} + +# tcc 0.9.26 cp -r tcc-0.9.26 tmp/after/ -cp -r tcc-0.9.27 tmp/after/ -pushd tmp/after/tcc-0.9.26 +pushd tmp/after/tcc-0.9.26/src/tcc-0.9.26 ln -s ../mes/module . ln -s ../mes/mes . ln -s /after/lib x86-mes ln -s /after/lib/linux . popd -mkdir -p ../sources +# tcc 0.9.27 +cp -r tcc-0.9.27 tmp/after/ # sed 4.0.7 -cp sed-4.0.7.kaem tmp/after/ cp -r sed-4.0.7 tmp/after/ -# tcc patched -cp tcc-patched.kaem tmp/after/ +mkdir -p ../sources # tar 1.12 url=https://ftp.gnu.org/gnu/tar/tar-1.12.tar.gz @@ -91,8 +76,8 @@ if [ ! -f "$(basename $url)" ]; then wget "$url" fi popd -cp "$(basename $url .tar.gz).kaem" tmp/after -tar -C tmp/after -xf "../sources/$(basename $url)" +cp -r tar-1.12 tmp/after +tar -C tmp/after/tar-1.12/src -xf "../sources/$(basename $url)" --strip-components=1 get_file() { url=$1 @@ -103,16 +88,12 @@ get_file() { popd ext="${url##*.}" if [ "$ext" = "tar" ]; then - bname=$(basename "$url" ".tar") + bname=$(basename "$url" ".tar") else - bname=$(basename "$url" ".tar.${ext}") + bname=$(basename "$url" ".tar.${ext}") fi - for file in "${bname}."*; do - if [ -f "${file}" ]; then - cp "${file}" tmp/after - fi - done - cp "../sources/$(basename "$url")" tmp/after + cp -r "${bname}" tmp/after/ + cp "../sources/$(basename "$url")" "tmp/after/${bname}/src/" } # gzip 1.2.4 @@ -124,9 +105,6 @@ get_file https://ftp.gnu.org/gnu/diffutils/diffutils-2.7.tar.gz # patch 2.5.9 get_file https://ftp.gnu.org/pub/gnu/patch/patch-2.5.9.tar.gz -# patched tcc -cp tcc-patched.kaem tmp/after/ - # make 3.80 get_file https://ftp.gnu.org/gnu/make/make-3.80.tar.gz diff --git a/sources/.placeholder b/sources/.placeholder diff --git a/sysa/after.kaem b/sysa/after.kaem @@ -18,5 +18,7 @@ cd after +PATH=/after/bin:/bin + # Finally, reinvoke kaem in this directory ../bin/kaem --file kaem.run diff --git a/sysa/after.kaem.run b/sysa/after.kaem.run @@ -20,92 +20,112 @@ set -ex PATH=/after/bin:/bin +# Set commonly used variables +prefix=/after +bindir=${prefix}/bin +libdir=${prefix}/lib +incdir=${prefix}/include +MES_PREFIX=${prefix}/mes/src/mes +GUILE_LOAD_PATH=${prefix}/mes/src/nyacc/module:${prefix}/mes/src/mes/mes/module:${prefix}/mes/src/mes/module + # Part 2: cp and chown (mescc-tools-extra) -cd mescc-tools-extra -kaem --file go.kaem +pkg="mescc-tools-extra" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 3: Remove remaining dependencies on / (root of /after) -/after/bin/cp ../bin/hex2 bin/hex2 -/after/bin/cp ../bin/M1 bin/M1 -/after/bin/cp ../bin/M2-Planet bin/M2-Planet -/after/bin/cp ../bin/blood-elf bin/blood-elf -/after/bin/cp ../bin/get_machine bin/get_machine -/after/bin/cp ../bin/mes-m2 bin/mes-m2 -/after/bin/cp ../bin/kaem bin/kaem -/after/bin/cp ../catm bin/catm -/after/bin/chmod 755 bin/hex2 bin/M1 bin/M2-Planet bin/blood-elf \ +cp ../bin/hex2 bin/hex2 +cp ../bin/M1 bin/M1 +cp ../bin/M2-Planet bin/M2-Planet +cp ../bin/blood-elf bin/blood-elf +cp ../bin/get_machine bin/get_machine +cp ../bin/mes-m2 bin/mes-m2 +cp ../bin/kaem bin/kaem +cp ../catm bin/catm +chmod 755 bin/hex2 bin/M1 bin/M2-Planet bin/blood-elf \ bin/get_machine bin/mes-m2 bin/kaem bin/catm +PATH=/after/bin # Part 4: blynn-compiler -cd blynn-compiler -kaem --file go.kaem +pkg="blynn-compiler" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 5: mes -kaem --file mes.kaem +pkg="mes" +cd ${pkg} +kaem --file ${pkg}.kaem +cd .. + +# Part 6: tcc 0.9.26 +pkg="tcc-0.9.26" +cd ${pkg} +kaem --file ${pkg}.kaem +cd .. -# Part 6: tcc -kaem --file tcc.kaem +# Part 7: tcc 0.9.27 +pkg="tcc-0.9.27" +cd ${pkg} +kaem --file ${pkg}.kaem +cd .. -# Part 7: sed -cd sed-4.0.7 -kaem --file ../sed-4.0.7.kaem +# Part 8: sed +pkg="sed-4.0.7" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 8: tar -cd tar-1.12 -kaem --file ../tar-1.12.kaem +pkg="tar-1.12" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 9: gzip -/after/bin/tar xf gzip-1.2.4.tar -cd gzip-1.2.4 -kaem --file ../gzip-1.2.4.kaem +pkg="gzip-1.2.4" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 10: diffutils -/after/bin/gunzip diffutils-2.7.tar.gz -/after/bin/tar xf diffutils-2.7.tar -cd diffutils-2.7 -kaem --file ../diffutils-2.7.kaem +pkg="diffutils-2.7" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 11: patch -/after/bin/gunzip patch-2.5.9.tar.gz -/after/bin/tar xf patch-2.5.9.tar -cd patch-2.5.9 -kaem --file ../patch-2.5.9.kaem +pkg="patch-2.5.9" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 12: tcc-patched cd tcc-0.9.27 -kaem --file ../tcc-patched.kaem +kaem --file tcc-patched.kaem cd .. # Part 13: make -/after/bin/gunzip make-3.80.tar.gz -/after/bin/tar xf make-3.80.tar -cd make-3.80 -kaem --file ../make-3.80.kaem +pkg="make-3.80" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 14: bzip2 -/after/bin/gunzip bzip2-1.0.8.tar.gz -/after/bin/tar xf bzip2-1.0.8.tar -cd bzip2-1.0.8 -kaem --file ../bzip2-1.0.8.kaem +pkg="bzip2-1.0.8" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 15: bash -/after/bin/gunzip bash-2.05b.tar.gz -/after/bin/tar xf bash-2.05b.tar -cd bash-2.05b -kaem --file ../bash-2.05b.kaem +pkg="bash-2.05b" +cd ${pkg} +kaem --file ${pkg}.kaem cd .. # Part 16: m4 -/after/bin/gunzip m4-1.4.tar.gz -/after/bin/tar xf m4-1.4.tar -cd m4-1.4 -kaem --file ../m4-1.4.kaem +pkg="m4-1.4" +cd ${pkg} +kaem --file ${pkg}.kaem +cd .. diff --git a/sysa/bash-2.05b.kaem b/sysa/bash-2.05b.kaem @@ -1,31 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -catm config.h -catm include/version.h -catm include/pipesize.h - -# Patch -patch -Np0 -i ../patches/bash-2.05b/mes-libc.patch -patch -Np0 -i ../patches/bash-2.05b/tinycc.patch -patch -Np0 -i ../patches/bash-2.05b/missing-defines.patch -patch -Np0 -i ../patches/bash-2.05b/locale.patch -patch -Np0 -i ../patches/bash-2.05b/dev-tty.patch - -# Compile -cp ../bash-2.05b.mk Makefile -cp ../bash-2.05b-builtins.mk builtins/Makefile -cp ../bash-2.05b-common.mk common.mk -make mkbuiltins -cd builtins -make libbuiltins.a -cd .. -make - -# Install -cp bash /after/bin/ -chmod 755 /after/bin/bash diff --git a/sysa/bash-2.05b/bash-2.05b.kaem b/sysa/bash-2.05b/bash-2.05b.kaem @@ -0,0 +1,38 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} +cp ../../mk/main.mk Makefile +cp ../../mk/builtins.mk builtins/Makefile +cp ../../mk/common.mk common.mk + +# Create various .h files +catm config.h +catm include/version.h +catm include/pipesize.h + +# Patch +patch -Np0 -i ../../patches/mes-libc.patch +patch -Np0 -i ../../patches/tinycc.patch +patch -Np0 -i ../../patches/missing-defines.patch +patch -Np0 -i ../../patches/locale.patch +patch -Np0 -i ../../patches/dev-tty.patch + +# Compile +make mkbuiltins +cd builtins +make libbuiltins.a +cd .. +make + +# Install +cp bash /after/bin/ +chmod 755 /after/bin/bash + +cd ../.. diff --git a/sysa/bash-2.05b/build/.placeholder b/sysa/bash-2.05b/build/.placeholder diff --git a/sysa/bash-2.05b-builtins.mk b/sysa/bash-2.05b/mk/builtins.mk diff --git a/sysa/bash-2.05b-common.mk b/sysa/bash-2.05b/mk/common.mk diff --git a/sysa/bash-2.05b.mk b/sysa/bash-2.05b/mk/main.mk diff --git a/sysa/patches/bash-2.05b/dev-tty.patch b/sysa/bash-2.05b/patches/dev-tty.patch diff --git a/sysa/patches/bash-2.05b/extern.patch b/sysa/bash-2.05b/patches/extern.patch diff --git a/sysa/patches/bash-2.05b/locale.patch b/sysa/bash-2.05b/patches/locale.patch diff --git a/sysa/patches/bash-2.05b/mes-libc.patch b/sysa/bash-2.05b/patches/mes-libc.patch diff --git a/sysa/patches/bash-2.05b/missing-defines.patch b/sysa/bash-2.05b/patches/missing-defines.patch diff --git a/sysa/patches/bash-2.05b/tinycc.patch b/sysa/bash-2.05b/patches/tinycc.patch diff --git a/sysa/bash-2.05b/src/.placeholder b/sysa/bash-2.05b/src/.placeholder diff --git a/sysa/blynn-compiler-oriansj b/sysa/blynn-compiler-oriansj @@ -1 +0,0 @@ -Subproject commit 2f31a7bcd767a14732e6e9f3f442e0545495bc44 diff --git a/sysa/blynn-compiler.kaem b/sysa/blynn-compiler.kaem @@ -1,248 +0,0 @@ -set -ex - -PATH=/bin - -# 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 --raw blob/root -pb bootstrap -lf generated/parenthetically -o bin/raw_l -./bin/vm --raw bin/raw_l -pb generated/parenthetically -lf generated/exponentially -o bin/raw_m -./bin/vm --raw bin/raw_m -pb generated/exponentially -lf generated/practically -o bin/raw_n -./bin/vm --raw bin/raw_n -pb generated/practically -lf generated/singularity_blob -o bin/raw_o -./bin/vm --raw bin/raw_o -pb generated/singularity_blob -lf singularity -o bin/raw_p -./bin/vm --raw bin/raw_p -pb singularity -lf semantically -o bin/raw_q -./bin/vm --raw bin/raw_q -pb semantically -lf stringy -o bin/raw_r -./bin/vm --raw bin/raw_r -pb stringy -lf binary -o bin/raw_s -./bin/vm --raw bin/raw_s -pb binary -lf algebraically -o bin/raw_t -./bin/vm --raw bin/raw_t -pb algebraically -lf parity.hs -o bin/raw_u -./bin/vm --raw bin/raw_u -pb parity.hs -lf fixity.hs -o bin/raw_v -./bin/vm --raw bin/raw_v -pb fixity.hs -lf typically.hs -o bin/raw_w -./bin/vm --raw bin/raw_w -pb typically.hs -lf classy.hs -o bin/raw_x -./bin/vm --raw bin/raw_x -pb classy.hs -lf barely.hs -o bin/raw_y -./bin/vm --raw bin/raw_y -pb barely.hs -lf barely.hs -o bin/raw_z -./bin/vm -l bin/raw_z -lf barely.hs -o bin/raw - -# Make lonely -./bin/vm -l bin/raw -lf effectively.hs --redo -lf lonely.hs -o generated/lonely_raw.txt - -# Make patty -./bin/vm -f patty.hs --raw generated/lonely_raw.txt --rts_c run -o generated/patty_raw.txt - -# Make guardedly -./bin/vm -f guardedly.hs --raw generated/patty_raw.txt --rts_c run -o generated/guardedly_raw.txt - -# Make assembly -./bin/vm -f assembly.hs --raw generated/guardedly_raw.txt --rts_c run -o generated/assembly_raw.txt - -# Make mutually -./bin/vm -f mutually.hs --foreign 2 --raw generated/assembly_raw.txt --rts_c run -o generated/mutually_raw.txt - -# Make uniquely -./bin/vm -f uniquely.hs --foreign 2 --raw generated/mutually_raw.txt --rts_c run -o generated/uniquely_raw.txt - -# Make virtually -./bin/vm -f virtually.hs --foreign 2 --raw generated/uniquely_raw.txt --rts_c run -o generated/virtually_raw.txt - -# Make marginally -./bin/vm -f marginally.hs --foreign 2 --raw generated/virtually_raw.txt --rts_c run -o generated/marginally.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 generated/marginally.c \ - --debug \ - -o bin/marginally.M1 - -blood-elf -f bin/marginally.M1 --entry _start -o bin/marginally-footer.M1 - -M1 -f test/common_x86/x86_defs.M1 \ - -f test/common_x86/libc-core.M1 \ - -f bin/marginally.M1 \ - -f bin/marginally-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o bin/marginally.hex2 - -hex2 -f test/common_x86/ELF-i386-debug.hex2 \ - -f bin/marginally.hex2 \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o bin/marginally --exec_enable - -# Make methodically -./bin/marginally methodically.hs generated/methodically.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 generated/methodically.c \ - --debug \ - -o bin/methodically.M1 - -blood-elf -f bin/methodically.M1 --entry _start -o bin/methodically-footer.M1 - -M1 -f test/common_x86/x86_defs.M1 \ - -f test/common_x86/libc-core.M1 \ - -f bin/methodically.M1 \ - -f bin/methodically-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o bin/methodically.hex2 - -hex2 -f test/common_x86/ELF-i386-debug.hex2 \ - -f bin/methodically.hex2 \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o bin/methodically --exec_enable - -# Make crossly -./bin/methodically crossly.hs generated/crossly.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 generated/crossly.c \ - --debug \ - -o bin/crossly.M1 - -blood-elf -f bin/crossly.M1 --entry _start -o bin/crossly-footer.M1 - -M1 -f test/common_x86/x86_defs.M1 \ - -f test/common_x86/libc-core.M1 \ - -f bin/crossly.M1 \ - -f bin/crossly-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o bin/crossly.hex2 - -hex2 -f test/common_x86/ELF-i386-debug.hex2 \ - -f bin/crossly.hex2 \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o bin/crossly --exec_enable - -# Make precisely -./bin/crossly precisely.hs generated/precisely.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 generated/precisely.c \ - --debug \ - -o bin/precisely.M1 - -blood-elf -f bin/precisely.M1 --entry _start -o bin/precisely-footer.M1 - -M1 -f test/common_x86/x86_defs.M1 \ - -f test/common_x86/libc-core.M1 \ - -f bin/precisely.M1 \ - -f bin/precisely-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o bin/precisely.hex2 - -hex2 -f test/common_x86/ELF-i386-debug.hex2 \ - -f bin/precisely.hex2 \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o bin/precisely --exec_enable diff --git a/sysa/blynn-compiler/blynn-compiler.kaem b/sysa/blynn-compiler/blynn-compiler.kaem @@ -0,0 +1,255 @@ +#!/bin/sh + +set -ex + +cd src + +# 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 --raw blob/root -pb bootstrap -lf generated/parenthetically -o bin/raw_l +./bin/vm --raw bin/raw_l -pb generated/parenthetically -lf generated/exponentially -o bin/raw_m +./bin/vm --raw bin/raw_m -pb generated/exponentially -lf generated/practically -o bin/raw_n +./bin/vm --raw bin/raw_n -pb generated/practically -lf generated/singularity_blob -o bin/raw_o +./bin/vm --raw bin/raw_o -pb generated/singularity_blob -lf singularity -o bin/raw_p +./bin/vm --raw bin/raw_p -pb singularity -lf semantically -o bin/raw_q +./bin/vm --raw bin/raw_q -pb semantically -lf stringy -o bin/raw_r +./bin/vm --raw bin/raw_r -pb stringy -lf binary -o bin/raw_s +./bin/vm --raw bin/raw_s -pb binary -lf algebraically -o bin/raw_t +./bin/vm --raw bin/raw_t -pb algebraically -lf parity.hs -o bin/raw_u +./bin/vm --raw bin/raw_u -pb parity.hs -lf fixity.hs -o bin/raw_v +./bin/vm --raw bin/raw_v -pb fixity.hs -lf typically.hs -o bin/raw_w +./bin/vm --raw bin/raw_w -pb typically.hs -lf classy.hs -o bin/raw_x +./bin/vm --raw bin/raw_x -pb classy.hs -lf barely.hs -o bin/raw_y +./bin/vm --raw bin/raw_y -pb barely.hs -lf barely.hs -o bin/raw_z +./bin/vm -l bin/raw_z -lf barely.hs -o bin/raw + +# Make lonely +./bin/vm -l bin/raw -lf effectively.hs --redo -lf lonely.hs -o generated/lonely_raw.txt + +# Make patty +./bin/vm -f patty.hs --raw generated/lonely_raw.txt --rts_c run -o generated/patty_raw.txt + +# Make guardedly +./bin/vm -f guardedly.hs --raw generated/patty_raw.txt --rts_c run -o generated/guardedly_raw.txt + +# Make assembly +./bin/vm -f assembly.hs --raw generated/guardedly_raw.txt --rts_c run -o generated/assembly_raw.txt + +# Make mutually +./bin/vm -f mutually.hs --foreign 2 --raw generated/assembly_raw.txt --rts_c run -o generated/mutually_raw.txt + +# Make uniquely +./bin/vm -f uniquely.hs --foreign 2 --raw generated/mutually_raw.txt --rts_c run -o generated/uniquely_raw.txt + +# Make virtually +./bin/vm -f virtually.hs --foreign 2 --raw generated/uniquely_raw.txt --rts_c run -o generated/virtually_raw.txt + +# Make marginally +./bin/vm -f marginally.hs --foreign 2 --raw generated/virtually_raw.txt --rts_c run -o generated/marginally.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 generated/marginally.c \ + --debug \ + -o bin/marginally.M1 + +blood-elf -f bin/marginally.M1 --entry _start -o bin/marginally-footer.M1 + +M1 -f test/common_x86/x86_defs.M1 \ + -f test/common_x86/libc-core.M1 \ + -f bin/marginally.M1 \ + -f bin/marginally-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o bin/marginally.hex2 + +hex2 -f test/common_x86/ELF-i386-debug.hex2 \ + -f bin/marginally.hex2 \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o bin/marginally --exec_enable + +# Make methodically +./bin/marginally methodically.hs generated/methodically.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 generated/methodically.c \ + --debug \ + -o bin/methodically.M1 + +blood-elf -f bin/methodically.M1 --entry _start -o bin/methodically-footer.M1 + +M1 -f test/common_x86/x86_defs.M1 \ + -f test/common_x86/libc-core.M1 \ + -f bin/methodically.M1 \ + -f bin/methodically-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o bin/methodically.hex2 + +hex2 -f test/common_x86/ELF-i386-debug.hex2 \ + -f bin/methodically.hex2 \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o bin/methodically --exec_enable + +# Make crossly +./bin/methodically crossly.hs generated/crossly.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 generated/crossly.c \ + --debug \ + -o bin/crossly.M1 + +blood-elf -f bin/crossly.M1 --entry _start -o bin/crossly-footer.M1 + +M1 -f test/common_x86/x86_defs.M1 \ + -f test/common_x86/libc-core.M1 \ + -f bin/crossly.M1 \ + -f bin/crossly-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o bin/crossly.hex2 + +hex2 -f test/common_x86/ELF-i386-debug.hex2 \ + -f bin/crossly.hex2 \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o bin/crossly --exec_enable + +# Make precisely +./bin/crossly precisely.hs generated/precisely.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 generated/precisely.c \ + --debug \ + -o bin/precisely.M1 + +blood-elf -f bin/precisely.M1 --entry _start -o bin/precisely-footer.M1 + +M1 -f test/common_x86/x86_defs.M1 \ + -f test/common_x86/libc-core.M1 \ + -f bin/precisely.M1 \ + -f bin/precisely-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o bin/precisely.hex2 + +hex2 -f test/common_x86/ELF-i386-debug.hex2 \ + -f bin/precisely.hex2 \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o bin/precisely --exec_enable + +cp bin/precisely ${bindir}/precisely +chmod 755 ${bindir}/precisely + +cd .. diff --git a/sysa/blynn-compiler/src b/sysa/blynn-compiler/src @@ -0,0 +1 @@ +Subproject commit 2f31a7bcd767a14732e6e9f3f442e0545495bc44 diff --git a/sysa/bootstrap-seeds b/sysa/bootstrap-seeds @@ -0,0 +1 @@ +Subproject commit cfa108377c15382f58b20394150840e1099b6767 diff --git a/sysa/bzip2-1.0.8.kaem b/sysa/bzip2-1.0.8.kaem @@ -1,13 +0,0 @@ -#!/bin/sh - -set -ex - -/after/bin/patch -Np0 -i ../patches/bzip2-1.0.8/bzip2-1.0.8.patch -/after/bin/make CC=tcc AR="tcc -ar" bzip2 - -# Install -/after/bin/cp bzip2 /after/bin/bzip2 -/after/bin/chmod 755 /after/bin/bzip2 - -# Test -/after/bin/bzip2 --help diff --git a/sysa/bzip2-1.0.8/build/.placeholder b/sysa/bzip2-1.0.8/build/.placeholder diff --git a/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem b/sysa/bzip2-1.0.8/bzip2-1.0.8.kaem @@ -0,0 +1,26 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} + +# Patch +patch -Np0 -i ../../patches/mes-libc.patch +patch -Np0 -i ../../patches/coreutils.patch + +# Build +make CC=tcc AR="tcc -ar" bzip2 + +# Install +cp bzip2 /after/bin/bzip2 +chmod 755 /after/bin/bzip2 + +# Test +bzip2 --help + +cd ../.. diff --git a/sysa/bzip2-1.0.8/patches/coreutils.patch b/sysa/bzip2-1.0.8/patches/coreutils.patch @@ -0,0 +1,34 @@ +diff -r -N -U3 bzip2-1.0.8/Makefile bzip2-1.0.8/Makefile +--- Makefile 2019-07-13 18:50:05.000000000 +0100 ++++ Makefile 2021-01-14 15:45:17.558516299 +0000 +@@ -21,7 +21,7 @@ + LDFLAGS= + + BIGFILES=-D_FILE_OFFSET_BITS=64 +-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) ++CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) -I . + + # Where you want it installed when you do 'make install' + PREFIX=/usr/local +@@ -44,13 +44,7 @@ + $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o + + libbz2.a: $(OBJS) +- rm -f libbz2.a + $(AR) cq libbz2.a $(OBJS) +- @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \ +- -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \ +- echo $(RANLIB) libbz2.a ; \ +- $(RANLIB) libbz2.a ; \ +- fi + + check: test + test: bzip2 +@@ -114,7 +108,6 @@ + sample1.tst sample2.tst sample3.tst + + blocksort.o: blocksort.c +- @cat words0 + $(CC) $(CFLAGS) -c blocksort.c + huffman.o: huffman.c + $(CC) $(CFLAGS) -c huffman.c diff --git a/sysa/bzip2-1.0.8/patches/mes-libc.patch b/sysa/bzip2-1.0.8/patches/mes-libc.patch @@ -0,0 +1,23 @@ +diff -r -N -U3 bzip2-1.0.8/bzip2.c bzip2-1.0.8/bzip2.c +--- bzip2.c 2019-07-13 18:50:05.000000000 +0100 ++++ bzip2.c 2021-01-14 14:11:40.160213521 +0000 +@@ -1051,12 +1051,9 @@ + { + # if BZ_UNIX + IntNative retVal; +- struct utimbuf uTimBuf; + +- uTimBuf.actime = fileMetaInfo.st_atime; +- uTimBuf.modtime = fileMetaInfo.st_mtime; + +- retVal = utime ( dstName, &uTimBuf ); ++ retVal = 0; + ERROR_IF_NOT_ZERO ( retVal ); + # endif + } +diff -r -N -U3 bzip2-1.0.8/utime.h bzip2-1.0.8/utime.h +--- utime.h 1970-01-01 01:00:00.000000000 +0100 ++++ utime.h 2021-01-14 18:11:11.253825037 +0000 +@@ -0,0 +1,2 @@ ++#define fchown(filedes, owner, group) 0 ++#define fchmod(filedes, mode) 0 diff --git a/sysa/bzip2-1.0.8/src/.placeholder b/sysa/bzip2-1.0.8/src/.placeholder diff --git a/sysa/diffutils-2.7.kaem b/sysa/diffutils-2.7.kaem @@ -1,38 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -# Touch config.h file -catm config.h - -# Compile -tcc -c -I. -DNULL_DEVICE=\"/dev/null\" cmp.c -tcc -c -I. cmpbuf.c -tcc -c -I. error.c -tcc -c -I. getopt.c -tcc -c -I. getopt1.c -tcc -c -I. xmalloc.c -tcc -c -I. version.c -tcc -c -I. diff.c -tcc -c -I. analyze.c -tcc -c -I. -DHAVE_DIRENT_H dir.c -tcc -c -I. io.c -tcc -c -I. -DHAVE_DUP2 -DHAVE_FORK=0 util.c -tcc -c -I. context.c -tcc -c -I. ed.c -tcc -c -I. ifdef.c -tcc -c -I. normal.c -tcc -c -I. side.c -tcc -c -I. fnmatch.c -tcc -c -I. regex.c - -# Link -tcc -static -o ${bindir}/cmp cmp.o cmpbuf.o error.o getopt.o getopt1.o xmalloc.o version.o -tcc -static -o ${bindir}/diff diff.o analyze.o cmpbuf.o dir.o io.o util.o context.o ed.o ifdef.o normal.o side.o fnmatch.o getopt.o getopt1.o regex.o version.o - -# Test -cmp --version -diff --version diff --git a/sysa/diffutils-2.7/build/.placeholder b/sysa/diffutils-2.7/build/.placeholder diff --git a/sysa/diffutils-2.7/diffutils-2.7.kaem b/sysa/diffutils-2.7/diffutils-2.7.kaem @@ -0,0 +1,44 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} + +# Touch config.h file +catm config.h + +# Compile +tcc -c -I. -DNULL_DEVICE=\"/dev/null\" cmp.c +tcc -c -I. cmpbuf.c +tcc -c -I. error.c +tcc -c -I. getopt.c +tcc -c -I. getopt1.c +tcc -c -I. xmalloc.c +tcc -c -I. version.c +tcc -c -I. diff.c +tcc -c -I. analyze.c +tcc -c -I. -DHAVE_DIRENT_H dir.c +tcc -c -I. io.c +tcc -c -I. -DHAVE_DUP2 -DHAVE_FORK=0 util.c +tcc -c -I. context.c +tcc -c -I. ed.c +tcc -c -I. ifdef.c +tcc -c -I. normal.c +tcc -c -I. side.c +tcc -c -I. fnmatch.c +tcc -c -I. regex.c + +# Link +tcc -static -o ${bindir}/cmp cmp.o cmpbuf.o error.o getopt.o getopt1.o xmalloc.o version.o +tcc -static -o ${bindir}/diff diff.o analyze.o cmpbuf.o dir.o io.o util.o context.o ed.o ifdef.o normal.o side.o fnmatch.o getopt.o getopt1.o regex.o version.o + +# Test +cmp --version +diff --version + +cd ../.. diff --git a/sysa/diffutils-2.7/src/.placeholder b/sysa/diffutils-2.7/src/.placeholder diff --git a/sysa/gzip-1.2.4.kaem b/sysa/gzip-1.2.4.kaem @@ -1,34 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -# Compile -tcc -c -DNO_UTIME gzip.c -tcc -c bits.c -tcc -c crypt.c -tcc -c deflate.c -tcc -c getopt.c -tcc -c inflate.c -tcc -c lzw.c -tcc -c trees.c -tcc -c unlzh.c -tcc -c unlzw.c -tcc -c unpack.c -tcc -c unzip.c -# Remove strlwr, it does not build with mes libc -cp util.c util_patched.c -sed -i 165,174d util_patched.c -tcc -c util_patched.c -tcc -c zip.c - -# Link -tcc -static -o ${bindir}/gzip gzip.o zip.o deflate.o trees.o bits.o unzip.o inflate.o util_patched.o crypt.o lzw.o unlzw.o unpack.o unlzh.o getopt.o - -# Install -cp ${bindir}/gzip ${bindir}/gunzip -cp ${bindir}/gzip ${bindir}/zcat -chmod 755 ${bindir}/gunzip -chmod 755 ${bindir}/zcat diff --git a/sysa/gzip-1.2.4/build/.placeholder b/sysa/gzip-1.2.4/build/.placeholder diff --git a/sysa/gzip-1.2.4/gzip-1.2.4.kaem b/sysa/gzip-1.2.4/gzip-1.2.4.kaem @@ -0,0 +1,41 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +tar xf ../src/${pkg}.tar +cd ${pkg} + +# Patch +# Remove strlwr, it does not build with mes libc +cp util.c util_patched.c +sed -i 165,174d util_patched.c + +# Compile +tcc -c -DNO_UTIME gzip.c +tcc -c bits.c +tcc -c crypt.c +tcc -c deflate.c +tcc -c getopt.c +tcc -c inflate.c +tcc -c lzw.c +tcc -c trees.c +tcc -c unlzh.c +tcc -c unlzw.c +tcc -c unpack.c +tcc -c unzip.c +tcc -c util_patched.c +tcc -c zip.c + +# Link +tcc -static -o ${bindir}/gzip gzip.o zip.o deflate.o trees.o bits.o unzip.o inflate.o util_patched.o crypt.o lzw.o unlzw.o unpack.o unlzh.o getopt.o + +# Install +cp ${bindir}/gzip ${bindir}/gunzip +cp ${bindir}/gzip ${bindir}/zcat +chmod 755 ${bindir}/gunzip +chmod 755 ${bindir}/zcat + +cd ../.. diff --git a/sysa/gzip-1.2.4/src/.placeholder b/sysa/gzip-1.2.4/src/.placeholder diff --git a/sysa/m4-1.4.kaem b/sysa/m4-1.4.kaem @@ -1,14 +0,0 @@ -#!/bin/sh - -set -ex - -/after/bin/patch -Np0 -i ../patches/m4-1.4/m4-signal-include.patch -cp ../m4-1.4.mk Makefile -/after/bin/make - -# Install -/after/bin/cp m4 /after/bin/m4 -/after/bin/chmod 755 /after/bin/m4 - -# Test -/after/bin/m4 --version diff --git a/sysa/m4-1.4/build/.placeholder b/sysa/m4-1.4/build/.placeholder diff --git a/sysa/m4-1.4/m4-1.4.kaem b/sysa/m4-1.4/m4-1.4.kaem @@ -0,0 +1,26 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} +cp ../../mk/main.mk Makefile + +# Patch and prepare +patch -Np0 -i ../../patches/signal-include.patch + +# Build +make + +# Install +cp m4 /after/bin/m4 +chmod 755 /after/bin/m4 + +# Test +m4 --version + +cd ../.. diff --git a/sysa/m4-1.4.mk b/sysa/m4-1.4/mk/main.mk diff --git a/sysa/patches/m4-1.4/m4-signal-include.patch b/sysa/m4-1.4/patches/signal-include.patch diff --git a/sysa/m4-1.4/src/.placeholder b/sysa/m4-1.4/src/.placeholder diff --git a/sysa/make-3.80.kaem b/sysa/make-3.80.kaem @@ -1,46 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -catm config.h -catm /after/include/mes/config.h - -# Patch -patch -Np0 -i ../patches/make-3.80/mes-libc.patch - -# Compile -tcc -c getopt.c -tcc -c getopt1.c -tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STDINT_H ar.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_FCNTL_H arscan.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 commands.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DSCCS_GET=\"/nullop\" default.c -tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DIRENT_H dir.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART expand.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 file.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -Dvfork=fork function.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART implicit.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DUP2 -Dvfork=fork job.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DLOCALEDIR=\"/fake-locale\" -DPACKAGE=\"fake-make\" -DHAVE_MKTEMP -DHAVE_GETCWD main.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STRERROR -DHAVE_VPRINTF misc.c -tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DINCLUDEDIR=\"/after/include\" read.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 -DHAVE_FCNTL_H -DLIBDIR=\"/after/lib\" remake.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART rule.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART signame.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART variable.c -tcc -c -I. -DVERSION=\"3.80\" version.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART vpath.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART hash.c -tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART remote-stub.c -tcc -c -DHAVE_FCNTL_H getloadavg.c -tcc -c -Iglob -DSTDC_HEADERS glob/fnmatch.c -tcc -c -Iglob -DHAVE_STRDUP -DHAVE_DIRENT_H glob/glob.c - -# Link -tcc -o ${bindir}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-stub.o getloadavg.o fnmatch.o glob.o - -# Test -make --version diff --git a/sysa/make-3.80/build/.placeholder b/sysa/make-3.80/build/.placeholder diff --git a/sysa/make-3.80/make-3.80.kaem b/sysa/make-3.80/make-3.80.kaem @@ -0,0 +1,53 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} + +# Create .h files +catm config.h +catm /after/include/mes/config.h + +# Patch +patch -Np0 -i ../../patches/mes-libc.patch + +# Compile +tcc -c getopt.c +tcc -c getopt1.c +tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STDINT_H ar.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_FCNTL_H arscan.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 commands.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DSCCS_GET=\"/nullop\" default.c +tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DIRENT_H dir.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART expand.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 file.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -Dvfork=fork function.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART implicit.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_DUP2 -Dvfork=fork job.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DLOCALEDIR=\"/fake-locale\" -DPACKAGE=\"fake-make\" -DHAVE_MKTEMP -DHAVE_GETCWD main.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DHAVE_STRERROR -DHAVE_VPRINTF misc.c +tcc -c -I. -Iglob -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DINCLUDEDIR=\"/after/include\" read.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART -DFILE_TIMESTAMP_HI_RES=0 -DHAVE_FCNTL_H -DLIBDIR=\"/after/lib\" remake.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART rule.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART signame.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART variable.c +tcc -c -I. -DVERSION=\"3.80\" version.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART vpath.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART hash.c +tcc -c -I. -DHAVE_INTTYPES_H -DHAVE_SA_RESTART remote-stub.c +tcc -c -DHAVE_FCNTL_H getloadavg.c +tcc -c -Iglob -DSTDC_HEADERS glob/fnmatch.c +tcc -c -Iglob -DHAVE_STRDUP -DHAVE_DIRENT_H glob/glob.c + +# Link +tcc -o ${bindir}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-stub.o getloadavg.o fnmatch.o glob.o + +# Test +make --version + +cd ../.. diff --git a/sysa/patches/make-3.80/mes-libc.patch b/sysa/make-3.80/patches/mes-libc.patch diff --git a/sysa/make-3.80/src/.placeholder b/sysa/make-3.80/src/.placeholder diff --git a/sysa/mes b/sysa/mes @@ -1 +0,0 @@ -Subproject commit 2ab4c5c676cb66088b0fb8de03b40b01f07bd4e0 diff --git a/sysa/mes.kaem b/sysa/mes.kaem @@ -1,293 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -prefix=/after -MES_ARENA=20000000 -MES_MAX_ARENA=20000000 -MES_STACK=6000000 -MES_PREFIX=${prefix} -GUILE_LOAD_PATH=${prefix}/nyacc/module:${prefix}/mes/mes/module -bindir=${prefix}/bin -MES=${bindir}/mes -libdir=${prefix}/mes/lib -incdir=${prefix}/include - -chmod 755 bin/mescc.scm - -cd mes -# Bootstrap Mes using M2-Planet -kaem --verbose --file kaem.run -cp bin/mes-m2 ${MES} -chmod 755 ${MES} - -# Recompile Mes and Mes C library using mes-m2 bootstrapped Mes - -# Start with crt1.o -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/crt1.c - -# Now for libc-mini.a -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/eputs.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/oputs.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/globals.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/exit.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/_exit.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/_write.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/puts.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strlen.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/mini-write.c -catm ${libdir}/x86-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o -catm ${libdir}/x86-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s - -# libmescc.a -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/syscall-internal.c -catm ${libdir}/x86-mes/libmescc.a globals.o syscall-internal.o -catm ${libdir}/x86-mes/libmescc.s globals.s syscall-internal.s - -# libc.a -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isnumber.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/abtol.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/cast.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/eputc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdgetc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdputc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdputs.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdungetc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/itoa.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ltoa.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ltoab.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/mes_open.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ntoab.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/oputc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ultoa.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/utoa.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isdigit.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isspace.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isxdigit.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/assert_msg.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/write.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/atoi.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/lseek.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__assert_fail.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__buffered_read.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__mes_debug.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/execv.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getcwd.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getenv.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/isatty.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/open.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/buffered-read.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/setenv.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/wait.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fgetc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fputc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fputs.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/getc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/getchar.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/putc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/putchar.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ungetc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/free.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/malloc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/realloc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memchr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memcmp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memcpy.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memmove.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memset.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcmp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcpy.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strncmp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/raise.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/access.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/brk.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/chmod.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/clock_gettime.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/dup.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/dup2.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/execve.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/fork.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/fsync.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_getcwd.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/gettimeofday.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/ioctl3.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_open3.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_read.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/time.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/unlink.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/waitpid.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/syscall.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/getpid.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/kill.c -catm ${libdir}/x86-mes/libc.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o isnumber.o abtol.o cast.o eputc.o fdgetc.o fdputc.o fdputs.o fdungetc.o itoa.o ltoa.o ltoab.o mes_open.o ntoab.o oputc.o ultoa.o utoa.o isdigit.o isspace.o isxdigit.o assert_msg.o write.o atoi.o lseek.o __assert_fail.o __buffered_read.o __mes_debug.o execv.o getcwd.o getenv.o isatty.o open.o buffered-read.o setenv.o wait.o fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.o free.o malloc.o realloc.o memchr.o memcmp.o memcpy.o memmove.o memset.o strcmp.o strcpy.o strncmp.o raise.o access.o brk.o chmod.o clock_gettime.o dup.o dup2.o execve.o fork.o fsync.o _getcwd.o gettimeofday.o ioctl3.o _open3.o _read.o time.o unlink.o waitpid.o syscall.o getpid.o kill.o -catm ${libdir}/x86-mes/libc.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s isnumber.s abtol.s cast.s eputc.s fdgetc.s fdputc.s fdputs.s fdungetc.s itoa.s ltoa.s ltoab.s mes_open.s ntoab.s oputc.s ultoa.s utoa.s isdigit.s isspace.s isxdigit.s assert_msg.s write.s atoi.s lseek.s __assert_fail.s __buffered_read.s __mes_debug.s execv.s getcwd.s getenv.s isatty.s open.s buffered-read.s setenv.s wait.s fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.s free.s malloc.s realloc.s memchr.s memcmp.s memcpy.s memmove.s memset.s strcmp.s strcpy.s strncmp.s raise.s access.s brk.s chmod.s clock_gettime.s dup.s dup2.s execve.s fork.s fsync.s _getcwd.s gettimeofday.s ioctl3.s _open3.s _read.s time.s unlink.s waitpid.s syscall.s getpid.s kill.s - -# libc+tcc.a -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/islower.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isupper.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/tolower.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/toupper.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/abtod.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/dtoab.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/search-path.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/execvp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fclose.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fdopen.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ferror.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fflush.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fopen.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fread.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fseek.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ftell.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fwrite.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/printf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/remove.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/snprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/sprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/sscanf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vfprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsnprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsprintf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsscanf.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/calloc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/qsort.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtod.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtof.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtol.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtold.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoll.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoul.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoull.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memmem.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcat.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strchr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strlwr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strncpy.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strrchr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strstr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strupr.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/sigaction.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/ldexp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/mprotect.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/localtime.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/sigemptyset.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/x86-mes-mescc/setjmp.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/close.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/rmdir.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/stat.c -catm ${libdir}/x86-mes/libc+tcc.a ${libdir}/x86-mes/libc.a islower.o isupper.o tolower.o toupper.o abtod.o dtoab.o search-path.o execvp.o fclose.o fdopen.o ferror.o fflush.o fopen.o fprintf.o fread.o fseek.o ftell.o fwrite.o printf.o remove.o snprintf.o sprintf.o sscanf.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o vsscanf.o calloc.o qsort.o strtod.o strtof.o strtol.o strtold.o strtoll.o strtoul.o strtoull.o memmem.o strcat.o strchr.o strlwr.o strncpy.o strrchr.o strstr.o strupr.o sigaction.o ldexp.o mprotect.o localtime.o sigemptyset.o setjmp.o close.o rmdir.o stat.o -catm ${libdir}/x86-mes/libc+tcc.s ${libdir}/x86-mes/libc.s islower.s isupper.s tolower.s toupper.s abtod.s dtoab.s search-path.s execvp.s fclose.s fdopen.s ferror.s fflush.s fopen.s fprintf.s fread.s fseek.s ftell.s fwrite.s printf.s remove.s snprintf.s sprintf.s sscanf.s vfprintf.s vprintf.s vsnprintf.s vsprintf.s vsscanf.s calloc.s qsort.s strtod.s strtof.s strtol.s strtold.s strtoll.s strtoul.s strtoull.s memmem.s strcat.s strchr.s strlwr.s strncpy.s strrchr.s strstr.s strupr.s sigaction.s ldexp.s mprotect.s localtime.s sigemptyset.s setjmp.s close.s rmdir.s stat.s - -# mes itself -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/builtins.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/cc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/core.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/display.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/eval-apply.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/gc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/hash.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/lib.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/math.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/mes.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/module.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/posix.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/reader.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/stack.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/string.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/struct.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/symbol.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/vector.c - -# Link everything into new mes executable -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -L ${libdir} -nostdlib -o ${bindir}/mes-new -L . crt1.o builtins.o cc.o core.o display.o eval-apply.o gc.o hash.o lib.o math.o mes.o module.o posix.o reader.o stack.o string.o struct.o symbol.o vector.o -lc -lmescc - -# Now we finally have the final mes+libraries which we will subsequently use to compile tcc -cp ${bindir}/mes-new ${bindir}/mes - -# Install libraries -cp ${libdir}/x86-mes/libc.a ${prefix}/lib/ -cp ${libdir}/x86-mes/libc+tcc.a ${prefix}/lib/ -cp ${libdir}/x86-mes/libmescc.a ${prefix}/lib/ -cp ${libdir}/x86-mes/libc.s ${prefix}/lib/ -cp ${libdir}/x86-mes/libc+tcc.s ${prefix}/lib/ -cp ${libdir}/x86-mes/libmescc.s ${prefix}/lib/ -cp ${libdir}/x86-mes/x86.M1 ${prefix}/lib/ -cp crt1.o ${prefix}/lib/ -cp crt1.s ${prefix}/lib/ -cp ${libdir}/linux/x86-mes/elf32-footer-single-main.hex2 ${prefix}/lib/linux/ -cp ${libdir}/linux/x86-mes/elf32-header.hex2 ${prefix}/lib/linux/ - -# Install header files -cp include/alloca.h ${incdir}/alloca.h -cp include/argz.h ${incdir}/argz.h -cp include/ar.h ${incdir}/ar.h -cp include/assert.h ${incdir}/assert.h -cp include/ctype.h ${incdir}/ctype.h -cp include/dirent.h ${incdir}/dirent.h -cp include/dirstream.h ${incdir}/dirstream.h -cp include/dlfcn.h ${incdir}/dlfcn.h -cp include/endian.h ${incdir}/endian.h -cp include/errno.h ${incdir}/errno.h -cp include/fcntl.h ${incdir}/fcntl.h -cp include/features.h ${incdir}/features.h -cp include/float.h ${incdir}/float.h -cp include/getopt.h ${incdir}/getopt.h -cp include/grp.h ${incdir}/grp.h -cp include/inttypes.h ${incdir}/inttypes.h -cp include/libgen.h ${incdir}/libgen.h -cp include/limits.h ${incdir}/limits.h -cp include/locale.h ${incdir}/locale.h -cp include/math.h ${incdir}/math.h -cp include/memory.h ${incdir}/memory.h -cp include/pwd.h ${incdir}/pwd.h -cp include/setjmp.h ${incdir}/setjmp.h -cp include/signal.h ${incdir}/signal.h -cp include/stdarg.h ${incdir}/stdarg.h -cp include/stdbool.h ${incdir}/stdbool.h -cp include/stddef.h ${incdir}/stddef.h -cp include/stdint.h ${incdir}/stdint.h -cp include/stdio.h ${incdir}/stdio.h -cp include/stdlib.h ${incdir}/stdlib.h -cp include/stdnoreturn.h ${incdir}/stdnoreturn.h -cp include/string.h ${incdir}/string.h -cp include/strings.h ${incdir}/strings.h -cp include/termio.h ${incdir}/termio.h -cp include/time.h ${incdir}/time.h -cp include/unistd.h ${incdir}/unistd.h - -cp include/linux/syscall.h ${incdir}/linux/syscall.h -cp include/linux/x86/syscall.h ${incdir}/linux/x86/syscall.h - -cp include/mes/builtins.h ${incdir}/mes/builtins.h -cp include/mes/cc.h ${incdir}/mes/cc.h -cp include/mes/constants.h ${incdir}/mes/constants.h -cp include/mes/lib.h ${incdir}/mes/lib.h -cp include/mes/lib-mini.h ${incdir}/mes/lib-mini.h -cp include/mes/mes.h ${incdir}/mes/mes.h -cp include/mes/symbols.h ${incdir}/mes/symbols.h - -cp include/sys/cdefs.h ${incdir}/sys/cdefs.h -cp include/sys/dir.h ${incdir}/sys/dir.h -cp include/sys/file.h ${incdir}/sys/file.h -cp include/sys/ioctl.h ${incdir}/sys/ioctl.h -cp include/sys/mman.h ${incdir}/sys/mman.h -cp include/sys/param.h ${incdir}/sys/param.h -cp include/sys/resource.h ${incdir}/sys/resource.h -cp include/sys/select.h ${incdir}/sys/select.h -cp include/sys/stat.h ${incdir}/sys/stat.h -cp include/sys/timeb.h ${incdir}/sys/timeb.h -cp include/sys/time.h ${incdir}/sys/time.h -cp include/sys/times.h ${incdir}/sys/times.h -cp include/sys/types.h ${incdir}/sys/types.h -cp include/sys/ucontext.h ${incdir}/sys/ucontext.h -cp include/sys/user.h ${incdir}/sys/user.h -cp include/sys/wait.h ${incdir}/sys/wait.h - -# Test mes -libdir=${prefix}/lib -${MES} -c "(display 'Hello,Mes!) (newline)" - -cd .. diff --git a/sysa/mes-files/config.h b/sysa/mes/files/config.h diff --git a/sysa/mes-files/mescc.scm b/sysa/mes/files/mescc.scm diff --git a/sysa/mes/mes.kaem b/sysa/mes/mes.kaem @@ -0,0 +1,293 @@ +#!/bin/sh + +set -ex + +# Variables +MES_ARENA=20000000 +MES_MAX_ARENA=20000000 +MES_STACK=6000000 +MES=${bindir}/mes +libdir=${prefix}/mes/src/mes/lib + +cp files/mescc.scm ${bindir}/ +chmod 755 ${bindir}/mescc.scm + +cp files/config.h src/mes/include/mes + +cd src/mes + +# Bootstrap Mes using M2-Planet +kaem --verbose --file kaem.run +cp bin/mes-m2 ${MES} +chmod 755 ${MES} + +# Recompile Mes and Mes C library using mes-m2 bootstrapped Mes + +# Start with crt1.o +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/crt1.c + +# Now for libc-mini.a +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/eputs.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/oputs.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/globals.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/exit.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/_exit.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/_write.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/puts.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strlen.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/mini-write.c +catm ${libdir}/x86-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o +catm ${libdir}/x86-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s + +# libmescc.a +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/syscall-internal.c +catm ${libdir}/x86-mes/libmescc.a globals.o syscall-internal.o +catm ${libdir}/x86-mes/libmescc.s globals.s syscall-internal.s + +# libc.a +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isnumber.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/abtol.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/cast.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/eputc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdgetc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdputc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdputs.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/fdungetc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/itoa.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ltoa.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ltoab.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/mes_open.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ntoab.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/oputc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/ultoa.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/utoa.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isdigit.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isspace.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isxdigit.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/assert_msg.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/write.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/atoi.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/lseek.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__assert_fail.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__buffered_read.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/__mes_debug.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/execv.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getcwd.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getenv.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/isatty.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/open.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/buffered-read.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/setenv.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/wait.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fgetc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fputc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fputs.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/getc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/getchar.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/putc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/putchar.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ungetc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/free.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/malloc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/realloc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memchr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memcmp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memcpy.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memmove.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memset.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcmp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcpy.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strncmp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/raise.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/access.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/brk.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/chmod.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/clock_gettime.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/dup.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/dup2.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/execve.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/fork.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/fsync.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_getcwd.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/gettimeofday.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/ioctl3.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_open3.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/_read.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/time.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/unlink.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/waitpid.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/x86-mes-mescc/syscall.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/getpid.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/kill.c +catm ${libdir}/x86-mes/libc.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o isnumber.o abtol.o cast.o eputc.o fdgetc.o fdputc.o fdputs.o fdungetc.o itoa.o ltoa.o ltoab.o mes_open.o ntoab.o oputc.o ultoa.o utoa.o isdigit.o isspace.o isxdigit.o assert_msg.o write.o atoi.o lseek.o __assert_fail.o __buffered_read.o __mes_debug.o execv.o getcwd.o getenv.o isatty.o open.o buffered-read.o setenv.o wait.o fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.o free.o malloc.o realloc.o memchr.o memcmp.o memcpy.o memmove.o memset.o strcmp.o strcpy.o strncmp.o raise.o access.o brk.o chmod.o clock_gettime.o dup.o dup2.o execve.o fork.o fsync.o _getcwd.o gettimeofday.o ioctl3.o _open3.o _read.o time.o unlink.o waitpid.o syscall.o getpid.o kill.o +catm ${libdir}/x86-mes/libc.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s isnumber.s abtol.s cast.s eputc.s fdgetc.s fdputc.s fdputs.s fdungetc.s itoa.s ltoa.s ltoab.s mes_open.s ntoab.s oputc.s ultoa.s utoa.s isdigit.s isspace.s isxdigit.s assert_msg.s write.s atoi.s lseek.s __assert_fail.s __buffered_read.s __mes_debug.s execv.s getcwd.s getenv.s isatty.s open.s buffered-read.s setenv.s wait.s fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.s free.s malloc.s realloc.s memchr.s memcmp.s memcpy.s memmove.s memset.s strcmp.s strcpy.s strncmp.s raise.s access.s brk.s chmod.s clock_gettime.s dup.s dup2.s execve.s fork.s fsync.s _getcwd.s gettimeofday.s ioctl3.s _open3.s _read.s time.s unlink.s waitpid.s syscall.s getpid.s kill.s + +# libc+tcc.a +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/islower.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/isupper.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/tolower.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/ctype/toupper.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/abtod.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/dtoab.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/mes/search-path.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/execvp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fclose.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fdopen.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ferror.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fflush.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fopen.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fread.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fseek.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/ftell.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/fwrite.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/printf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/remove.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/snprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/sprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/sscanf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vfprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsnprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsprintf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdio/vsscanf.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/calloc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/qsort.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtod.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtof.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtol.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtold.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoll.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoul.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stdlib/strtoull.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/memmem.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strcat.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strchr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strlwr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strncpy.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strrchr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strstr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/string/strupr.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/sigaction.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/ldexp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/mprotect.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/localtime.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/stub/sigemptyset.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/x86-mes-mescc/setjmp.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/close.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/rmdir.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/linux/stat.c +catm ${libdir}/x86-mes/libc+tcc.a ${libdir}/x86-mes/libc.a islower.o isupper.o tolower.o toupper.o abtod.o dtoab.o search-path.o execvp.o fclose.o fdopen.o ferror.o fflush.o fopen.o fprintf.o fread.o fseek.o ftell.o fwrite.o printf.o remove.o snprintf.o sprintf.o sscanf.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o vsscanf.o calloc.o qsort.o strtod.o strtof.o strtol.o strtold.o strtoll.o strtoul.o strtoull.o memmem.o strcat.o strchr.o strlwr.o strncpy.o strrchr.o strstr.o strupr.o sigaction.o ldexp.o mprotect.o localtime.o sigemptyset.o setjmp.o close.o rmdir.o stat.o +catm ${libdir}/x86-mes/libc+tcc.s ${libdir}/x86-mes/libc.s islower.s isupper.s tolower.s toupper.s abtod.s dtoab.s search-path.s execvp.s fclose.s fdopen.s ferror.s fflush.s fopen.s fprintf.s fread.s fseek.s ftell.s fwrite.s printf.s remove.s snprintf.s sprintf.s sscanf.s vfprintf.s vprintf.s vsnprintf.s vsprintf.s vsscanf.s calloc.s qsort.s strtod.s strtof.s strtol.s strtold.s strtoll.s strtoul.s strtoull.s memmem.s strcat.s strchr.s strlwr.s strncpy.s strrchr.s strstr.s strupr.s sigaction.s ldexp.s mprotect.s localtime.s sigemptyset.s setjmp.s close.s rmdir.s stat.s + +# mes itself +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/builtins.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/cc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/core.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/display.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/eval-apply.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/gc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/hash.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/lib.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/math.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/mes.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/module.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/posix.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/reader.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/stack.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/string.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/struct.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/symbol.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 src/vector.c + +# Link everything into new mes executable +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- -L ${libdir} -nostdlib -o ${bindir}/mes-new -L . crt1.o builtins.o cc.o core.o display.o eval-apply.o gc.o hash.o lib.o math.o mes.o module.o posix.o reader.o stack.o string.o struct.o symbol.o vector.o -lc -lmescc + +# Now we finally have the final mes+libraries +cp ${bindir}/mes-new ${bindir}/mes + +# Install libraries +cp ${libdir}/x86-mes/libc.a ${prefix}/lib/ +cp ${libdir}/x86-mes/libc+tcc.a ${prefix}/lib/ +cp ${libdir}/x86-mes/libmescc.a ${prefix}/lib/ +cp ${libdir}/x86-mes/libc.s ${prefix}/lib/ +cp ${libdir}/x86-mes/libc+tcc.s ${prefix}/lib/ +cp ${libdir}/x86-mes/libmescc.s ${prefix}/lib/ +cp ${libdir}/x86-mes/x86.M1 ${prefix}/lib/ +cp crt1.o ${prefix}/lib/ +cp crt1.s ${prefix}/lib/ +cp ${libdir}/linux/x86-mes/elf32-footer-single-main.hex2 ${prefix}/lib/linux/ +cp ${libdir}/linux/x86-mes/elf32-header.hex2 ${prefix}/lib/linux/ + +# Install header files +cp include/alloca.h ${incdir}/alloca.h +cp include/argz.h ${incdir}/argz.h +cp include/ar.h ${incdir}/ar.h +cp include/assert.h ${incdir}/assert.h +cp include/ctype.h ${incdir}/ctype.h +cp include/dirent.h ${incdir}/dirent.h +cp include/dirstream.h ${incdir}/dirstream.h +cp include/dlfcn.h ${incdir}/dlfcn.h +cp include/endian.h ${incdir}/endian.h +cp include/errno.h ${incdir}/errno.h +cp include/fcntl.h ${incdir}/fcntl.h +cp include/features.h ${incdir}/features.h +cp include/float.h ${incdir}/float.h +cp include/getopt.h ${incdir}/getopt.h +cp include/grp.h ${incdir}/grp.h +cp include/inttypes.h ${incdir}/inttypes.h +cp include/libgen.h ${incdir}/libgen.h +cp include/limits.h ${incdir}/limits.h +cp include/locale.h ${incdir}/locale.h +cp include/math.h ${incdir}/math.h +cp include/memory.h ${incdir}/memory.h +cp include/pwd.h ${incdir}/pwd.h +cp include/setjmp.h ${incdir}/setjmp.h +cp include/signal.h ${incdir}/signal.h +cp include/stdarg.h ${incdir}/stdarg.h +cp include/stdbool.h ${incdir}/stdbool.h +cp include/stddef.h ${incdir}/stddef.h +cp include/stdint.h ${incdir}/stdint.h +cp include/stdio.h ${incdir}/stdio.h +cp include/stdlib.h ${incdir}/stdlib.h +cp include/stdnoreturn.h ${incdir}/stdnoreturn.h +cp include/string.h ${incdir}/string.h +cp include/strings.h ${incdir}/strings.h +cp include/termio.h ${incdir}/termio.h +cp include/time.h ${incdir}/time.h +cp include/unistd.h ${incdir}/unistd.h + +cp include/linux/syscall.h ${incdir}/linux/syscall.h +cp include/linux/x86/syscall.h ${incdir}/linux/x86/syscall.h + +cp include/mes/builtins.h ${incdir}/mes/builtins.h +cp include/mes/cc.h ${incdir}/mes/cc.h +catm ${incdir}/mes/config.h +cp include/mes/constants.h ${incdir}/mes/constants.h +cp include/mes/lib.h ${incdir}/mes/lib.h +cp include/mes/lib-mini.h ${incdir}/mes/lib-mini.h +cp include/mes/mes.h ${incdir}/mes/mes.h +cp include/mes/symbols.h ${incdir}/mes/symbols.h + +cp include/sys/cdefs.h ${incdir}/sys/cdefs.h +cp include/sys/dir.h ${incdir}/sys/dir.h +cp include/sys/file.h ${incdir}/sys/file.h +cp include/sys/ioctl.h ${incdir}/sys/ioctl.h +cp include/sys/mman.h ${incdir}/sys/mman.h +cp include/sys/param.h ${incdir}/sys/param.h +cp include/sys/resource.h ${incdir}/sys/resource.h +cp include/sys/select.h ${incdir}/sys/select.h +cp include/sys/stat.h ${incdir}/sys/stat.h +cp include/sys/timeb.h ${incdir}/sys/timeb.h +cp include/sys/time.h ${incdir}/sys/time.h +cp include/sys/times.h ${incdir}/sys/times.h +cp include/sys/types.h ${incdir}/sys/types.h +cp include/sys/ucontext.h ${incdir}/sys/ucontext.h +cp include/sys/user.h ${incdir}/sys/user.h +cp include/sys/wait.h ${incdir}/sys/wait.h + +# Test mes +libdir=${prefix}/lib +${MES} -c "(display 'Hello,Mes!) (newline)" + +cd ../.. diff --git a/sysa/mes/src/mes b/sysa/mes/src/mes @@ -0,0 +1 @@ +Subproject commit 2ab4c5c676cb66088b0fb8de03b40b01f07bd4e0 diff --git a/sysa/mes/src/nyacc b/sysa/mes/src/nyacc @@ -0,0 +1 @@ +Subproject commit 06a0985332cfbc76e759da50d228d5aa01b4f6a9 diff --git a/sysa/mescc-tools-extra/go.kaem b/sysa/mescc-tools-extra/go.kaem @@ -1,81 +0,0 @@ -#!/bin/sh -set -ex - -# cp command -M2-Planet \ - -f /M2-Planet/test/common_x86/functions/file.c \ - -f /M2-Planet/test/common_x86/functions/exit.c \ - -f /M2-Planet/test/common_x86/functions/malloc.c \ - -f /M2-Planet/test/common_x86/functions/getcwd.c \ - -f /M2-Planet/test/common_x86/functions/chdir.c \ - -f functions/string.c \ - -f functions/file_print.c \ - -f functions/match.c \ - -f functions/require.c \ - -f /M2-Planet/functions/calloc.c \ - -f functions/in_set.c \ - -f functions/numerate_number.c \ - -f cp.c \ - --architecture x86 \ - --debug \ - -o cp.M1 - -blood-elf -f cp.M1 -o cp-footer.M1 - -M1 \ - -f /M2-Planet/test/common_x86/x86_defs.M1 \ - -f /M2-Planet/test/common_x86/libc-core.M1 \ - -f cp.M1 \ - -f cp-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o hold - -hex2 \ - -f /M2-Planet/test/common_x86/ELF-i386-debug.hex2 \ - -f hold \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o /after/bin/cp \ - --exec_enable - -# chmod command -M2-Planet \ - -f /M2-Planet/test/common_x86/functions/file.c \ - -f /M2-Planet/test/common_x86/functions/exit.c \ - -f /M2-Planet/test/common_x86/functions/malloc.c \ - -f /M2-Planet/test/common_x86/functions/getcwd.c \ - -f /M2-Planet/test/common_x86/functions/chdir.c \ - -f functions/string.c \ - -f functions/file_print.c \ - -f functions/match.c \ - -f functions/require.c \ - -f functions/in_set.c \ - -f functions/numerate_number.c \ - -f /M2-Planet/functions/calloc.c \ - -f /M2-Planet/test/common_x86/functions/stat.c \ - -f chmod.c \ - --architecture x86 \ - --debug \ - -o chmod.M1 - -blood-elf -f chmod.M1 -o chmod-footer.M1 - -M1 \ - -f /M2-Planet/test/common_x86/x86_defs.M1 \ - -f /M2-Planet/test/common_x86/libc-core.M1 \ - -f chmod.M1 \ - -f chmod-footer.M1 \ - --LittleEndian \ - --architecture x86 \ - -o hold - -hex2 \ - -f /M2-Planet/test/common_x86/ELF-i386-debug.hex2 \ - -f hold \ - --LittleEndian \ - --architecture x86 \ - --BaseAddress 0x8048000 \ - -o /after/bin/chmod \ - --exec_enable diff --git a/sysa/mescc-tools-extra/mescc-tools-extra.kaem b/sysa/mescc-tools-extra/mescc-tools-extra.kaem @@ -0,0 +1,86 @@ +#!/bin/sh + +set -ex + +cd src + +# cp command +M2-Planet \ + -f /M2-Planet/test/common_x86/functions/file.c \ + -f /M2-Planet/test/common_x86/functions/exit.c \ + -f /M2-Planet/test/common_x86/functions/malloc.c \ + -f /M2-Planet/test/common_x86/functions/getcwd.c \ + -f /M2-Planet/test/common_x86/functions/chdir.c \ + -f functions/string.c \ + -f functions/file_print.c \ + -f functions/match.c \ + -f functions/require.c \ + -f /M2-Planet/functions/calloc.c \ + -f functions/in_set.c \ + -f functions/numerate_number.c \ + -f cp.c \ + --architecture x86 \ + --debug \ + -o cp.M1 + +blood-elf -f cp.M1 -o cp-footer.M1 + +M1 \ + -f /M2-Planet/test/common_x86/x86_defs.M1 \ + -f /M2-Planet/test/common_x86/libc-core.M1 \ + -f cp.M1 \ + -f cp-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o hold + +hex2 \ + -f /M2-Planet/test/common_x86/ELF-i386-debug.hex2 \ + -f hold \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o ${bindir}/cp \ + --exec_enable + +# chmod command +M2-Planet \ + -f /M2-Planet/test/common_x86/functions/file.c \ + -f /M2-Planet/test/common_x86/functions/exit.c \ + -f /M2-Planet/test/common_x86/functions/malloc.c \ + -f /M2-Planet/test/common_x86/functions/getcwd.c \ + -f /M2-Planet/test/common_x86/functions/chdir.c \ + -f functions/string.c \ + -f functions/file_print.c \ + -f functions/match.c \ + -f functions/require.c \ + -f functions/in_set.c \ + -f functions/numerate_number.c \ + -f /M2-Planet/functions/calloc.c \ + -f /M2-Planet/test/common_x86/functions/stat.c \ + -f chmod.c \ + --architecture x86 \ + --debug \ + -o chmod.M1 + +blood-elf -f chmod.M1 -o chmod-footer.M1 + +M1 \ + -f /M2-Planet/test/common_x86/x86_defs.M1 \ + -f /M2-Planet/test/common_x86/libc-core.M1 \ + -f chmod.M1 \ + -f chmod-footer.M1 \ + --LittleEndian \ + --architecture x86 \ + -o hold + +hex2 \ + -f /M2-Planet/test/common_x86/ELF-i386-debug.hex2 \ + -f hold \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x8048000 \ + -o ${bindir}/chmod \ + --exec_enable + +cd .. diff --git a/sysa/mescc-tools-extra/chmod.c b/sysa/mescc-tools-extra/src/chmod.c diff --git a/sysa/mescc-tools-extra/cp.c b/sysa/mescc-tools-extra/src/cp.c diff --git a/sysa/mescc-tools-extra/functions/file_print.c b/sysa/mescc-tools-extra/src/functions/file_print.c diff --git a/sysa/mescc-tools-extra/functions/in_set.c b/sysa/mescc-tools-extra/src/functions/in_set.c diff --git a/sysa/mescc-tools-extra/functions/match.c b/sysa/mescc-tools-extra/src/functions/match.c diff --git a/sysa/mescc-tools-extra/functions/numerate_number.c b/sysa/mescc-tools-extra/src/functions/numerate_number.c diff --git a/sysa/mescc-tools-extra/functions/require.c b/sysa/mescc-tools-extra/src/functions/require.c diff --git a/sysa/mescc-tools-extra/functions/string.c b/sysa/mescc-tools-extra/src/functions/string.c diff --git a/sysa/mescc-tools-patched b/sysa/mescc-tools-patched @@ -1 +0,0 @@ -Subproject commit 5768b2a79036f34b9bd420ab4801ad7dca15dff8 diff --git a/sysa/mescc-tools-seed b/sysa/mescc-tools-seed @@ -1 +0,0 @@ -Subproject commit 0e6d8d6d3f261b550af1768b767f66b30fd07854 diff --git a/sysa/mescc-tools-seed/src/mescc-tools-patched b/sysa/mescc-tools-seed/src/mescc-tools-patched @@ -0,0 +1 @@ +Subproject commit 3f5b7588a20bc2225f25a31eed53a8152563955f diff --git a/sysa/mescc-tools-seed/src/mescc-tools-seed b/sysa/mescc-tools-seed/src/mescc-tools-seed @@ -0,0 +1 @@ +Subproject commit 0e6d8d6d3f261b550af1768b767f66b30fd07854 diff --git a/sysa/nyacc b/sysa/nyacc @@ -1 +0,0 @@ -Subproject commit 06a0985332cfbc76e759da50d228d5aa01b4f6a9 diff --git a/sysa/patch-2.5.9.kaem b/sysa/patch-2.5.9.kaem @@ -1,41 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -# Create config.h and patchlevel.h -catm config.h -catm patchlevel.h - -# Patch -cp pch.c pch_patched.c -sed -i 841,848d pch_patched.c - -# Compile -tcc -c error.c -tcc -c getopt.c -tcc -c getopt1.c -tcc -c -I. addext.c -tcc -c -I. argmatch.c -tcc -c -I. -DHAVE_DECL_GETENV -DHAVE_DECL_MALLOC -DHAVE_DIRENT_H -Dsize_t="unsigned long" backupfile.c -tcc -c -I. -Dsize_t="unsigned long" basename.c -tcc -c -I. -Dsize_t="unsigned long" dirname.c -tcc -c -I. -DHAVE_LIMITS_H -DHAVE_GETEUID inp.c -tcc -c -I. maketime.c -tcc -c -I. -Dsize_t="unsigned long" partime.c -tcc -c -I. -DHAVE_MKTEMP -DHAVE_LIMITS_H -DHAVE_GETEUID -DPACKAGE_BUGREPORT= patch.c -tcc -c -I. -Ded_PROGRAM=\"/nullop\" -DHAVE_LIMITS_H -DHAVE_GETEUID pch_patched.c -tcc -c -I. quote.c -tcc -c -I. -Dmbstate_t=void -Dsize_t="unsigned long" quotearg.c -tcc -c -I. quotesys.c -tcc -c -I. -DRETSIGTYPE=int -Dsize_t="unsigned long" -DHAVE_MKDIR -DHAVE_RMDIR -DHAVE_LIMITS_H -DHAVE_GETEUID -DHAVE_FCNTL_H util.c -tcc -c -I. -DPACKAGE_NAME=\"patch\" -DPACKAGE_VERSION=\"2.5.9\" version.c -tcc -c -I. -DHAVE_MALLOC -DHAVE_REALLOC xmalloc.c - -# Link -tcc -static -o ${bindir}/patch error.o getopt.o getopt1.o addext.o argmatch.o backupfile.o basename.o dirname.o inp.o maketime.o partime.o patch.o pch_patched.o quote.o quotearg.o quotesys.o util.o version.o xmalloc.o - -# Test -patch --version diff --git a/sysa/patch-2.5.9/build/.placeholder b/sysa/patch-2.5.9/build/.placeholder diff --git a/sysa/patch-2.5.9/patch-2.5.9.kaem b/sysa/patch-2.5.9/patch-2.5.9.kaem @@ -0,0 +1,47 @@ +#!/bin/sh + +set -ex + +cd build + +# Extract +gunzip ../src/${pkg}.tar.gz +tar xf ../src/${pkg}.tar +cd ${pkg} + +# Create config.h and patchlevel.h +catm config.h +catm patchlevel.h + +# Patch +cp pch.c pch_patched.c +sed -i 841,848d pch_patched.c + +# Compile +tcc -c error.c +tcc -c getopt.c +tcc -c getopt1.c +tcc -c -I. addext.c +tcc -c -I. argmatch.c +tcc -c -I. -DHAVE_DECL_GETENV -DHAVE_DECL_MALLOC -DHAVE_DIRENT_H -Dsize_t="unsigned long" backupfile.c +tcc -c -I. -Dsize_t="unsigned long" basename.c +tcc -c -I. -Dsize_t="unsigned long" dirname.c +tcc -c -I. -DHAVE_LIMITS_H -DHAVE_GETEUID inp.c +tcc -c -I. maketime.c +tcc -c -I. -Dsize_t="unsigned long" partime.c +tcc -c -I. -DHAVE_MKTEMP -DHAVE_LIMITS_H -DHAVE_GETEUID -DPACKAGE_BUGREPORT= patch.c +tcc -c -I. -Ded_PROGRAM=\"/nullop\" -DHAVE_LIMITS_H -DHAVE_GETEUID pch_patched.c +tcc -c -I. quote.c +tcc -c -I. -Dmbstate_t=void -Dsize_t="unsigned long" quotearg.c +tcc -c -I. quotesys.c +tcc -c -I. -DRETSIGTYPE=int -Dsize_t="unsigned long" -DHAVE_MKDIR -DHAVE_RMDIR -DHAVE_LIMITS_H -DHAVE_GETEUID -DHAVE_FCNTL_H util.c +tcc -c -I. -DPACKAGE_NAME=\"patch\" -DPACKAGE_VERSION=\"2.5.9\" version.c +tcc -c -I. -DHAVE_MALLOC -DHAVE_REALLOC xmalloc.c + +# Link +tcc -static -o ${bindir}/patch error.o getopt.o getopt1.o addext.o argmatch.o backupfile.o basename.o dirname.o inp.o maketime.o partime.o patch.o pch_patched.o quote.o quotearg.o quotesys.o util.o version.o xmalloc.o + +# Test +patch --version + +cd ../.. diff --git a/sysa/patch-2.5.9/src/.placeholder b/sysa/patch-2.5.9/src/.placeholder diff --git a/sysa/patches/bzip2-1.0.8/bzip2-1.0.8.patch b/sysa/patches/bzip2-1.0.8/bzip2-1.0.8.patch @@ -1,61 +0,0 @@ -diff -r -N -U3 bzip2-1.0.8/bzip2.c bzip2-1.0.8/bzip2.c ---- bzip2.c 2019-07-13 18:50:05.000000000 +0100 -+++ bzip2.c 2021-01-14 14:11:40.160213521 +0000 -@@ -1051,12 +1051,13 @@ - { - # if BZ_UNIX - IntNative retVal; -- struct utimbuf uTimBuf; -+ //struct utimbuf uTimBuf; - -- uTimBuf.actime = fileMetaInfo.st_atime; -- uTimBuf.modtime = fileMetaInfo.st_mtime; -+ //uTimBuf.actime = fileMetaInfo.st_atime; -+ //uTimBuf.modtime = fileMetaInfo.st_mtime; - -- retVal = utime ( dstName, &uTimBuf ); -+ //retVal = utime ( dstName, &uTimBuf ); -+ retVal = 0; - ERROR_IF_NOT_ZERO ( retVal ); - # endif - } -diff -r -N -U3 bzip2-1.0.8/Makefile bzip2-1.0.8/Makefile ---- Makefile 2019-07-13 18:50:05.000000000 +0100 -+++ Makefile 2021-01-14 15:45:17.558516299 +0000 -@@ -21,7 +21,7 @@ - LDFLAGS= - - BIGFILES=-D_FILE_OFFSET_BITS=64 --CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) -+CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) -I . - - # Where you want it installed when you do 'make install' - PREFIX=/usr/local -@@ -44,13 +44,7 @@ - $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o - - libbz2.a: $(OBJS) -- rm -f libbz2.a - $(AR) cq libbz2.a $(OBJS) -- @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \ -- -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \ -- echo $(RANLIB) libbz2.a ; \ -- $(RANLIB) libbz2.a ; \ -- fi - - check: test - test: bzip2 -@@ -114,7 +108,6 @@ - sample1.tst sample2.tst sample3.tst - - blocksort.o: blocksort.c -- @cat words0 - $(CC) $(CFLAGS) -c blocksort.c - huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -diff -r -N -U3 bzip2-1.0.8/utime.h bzip2-1.0.8/utime.h ---- utime.h 1970-01-01 01:00:00.000000000 +0100 -+++ utime.h 2021-01-14 18:11:11.253825037 +0000 -@@ -0,0 +1,2 @@ -+#define fchown(filedes, owner, group) 0 -+#define fchmod(filedes, mode) 0 diff --git a/sysa/sed-4.0.7 b/sysa/sed-4.0.7 @@ -1 +0,0 @@ -Subproject commit b8fb156db0eedfd28db3340b418591e8fcab08bc diff --git a/sysa/sed-4.0.7.kaem b/sysa/sed-4.0.7.kaem @@ -1,39 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -catm config.h - -# Compile - -## libsed.a -cd lib - -tcc -c getopt1.c -tcc -c -I .. getopt.c -tcc -c -I .. -DENABLE_NLS=0 utils.c -cp regex_.h regex.h -tcc -c -I . regex.c -tcc -c obstack.c -tcc -c strverscmp.c -tcc -c getline.c -tcc -c -DHAVE_FCNTL_H mkstemp.c - -tcc -ar cr libsed.a getopt1.o getopt.o utils.o regex.o obstack.o strverscmp.o getline.o mkstemp.o -cd .. - -## sed -tcc -c -I . -I lib -DSED_FEATURE_VERSION=\"4.0\" sed/compile.c -tcc -c -I . -I lib sed/execute.c -tcc -c -I . -I lib sed/regex.c -tcc -c -I . -I lib sed/fmt.c -tcc -c -I . -I lib -DPACKAGE=\"sed\" -DVERSION=\"4.0.7\" sed/sed.c - -# Link -tcc -static -o ${bindir}/sed -L lib lib/libsed.a compile.o execute.o regex.o fmt.o sed.o -lsed - -# Test -sed --version diff --git a/sysa/sed-4.0.7/sed-4.0.7.kaem b/sysa/sed-4.0.7/sed-4.0.7.kaem @@ -0,0 +1,41 @@ +#!/bin/sh + +set -ex + +cd src + +# Create config.h +catm config.h + +# Compile + +## libsed.a +cd lib + +tcc -c getopt1.c +tcc -c -I .. getopt.c +tcc -c -I .. -DENABLE_NLS=0 utils.c +cp regex_.h regex.h +tcc -c -I . regex.c +tcc -c obstack.c +tcc -c strverscmp.c +tcc -c getline.c +tcc -c -DHAVE_FCNTL_H mkstemp.c + +tcc -ar cr libsed.a getopt1.o getopt.o utils.o regex.o obstack.o strverscmp.o getline.o mkstemp.o +cd .. + +## sed +tcc -c -I . -I lib -DSED_FEATURE_VERSION=\"4.0\" sed/compile.c +tcc -c -I . -I lib sed/execute.c +tcc -c -I . -I lib sed/regex.c +tcc -c -I . -I lib sed/fmt.c +tcc -c -I . -I lib -DPACKAGE=\"sed\" -DVERSION=\"4.0.7\" sed/sed.c + +# Link +tcc -static -o ${bindir}/sed -L lib lib/libsed.a compile.o execute.o regex.o fmt.o sed.o -lsed + +# Test +sed --version + +cd .. diff --git a/sysa/sed-4.0.7/src b/sysa/sed-4.0.7/src @@ -0,0 +1 @@ +Subproject commit b8fb156db0eedfd28db3340b418591e8fcab08bc diff --git a/sysa/tar-1.12.kaem b/sysa/tar-1.12.kaem @@ -1,52 +0,0 @@ -#!/bin/sh - -set -ex - -# Variables -bindir=/after/bin - -# Compile - -## libtar.a -cd lib - -tcc -c argmatch.c -tcc -c -DHAVE_DIRENT_H backupfile.c -tcc -c -I . error.c -tcc -c -I . fnmatch.c -tcc -c ftruncate.c -tcc -c getopt.c -tcc -c getopt1.c -tcc -c getversion.c -tcc -c modechange.c -tcc -c msleep.c -tcc -c -DHAVE_GETCWD xgetcwd.c -tcc -c xmalloc.c -tcc -c xstrdup.c - -tcc -ar cr libtar.a argmatch.o backupfile.o error.o fnmatch.o ftruncate.o getopt.o getopt1.o getversion.o modechange.o msleep.o xgetcwd.o xmalloc.o xstrdup.o -cd .. - -## tar -# -DSIZEOF_UNSIGNED_LONG=4 forces use of simulated arithmetic -# This is to avoid running configure test to determine sizeof(long long) -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/arith.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/buffer.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/compare.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_DIRENT_H src/create.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/delete.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/extract.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_GETCWD -DHAVE_DIRENT_H src/incremen.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/list.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/mangle.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_DIRENT_H src/misc.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_GETCWD src/names.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/open3.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/rtapelib.c -cp src/tar.c src/tar_patched.c -sed -i 709,709d src/tar_patched.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DPACKAGE=\"tar\" -DVERSION=\"1.12\" src/tar_patched.c -tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/update.c - -# Link -tcc -static -o ${bindir}/tar -L lib lib/libtar.a arith.o buffer.o compare.o create.o delete.o extract.o incremen.o list.o mangle.o misc.o names.o open3.o rtapelib.o tar_patched.o update.o -ltar diff --git a/sysa/tar-1.12/src/.placeholder b/sysa/tar-1.12/src/.placeholder diff --git a/sysa/tar-1.12/tar-1.12.kaem b/sysa/tar-1.12/tar-1.12.kaem @@ -0,0 +1,53 @@ +#!/bin/sh + +set -ex + +cd src + +# Compile + +## libtar.a +cd lib + +tcc -c argmatch.c +tcc -c -DHAVE_DIRENT_H backupfile.c +tcc -c -I . error.c +tcc -c -I . fnmatch.c +tcc -c ftruncate.c +tcc -c getopt.c +tcc -c getopt1.c +tcc -c getversion.c +tcc -c modechange.c +tcc -c msleep.c +tcc -c -DHAVE_GETCWD xgetcwd.c +tcc -c xmalloc.c +tcc -c xstrdup.c + +tcc -ar cr libtar.a argmatch.o backupfile.o error.o fnmatch.o ftruncate.o getopt.o getopt1.o getversion.o modechange.o msleep.o xgetcwd.o xmalloc.o xstrdup.o +cd .. + +## tar +# -DSIZEOF_UNSIGNED_LONG=4 forces use of simulated arithmetic +# This is to avoid running configure test to determine sizeof(long long) +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/arith.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/buffer.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/compare.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_DIRENT_H src/create.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/delete.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/extract.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_GETCWD -DHAVE_DIRENT_H src/incremen.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/list.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/mangle.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_DIRENT_H src/misc.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DHAVE_GETCWD src/names.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/open3.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/rtapelib.c +cp src/tar.c src/tar_patched.c +sed -i 709,709d src/tar_patched.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H -DPACKAGE=\"tar\" -DVERSION=\"1.12\" src/tar_patched.c +tcc -c -I lib -DSIZEOF_UNSIGNED_LONG=4 -DHAVE_FCNTL_H src/update.c + +# Link +tcc -static -o ${bindir}/tar -L lib lib/libtar.a arith.o buffer.o compare.o create.o delete.o extract.o incremen.o list.o mangle.o misc.o names.o open3.o rtapelib.o tar_patched.o update.o -ltar + +cd .. diff --git a/sysa/tcc-0.9.26 b/sysa/tcc-0.9.26 @@ -1 +0,0 @@ -Subproject commit 5bba73ccca0e794a6557de166b91923228cb6f73 diff --git a/sysa/tcc-0.9.26/src/mes-libc b/sysa/tcc-0.9.26/src/mes-libc @@ -0,0 +1 @@ +Subproject commit 22d37adeef22c184a113daec4bf06536ea099e6a diff --git a/sysa/tcc-0.9.26/src/tcc-0.9.26 b/sysa/tcc-0.9.26/src/tcc-0.9.26 @@ -0,0 +1 @@ +Subproject commit 5bba73ccca0e794a6557de166b91923228cb6f73 diff --git a/sysa/tcc-0.9.26/tcc-0.9.26.kaem b/sysa/tcc-0.9.26/tcc-0.9.26.kaem @@ -0,0 +1,378 @@ +#!/bin/sh + +set -ex + +# Vars +MES_STACK=15000000 +MES_ARENA=30000000 +MES_MAX_ARENA=30000000 +MES_LIB=${MES_PREFIX}/lib +MES_SOURCE=${MES_PREFIX} +MES=${bindir}/mes + +cd src/tcc-0.9.26 + +# Create config.h +catm config.h + +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- \ + -S \ + -o tcc.s \ + -I ${incdir} \ + -D BOOTSTRAP=1 \ + -I . \ + -D TCC_TARGET_I386=1 \ + -D inline= \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_SYSROOT=\"/\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/mes/include:${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D CONFIG_TCC_LIBTCC1_MES=0 \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + tcc.c +${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- \ + -o mes-tcc \ + -L ${libdir} \ + tcc.s \ + -l c+tcc +cp mes-tcc ${bindir}/ +chmod 755 ${bindir}/mes-tcc + +# test mes-tcc +mes-tcc -version + +# Recompile the mes C library +cd ../mes-libc + +# Create unified libc files +catm unified-libc-1.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/free.c lib/stdlib/malloc.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fork.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/_open3.c lib/linux/_read.c lib/linux/time.c lib/linux/unlink.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c +catm unified-libc-2.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/calloc.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/sigemptyset.c lib/x86-mes-gcc/setjmp.c lib/linux/close.c lib/linux/rmdir.c lib/linux/stat.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/dirent/readdir.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c +catm unified-libc-3.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/umask.c lib/stub/utime.c lib/linux/chdir.c lib/linux/fcntl.c lib/linux/fstat.c lib/linux/getdents.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/link.c lib/linux/lstat.c lib/linux/mkdir.c lib/linux/mknod.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/readlink.c lib/linux/rename.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c lib/linux/symlink.c + +# crt1.o +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c + +# crtn.o +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c + +# crti.o +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c + +# libc+gcc.a +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +mes-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a + +# libtcc1.a +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/libtcc1.c +mes-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o + +# libgetopt.a +mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c +mes-tcc -ar cr ${libdir}/libgetopt.a getopt.o + +cd ../tcc-0.9.26 + +# boot0 (ref comments here for all boot*) +# compile +mes-tcc \ + -g \ + -v \ + -static \ + -o boot0-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_LONG_LONG_STUB=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + -L ${libdir} \ + tcc.c +# Install +cp boot0-tcc ${bindir}/ +chmod 755 ${bindir}/boot0-tcc +cd ../mes-libc +# Recompile libc: crt{1,n,i}, libtcc.a, libc.a +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot0-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG_STUB=1 -I include -I include/linux/x86 lib/libtcc1.c +boot0-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot0-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +cd ../tcc-0.9.26 + +# Test boot0 +boot0-tcc -version + +# boot1 +boot0-tcc \ + -g \ + -v \ + -static \ + -o boot1-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_BITFIELD=1 \ + -D HAVE_LONG_LONG=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + tcc.c +cp boot1-tcc ${bindir} +chmod 755 ${bindir}/boot1-tcc +cd ../mes-libc +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot1-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c +boot1-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot1-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +cd ../tcc-0.9.26 + +# Test boot1 +boot1-tcc -version + +# boot2 +boot1-tcc \ + -g \ + -v \ + -static \ + -o boot2-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_BITFIELD=1 \ + -D HAVE_FLOAT_STUB=1 \ + -D HAVE_LONG_LONG=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + tcc.c +cp boot2-tcc ${bindir} +chmod 755 ${bindir}/boot2-tcc +cd ../mes-libc +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot2-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT_STUB=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c +boot2-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot2-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +cd ../tcc-0.9.26 + +# Test boot2 +boot2-tcc -version + +# boot3 +boot2-tcc \ + -g \ + -v \ + -static \ + -o boot3-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_BITFIELD=1 \ + -D HAVE_FLOAT=1 \ + -D HAVE_LONG_LONG=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + tcc.c +cp boot3-tcc ${bindir} +chmod 755 ${bindir}/boot3-tcc +cd ../mes-libc +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot3-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c +boot3-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot3-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +cd ../tcc-0.9.26 + +# Test boot3 +boot3-tcc -version + +# boot4 +boot3-tcc \ + -g \ + -v \ + -static \ + -o boot4-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_BITFIELD=1 \ + -D HAVE_FLOAT=1 \ + -D HAVE_LONG_LONG=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + tcc.c +cp boot4-tcc ${bindir} +chmod 755 ${bindir}/boot4-tcc +cd ../mes-libc +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot4-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c +boot4-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot4-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +cd ../tcc-0.9.26 + +# Test boot4 +boot4-tcc -version + +# boot5 +boot4-tcc \ + -g \ + -v \ + -static \ + -o boot5-tcc \ + -D BOOTSTRAP=1 \ + -D HAVE_BITFIELD=1 \ + -D HAVE_FLOAT=1 \ + -D HAVE_LONG_LONG=1 \ + -D HAVE_SETJMP=1 \ + -I . \ + -I ${prefix}/include \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D TCC_LIBTCC1=\"libtcc1.a\" \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_MES_LIBC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -L . \ + tcc.c +cp boot5-tcc ${bindir} +chmod 755 ${bindir}/boot5-tcc +cd ../mes-libc +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +boot5-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c +boot5-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +boot5-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a + +# Test boot5 +boot5-tcc -version + +# We have our final tcc 0.9.26! +cp ${bindir}/boot5-tcc ${bindir}/tcc +chmod 755 ${bindir}/tcc +cp ${bindir}/tcc ${bindir}/tcc-0.9.26 +chmod 755 ${bindir}/tcc-0.9.26 + +# Also recompile getopt, we don't need to do this during the boot* stages +# because nothing is linked against it +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c +tcc -ar cr ${libdir}/libgetopt.a getopt.o + +cd .. diff --git a/sysa/tcc-0.9.27 b/sysa/tcc-0.9.27 @@ -1 +0,0 @@ -Subproject commit d348a9a51d32cece842b7885d27a411436d7887b diff --git a/sysa/tcc-0.9.27/build/.placeholder b/sysa/tcc-0.9.27/build/.placeholder diff --git a/sysa/patches/tcc/static-link.patch b/sysa/tcc-0.9.27/patches/static-link.patch diff --git a/sysa/tcc-0.9.27/src/mes-libc b/sysa/tcc-0.9.27/src/mes-libc @@ -0,0 +1 @@ +Subproject commit 22d37adeef22c184a113daec4bf06536ea099e6a diff --git a/sysa/tcc-0.9.27/src/tcc-0.9.27 b/sysa/tcc-0.9.27/src/tcc-0.9.27 @@ -0,0 +1 @@ +Subproject commit d348a9a51d32cece842b7885d27a411436d7887b diff --git a/sysa/tcc-0.9.27/tcc-0.9.27.kaem b/sysa/tcc-0.9.27/tcc-0.9.27.kaem @@ -0,0 +1,58 @@ +#!/bin/sh + +set -ex + +cd src/tcc-0.9.27 + +# Create config.h +catm config.h + +# Compile the binary +tcc \ + -v \ + -static \ + -o tcc \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_VERSION=\"0.9.27\" \ + -D ONE_SOURCE=1 \ + tcc.c + +# Install the binary +cp tcc ${bindir}/tcc +chmod 755 ${bindir}/tcc + +# Test +tcc -version + +# Recompile libc +# libtcc1.a +tcc -c -D HAVE_CONFIG_H=1 lib/libtcc1.c +tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o +cd ../mes-libc +# crt{1,n,i}.o +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c +# Create unified libc files +catm unified-libc-1.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/free.c lib/stdlib/malloc.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fork.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/_open3.c lib/linux/_read.c lib/linux/time.c lib/linux/unlink.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c +catm unified-libc-2.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/calloc.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/sigemptyset.c lib/x86-mes-gcc/setjmp.c lib/linux/close.c lib/linux/rmdir.c lib/linux/stat.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/dirent/readdir.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c +catm unified-libc-3.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/umask.c lib/stub/utime.c lib/linux/chdir.c lib/linux/fcntl.c lib/linux/fstat.c lib/linux/getdents.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/link.c lib/linux/lstat.c lib/linux/mkdir.c lib/linux/mknod.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/readlink.c lib/linux/rename.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c lib/linux/symlink.c +# libc.a +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c +tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o +cp ${libdir}/libc+gnu.a ${libdir}/libc.a +# libgetopt.a +tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c +tcc -ar cr ${libdir}/libgetopt.a getopt.o + +cd ../.. diff --git a/sysa/tcc-0.9.27/tcc-patched.kaem b/sysa/tcc-0.9.27/tcc-patched.kaem @@ -0,0 +1,33 @@ +#!/bin/sh + +set -ex + +cd src/tcc-0.9.27 + +# Patch +patch -Np0 -i ../../patches/static-link.patch + +# Compile +## We have to use 0.9.26 to recompile 0.9.27, 0.9.27 is not self-hosting for +## whatever reason. +tcc-0.9.26 \ + -v \ + -static \ + -o ${bindir}/tcc \ + -D TCC_TARGET_I386=1 \ + -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ + -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ + -D TCC_LIBGCC=\"${libdir}/libc.a\" \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_VERSION=\"0.9.27\" \ + -D ONE_SOURCE=1 \ + tcc.c + +# Test +tcc -version + +cd ../.. diff --git a/sysa/tcc-patched.kaem b/sysa/tcc-patched.kaem @@ -1,34 +0,0 @@ -#!/bin/sh - -set -ex - -# Vars -prefix=/after -libdir=${prefix}/lib -bindir=${prefix}/bin - -# Patch -patch -Np0 -i ../patches/tcc/static-link.patch - -# Compile -## We have to use 0.9.26 to recompile 0.9.27, 0.9.27 is not self-hosting for -## whatever reason. -boot5-tcc \ - -v \ - -static \ - -o ${bindir}/tcc \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_VERSION=\"0.9.27\" \ - -D ONE_SOURCE=1 \ - tcc.c - -# Test -tcc -version diff --git a/sysa/tcc.kaem b/sysa/tcc.kaem @@ -1,433 +0,0 @@ -#!/bin/sh - -set -ex - -# Vars -prefix=/after -bindir=${prefix}/bin -libdir=${prefix}/lib -GUILE_LOAD_PATH=${prefix}/nyacc/module:${prefix}/mes/mes/module -MES_PREFIX=${prefix}/mes -MES_STACK=15000000 -MES_ARENA=30000000 -MES_MAX_ARENA=30000000 -MES_LIB=${MES_PREFIX}/lib -MES_SOURCE=${MES_PREFIX} -MES=${bindir}/mes - -# Initial tcc -cd tcc-0.9.26 - -# Create config.h -catm config.h - -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- \ - -S \ - -o tcc.s \ - -I ${prefix}/mes/lib \ - -I ${prefix}/mes/include \ - -D BOOTSTRAP=1 \ - -I . \ - -D TCC_TARGET_I386=1 \ - -D inline= \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_SYSROOT=\"/\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/mes/include:${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D CONFIG_TCC_LIBTCC1_MES=0 \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - tcc.c -${MES} --no-auto-compile -e main ${bindir}/mescc.scm -- \ - -o mes-tcc \ - -L ${libdir} \ - tcc.s \ - -l c+tcc -cp mes-tcc ${bindir}/ -chmod 755 ${bindir}/mes-tcc - -# test mes-tcc -mes-tcc -version - -# Recompile the mes C library -cd ../tcc-mes - -# Create unified libc files -catm unified-libc-1.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/free.c lib/stdlib/malloc.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fork.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/_open3.c lib/linux/_read.c lib/linux/time.c lib/linux/unlink.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c -catm unified-libc-2.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/calloc.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/sigemptyset.c lib/x86-mes-gcc/setjmp.c lib/linux/close.c lib/linux/rmdir.c lib/linux/stat.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/dirent/readdir.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c -catm unified-libc-3.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/umask.c lib/stub/utime.c lib/linux/chdir.c lib/linux/fcntl.c lib/linux/fstat.c lib/linux/getdents.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/link.c lib/linux/lstat.c lib/linux/mkdir.c lib/linux/mknod.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/readlink.c lib/linux/rename.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c lib/linux/symlink.c - -# crt1.o -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c - -# crtn.o -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c - -# crti.o -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c - -# libc+gcc.a -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -mes-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a - -# libtcc1.a -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/libtcc1.c -mes-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o - -# libgetopt.a -mes-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c -mes-tcc -ar cr ${libdir}/libgetopt.a getopt.o - -cd ../tcc-0.9.26 - -# boot0 (ref comments here for all boot*) -# compile -mes-tcc \ - -g \ - -v \ - -static \ - -o boot0-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_LONG_LONG_STUB=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - -L ${libdir} \ - tcc.c -# Install -cp boot0-tcc ${bindir}/ -chmod 755 ${bindir}/boot0-tcc -cd ../tcc-mes -# Recompile libc: crt{1,n,i}, libtcc.a, libc.a -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot0-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG_STUB=1 -I include -I include/linux/x86 lib/libtcc1.c -boot0-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot0-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -cd ../tcc-0.9.26 - -# Test boot0 -boot0-tcc -version - -# boot1 -boot0-tcc \ - -g \ - -v \ - -static \ - -o boot1-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_BITFIELD=1 \ - -D HAVE_LONG_LONG=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - tcc.c -cp boot1-tcc ${bindir} -chmod 755 ${bindir}/boot1-tcc -cd ../tcc-mes -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot1-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c -boot1-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot1-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot1-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -cd ../tcc-0.9.26 - -# Test boot1 -boot1-tcc -version - -# boot2 -boot1-tcc \ - -g \ - -v \ - -static \ - -o boot2-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_BITFIELD=1 \ - -D HAVE_FLOAT_STUB=1 \ - -D HAVE_LONG_LONG=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - tcc.c -cp boot2-tcc ${bindir} -chmod 755 ${bindir}/boot2-tcc -cd ../tcc-mes -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot2-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT_STUB=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c -boot2-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot2-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot2-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -cd ../tcc-0.9.26 - -# Test boot2 -boot2-tcc -version - -# boot3 -boot2-tcc \ - -g \ - -v \ - -static \ - -o boot3-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_BITFIELD=1 \ - -D HAVE_FLOAT=1 \ - -D HAVE_LONG_LONG=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - tcc.c -cp boot3-tcc ${bindir} -chmod 755 ${bindir}/boot3-tcc -cd ../tcc-mes -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot3-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c -boot3-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot3-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot3-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -cd ../tcc-0.9.26 - -# Test boot3 -boot3-tcc -version - -# boot4 -boot3-tcc \ - -g \ - -v \ - -static \ - -o boot4-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_BITFIELD=1 \ - -D HAVE_FLOAT=1 \ - -D HAVE_LONG_LONG=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - tcc.c -cp boot4-tcc ${bindir} -chmod 755 ${bindir}/boot4-tcc -cd ../tcc-mes -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot4-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c -boot4-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot4-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot4-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -cd ../tcc-0.9.26 - -# Test boot4 -boot4-tcc -version - -# boot5 -boot4-tcc \ - -g \ - -v \ - -static \ - -o boot5-tcc \ - -D BOOTSTRAP=1 \ - -D HAVE_BITFIELD=1 \ - -D HAVE_FLOAT=1 \ - -D HAVE_LONG_LONG=1 \ - -D HAVE_SETJMP=1 \ - -I . \ - -I ${prefix}/include \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - -L . \ - tcc.c -cp boot5-tcc ${bindir} -chmod 755 ${bindir}/boot5-tcc -cd ../tcc-mes -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -boot5-tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c -boot5-tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -boot5-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -boot5-tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a - -# Test boot5 -boot5-tcc -version - -# We have our final tcc 0.9.26! -cp ${bindir}/boot5-tcc ${bindir}/tcc -chmod 755 ${bindir}/tcc - -# Also recompile getopt, we don't need to do this during the boot* stages -# because nothing is linked against it -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c -tcc -ar cr ${libdir}/libgetopt.a getopt.o - -# Now compile tcc 0.9.27 -cd ../tcc-0.9.27 - -# Create config.h -catm config.h - -# Compile the binary -tcc \ - -v \ - -static \ - -o tcc \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"${libdir}/tcc\" \ - -D CONFIG_TCC_CRTPREFIX=\"${libdir}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"${libdir}:${libdir}/tcc\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${prefix}/include\" \ - -D TCC_LIBGCC=\"${libdir}/libc.a\" \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_VERSION=\"0.9.27\" \ - -D ONE_SOURCE=1 \ - tcc.c - -# Install the binary -cp tcc ${bindir}/tcc -chmod 755 ${bindir}/tcc - -# Test -tcc -version - -# Recompile libc -# libtcc1.a -tcc -c -D HAVE_CONFIG_H=1 lib/libtcc1.c -tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o -cd ../tcc-mes -# crt{1,n,i}.o -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c -# libc.a -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c -tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o -cp ${libdir}/libc+gnu.a ${libdir}/libc.a -# libgetopt.a -tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c -tcc -ar cr ${libdir}/libgetopt.a getopt.o - -cd ..