[PATCH] Add port for Phoenix-RTOS on ARM platform.

Jakub Sejdak jakub.sejdak@phoesys.com
Wed Jun 15 14:21:00 GMT 2016


Hello,

> First of all, do you or your employer have a copyright assignment
> to the FSF? The above link contains instructions on how to do that.
> It is a necessary prerequisite to accepting any non-small change.

Sorry for a late response, but it took me some time to fulfill
requirements mentioned above.
We (Phoenix Systems) now have a copyright assignment to the FSF.

> As described in https://gcc.gnu.org/svnwrite.html the contents of this file
> list the people with write access permissions as well as the maintainers of
> each
> gcc component. Maintainers are appointed by the GCC steering committee
> (CC'ed one of them who is also an arm port maintainer).
> So you should remove this hunk and apply it separately
> if the steering committee takes that decision.

It was not my intention to have a write access permission, just to let
others know, who should they contact in case of troubles.
What should I do then, to be appointed by GCC steering committee to be
maintainer of our OS port?

> The rest of the patch looks sane to me but you'd need to sort out the above
> before this can progress.

Since part of this patch should be removed, I will split it and send
again in separate email.

2016-05-19 10:59 GMT+02:00 Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>:
> Hi Jakub,
>
> For future reference, as per https://gcc.gnu.org/contribute.html the usual
> practice
> is to wait for a week or two before pinging a patch...
>
>
>
> On 17/05/16 09:42, Kuba Sejdak wrote:
>>
>> ---
>>   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.sejdak@phoesys.com>
>> +
>> +    * configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets.
>> +    * configure: Regenerated.
>> +       * MAINTAINERS (OS maintainers): Add myself.
>> +
>
>
> First of all, do you or your employer have a copyright assignment
> to the FSF? The above link contains instructions on how to do that.
> It is a necessary prerequisite to accepting any non-small change.
>
>>   2016-05-16  Jakub Sejdak  <jakub.sejdak@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
>> <sellcey@imgtec.com>
>>   solaris                       Rainer Orth
>> <ro@CeBiTec.Uni-Bielefeld.DE>
>>   netbsd                        Jason Thorpe
>> <thorpej@netbsd.org>
>>   netbsd                        Krister Walfridsson
>> <krister.walfridsson@gmail.com>
>> +Phoenix-RTOS   Jakub Sejdak            <jakub.sejdak@phoesys.com>
>>   sh-linux-gnu          Kaz Kojima              <kkojima@gcc.gnu.org>
>>   RTEMS Ports           Joel Sherrill           <joel@oarcorp.com>
>>   RTEMS Ports           Ralf Corsepius          <ralf.corsepius@rtems.org>
>
>
> As described in https://gcc.gnu.org/svnwrite.html the contents of this file
> list the people with write access permissions as well as the maintainers of
> each
> gcc component. Maintainers are appointed by the GCC steering committee
> (CC'ed one of them who is also an arm port maintainer).
> So you should remove this hunk and apply it separately
> if the steering committee takes that decision.
>
> The rest of the patch looks sane to me but you'd need to sort out the above
> before this can progress.
>
> Kyrill
>
>
>> 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.sejdak@phoesys.com>
>> +
>> +       * config.gcc: Add support for arm*-*-phoenix* targets.
>> +       * config/arm/t-phoenix: New.
>> +       * config/phoenix.h: New.
>> +
>>   2016-05-16  Wilco Dijkstra  <wdijkstr@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.sejdak@phoesys.com>
>> +
>> +       * config.host: Add suport for arm*-*-phoenix* targets.
>> +
>>   2016-05-10  Joel Sherrill <joel@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"
>
>



-- 
Jakub Sejdak
Software Engineer
Phoenix Systems (www.phoesys.com)
+48 608 050 163



More information about the Gcc-patches mailing list