quinn-os/gcc-10.2.0.diff
2020-12-28 13:48:26 +10:00

162 lines
6.0 KiB
Diff

diff -Naur a/config.sub b/config.sub
--- a/config.sub 2020-07-23 16:35:16.912379792 +1000
+++ b/config.sub 2020-12-28 13:39:57.638319504 +1000
@@ -1343,7 +1343,7 @@
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | kopensolaris* | plan9* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
+ | aos* | aros* | cloudabi* | sortix* | quinn* \
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| knetbsd* | mirbsd* | netbsd* \
diff -Naur a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh
--- a/fixincludes/mkfixinc.sh 2020-07-23 16:35:16.932380013 +1000
+++ b/fixincludes/mkfixinc.sh 2020-12-28 13:39:57.730315512 +1000
@@ -11,6 +11,7 @@
# Check for special fix rules for particular targets
case $machine in
+ *-quinn* | \
i?86-*-cygwin* | \
i?86-*-mingw32* | \
x86_64-*-mingw32* | \
diff -Naur a/gcc/config/quinn.h b/gcc/config/quinn.h
--- a/gcc/config/quinn.h 1970-01-01 10:00:00.000000000 +1000
+++ b/gcc/config/quinn.h 2020-12-28 13:39:57.730315512 +1000
@@ -0,0 +1,20 @@
+/* Useful if you wish to make target-specific gcc changes. */
+#undef TARGET_QUINN
+#define TARGET_QUINN 1
+
+/* Default arguments you want when running your
+ i686-myos-gcc/x86_64-myos-gcc toolchain */
+#define LIB_SPEC "-lc -lg -lm" /* link against C standard libraries */
+ /* modify this based on your needs */
+
+/* Additional predefined macros. */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do { \
+ builtin_define ("__quinn__"); \
+ builtin_define ("__unix__"); \
+ builtin_assert ("system=quinn"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=posix"); \
+ } while(0);
+
diff -Naur a/gcc/config/quinn-stdint.h b/gcc/config/quinn-stdint.h
--- a/gcc/config/quinn-stdint.h 1970-01-01 10:00:00.000000000 +1000
+++ b/gcc/config/quinn-stdint.h 2020-12-28 13:39:57.730315512 +1000
@@ -0,0 +1,55 @@
+/* Definitions for <stdint.h> types for NetBSD systems.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#define SIG_ATOMIC_TYPE "int"
+
+#define INT8_TYPE "signed char"
+#define INT16_TYPE "short int"
+#define INT32_TYPE "int"
+#define INT64_TYPE "long long int"
+#define UINT8_TYPE "unsigned char"
+#define UINT16_TYPE "short unsigned int"
+#define UINT32_TYPE "unsigned int"
+#define UINT64_TYPE "long long unsigned int"
+
+#define INT_LEAST8_TYPE INT8_TYPE
+#define INT_LEAST16_TYPE INT16_TYPE
+#define INT_LEAST32_TYPE INT32_TYPE
+#define INT_LEAST64_TYPE INT64_TYPE
+#define UINT_LEAST8_TYPE UINT8_TYPE
+#define UINT_LEAST16_TYPE UINT16_TYPE
+#define UINT_LEAST32_TYPE UINT32_TYPE
+#define UINT_LEAST64_TYPE UINT64_TYPE
+
+#define INT_FAST8_TYPE INT32_TYPE
+#define INT_FAST16_TYPE INT32_TYPE
+#define INT_FAST32_TYPE INT32_TYPE
+#define INT_FAST64_TYPE INT64_TYPE
+#define UINT_FAST8_TYPE UINT32_TYPE
+#define UINT_FAST16_TYPE UINT32_TYPE
+#define UINT_FAST32_TYPE UINT32_TYPE
+#define UINT_FAST64_TYPE UINT64_TYPE
+
+#define INTPTR_TYPE INT32_TYPE
+#define UINTPTR_TYPE UINT32_TYPE
diff -Naur a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc 2020-07-23 16:35:17.316384243 +1000
+++ b/gcc/config.gcc 2020-12-28 13:39:57.734315339 +1000
@@ -675,6 +675,11 @@
# Common parts for widely ported systems.
case ${target} in
+*-*-quinn*)
+ gas=yes
+ gnu_ld=yes
+ default_use_cxa_atexit=yes
+ ;;
*-*-darwin*)
tmake_file="t-darwin "
tm_file="${tm_file} darwin.h"
@@ -1033,6 +1038,8 @@
esac
case ${target} in
+i[34567]86-*-quinn*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h quinn.h quinn-stdint.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 -Naur a/libgcc/config.host b/libgcc/config.host
--- a/libgcc/config.host 2020-07-23 16:35:18.752400064 +1000
+++ b/libgcc/config.host 2020-12-28 13:45:49.991049522 +1000
@@ -737,6 +737,10 @@
;;
x86_64-*-openbsd*)
;;
+i[34567]86-*-quinn*)
+ extra_parts="$extra_parts crtbegin.o crtend.o"
+ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+ ;;
i[34567]86-*-linux*)
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"
diff -Naur a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
--- a/libstdc++-v3/crossconfig.m4 2020-07-23 16:35:19.188404867 +1000
+++ b/libstdc++-v3/crossconfig.m4 2020-12-28 13:39:57.754314471 +1000
@@ -5,6 +5,13 @@
AC_DEFUN([GLIBCXX_CROSSCONFIG],[
# Base decisions on target environment.
case "${host}" in
+ *-quinn*)
+ 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.
;;