Message ID | 1361547650-18036-1-git-send-email-sebastian.huber@embedded-brains.de |
---|---|
State | New |
Headers | show |
I have no objections to this if the release managers agree. R. On 22/02/13 15:40, Sebastian Huber wrote: > 2013-02-22 Sebastian Huber <sebastian.huber@embedded-brains.de> > > * config.gcc (arm*-*-rtemself*): New. > (arm*-*-rtems*): Removed. > (arm*-*-eabi* | arm*-*-symbianelf*): Add (arm*-*-rtems*). > * config/arm/rtems-eabi.h: New file. > * config/arm/t-rtems-eabi: New file. > --- > gcc/config.gcc | 16 ++++++++++------ > gcc/config/arm/rtems-eabi.h | 29 +++++++++++++++++++++++++++++ > gcc/config/arm/t-rtems-eabi | 8 ++++++++ > 3 files changed, 47 insertions(+), 6 deletions(-) > create mode 100644 gcc/config/arm/rtems-eabi.h > create mode 100644 gcc/config/arm/t-rtems-eabi > > diff --git a/gcc/config.gcc b/gcc/config.gcc > index fdbe321..35d502b 100644 > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -870,7 +870,12 @@ arm*-*-ecos-elf) > tmake_file="arm/t-arm arm/t-arm-elf" > tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" > ;; > -arm*-*-eabi* | arm*-*-symbianelf* ) > +arm*-*-rtemself*) > + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" > + tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" > + tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" > + ;; > +arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) > # The BPABI long long divmod functions return a 128-bit value in > # registers r0-r3. Correctly modeling that requires the use of > # TImode. > @@ -885,6 +890,10 @@ arm*-*-eabi* | arm*-*-symbianelf* ) > tmake_file="${tmake_file} arm/t-bpabi" > use_gcc_stdint=wrap > ;; > + arm*-*-rtems*) > + tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h" > + tmake_file="${tmake_file} arm/t-bpabi t-rtems arm/t-rtems-eabi" > + ;; > arm*-*-symbianelf*) > tm_file="${tm_file} arm/symbian.h" > # We do not include t-bpabi for Symbian OS because the system > @@ -895,11 +904,6 @@ arm*-*-eabi* | arm*-*-symbianelf* ) > tm_file="${tm_file} arm/aout.h arm/arm.h" > tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" > ;; > -arm*-*-rtems*) > - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" > - tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" > - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" > - ;; > arm*-*-elf) > tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" > tmake_file="arm/t-arm arm/t-arm-elf" > diff --git a/gcc/config/arm/rtems-eabi.h b/gcc/config/arm/rtems-eabi.h > new file mode 100644 > index 0000000..ced98a9 > --- /dev/null > +++ b/gcc/config/arm/rtems-eabi.h > @@ -0,0 +1,29 @@ > +/* Definitions for RTEMS based ARM systems using EABI. > + Copyright (C) 2011 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/>. */ > + > +#define HAS_INIT_SECTION > + > +#undef TARGET_OS_CPP_BUILTINS > +#define TARGET_OS_CPP_BUILTINS() \ > + do { \ > + builtin_define ("__rtems__"); \ > + builtin_define ("__USE_INIT_FINI__"); \ > + builtin_assert ("system=rtems"); \ > + TARGET_BPABI_CPP_BUILTINS(); \ > + } while (0) > diff --git a/gcc/config/arm/t-rtems-eabi b/gcc/config/arm/t-rtems-eabi > new file mode 100644 > index 0000000..f0e714a > --- /dev/null > +++ b/gcc/config/arm/t-rtems-eabi > @@ -0,0 +1,8 @@ > +# Custom RTEMS EABI multilibs > + > +MULTILIB_OPTIONS = mthumb march=armv6-m/march=armv7/march=armv7-m > +MULTILIB_DIRNAMES = thumb armv6-m armv7 armv7-m > +MULTILIB_EXCEPTIONS = march=armv6-m march=armv7 march=armv7-m > +MULTILIB_MATCHES = > +MULTILIB_EXCLUSIONS = > +MULTILIB_OSDIRNAMES = >
diff --git a/gcc/config.gcc b/gcc/config.gcc index fdbe321..35d502b 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -870,7 +870,12 @@ arm*-*-ecos-elf) tmake_file="arm/t-arm arm/t-arm-elf" tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; -arm*-*-eabi* | arm*-*-symbianelf* ) +arm*-*-rtemself*) + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" + tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" + tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" + ;; +arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) # The BPABI long long divmod functions return a 128-bit value in # registers r0-r3. Correctly modeling that requires the use of # TImode. @@ -885,6 +890,10 @@ arm*-*-eabi* | arm*-*-symbianelf* ) tmake_file="${tmake_file} arm/t-bpabi" use_gcc_stdint=wrap ;; + arm*-*-rtems*) + tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h" + tmake_file="${tmake_file} arm/t-bpabi t-rtems arm/t-rtems-eabi" + ;; arm*-*-symbianelf*) tm_file="${tm_file} arm/symbian.h" # We do not include t-bpabi for Symbian OS because the system @@ -895,11 +904,6 @@ arm*-*-eabi* | arm*-*-symbianelf* ) tm_file="${tm_file} arm/aout.h arm/arm.h" tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; -arm*-*-rtems*) - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" - tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" - ;; arm*-*-elf) tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" tmake_file="arm/t-arm arm/t-arm-elf" diff --git a/gcc/config/arm/rtems-eabi.h b/gcc/config/arm/rtems-eabi.h new file mode 100644 index 0000000..ced98a9 --- /dev/null +++ b/gcc/config/arm/rtems-eabi.h @@ -0,0 +1,29 @@ +/* Definitions for RTEMS based ARM systems using EABI. + Copyright (C) 2011 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/>. */ + +#define HAS_INIT_SECTION + +#undef TARGET_OS_CPP_BUILTINS +#define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ + builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + TARGET_BPABI_CPP_BUILTINS(); \ + } while (0) diff --git a/gcc/config/arm/t-rtems-eabi b/gcc/config/arm/t-rtems-eabi new file mode 100644 index 0000000..f0e714a --- /dev/null +++ b/gcc/config/arm/t-rtems-eabi @@ -0,0 +1,8 @@ +# Custom RTEMS EABI multilibs + +MULTILIB_OPTIONS = mthumb march=armv6-m/march=armv7/march=armv7-m +MULTILIB_DIRNAMES = thumb armv6-m armv7 armv7-m +MULTILIB_EXCEPTIONS = march=armv6-m march=armv7 march=armv7-m +MULTILIB_MATCHES = +MULTILIB_EXCLUSIONS = +MULTILIB_OSDIRNAMES =