diff options
author | ksejdak <ksejdak@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-23 07:28:17 +0000 |
---|---|---|
committer | ksejdak <ksejdak@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-23 07:28:17 +0000 |
commit | 6de771845299d7eec6c11b5db59dec15d6749018 (patch) | |
tree | e34f5a5dcfee79d234a47983e2d089f9eccc71c3 | |
parent | 1d6aa005fc966cf66bb500ea4187dd2f578a223a (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config.gcc | 11 | ||||
-rw-r--r-- | gcc/config/arm/t-phoenix | 29 | ||||
-rw-r--r-- | gcc/config/phoenix.h | 33 |
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 |