From bfdd80d44c799dfd26e1489d5084137c9ca6d568 Mon Sep 17 00:00:00 2001 From: Jakub Sejdak Date: Thu, 23 Jun 2016 07:28:17 +0000 Subject: [PATCH] config.gcc: Add support for arm*-*-phoenix* targets. 2016-06-23 Jakub Sejdak * config.gcc: Add support for arm*-*-phoenix* targets. * config/arm/t-phoenix: New. * config/phoenix.h: New. From-SVN: r237728 --- 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 c9d1a1618067..81f1b4d8a55b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-06-23 Jakub Sejdak + + * config.gcc: Add support for arm*-*-phoenix* targets. + * config/arm/t-phoenix: New. + * config/phoenix.h: New. + 2016-06-23 Uros Bizjak H.J. Lu diff --git a/gcc/config.gcc b/gcc/config.gcc index 3fa9d5877a15..1f75f1787733 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 000000000000..d8818847f090 --- /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 +# . + +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 000000000000..9ffb958fc4aa --- /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 +. */ + +#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.39.2