acadia/toolchain/patches/gcc/00-first.patch

144 lines
4.4 KiB
Diff

diff --git a/config.sub b/config.sub
index 38f3d037a..a6298ccb7 100755
--- a/config.sub
+++ b/config.sub
@@ -203,6 +203,10 @@ case $1 in
# Convert single-component short-hands not valid as part of
# multi-component configurations.
case $field1 in
+ acadia)
+ basic_machine=x86_64-pc
+ os=acadia
+ ;;
386bsd)
basic_machine=i386-pc
basic_os=bsd
@@ -1749,7 +1753,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
- | fiwix* )
+ | fiwix* | acadia* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
diff --git a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh
index df90720b7..ae12e48d1 100755
--- a/fixincludes/mkfixinc.sh
+++ b/fixincludes/mkfixinc.sh
@@ -11,6 +11,7 @@ target=fixinc.sh
# Check for special fix rules for particular targets
case $machine in
+ *-*-acadia* | \
i?86-*-cygwin* | \
i?86-*-mingw32* | \
x86_64-*-mingw32* | \
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6fd159448..e2fb4b52c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -690,6 +690,12 @@ x86_cpus="generic intel"
# Common parts for widely ported systems.
case ${target} in
+*-*-acadia*)
+ gas=yes
+ gnu_ld=yes
+ default_use_cxa_atexit=yes
+ use_gcc_stdint=provide
+ ;;
*-*-darwin*)
tmake_file="t-darwin "
tm_file="${tm_file} darwin.h"
@@ -1126,6 +1132,9 @@ case ${target} in
esac
case ${target} in
+x86_64-*-acadia*)
+ tm_file="${tm_file} i386/unix.h i386/att.h elfos.h glibc-stdint.h i386/i386elf.h i386/x86-64.h acadia.h"
+ ;;
aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
tm_file="${tm_file} elfos.h newlib-stdint.h"
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
diff --git a/gcc/config/acadia.h b/gcc/config/acadia.h
new file mode 100644
index 000000000..a5f58313d
--- /dev/null
+++ b/gcc/config/acadia.h
@@ -0,0 +1,25 @@
+#undef TARGET_ACADIA
+#define TARGET_ACADIA 1
+
+#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_ACADIA_CPP_BUILTINS
+#define TARGET_ACADIA_CPP_BUILTINS() \
+ do { \
+ builtin_define("__acadia__"); \
+ builtin_define("__unix__"); \
+ builtin_assert("system=acadia"); \
+ builtin_assert("system=unix"); \
+ builtin_assert("system=posix"); \
+ } while (0);
diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386
index b417c7f17..a30a64488 100644
--- a/gcc/config/i386/t-i386
+++ b/gcc/config/i386/t-i386
@@ -50,7 +50,11 @@ i386-options.o: $(srcdir)/config/i386/i386-options.cc
$(COMPILE) $<
$(POSTCOMPILE)
-i386-builtins.o: $(srcdir)/config/i386/i386-builtins.cc
+i386-common.o: $(srcdir)/common/config/i386/i386-common.cc
+ $(COMPILE) $<
+ $(POSTCOMPILE)
+
+i386-builtins.o: $(srcdir)/config/i386/i386-builtins.cc
$(COMPILE) $<
$(POSTCOMPILE)
diff --git a/libgcc/config.host b/libgcc/config.host
index b9975de90..bd766dfa0 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -368,6 +368,10 @@ i[34567]86-*-cygwin* | x86_64-*-cygwin*)
esac
case ${host} in
+x86_64-*-acadia*)
+ extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o"
+ tmake_file="$tmake_file i386/t-i386 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 --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
index b3269cb88..0d2c7b53c 100644
--- a/libstdc++-v3/crossconfig.m4
+++ b/libstdc++-v3/crossconfig.m4
@@ -9,6 +9,12 @@ case "${host}" in
# This is a freestanding configuration; there is nothing to do here.
;;
+ *-acadia*)
+ GLIBCXX_CHECK_COMPILER_FEATURES
+ GLIBCXX_CHECK_LINKER_FEATURES
+ GLIBCXX_CHECK_MATH_SUPPORT
+ GLIBCXX_CHECK_STDLIB_SUPPORT
+ ;;
avr*-*-*)
AC_DEFINE(HAVE_ACOSF)
AC_DEFINE(HAVE_ASINF)