[PATCH] Rework to minimize and eventually eliminate RTEMS use of bsp_specs

Amaan Cheval amaan.cheval at gmail.com
Fri Aug 10 15:57:26 UTC 2018


Haha, don't worry about it. It's really a non-blocker we can
absolutely handle after GSoC just as well. I just wanted to confirm in
case I'd missed something!

On Fri, Aug 10, 2018 at 6:55 PM, Joel Sherrill <joel at rtems.org> wrote:
> I am sorry. I will have to dig this up and commit it.
>
> I will try to do this before I leave about lunch.
>
> Looks like we both have work to do before the end of GSoC. :)
>
> --joel
>
> On Fri, Aug 10, 2018 at 6:11 AM, Amaan Cheval <amaan.cheval at gmail.com>
> wrote:
>>
>> Hey Joel!
>>
>> I'm not sure if this ever made it upstream - if it did, could you dig
>> the commit up?
>>
>> I'll leave the x86_64's bsp_specs empty and make the RSB backporting
>> patches accordingly. If not, no rush, we should just add a ticket or
>> something so as to not lose track of it entirely after GSoC ends.
>>
>> On Mon, Jul 9, 2018 at 10:30 AM, Amaan Cheval <amaan.cheval at gmail.com>
>> wrote:
>> > To make my previous email clearer, here's what I meant with the
>> > "minimal" GCC patch required (attached).
>> >
>> > To manually test, you can place gcc-STARTFILE_SPEC.patch in
>> > $RSB/rtems/patches/ and then "git apply rsb-startfile.diff" to the RSB
>> > repo. Then build GCC and confirm that "x86_64-rtems5-gcc -dumpspecs"
>> > includes crti and crtbegin in the startfile susbtitution.
>> >
>> > Let me know if we aim to have this GCC work done before merging the
>> > x86_64 BSP (see
>> > https://lists.rtems.org/pipermail/devel/2018-July/022388.html) so I
>> > can leave bsp_specs in or clear it out accordingly?
>> >
>> > For now, I'm going to leave it in.
>> >
>> > On Fri, Jul 6, 2018 at 10:46 AM, Amaan Cheval <amaan.cheval at gmail.com>
>> > wrote:
>> >> Hey, Joel!
>> >>
>> >> The x86_64 BSP currently uses an empty bsp_specs file contingent on
>> >> (at least the x86-64 parts of) this email thread's patch making it
>> >> upstream to GCC, and making their way into the RSB.
>> >>
>> >> 2 options:
>> >> - 1. Make the upstream GCC commit (at least the parts adding
>> >> rtemself64.h, editing config.gcc, and "#if 0"ing out
>> >> gcc/config/rtems.h)
>> >> - 2. Use a bsp_specs in the new BSP for the merge now, and empty it out
>> >> later
>> >>
>> >> I can test and send you an x86_64 specific patch for GCC if you'd
>> >> like. Or if you prefer to have all the work together, we can go with
>> >> #2.
>> >>
>> >> Let me know!
>> >>
>> >> On Sat, May 19, 2018 at 3:17 AM, Joel Sherrill <joel at rtems.org> wrote:
>> >>> Thanks. I will try to deal with this Monday.
>> >>>
>> >>> My specs patches are not ready to push to gcc so I need to focus on
>> >>> just the parts to make x86_64 right.
>> >>>
>> >>> On Fri, May 18, 2018 at 3:41 PM, Amaan Cheval <amaan.cheval at gmail.com>
>> >>> wrote:
>> >>>>
>> >>>> To be clear, I applied this patch (with my fixes) on the 7.3 release
>> >>>> through the RSB to test, not on GCC's master branch.
>> >>>>
>> >>>> > to add i386/rtemself64.h
>> >>>>
>> >>>> What you sent in this email thread adds rtemself64.h already. Do you
>> >>>> mean you'd like to split the commits up or something?
>> >>>>
>> >>>> The only changes I made on top of yours were:
>> >>>>
>> >>>> - Readd "rtems.h" to config.gcc
>> >>>> - Fix comments
>> >>>>
>> >>>> I've attached the patch file I used within the RSB here (sorry if you
>> >>>> meant a patch of _just_ the fixes I made on top of yours, this is
>> >>>> just
>> >>>> the cumulative diff I used to patch GCC 7.3 to test).
>> >>>>
>> >>>> Regards,
>> >>>>
>> >>>> On Fri, May 18, 2018 at 7:00 PM, Joel Sherrill <joel at rtems.org>
>> >>>> wrote:
>> >>>> >
>> >>>> >
>> >>>> >
>> >>>> > On Fri, May 18, 2018 at 1:38 AM, Amaan Cheval
>> >>>> > <amaan.cheval at gmail.com>
>> >>>> > wrote:
>> >>>> >>
>> >>>> >> I just compiled my local fixed copy (adding rtems.h back in) and
>> >>>> >> there's good news! With the patch, the x86_64 compile stub works
>> >>>> >> with
>> >>>> >> a blank bsp_specs file!
>> >>>> >
>> >>>> >
>> >>>> > Awesome!
>> >>>> >
>> >>>> > Can you send me your changes as a patch? I am thinking I need to
>> >>>> > make
>> >>>> > sure we agree on what the gcc master for x86_64-rtems looks like.
>> >>>> >
>> >>>> > Apparently I owe committing a patch to add i386/rtemself64.h since
>> >>>> > it is
>> >>>> > missing on the master. And the comment is wrong.  What else?
>> >>>> >
>> >>>> >> On Fri, May 18, 2018 at 12:59 AM, Amaan Cheval
>> >>>> >> <amaan.cheval at gmail.com>
>> >>>> >> wrote:
>> >>>> >> > Hey!
>> >>>> >> >
>> >>>> >> > Thanks so much for sharing this, it's quite useful to put your
>> >>>> >> > earlier
>> >>>> >> > email[1] about minimzing the bsp_specs in context.
>> >>>> >> >
>> >>>> >> > From looking ahead a bit without testing (still compiling), the
>> >>>> >> > patch
>> >>>> >> > may need an ENDFILE_SPEC definition as well for "crtend.o" (it
>> >>>> >> > defines
>> >>>> >> > __TMC_END__ which crtbegin.o has left undefined for eg.) and
>> >>>> >> > possibly
>> >>>> >> > "crtn.o", at least to eliminate the x86_64 port's bsp_specs
>> >>>> >> > entirely
>> >>>> >> > (see here[2]).
>> >>>> >>
>> >>>> >> Just noticed that ENDFILE_SPEC already includes crtend in
>> >>>> >> i386elf.h,
>> >>>> >> so there's no need for this change.
>> >>>> >>
>> >>>> >> >
>> >>>> >> > I've also left some comments inline below.
>> >>>> >> >
>> >>>> >> > +1 on upstreaming this into GCC (making sure it also backports
>> >>>> >> > to 7.3
>> >>>> >> > for simplicity, so we don't need to write a 7.3-specific patch
>> >>>> >> > for
>> >>>> >> > the
>> >>>> >> > RSB as well) with a few additons (at least for the x86_64
>> >>>> >> > target, to
>> >>>> >> > try to have an empty bsp_specs to begin with).
>> >>>> >> >
>> >>>> >> > [1] https://lists.rtems.org/pipermail/devel/2018-May/021430.html
>> >>>> >> > [2]
>> >>>> >> >
>> >>>> >> >
>> >>>> >> > https://github.com/AmaanC/rtems-gsoc18/blob/ac/daily-01-compile-stub/bsps/x86_64/amd64/start/bsp_specs
>> >>>> >> >
>> >>>> >> > On Wed, May 16, 2018 at 8:46 PM, Joel Sherrill <joel at rtems.org>
>> >>>> >> > wrote:
>> >>>> >> >> ---
>> >>>> >> >>  gcc/config.gcc                |  2 +-
>> >>>> >> >>  gcc/config/arm/rtems.h        |  4 ++++
>> >>>> >> >>  gcc/config/bfin/rtems.h       |  4 ++++
>> >>>> >> >>  gcc/config/i386/rtemself.h    |  6 +++++-
>> >>>> >> >>  gcc/config/i386/rtemself64.h  | 39
>> >>>> >> >> +++++++++++++++++++++++++++++++++++++++
>> >>>> >> >>  gcc/config/m68k/rtemself.h    |  4 ++++
>> >>>> >> >>  gcc/config/microblaze/rtems.h |  4 ++++
>> >>>> >> >>  gcc/config/mips/rtems.h       |  4 ++++
>> >>>> >> >>  gcc/config/moxie/rtems.h      |  4 ++++
>> >>>> >> >>  gcc/config/nios2/rtems.h      |  4 ++++
>> >>>> >> >>  gcc/config/riscv/rtems.h      |  4 ++++
>> >>>> >> >>  gcc/config/rs6000/rtems.h     |  5 +++++
>> >>>> >> >>  gcc/config/rtems.h            |  6 +++++-
>> >>>> >> >>  gcc/config/sh/rtems.h         |  4 ++++
>> >>>> >> >>  gcc/config/sh/rtemself.h      |  4 ++++
>> >>>> >> >>  gcc/config/sparc/rtemself.h   |  4 ++++
>> >>>> >> >>  gcc/config/v850/rtems.h       |  4 ++++
>> >>>> >> >>  17 files changed, 103 insertions(+), 3 deletions(-)
>> >>>> >> >>  create mode 100644 gcc/config/i386/rtemself64.h
>> >>>> >> >>
>> >>>> >> >> diff --git a/gcc/config.gcc b/gcc/config.gcc
>> >>>> >> >> index d509800..de27e5c 100644
>> >>>> >> >> --- a/gcc/config.gcc
>> >>>> >> >> +++ b/gcc/config.gcc
>> >>>> >> >> @@ -1499,7 +1499,7 @@ x86_64-*-elf*)
>> >>>> >> >>         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h
>> >>>> >> >> elfos.h
>> >>>> >> >> newlib-stdint.h i386/i386elf.h i386/x86-64.h"
>> >>>> >> >>         ;;
>> >>>> >> >>  x86_64-*-rtems*)
>> >>>> >> >> -       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h
>> >>>> >> >> elfos.h
>> >>>> >> >> newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h
>> >>>> >> >> rtems.h"
>> >>>> >> >> +       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h
>> >>>> >> >> elfos.h
>> >>>> >> >> newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself64.h"
>> >>>> >> >
>> >>>> >> > In rebasing with upstream, this commit must have silently
>> >>>> >> > mistakenly
>> >>>> >> > also dropped rtems.h (which my patch earlier added to support
>> >>>> >> > the
>> >>>> >> > -qrtems, -qnolinkcmds, etc. flags).
>> >>>> >> >
>> >>>> >> >>         ;;
>> >>>> >> >>  i[34567]86-*-rdos*)
>> >>>> >> >>      tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h
>> >>>> >> >> elfos.h
>> >>>> >> >> newlib-stdint.h i386/i386elf.h i386/rdos.h"
>> >>>> >> >> diff --git a/gcc/config/arm/rtems.h b/gcc/config/arm/rtems.h
>> >>>> >> >> index 1123f4a..e79ce90 100644
>> >>>> >> >> --- a/gcc/config/arm/rtems.h
>> >>>> >> >> +++ b/gcc/config/arm/rtems.h
>> >>>> >> >> @@ -34,3 +34,7 @@
>> >>>> >> >>      } while (0)
>> >>>> >> >>
>> >>>> >> >>  #define ARM_DEFAULT_SHORT_ENUMS false
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/bfin/rtems.h b/gcc/config/bfin/rtems.h
>> >>>> >> >> index 6a9a41f..28a69b9 100644
>> >>>> >> >> --- a/gcc/config/bfin/rtems.h
>> >>>> >> >> +++ b/gcc/config/bfin/rtems.h
>> >>>> >> >> @@ -31,3 +31,7 @@
>> >>>> >> >>        builtin_assert ("system=rtems");         \
>> >>>> >> >>      }                                          \
>> >>>> >> >>    while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/i386/rtemself.h
>> >>>> >> >> b/gcc/config/i386/rtemself.h
>> >>>> >> >> index 65e8dad..3a09354 100644
>> >>>> >> >> --- a/gcc/config/i386/rtemself.h
>> >>>> >> >> +++ b/gcc/config/i386/rtemself.h
>> >>>> >> >> @@ -1,4 +1,4 @@
>> >>>> >> >> -/* Definitions for rtems targeting an ix86 using ELF.
>> >>>> >> >> +/* Definitions for rtems targeting an x86_64 using ELF.
>> >>>> >> >
>> >>>> >> > I think you meant to have this comment in rtemself64.h, which
>> >>>> >> > says
>> >>>> >> > ix86 currently?
>> >>>> >> >
>> >>>> >> >>     Copyright (C) 1996-2018 Free Software Foundation, Inc.
>> >>>> >> >>     Contributed by Joel Sherrill (joel at OARcorp.com).
>> >>>> >> >>
>> >>>> >> >> @@ -33,3 +33,7 @@
>> >>>> >> >>         builtin_assert ("system=rtems");        \
>> >>>> >> >>      }                                          \
>> >>>> >> >>    while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/i386/rtemself64.h
>> >>>> >> >> b/gcc/config/i386/rtemself64.h
>> >>>> >> >> new file mode 100644
>> >>>> >> >> index 0000000..34e5937
>> >>>> >> >> --- /dev/null
>> >>>> >> >> +++ b/gcc/config/i386/rtemself64.h
>> >>>> >> >> @@ -0,0 +1,39 @@
>> >>>> >> >> +/* Definitions for rtems targeting an ix86 using ELF.
>> >>>> >> >
>> >>>> >> > See above.
>> >>>> >> >
>> >>>> >> >> +   Copyright (C) 1996-2018 Free Software Foundation, Inc.
>> >>>> >> >> +   Contributed by Joel Sherrill (joel at OARcorp.com).
>> >>>> >> >> +
>> >>>> >> >> +   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.
>> >>>> >> >> +
>> >>>> >> >> +   Under Section 7 of GPL version 3, you are granted
>> >>>> >> >> additional
>> >>>> >> >> +   permissions described in the GCC Runtime Library Exception,
>> >>>> >> >> version
>> >>>> >> >> +   3.1, as published by the Free Software Foundation.
>> >>>> >> >> +
>> >>>> >> >> +   You should have received a copy of the GNU General Public
>> >>>> >> >> License
>> >>>> >> >> and
>> >>>> >> >> +   a copy of the GCC Runtime Library Exception along with this
>> >>>> >> >> program;
>> >>>> >> >> +   see the files COPYING3 and COPYING.RUNTIME respectively.
>> >>>> >> >> If
>> >>>> >> >> not,
>> >>>> >> >> see
>> >>>> >> >> +   <http://www.gnu.org/licenses/>.  */
>> >>>> >> >> +
>> >>>> >> >> +/* Specify predefined symbols in preprocessor.  */
>> >>>> >> >> +
>> >>>> >> >> +#define TARGET_OS_CPP_BUILTINS()               \
>> >>>> >> >> +  do                                           \
>> >>>> >> >> +    {                                          \
>> >>>> >> >> +       builtin_define ("__rtems__");           \
>> >>>> >> >> +       builtin_define ("__USE_INIT_FINI__");   \
>> >>>> >> >> +       builtin_assert ("system=rtems");        \
>> >>>> >> >> +    }                                          \
>> >>>> >> >> +  while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/m68k/rtemself.h
>> >>>> >> >> b/gcc/config/m68k/rtemself.h
>> >>>> >> >> index e18a06e..6f31aa5 100644
>> >>>> >> >> --- a/gcc/config/m68k/rtemself.h
>> >>>> >> >> +++ b/gcc/config/m68k/rtemself.h
>> >>>> >> >> @@ -36,3 +36,7 @@
>> >>>> >> >>         builtin_assert ("system=rtems");        \
>> >>>> >> >>      }                                          \
>> >>>> >> >>    while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/microblaze/rtems.h
>> >>>> >> >> b/gcc/config/microblaze/rtems.h
>> >>>> >> >> index 5f23321..fc8914c 100644
>> >>>> >> >> --- a/gcc/config/microblaze/rtems.h
>> >>>> >> >> +++ b/gcc/config/microblaze/rtems.h
>> >>>> >> >> @@ -35,3 +35,7 @@
>> >>>> >> >>    %{mbig-endian:-EB --oformat=elf32-microblaze} \
>> >>>> >> >>    %{mlittle-endian:-EL --oformat=elf32-microblazeel} \
>> >>>> >> >>    %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0}"
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/mips/rtems.h b/gcc/config/mips/rtems.h
>> >>>> >> >> index 66e00bf..6e96853 100644
>> >>>> >> >> --- a/gcc/config/mips/rtems.h
>> >>>> >> >> +++ b/gcc/config/mips/rtems.h
>> >>>> >> >> @@ -37,3 +37,7 @@ do {                                  \
>> >>>> >> >>   */
>> >>>> >> >>  #undef MIPS_DEFAULT_GVALUE
>> >>>> >> >>  #define MIPS_DEFAULT_GVALUE 0
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/moxie/rtems.h
>> >>>> >> >> b/gcc/config/moxie/rtems.h
>> >>>> >> >> index bc28d6e..6c79063 100644
>> >>>> >> >> --- a/gcc/config/moxie/rtems.h
>> >>>> >> >> +++ b/gcc/config/moxie/rtems.h
>> >>>> >> >> @@ -38,3 +38,7 @@
>> >>>> >> >>  #undef PTRDIFF_TYPE
>> >>>> >> >>  #undef WCHAR_TYPE
>> >>>> >> >>  #undef WCHAR_TYPE_SIZE
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/nios2/rtems.h
>> >>>> >> >> b/gcc/config/nios2/rtems.h
>> >>>> >> >> index b4a6082..f6eedf6 100644
>> >>>> >> >> --- a/gcc/config/nios2/rtems.h
>> >>>> >> >> +++ b/gcc/config/nios2/rtems.h
>> >>>> >> >> @@ -37,3 +37,7 @@ do {                                    \
>> >>>> >> >>
>> >>>> >> >>     This is done so RTEMS targets have Thread Local Storage
>> >>>> >> >> like
>> >>>> >> >> Linux.
>> >>>> >> >> */
>> >>>> >> >>  #define TARGET_LINUX_ABI 1
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/riscv/rtems.h
>> >>>> >> >> b/gcc/config/riscv/rtems.h
>> >>>> >> >> index 231b6a0..a9d1e01 100644
>> >>>> >> >> --- a/gcc/config/riscv/rtems.h
>> >>>> >> >> +++ b/gcc/config/riscv/rtems.h
>> >>>> >> >> @@ -29,3 +29,7 @@
>> >>>> >> >>         builtin_define ("__USE_INIT_FINI__");   \
>> >>>> >> >>         builtin_assert ("system=rtems");        \
>> >>>> >> >>      } while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/rs6000/rtems.h
>> >>>> >> >> b/gcc/config/rs6000/rtems.h
>> >>>> >> >> index 54ddcb4..20a4ffa 100644
>> >>>> >> >> --- a/gcc/config/rs6000/rtems.h
>> >>>> >> >> +++ b/gcc/config/rs6000/rtems.h
>> >>>> >> >> @@ -72,6 +72,11 @@
>> >>>> >> >>      }                                                  \
>> >>>> >> >>    while (0)
>> >>>> >> >>
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} ecrti.o%s crtbegin.o%s}"
>> >>>> >> >> +
>> >>>> >> >>  /* Copy and paste from linux64.h and freebsd64.h */
>> >>>> >> >>  #undef RELOCATABLE_NEEDS_FIXUP
>> >>>> >> >>  #define RELOCATABLE_NEEDS_FIXUP \
>> >>>> >> >> diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h
>> >>>> >> >> index dcea95c..9a0619c 100644
>> >>>> >> >> --- a/gcc/config/rtems.h
>> >>>> >> >> +++ b/gcc/config/rtems.h
>> >>>> >> >> @@ -30,11 +30,15 @@
>> >>>> >> >>   * Dummy start/end specification to let linker work as
>> >>>> >> >>   * needed by autoconf scripts using this compiler.
>> >>>> >> >>   */
>> >>>> >> >> +#if 0
>> >>>> >> >>  #undef STARTFILE_SPEC
>> >>>> >> >> -#define STARTFILE_SPEC "crt0.o%s"
>> >>>> >> >> +#define STARTFILE_SPEC "%{!qrtems: crt0.o%s}"
>> >>>> >> >> +#endif
>> >>>> >> >>
>> >>>> >> >> +#if 0
>> >>>> >> >>  #undef ENDFILE_SPEC
>> >>>> >> >>  #define ENDFILE_SPEC   ""
>> >>>> >> >> +#endif
>> >>>> >> >>
>> >>>> >> >>  /*
>> >>>> >> >>   * Some targets do not set up LIB_SPECS, override it, here.
>> >>>> >> >> diff --git a/gcc/config/sh/rtems.h b/gcc/config/sh/rtems.h
>> >>>> >> >> index d2f2b2a..f699151 100644
>> >>>> >> >> --- a/gcc/config/sh/rtems.h
>> >>>> >> >> +++ b/gcc/config/sh/rtems.h
>> >>>> >> >> @@ -29,3 +29,7 @@
>> >>>> >> >>    builtin_define( "__rtems__" );               \
>> >>>> >> >>    builtin_assert( "system=rtems" );            \
>> >>>> >> >>  } while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/sh/rtemself.h
>> >>>> >> >> b/gcc/config/sh/rtemself.h
>> >>>> >> >> index 6a67b49..85f26b0 100644
>> >>>> >> >> --- a/gcc/config/sh/rtemself.h
>> >>>> >> >> +++ b/gcc/config/sh/rtemself.h
>> >>>> >> >> @@ -29,3 +29,7 @@
>> >>>> >> >>    builtin_define( "__rtems__" );               \
>> >>>> >> >>    builtin_assert( "system=rtems" );            \
>> >>>> >> >>  } while (0)
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/sparc/rtemself.h
>> >>>> >> >> b/gcc/config/sparc/rtemself.h
>> >>>> >> >> index e4b52d8..7c5bf43 100644
>> >>>> >> >> --- a/gcc/config/sparc/rtemself.h
>> >>>> >> >> +++ b/gcc/config/sparc/rtemself.h
>> >>>> >> >> @@ -38,3 +38,7 @@
>> >>>> >> >>
>> >>>> >> >>  /* Use the default */
>> >>>> >> >>  #undef LINK_GCC_C_SEQUENCE_SPEC
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> diff --git a/gcc/config/v850/rtems.h b/gcc/config/v850/rtems.h
>> >>>> >> >> index b20b2c3..1b56649 100644
>> >>>> >> >> --- a/gcc/config/v850/rtems.h
>> >>>> >> >> +++ b/gcc/config/v850/rtems.h
>> >>>> >> >> @@ -39,3 +39,7 @@
>> >>>> >> >>  %{!mv850es:%{!mv850e1:%{mv*:-mv%*}} \
>> >>>> >> >>  %{m8byte-align:-m8byte-align} \
>> >>>> >> >>  %{mgcc-abi:-mgcc-abi}}"
>> >>>> >> >> +
>> >>>> >> >> +#undef STARTFILE_SPEC
>> >>>> >> >> +#define STARTFILE_SPEC "\
>> >>>> >> >> +%{!nostdlib: %{!qrtems: crt0.o%s} crti.o%s crtbegin.o%s}"
>> >>>> >> >> --
>> >>>> >> >> 1.8.3.1
>> >>>> >> >>
>> >>>> >> >> _______________________________________________
>> >>>> >> >> devel mailing list
>> >>>> >> >> devel at rtems.org
>> >>>> >> >> http://lists.rtems.org/mailman/listinfo/devel
>> >>>> >
>> >>>> >
>> >>>
>> >>>
>
>



More information about the devel mailing list