This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [Arm] Remaining difference in crt0 code
- From: Alexander Fedotov <alfedotov at gmail dot com>
- To: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- Cc: Newlib <newlib at sourceware dot org>
- Date: Mon, 15 Apr 2019 13:17:08 +0300
- Subject: Re: [Arm] Remaining difference in crt0 code
- References: <CAN8C2CoYZcb1VHS1JmZ_5Bv5Q0=LUMBBE-ax7=Twvy=1qEL+0A@mail.gmail.com> <6c60f407-294e-2544-7eb4-a2af2d077c74@arm.com>
Ok, thanks.
On Mon, Apr 15, 2019 at 12:14 PM Richard Earnshaw (lists)
<Richard.Earnshaw@arm.com> wrote:
>
> On 12/04/2019 21:42, Alexander Fedotov wrote:
> > Hello Richard
> >
> > There is still some difference in crt0.S code in libgloss and libc
> > respectively. Could you help me figure out what version is correct so
> > we can get rid of this.
> >
>
> I don't think we can clean this up file at a time. Trying to do so will
> likely create inconsistencies in the sources as some files will be
> patched and others not.
>
> "git blame" and "git show" will be your friends here... For example,
> taking the first hunk:
>
> > Differences are following:
> >
> > --- newlib/libc/sys/arm/crt0.S 2019-04-12 23:28:32.237488800 +0300
> > +++ libgloss/arm/crt0.S 2019-04-12 23:28:32.237488800 +0300
> > @@ -79,6 +79,19 @@
> > .fnstart
> > #endif
> >
> > + /* __ARM_ARCH_PROFILE is defined from GCC 4.8 onwards, however
> > __ARM_ARCH_7A
> > + has been defined since 4.2 onwards, which is when v7-a support was added
> > + and hence 'A' profile support was added in the compiler. Allow for this
> > + file to be built with older compilers. We only call this for A profile
> > + cores. */
> > +#if defined (__ARM_ARCH_7A__) || (__ARM_ARCH_PROFILE == 'A')
> > +/* The init hook does not use the stack and is called before the
> > stack has been set up. */
> > +#ifdef ARM_RDI_MONITOR
> > + bl _rdimon_hw_init_hook
> > + .weak FUNCTION (_rdimon_hw_init_hook)
> > +#endif
> > +#endif
> > +
>
> "git blame" shows that this hunk is derived from two commits 99be2bc4ff
> and then shortly afterwards 639951dda7. "git show" can then be used to
> view these individual patches and you can also use the date information
> to identify the post to the newlib mailing list, which may contain
> additional information about the patch.
>
> Unwinding all of this is going to be a bit tedious, I fear, so I really
> appreciate any assistance you can give.
>
> R.