diff options
| author | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-12 15:58:29 +0100 |
|---|---|---|
| committer | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-12 18:35:41 +0100 |
| commit | 0d4b19bdc8ea4e60c1736d1afe92e8ece2757843 (patch) | |
| tree | 388c09707a2830011b755472df44766a6ccdafd3 | |
| parent | 9cb37d94c95238deb583620dd1360cc71f5238de (diff) | |
Fully working, installs toolchain into $SYSROOT
| -rw-r--r-- | .gitignore | 6 | ||||
| -rwxr-xr-x | scripts/binutils_build.sh | 14 | ||||
| -rwxr-xr-x | scripts/gcc_build.sh | 13 | ||||
| -rwxr-xr-x | scripts/install_headers.sh | 14 | ||||
| -rwxr-xr-x | scripts/setup.sh | 74 |
5 files changed, 85 insertions, 36 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..179b395 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +binutils-2.37.tar.gz +binutils-2.37/ +gcc-11.2.0.tar.gz +gcc-11.2.0/ +mine/ +mykernel/ diff --git a/scripts/binutils_build.sh b/scripts/binutils_build.sh deleted file mode 100755 index a969291..0000000 --- a/scripts/binutils_build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -mkdir build -cd build || exit - -../configure --target=i686-aleksa \ - --prefix=/usr \ - --with-sysroot=/opt/aleksa \ - --bindir=/usr/bin \ - --libdir=/usr/lib \ - --disable-nls \ - --disable-werror - -make diff --git a/scripts/gcc_build.sh b/scripts/gcc_build.sh deleted file mode 100755 index d70cb0e..0000000 --- a/scripts/gcc_build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -mkdir build -cd build || exit - -../configure --target=i686-aleksa \ - --prefix=/usr \ - --with-sysroot=/opt/aleksa \ - --disable-nls \ - --disable-plugin \ - --enable-languages=c,c++ - -make diff --git a/scripts/install_headers.sh b/scripts/install_headers.sh new file mode 100755 index 0000000..ae0e560 --- /dev/null +++ b/scripts/install_headers.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +SYSROOT="/opt/aleksa" +GCC_DIR=$(gcc --print-file-name=) + +if [ ! -d mykernel ]; then + git clone "https://github.com/aleksav013/mykernel" +fi + +rm -rf "$SYSROOT/usr/include" +mkdir -p "$SYSROOT/usr/include" +cp -r "$GCC_DIR"include/* "$SYSROOT/usr/include" +cp -r mykernel/src/include/* "$SYSROOT/usr/include" +cp "$SYSROOT/usr/include/stdint-gcc.h" "$SYSROOT/usr/include/stdint.h" diff --git a/scripts/setup.sh b/scripts/setup.sh index 9145f9d..950bb3b 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -1,5 +1,7 @@ #!/bin/sh +SYSROOT=/opt/aleksa + download() { if [ ! -f "./binutils-2.37.tar.gz" ]; then @@ -29,25 +31,77 @@ patch_gnu() if [ ! -d "./binutils-2.37" ]; then cp -r "../binutils-2.37" . - patch -p0 < "./scripts/aleksa-binutils-2.37.diff" + patch -p0 < "../scripts/aleksa-binutils-2.37.diff" + cd "./binutils-2.37/ld" || exit + sed -i "s/2.69/2.71/" "Makefile.am" + aclocal + automake + cd "../.." || exit fi if [ ! -d "./gcc-11.2.0" ]; then cp -r "../gcc-11.2.0" . patch -p0 < "../scripts/aleksa-gcc-11.2.0.diff" + cd "./gcc-11.2.0/libstdc++-v3" || exit + sed -i "s/2.69/2.71/" "../config/override.m4" + autoreconf + cd "../.." || exit fi } -build() +build_binutils() { cd "./binutils-2.37" || exit - ../../../scripts/binutils_build.sh - cd .. || exit - - cd "./binutils-2.37" || exit - ../../../scripts/gcc_build.sh - cd .. || exit + mkdir -p build + cd build || exit + + if [ ! -f Makefile ]; then + ../configure --target=i686-aleksa \ + --prefix=/usr \ + --with-sysroot="$SYSROOT" \ + --bindir=/usr/bin \ + --libdir=/usr/lib \ + --disable-nls \ + --disable-werror + fi + + make -j4 + make DESTDIR="$SYSROOT" install + + cd "../.." || exit +} + +install_headers() +{ + ../scripts/install_headers.sh +} + +build_gcc() +{ + cd "./gcc-11.2.0" || exit + + mkdir -p build + cd build || exit + + if [ ! -f Makefile ]; then + ../configure --target=i686-aleksa \ + --prefix=/usr \ + --with-sysroot="$SYSROOT" \ + --disable-nls \ + --disable-plugin \ + --enable-languages=c,c++ + fi + + make -j4 all-gcc + make -j4 all-target-libgcc + + make -k check || true + + make DESTDIR="$SYSROOT" install-gcc + make DESTDIR="$SYSROOT" install-target-libgcc + + cd "../.." || exit } main() @@ -55,7 +109,9 @@ main() download extract patch_gnu -# build + install_headers + build_binutils + build_gcc } main |
