summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorksejdak <ksejdak@138bc75d-0d04-0410-961f-82ee72b054a4>2016-06-23 07:28:17 +0000
committerksejdak <ksejdak@138bc75d-0d04-0410-961f-82ee72b054a4>2016-06-23 07:28:17 +0000
commit6de771845299d7eec6c11b5db59dec15d6749018 (patch)
treee34f5a5dcfee79d234a47983e2d089f9eccc71c3
parent1d6aa005fc966cf66bb500ea4187dd2f578a223a (diff)
downloadgcc-6de771845299d7eec6c11b5db59dec15d6749018.tar.gz
2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
* config.gcc: Add support for arm*-*-phoenix* targets. * config/arm/t-phoenix: New. * config/phoenix.h: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237728 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config.gcc11
-rw-r--r--gcc/config/arm/t-phoenix29
-rw-r--r--gcc/config/phoenix.h33
4 files changed, 79 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9d1a161806..81f1b4d8a55 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
+
+ * config.gcc: Add support for arm*-*-phoenix* targets.
+ * config/arm/t-phoenix: New.
+ * config/phoenix.h: New.
+
2016-06-23 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 3fa9d5877a1..1f75f178773 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -804,6 +804,11 @@ case ${target} in
;;
esac
;;
+*-*-phoenix*)
+ gas=yes
+ gnu_ld=yes
+ default_use_cxa_atexit=yes
+ ;;
*-*-rtems*)
case ${enable_threads} in
"" | yes | rtems) thread_file='rtems' ;;
@@ -1086,6 +1091,12 @@ arm*-*-uclinux*eabi*) # ARM ucLinux
# The EABI requires the use of __cxa_atexit.
default_use_cxa_atexit=yes
;;
+arm*-*-phoenix*)
+ tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
+ tm_file="${tm_file} newlib-stdint.h phoenix.h"
+ tm_file="${tm_file} arm/aout.h arm/arm.h"
+ tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
+ ;;
arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
case ${target} in
arm*eb-*-eabi*)
diff --git a/gcc/config/arm/t-phoenix b/gcc/config/arm/t-phoenix
new file mode 100644
index 00000000000..d8818847f09
--- /dev/null
+++ b/gcc/config/arm/t-phoenix
@@ -0,0 +1,29 @@
+# Copyright (C) 2016 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+MULTILIB_OPTIONS = marm/mthumb
+MULTILIB_DIRNAMES = arm thumb
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES =
+
+MULTILIB_OPTIONS += mfloat-abi=hard
+MULTILIB_DIRNAMES += fpu
+MULTILIB_MATCHES += mfloat-abi?hard=mhard-float
+
+MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
+MULTILIB_DIRNAMES += normal interwork
diff --git a/gcc/config/phoenix.h b/gcc/config/phoenix.h
new file mode 100644
index 00000000000..9ffb958fc4a
--- /dev/null
+++ b/gcc/config/phoenix.h
@@ -0,0 +1,33 @@
+/* Base configuration file for all Phoenix-RTOS targets.
+ Copyright (C) 2016 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.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do { \
+ builtin_define_std ("phoenix"); \
+ builtin_define_std ("unix"); \
+ builtin_assert ("system=phoenix"); \
+ builtin_assert ("system=unix"); \
+ } while(0);
+
+#define STD_LIB_SPEC "%{!shared:%{g*:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}}"
+
+/* This will prevent selecting 'unsigned long int' instead of 'unsigned int' as 'uint32_t' in stdint-newlib.h. */
+#undef STDINT_LONG32
+#define STDINT_LONG32 0