diff options
| author | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-11 20:10:57 +0100 |
|---|---|---|
| committer | Aleksa Vučković <aleksav013@gmail.com> | 2022-01-11 20:10:57 +0100 |
| commit | 9cb37d94c95238deb583620dd1360cc71f5238de (patch) | |
| tree | 36275474881fd8cd84c60f8b9f0ecff2d6f70a97 | |
| parent | 5e6b4b23110ead3d8dc9f531dd8002269c05e884 (diff) | |
Initial commit
| -rw-r--r-- | scripts/aleksa-binutils-2.37.diff | 96 | ||||
| -rw-r--r-- | scripts/aleksa-gcc-11.2.0.diff | 119 | ||||
| -rwxr-xr-x | scripts/binutils_build.sh | 14 | ||||
| -rwxr-xr-x | scripts/gcc_build.sh | 13 | ||||
| -rwxr-xr-x | scripts/setup.sh | 61 |
5 files changed, 303 insertions, 0 deletions
diff --git a/scripts/aleksa-binutils-2.37.diff b/scripts/aleksa-binutils-2.37.diff new file mode 100644 index 0000000..79cde93 --- /dev/null +++ b/scripts/aleksa-binutils-2.37.diff @@ -0,0 +1,96 @@ +diff '--color=auto' -ruN ../binutils-2.37/bfd/config.bfd ./binutils-2.37/bfd/config.bfd +--- ../binutils-2.37/bfd/config.bfd 2021-07-08 13:37:19.000000000 +0200 ++++ ./binutils-2.37/bfd/config.bfd 2022-01-11 18:51:11.272879682 +0100 +@@ -223,6 +223,18 @@ + + case "${targ}" in + # START OF targmatch.h ++ i[3-7]86-*-aleksa*) ++ targ_defvec=i386_elf32_vec ++ targ_selvecs= ++ targ64_selvecs=x86_64_elf64_vec ++ ;; ++#ifdef BFD64 ++ x86_64-*-aleksa*) ++ targ_defvec=x86_64_elf64_vec ++ targ_selvecs=i386_elf32_vec ++ want64=true ++ ;; ++#endif + #ifdef BFD64 + aarch64-*-darwin*) + targ_defvec=aarch64_mach_o_vec +diff '--color=auto' -ruN ../binutils-2.37/config.sub ./binutils-2.37/config.sub +--- ../binutils-2.37/config.sub 2021-07-08 13:37:19.000000000 +0200 ++++ ./binutils-2.37/config.sub 2022-01-11 18:51:18.386212846 +0100 +@@ -1729,7 +1729,8 @@ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ +- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* \ ++ | aleksa*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) +diff '--color=auto' -ruN ../binutils-2.37/gas/configure.tgt binutils-2.37/gas/configure.tgt +--- ../binutils-2.37/gas/configure.tgt ./2021-07-08 13:37:19.000000000 +0200 ++++ ./binutils-2.37/gas/configure.tgt 2022-01-11 18:51:33.739545802 +0100 +@@ -123,6 +123,7 @@ + generic_target=${cpu_type}-$vendor-$os + # Note: This table is alpha-sorted, please try to keep it that way. + case ${generic_target} in ++ i386-*-aleksa*) fmt=elf ;; + aarch64*-*-elf*) fmt=elf;; + aarch64*-*-fuchsia*) fmt=elf;; + aarch64*-*-genode*) fmt=elf;; +diff '--color=auto' -ruN ../binutils-2.37/ld/configure.tgt ./binutils-2.37/ld/configure.tgt +--- ../binutils-2.37/ld/configure.tgt 2021-07-08 13:37:20.000000000 +0200 ++++ ./binutils-2.37/ld/configure.tgt 2022-01-11 18:51:48.049545452 +0100 +@@ -43,6 +43,15 @@ + # Please try to keep this table more or less in alphabetic order - it + # makes it much easier to lookup a specific archictecture. + case "${targ}" in ++i[3-7]86-*-aleksa*) ++ targ_emul=elf_i386_aleksa ++ targ_extra_emuls=elf_i386 ++ targ64_extra_emuls="elf_x86_64_aleksa elf_x86_64" ++ ;; ++x86_64-*-aleksa*) ++ targ_emul=elf_x86_64_aleksa ++ targ_extra_emuls="elf_i386_aleksa elf_x86_64 elf_i386" ++ ;; + aarch64_be-*-elf) targ_emul=aarch64elfb + targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" + ;; +diff '--color=auto' -ruN ../binutils-2.37/ld/emulparams/elf_i386_aleksa.sh ./binutils-2.37/ld/emulparams/elf_i386_aleksa.sh +--- ../binutils-2.37/ld/emulparams/elf_i386_aleksa.sh 1970-01-01 01:00:00.000000000 +0100 ++++ ./binutils-2.37/ld/emulparams/elf_i386_aleksa.sh 2022-01-11 18:50:49.516213552 +0100 +@@ -0,0 +1,3 @@ ++. ${srcdir}/emulparams/elf_i386.sh ++GENERATE_SHLIB_SCRIPT=yes ++GENERATE_PIE_SCRIPT=yes +diff '--color=auto' -ruN ../binutils-2.37/ld/emulparams/elf_x86_64_aleksa.sh ./binutils-2.37/ld/emulparams/elf_x86_64_aleksa.sh +--- ../binutils-2.37/ld/emulparams/elf_x86_64_aleksa.sh 1970-01-01 01:00:00.000000000 +0100 ++++ ./binutils-2.37/ld/emulparams/elf_x86_64_aleksa.sh 2022-01-11 18:50:49.516213552 +0100 +@@ -0,0 +1 @@ ++. ${srcdir}/emulparams/elf_x86_64.sh +diff '--color=auto' -ruN ../binutils-2.37/ld/Makefile.am ./binutils-2.37/ld/Makefile.am +--- ../binutils-2.37/ld/Makefile.am 2021-07-08 13:37:20.000000000 +0200 ++++ ./binutils-2.37/ld/Makefile.am 2022-01-11 18:50:49.516213552 +0100 +@@ -277,6 +277,7 @@ + eelf32xtensa.c \ + eelf32z80.c \ + eelf_i386.c \ ++ eelf_i386_aleksa.c \ + eelf_i386_be.c \ + eelf_i386_fbsd.c \ + eelf_i386_ldso.c \ +@@ -453,6 +454,7 @@ + eelf_k1om.c \ + eelf_k1om_fbsd.c \ + eelf_x86_64.c \ ++ eelf_x86_64_aleksa.c \ + eelf_x86_64_cloudabi.c \ + eelf_x86_64_fbsd.c \ + eelf_x86_64_sol2.c \ diff --git a/scripts/aleksa-gcc-11.2.0.diff b/scripts/aleksa-gcc-11.2.0.diff new file mode 100644 index 0000000..3373721 --- /dev/null +++ b/scripts/aleksa-gcc-11.2.0.diff @@ -0,0 +1,119 @@ +diff '--color=auto' -ruN ../../gcc-11.2.0/fixincludes/mkfixinc.sh ./gcc-11.2.0/fixincludes/mkfixinc.sh +--- ../../gcc-11.2.0/fixincludes/mkfixinc.sh 2021-07-28 08:55:06.644278372 +0200 ++++ ./gcc-11.2.0/fixincludes/mkfixinc.sh 2022-01-11 18:37:07.379567018 +0100 +@@ -11,6 +11,7 @@ + + # Check for special fix rules for particular targets + case $machine in ++ *-aleksa* | \ + i?86-*-cygwin* | \ + i?86-*-mingw32* | \ + x86_64-*-mingw32* | \ +diff '--color=auto' -ruN ../../gcc-11.2.0/gcc/config/aleksa.h ./gcc-11.2.0/gcc/config/aleksa.h +--- ../../gcc-11.2.0/gcc/config/aleksa.h 1970-01-01 01:00:00.000000000 +0100 ++++ ./gcc-11.2.0/gcc/config/aleksa.h 2022-01-11 18:31:15.382909005 +0100 +@@ -0,0 +1,28 @@ ++/* Useful if you wish to make target-specific GCC changes. */ ++#undef TARGET_ALEKSA ++#define TARGET_ALEKSA 1 ++ ++/* Default arguments you want when running your ++ i686-aleksa-gcc/x86_64-aleksa-gcc toolchain */ ++#undef LIB_SPEC ++#define LIB_SPEC "-lc" /* link against C standard library */ ++ ++/* Files that are linked before user code. ++ The %s tells GCC to look for these files in the library directory. */ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s" ++ ++/* Files that are linked after user code. */ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC "crtend.o%s crtn.o%s" ++ ++/* Additional predefined macros. */ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do { \ ++ builtin_define ("__aleksa__"); \ ++ builtin_define ("__unix__"); \ ++ builtin_assert ("system=aleksa"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=posix"); \ ++ } while(0); +diff '--color=auto' -ruN ../../gcc-11.2.0/gcc/config.gcc ./gcc-11.2.0/gcc/config.gcc +--- ../../gcc-11.2.0/gcc/config.gcc 2021-07-28 08:55:07.000283339 +0200 ++++ ./gcc-11.2.0/gcc/config.gcc 2022-01-11 18:30:02.532910796 +0100 +@@ -686,6 +686,12 @@ + + # Common parts for widely ported systems. + case ${target} in ++*-*-aleksa*) ++ gas=yes ++ gnu_ld=yes ++ default_use_cxa_atexit=yes ++ use_gcc_stdint=wrap ++ ;; + *-*-darwin*) + tmake_file="t-darwin " + tm_file="${tm_file} darwin.h" +@@ -1084,6 +1090,12 @@ + esac + + case ${target} in ++i[34567]86-*-aleksa*) ++ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h glibc-stdint.h i386/i386elf.h aleksa.h" ++ ;; ++x86_64-*-aleksa*) ++ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h glibc-stdint.h i386/i386elf.h i386/x86-64.h aleksa.h" ++ ;; + aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) + tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" + tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h" +diff '--color=auto' -ruN ../../gcc-11.2.0/libgcc/config.host ./gcc-11.2.0/libgcc/config.host +--- ../../gcc-11.2.0/libgcc/config.host 2021-07-28 08:55:08.752307785 +0200 ++++ ./gcc-11.2.0/libgcc/config.host 2022-01-11 18:33:33.522905613 +0100 +@@ -356,6 +356,14 @@ + esac + + case ${host} in ++i[34567]86-*-aleksa*) ++ extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o" ++ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ++ ;; ++x86_64-*-aleksa*) ++ extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o" ++ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ++ ;; + aarch64*-*-elf | aarch64*-*-rtems*) + extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o" + extra_parts="$extra_parts crtfastmath.o" +diff '--color=auto' -ruN ../../gcc-11.2.0/libstdc++-v3/crossconfig.m4 ./gcc-11.2.0/libstdc++-v3/crossconfig.m4 +--- ../../gcc-11.2.0/libstdc++-v3/crossconfig.m4 2021-07-28 08:55:09.228314429 +0200 ++++ ./gcc-11.2.0/libstdc++-v3/crossconfig.m4 2022-01-11 18:32:31.719573793 +0100 +@@ -5,6 +5,12 @@ + AC_DEFUN([GLIBCXX_CROSSCONFIG],[ + # Base decisions on target environment. + case "${host}" in ++ *-aleksa*) ++ GLIBCXX_CHECK_COMPILER_FEATURES ++ GLIBCXX_CHECK_LINKER_FEATURES ++ GLIBCXX_CHECK_MATH_SUPPORT ++ GLIBCXX_CHECK_STDLIB_SUPPORT ++ ;; + arm*-*-symbianelf*) + # This is a freestanding configuration; there is nothing to do here. + ;; +diff '--color=auto' -ruN ../../gcc-11.2.0/config.sub ./gcc-11.2.0/config.sub +--- ../../gcc-11.2.0/config.sub 2021-07-28 08:55:06.620278039 +0200 ++++ ./gcc-11.2.0/config.sub 2022-01-11 18:41:19.216227511 +0100 +@@ -1725,7 +1725,8 @@ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ +- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* \ ++ | aleksa*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) diff --git a/scripts/binutils_build.sh b/scripts/binutils_build.sh new file mode 100755 index 0000000..a969291 --- /dev/null +++ b/scripts/binutils_build.sh @@ -0,0 +1,14 @@ +#!/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 new file mode 100755 index 0000000..d70cb0e --- /dev/null +++ b/scripts/gcc_build.sh @@ -0,0 +1,13 @@ +#!/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/setup.sh b/scripts/setup.sh new file mode 100755 index 0000000..9145f9d --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +download() +{ + if [ ! -f "./binutils-2.37.tar.gz" ]; then + wget "https://ftp.gnu.org/gnu/binutils/binutils-2.37.tar.gz" + fi + + if [ ! -f "./gcc-11.2.0.tar.gz" ]; then + wget "https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz" + fi +} + +extract() +{ + if [ ! -d "./binutils-2.37" ]; then + tar xzvf "./binutils-2.37.tar.gz" + fi + + if [ ! -d "./gcc-11.2.0" ]; then + tar xzvf "./gcc-11.2.0.tar.gz" + fi +} + +patch_gnu() +{ + mkdir -p "./mine" + cd "./mine" || exit + + if [ ! -d "./binutils-2.37" ]; then + cp -r "../binutils-2.37" . + patch -p0 < "./scripts/aleksa-binutils-2.37.diff" + fi + + if [ ! -d "./gcc-11.2.0" ]; then + cp -r "../gcc-11.2.0" . + patch -p0 < "../scripts/aleksa-gcc-11.2.0.diff" + fi +} + +build() +{ + cd "./binutils-2.37" || exit + ../../../scripts/binutils_build.sh + cd .. || exit + + + cd "./binutils-2.37" || exit + ../../../scripts/gcc_build.sh + cd .. || exit +} + +main() +{ + download + extract + patch_gnu +# build +} + +main |
