--- 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