[Buildroot] [arc-buildroot] Re: Conditional setup of TARGET_ABI
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Fri Nov 17 10:14:10 UTC 2017
Hi Claus,
On Fri, 2017-11-17 at 10:07 +0000, Claudiu Zissulescu wrote:
> Hello,
>
> >
> > >
> > > 2. Qt5WebKit [as well as all other libs and apps] uses functions from libgcc.
> > > In that case it's our __do_global_dtors_aux() which in its turn uses
> > another
> > >
> > > function called __st_r13_to_r15(). And from (1) we know that distance
> > > between them should be less than 16MiB. Now given libQt5WebKit is
> > much larger
> > >
> > > that means if the functions in question end-up placed closer to opposite
> > ends
> > >
> > > of libQtxxx they won't be reachable to each other... and that's what we
> > see here.
> >
> > What isn't clear to me is where are those two functions? One is in
> > crtbeginS.o, so it ends up linked into the program .text section, while
> > the other one is in libgcc, correct?
>
> Those functions are some helpers made to replace a normal context save/restore with a call to them. The main purpose is to get a better size figure.
> This technique is used when one builds a binary using -Os compiler option, otherwise, this technique will not be used but only on request.
>
> >
> > >
> > > Any thoughts?
>
> In my opinion the millicode option should be only used for bare metal applications. For Linux like systems where the size of a binary can be quite
> large, having this technique on, may lead to all kind of complications like the one in question. Thus, my suggestion is to fully disable this option
> for all our architectures in the toolchain. This also means you need to take no action at your side ;)
So your suggestion is to pass "-mno-millicode" option to our GCC for building everything, right?
That will effectively inline millicode stuff right in each and every function compiled by GCC, correct?
-Alexey
More information about the buildroot
mailing list