mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-07-02 10:59:15 +00:00
chore: Fix build process
This commit is contained in:
157
tools/gcc.patch
Normal file
157
tools/gcc.patch
Normal file
@ -0,0 +1,157 @@
|
||||
diff --git a/config.sub b/config.sub
|
||||
index 38f3d037a78..e15a98ae991 100755
|
||||
--- a/config.sub
|
||||
+++ b/config.sub
|
||||
@@ -1749,7 +1749,7 @@ case $os in
|
||||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
||||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
|
||||
- | fiwix* )
|
||||
+ | fiwix* | fennix* )
|
||||
;;
|
||||
# This one is extra strict with allowed versions
|
||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||
index 95c91ee02be..2f3e3b006dd 100644
|
||||
--- a/gcc/config.gcc
|
||||
+++ b/gcc/config.gcc
|
||||
@@ -825,6 +825,14 @@ case ${target} in
|
||||
rust_target_objs="${rust_target_objs} dragonfly-rust.o"
|
||||
target_has_targetrustm=yes
|
||||
;;
|
||||
+*-*-fennix*)
|
||||
+ tmake_file="t-fennix "
|
||||
+ gas=yes
|
||||
+ gnu_ld=yes
|
||||
+ default_use_cxa_atexit=yes
|
||||
+ use_gcc_stdint=provide
|
||||
+ native_system_header_dir=/include
|
||||
+ ;;
|
||||
*-*-freebsd*)
|
||||
# This is the generic ELF configuration of FreeBSD. Later
|
||||
# machine-specific sections may refine and add to this
|
||||
@@ -1981,6 +1989,14 @@ x86_64-*-openbsd*)
|
||||
gas=yes
|
||||
gnu_ld=yes
|
||||
;;
|
||||
+i[34567]86-*-fennix*)
|
||||
+ tmake_file="${tmake_file} i386/t-fennix"
|
||||
+ tm_file="${tm_file} i386/unix.h i386/att.h elfos.h glibc-stdint.h i386/i386elf.h fennix.h"
|
||||
+ ;;
|
||||
+x86_64-*-fennix*)
|
||||
+ tmake_file="${tmake_file} i386/t-fennix"
|
||||
+ tm_file="${tm_file} i386/unix.h i386/att.h elfos.h glibc-stdint.h i386/i386elf.h i386/x86-64.h fennix.h"
|
||||
+ ;;
|
||||
i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
|
||||
# Intel 80386's running GNU/*
|
||||
# with ELF format using glibc 2
|
||||
diff --git a/gcc/config/fennix.h b/gcc/config/fennix.h
|
||||
new file mode 100644
|
||||
index 00000000000..3739abe7983
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/fennix.h
|
||||
@@ -0,0 +1,59 @@
|
||||
+
|
||||
+#undef TARGET_FENNIX
|
||||
+#define TARGET_FENNIX 1
|
||||
+
|
||||
+#undef LIB_SPEC
|
||||
+#define LIB_SPEC "-lc"
|
||||
+
|
||||
+#undef CPP_SPEC
|
||||
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
|
||||
+
|
||||
+#undef STARTFILE_SPEC
|
||||
+#define STARTFILE_SPEC \
|
||||
+ "crti.o%s \
|
||||
+ %{!shared: \
|
||||
+ %{!static: \
|
||||
+ crtbeginS.o%s Scrt1.o%s \
|
||||
+ } \
|
||||
+ } \
|
||||
+ %{static:crtbegin.o%s crt1.o%s}"
|
||||
+
|
||||
+#undef ENDFILE_SPEC
|
||||
+#define ENDFILE_SPEC \
|
||||
+ "crtn.o%s \
|
||||
+ %{!shared: \
|
||||
+ %{!static: \
|
||||
+ crtendS.o%s \
|
||||
+ } \
|
||||
+ } \
|
||||
+ %{static:crtend.o%s}"
|
||||
+
|
||||
+#undef STANDARD_STARTFILE_PREFIX
|
||||
+#define STANDARD_STARTFILE_PREFIX "/lib/"
|
||||
+
|
||||
+#undef LINK_SPEC
|
||||
+#define LINK_SPEC \
|
||||
+ "%{shared:-shared} \
|
||||
+ %{static:-static} \
|
||||
+ %{!shared: \
|
||||
+ %{!static: \
|
||||
+ %{rdynamic:-export-dynamic} \
|
||||
+ } \
|
||||
+ } \
|
||||
+ %{!static: \
|
||||
+ %{!dynamic-linker: \
|
||||
+ -dynamic-linker=/lib/ld.so \
|
||||
+ } \
|
||||
+ } \
|
||||
+ -z max-page-size=4096"
|
||||
+
|
||||
+#undef TARGET_OS_CPP_BUILTINS
|
||||
+#define TARGET_OS_CPP_BUILTINS() \
|
||||
+ do \
|
||||
+ { \
|
||||
+ builtin_define("__fennix__"); \
|
||||
+ builtin_define("__unix__"); \
|
||||
+ builtin_assert("system=fennix"); \
|
||||
+ builtin_assert("system=unix"); \
|
||||
+ builtin_assert("system=posix"); \
|
||||
+ } while (0);
|
||||
diff --git a/gcc/config/i386/t-fennix b/gcc/config/i386/t-fennix
|
||||
new file mode 100644
|
||||
index 00000000000..8223e63c0c9
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/i386/t-fennix
|
||||
@@ -0,0 +1,2 @@
|
||||
+MULTILIB_OPTIONS += mno-red-zone
|
||||
+MULTILIB_DIRNAMES += no-red-zone
|
||||
diff --git a/libgcc/config.host b/libgcc/config.host
|
||||
index e75a7af647f..12ecba7be60 100644
|
||||
--- a/libgcc/config.host
|
||||
+++ b/libgcc/config.host
|
||||
@@ -760,6 +760,14 @@ x86_64-*-dragonfly*)
|
||||
tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
|
||||
md_unwind_header=i386/dragonfly-unwind.h
|
||||
;;
|
||||
+i[34567]86-*-fennix*)
|
||||
+ extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
|
||||
+ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
|
||||
+ ;;
|
||||
+x86_64-*-fennix*)
|
||||
+ extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
|
||||
+ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
|
||||
+ ;;
|
||||
i[34567]86-*-freebsd*)
|
||||
tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
|
||||
md_unwind_header=i386/freebsd-unwind.h
|
||||
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
|
||||
index b3269cb88e0..de1f886b9a6 100644
|
||||
--- a/libstdc++-v3/crossconfig.m4
|
||||
+++ b/libstdc++-v3/crossconfig.m4
|
||||
@@ -88,6 +88,13 @@ case "${host}" in
|
||||
AC_DEFINE(HAVE_HYPOT)
|
||||
;;
|
||||
|
||||
+ *-fennix*)
|
||||
+ GLIBCXX_CHECK_COMPILER_FEATURES
|
||||
+ GLIBCXX_CHECK_LINKER_FEATURES
|
||||
+ GLIBCXX_CHECK_MATH_SUPPORT
|
||||
+ GLIBCXX_CHECK_STDLIB_SUPPORT
|
||||
+ ;;
|
||||
+
|
||||
*-freebsd*)
|
||||
SECTION_FLAGS='-ffunction-sections -fdata-sections'
|
||||
AC_SUBST(SECTION_FLAGS)
|
Reference in New Issue
Block a user