1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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'
|