From 98ccb3a2d41015b42d46d8b382decc755a003c3f Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Tue, 4 Jun 2024 13:41:11 -0400 Subject: project: Initial commit Signed-off-by: Ian Moffett --- builddeps/binutils.patch | 99 ++++++++++++++++++++++++++++++ builddeps/gcc.patch | 157 +++++++++++++++++++++++++++++++++++++++++++++++ builddeps/limine.cfg | 8 +++ 3 files changed, 264 insertions(+) create mode 100644 builddeps/binutils.patch create mode 100644 builddeps/gcc.patch create mode 100644 builddeps/limine.cfg (limited to 'builddeps') diff --git a/builddeps/binutils.patch b/builddeps/binutils.patch new file mode 100644 index 0000000..728d82f --- /dev/null +++ b/builddeps/binutils.patch @@ -0,0 +1,99 @@ +diff -ruN binutils-2.42-copy/bfd/config.bfd binutils-2.42/bfd/config.bfd +--- binutils-2.42-copy/bfd/config.bfd 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/bfd/config.bfd 2024-03-03 11:27:01.508232956 -0500 +@@ -665,6 +665,11 @@ + targ_selvecs= + targ64_selvecs=x86_64_elf64_vec + ;; ++ i[3-7]86-*-hyra*) ++ targ_defvec=i386_elf32_vec ++ targ_selvecs= ++ targ64_selvecs=x86_64_elf64_vec ++ ;; + #ifdef BFD64 + x86_64-*-cloudabi*) + targ_defvec=x86_64_elf64_cloudabi_vec +@@ -729,6 +734,11 @@ + targ_defvec=x86_64_elf64_vec + targ_selvecs=i386_elf32_vec + want64=true ++ ;; ++ x86_64-*-hyra*) ++ targ_defvec=x86_64_elf64_vec ++ targ_selvecs=i386_elf32_vec ++ want64=true + ;; + x86_64-*-gnu*) + targ_defvec=x86_64_elf64_vec +diff -ruN binutils-2.42-copy/config.sub binutils-2.42/config.sub +--- binutils-2.42-copy/config.sub 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/config.sub 2024-03-03 11:27:01.508232956 -0500 +@@ -1766,7 +1766,7 @@ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ +- | fiwix* | mlibc* | cos* | mbr* ) ++ | fiwix* | mlibc* | cos* | mbr* | hyra* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) +diff -ruN binutils-2.42-copy/gas/configure.tgt binutils-2.42/gas/configure.tgt +--- binutils-2.42-copy/gas/configure.tgt 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/gas/configure.tgt 2024-03-03 11:27:01.508232956 -0500 +@@ -229,6 +229,7 @@ + i386-*-beos*) fmt=elf ;; + i386-*-elfiamcu) fmt=elf arch=iamcu ;; + i386-*-elf*) fmt=elf ;; ++ i386-*-hyra*) fmt=elf em=gnu ;; + i386-*-fuchsia*) fmt=elf ;; + i386-*-haiku*) fmt=elf em=haiku ;; + i386-*-genode*) fmt=elf ;; +diff -ruN binutils-2.42-copy/gprofng/libcollector/configure.ac binutils-2.42/gprofng/libcollector/configure.ac +--- binutils-2.42-copy/gprofng/libcollector/configure.ac 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/gprofng/libcollector/configure.ac 2024-03-03 11:27:01.508232956 -0500 +@@ -18,7 +18,7 @@ + + m4_include([../../bfd/version.m4]) + AC_INIT([gprofng], BFD_VERSION) +-AC_CONFIG_MACRO_DIRS([../../config ../..]) ++#AC_CONFIG_MACRO_DIRS([../../config ../..]) + AC_CONFIG_AUX_DIR(../..) + AC_CANONICAL_TARGET + AM_INIT_AUTOMAKE +diff -ruN binutils-2.42-copy/ld/configure.tgt binutils-2.42/ld/configure.tgt +--- binutils-2.42-copy/ld/configure.tgt 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/ld/configure.tgt 2024-03-03 11:29:12.677328228 -0500 +@@ -384,6 +384,10 @@ + i[3-7]86-*-redox*) targ_emul=elf_i386 + targ_extra_emuls=elf_x86_64 + ;; ++i[3-7]86-*-hyra*) ++ targ_emul=elf_i386 ++ targ_extra_emuls=elf_x86_64 ++ ;; + i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2 + targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64" + targ_extra_libpath=$targ_extra_emuls +@@ -1023,6 +1027,10 @@ + x86_64-*-redox*) targ_emul=elf_x86_64 + targ_extra_emuls=elf_i386 + ;; ++x86_64-*-hyra*) ++ targ_emul=elf_x86_64 ++ targ_extra_emuls=elf_i386 ++ ;; + x86_64-*-solaris2*) targ_emul=elf_x86_64_sol2 + targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu" + targ_extra_libpath=$targ_extra_emuls +diff -ruN binutils-2.42-copy/libiberty/configure.ac binutils-2.42/libiberty/configure.ac +--- binutils-2.42-copy/libiberty/configure.ac 2024-01-28 19:00:00.000000000 -0500 ++++ binutils-2.42/libiberty/configure.ac 2024-03-03 11:27:01.508232956 -0500 +@@ -37,7 +37,7 @@ + libiberty_topdir="${srcdir}/.." + fi + AC_SUBST(libiberty_topdir) +-AC_CONFIG_AUX_DIR($libiberty_topdir) ++AC_CONFIG_AUX_DIR([.]) + + dnl Very limited version of automake's enable-maintainer-mode + diff --git a/builddeps/gcc.patch b/builddeps/gcc.patch new file mode 100644 index 0000000..d01c442 --- /dev/null +++ b/builddeps/gcc.patch @@ -0,0 +1,157 @@ +diff -ruN gcc-13.2.0-copy/config.sub gcc-13.2.0/config.sub +--- gcc-13.2.0-copy/config.sub 2024-03-03 11:35:31.049089458 -0500 ++++ gcc-13.2.0/config.sub 2024-03-03 11:43:08.078903300 -0500 +@@ -1749,7 +1749,7 @@ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ +- | fiwix* ) ++ | fiwix* | hyra* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) +diff -ruN gcc-13.2.0-copy/fixincludes/mkfixinc.sh gcc-13.2.0/fixincludes/mkfixinc.sh +--- gcc-13.2.0-copy/fixincludes/mkfixinc.sh 2024-03-03 11:35:30.112403110 -0500 ++++ gcc-13.2.0/fixincludes/mkfixinc.sh 2024-03-03 11:43:52.212764492 -0500 +@@ -20,6 +20,8 @@ + powerpcle-*-eabisim* | \ + powerpcle-*-eabi* | \ + *-*-vxworks7* | \ ++ *-hyra* | \ ++ *-*-hyra* | \ + *-musl* ) + # IF there is no include fixing, + # THEN create a no-op fixer and exit +diff -ruN gcc-13.2.0-copy/gcc/config/hyra.h gcc-13.2.0/gcc/config/hyra.h +--- gcc-13.2.0-copy/gcc/config/hyra.h 1969-12-31 19:00:00.000000000 -0500 ++++ gcc-13.2.0/gcc/config/hyra.h 2024-03-03 11:45:20.143810858 -0500 +@@ -0,0 +1,29 @@ ++#undef TARGET_HYRA ++#define TARGET_HYRA 1 ++ ++#undef LIB_SPEC ++#define LIB_SPEC "-lc" ++ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC "%{!shared:crt0.o%s} crti.o%s %{shared:crtbeginS.o%s;:crtbegin.o%s}" ++ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC "%{shared:crtendS.o%s;:crtend.o%s} crtn.o%s" ++ ++#define GNU_USER_LINK_EMULATION32 "elf_i386" ++#define GNU_USER_LINK_EMULATION64 "elf_x86_64" ++#define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" ++ ++#define GNU_USER_DYNAMIC_LINKER32 "/usr/lib/ld_i386.so" ++#define GNU_USER_DYNAMIC_LINKER64 "/usr/lib/ld.so" ++#define GNU_USER_DYNAMIC_LINKERX32 "/usr/lib/ld32.so" ++ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do { \ ++ builtin_define ("__hyra__"); \ ++ builtin_define ("__unix__"); \ ++ builtin_assert ("system=hyra"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=posix"); \ ++ } while (0); +diff -ruN gcc-13.2.0-copy/gcc/config.gcc gcc-13.2.0/gcc/config.gcc +--- gcc-13.2.0-copy/gcc/config.gcc 2024-03-03 11:35:31.552433364 -0500 ++++ gcc-13.2.0/gcc/config.gcc 2024-03-03 11:47:40.945471968 -0500 +@@ -843,6 +843,15 @@ + *-*-fuchsia*) + native_system_header_dir=/include + ;; ++*-*-hyra*) ++ extra_options="$extra_options gnu-user.opt" ++ gas=yes ++ gnu_ld=yes ++ default_use_cxa_atexit=yes ++ use_gcc_stdint=wrap ++ tmake_file="${tmake_file} t-slibgcc" ++ thread_file='posix' ++ ;; + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi) + extra_options="$extra_options gnu-user.opt" + gas=yes +@@ -2218,6 +2227,9 @@ + tmake_file="${tmake_file} i386/t-x86_64-elf" + tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h" + ;; ++x86_64-*-hyra*) ++ tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h hyra.h" ++ ;; + ia64*-*-elf*) + tm_file="${tm_file} elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h" + tmake_file="ia64/t-ia64" +diff -ruN gcc-13.2.0-copy/libgcc/config.host gcc-13.2.0/libgcc/config.host +--- gcc-13.2.0-copy/libgcc/config.host 2024-03-03 11:35:30.195738195 -0500 ++++ gcc-13.2.0/libgcc/config.host 2024-03-03 11:49:47.703619260 -0500 +@@ -281,6 +281,11 @@ + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia" + extra_parts="crtbegin.o crtend.o" + ;; ++*-*-hyra*) ++ extra_parts="$extra_parts crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ tmake_file="$tmake_file t-crtstuff-pic" ++ tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-libgcc-pic" ++ ;; + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi) + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" + extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" +@@ -715,6 +720,10 @@ + x86_64-*-fuchsia*) + tmake_file="$tmake_file t-libgcc-pic" + ;; ++x86_64-*-hyra*) ++ extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ++ tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" ++ ;; + i[34567]86-*-dragonfly*) + tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff" + md_unwind_header=i386/dragonfly-unwind.h +diff -ruN gcc-13.2.0-copy/libgcc/configure.ac gcc-13.2.0/libgcc/configure.ac +--- gcc-13.2.0-copy/libgcc/configure.ac 2024-03-03 11:35:30.195738195 -0500 ++++ gcc-13.2.0/libgcc/configure.ac 2024-03-03 11:50:05.950497937 -0500 +@@ -46,7 +46,7 @@ + libgcc_topdir="${srcdir}/.." + fi + AC_SUBST(libgcc_topdir) +-AC_CONFIG_AUX_DIR($libgcc_topdir) ++AC_CONFIG_AUX_DIR([.]) + AC_CONFIG_HEADER(auto-target.h:config.in) + + AC_ARG_ENABLE(shared, +diff -ruN gcc-13.2.0-copy/libiberty/configure.ac gcc-13.2.0/libiberty/configure.ac +--- gcc-13.2.0-copy/libiberty/configure.ac 2024-03-03 11:35:35.829189807 -0500 ++++ gcc-13.2.0/libiberty/configure.ac 2024-03-03 11:50:29.010765475 -0500 +@@ -37,7 +37,7 @@ + libiberty_topdir="${srcdir}/.." + fi + AC_SUBST(libiberty_topdir) +-AC_CONFIG_AUX_DIR($libiberty_topdir) ++AC_CONFIG_AUX_DIR([.]) + + dnl Very limited version of automake's enable-maintainer-mode + +diff -ruN gcc-13.2.0-copy/libstdc++-v3/crossconfig.m4 gcc-13.2.0/libstdc++-v3/crossconfig.m4 +--- gcc-13.2.0-copy/libstdc++-v3/crossconfig.m4 2024-03-03 11:35:30.979087987 -0500 ++++ gcc-13.2.0/libstdc++-v3/crossconfig.m4 2024-03-03 11:51:42.994954128 -0500 +@@ -140,6 +140,17 @@ + SECTION_FLAGS='-ffunction-sections -fdata-sections' + AC_SUBST(SECTION_FLAGS) + ;; ++*-hyra*) ++ GLIBCXX_CHECK_COMPILER_FEATURES ++ GLIBCXX_CHECK_LINKER_FEATURES ++ GLIBCXX_CHECK_MATH_SUPPORT ++ GLIBCXX_CHECK_STDLIB_SUPPORT ++ AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM) ++ AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1) ++ GCC_CHECK_TLS ++ AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) ++ AC_CHECK_FUNCS(timespec_get) ++ ;; + + *-hpux*) + SECTION_FLAGS='-ffunction-sections -fdata-sections' diff --git a/builddeps/limine.cfg b/builddeps/limine.cfg new file mode 100644 index 0000000..ec496b7 --- /dev/null +++ b/builddeps/limine.cfg @@ -0,0 +1,8 @@ +TIMEOUT=0 + +:Hyra + +PROTOCOL=limine +KERNEL_PATH=boot:///boot/hyra-kernel +MODULE_PATH=boot:///boot/initramfs.tar +EDITOR_ENABLED=no -- cgit v1.2.3