---
 ChangeLog                |  6 ++++++
 MAINTAINERS              |  1 +
 configure                |  6 ++++++
 configure.ac             |  6 ++++++
 gcc/ChangeLog            |  6 ++++++
 gcc/config.gcc           | 11 +++++++++++
 gcc/config/arm/t-phoenix | 29 +++++++++++++++++++++++++++++
 gcc/config/phoenix.h     | 33 +++++++++++++++++++++++++++++++++
 libgcc/ChangeLog         |  4 ++++
 libgcc/config.host       |  7 +++++++
 10 files changed, 109 insertions(+)
 create mode 100644 gcc/config/arm/t-phoenix
 create mode 100644 gcc/config/phoenix.h

diff --git a/ChangeLog b/ChangeLog
index 8698133..2d25a91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-17  Jakub Sejdak  <jakub.sej...@phoesys.com>
+
+    * configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets.
+    * configure: Regenerated.
+       * MAINTAINERS (OS maintainers): Add myself.
+
 2016-05-16  Jakub Sejdak  <jakub.sej...@phoesys.com>
 
        * config.guess: Import version 2016-04-02 (newest).
diff --git a/MAINTAINERS b/MAINTAINERS
index c615168..1d22df6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -134,6 +134,7 @@ hpux                        Steve Ellcey            
<sell...@imgtec.com>
 solaris                        Rainer Orth             
<r...@cebitec.uni-bielefeld.de>
 netbsd                 Jason Thorpe            <thor...@netbsd.org>
 netbsd                 Krister Walfridsson     <krister.walfrids...@gmail.com>
+Phoenix-RTOS   Jakub Sejdak            <jakub.sej...@phoesys.com>
 sh-linux-gnu           Kaz Kojima              <kkoj...@gcc.gnu.org>
 RTEMS Ports            Joel Sherrill           <j...@oarcorp.com>
 RTEMS Ports            Ralf Corsepius          <ralf.corsep...@rtems.org>
diff --git a/configure b/configure
index ea63784..19451d2 100755
--- a/configure
+++ b/configure
@@ -3469,6 +3469,9 @@ case "${target}" in
   *-*-netware*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
+  *-*-phoenix*)
+    noconfigdirs="$noconfigdirs ${libgcj}"
+    ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
@@ -3725,6 +3728,9 @@ case "${target}" in
     ;;
   *-*-netware*)
     ;;
+  *-*-phoenix*)
+    noconfigdirs="$noconfigdirs target-libgloss"
+    ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs target-libgloss"
     # this is not caught below because this stanza matches earlier
diff --git a/configure.ac b/configure.ac
index 54558df..d965059 100644
--- a/configure.ac
+++ b/configure.ac
@@ -805,6 +805,9 @@ case "${target}" in
   *-*-netware*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
+  *-*-phoenix*)
+    noconfigdirs="$noconfigdirs ${libgcj}"
+    ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
@@ -1061,6 +1064,9 @@ case "${target}" in
     ;;
   *-*-netware*)
     ;;
+  *-*-phoenix*)
+    noconfigdirs="$noconfigdirs target-libgloss"
+    ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs target-libgloss"
     # this is not caught below because this stanza matches earlier
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c854a3e..0b1f96b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-17 Jakub Sejdak <jakub.sej...@phoesys.com>
+
+       * config.gcc: Add support for arm*-*-phoenix* targets.
+       * config/arm/t-phoenix: New.
+       * config/phoenix.h: New.
+
 2016-05-16  Wilco Dijkstra  <wdijk...@arm.com>
 
         * doc/invoke.texi (AArch64 Options): Various updates.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 51af122a..5470fa6 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' ;;
@@ -1099,6 +1104,12 @@ arm*-*-uclinux*eabi*)            # ARM ucLinux
        # The EABI requires the use of __cxa_atexit.
        default_use_cxa_atexit=yes
        ;;
+arm*-*-phoenix*)
+       tm_file="dbxelf.h 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..830d202
--- /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
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 91f968a..bcb4963 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-17 Jakub Sejdak <jakub.sej...@phoesys.com>
+
+       * config.host: Add suport for arm*-*-phoenix* targets.
+
 2016-05-10  Joel Sherrill <j...@rtems.org>
 
        PR libgcc/70720
diff --git a/libgcc/config.host b/libgcc/config.host
index 4fe3085..86318c6 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -404,6 +404,13 @@ arm*-*-uclinux*)           # ARM ucLinux
        unwind_header=config/arm/unwind-arm.h
        extra_parts="$extra_parts crti.o crtn.o"
        ;;
+arm*-*-phoenix*)
+       tmake_file="t-hardfp t-softfp arm/t-arm arm/t-elf arm/t-softfp 
arm/t-phoenix"
+       tmake_file="${tmake_file} arm/t-bpabi"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+       unwind_header=config/arm/unwind-arm.h
+       ;;
 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
        tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
        tm_file="$tm_file arm/bpabi-lib.h"
-- 
2.7.4

Reply via email to