This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 2/3][GCC-6] Backport support for arm*-*-phoenix* targets.


This patch is already in trunk. It adds no new features, just new arm-phoenix*
OS target to gcc config.
I have SVN write access, so only approval is needed. Is it OK for gcc-6 branch?

2016-07-22  Jakub Sejdak  <jakub.sejdak@phoesys.com>

   * config.gcc: Add support for arm*-*-phoenix* targets.
   * config/arm/t-phoenix: New.
   * config/phoenix.h: New.

---
 gcc/ChangeLog            |  6 ++++++
 gcc/config.gcc           | 11 +++++++++++
 gcc/config/arm/t-phoenix | 29 +++++++++++++++++++++++++++++
 gcc/config/phoenix.h     | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 79 insertions(+)
 create mode 100644 gcc/config/arm/t-phoenix
 create mode 100644 gcc/config/phoenix.h

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 262456a..0591a49 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-22  Jakub Sejdak  <jakub.sejdak@phoesys.com>
+
+	* config.gcc: Add support for arm*-*-phoenix* targets.
+	* config/arm/t-phoenix: New.
+	* config/phoenix.h: New.
+
 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
 
 	* tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 82cc9a9..cc0a175 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -815,6 +815,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' ;;
@@ -1097,6 +1102,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 0000000..d881884
--- /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 0000000..9ffb958
--- /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
-- 
2.7.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]