This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] tile: support very large shared objects
> > csu/ is not enough. You also need to use the flag for all of *_nonshared.a
> > (.oS files). That too is code that's always statically linked into
> > applications.
>
> I did think about this. My conclusion was that since *_nonshared.a is
> linked last, it will always be at the end of the generated object, so jumps
> and calls will always be able to "reach" other things linked in from
> *_nonshared.a as well as the PLT, which immediately follows the text
> section. Thus, no need for large model. In practice this does appear to
> be the case. (And this large model code is noticeably slower than regular
> mode, and we've verified that it works at the customer with the actual
> large object this way, for what that's worth.)
There are many ways to arrive at a situation where these assumptions fall
down. In general, we try to keep things fully general-purpose and not bake
in presumptions of this nature about what users do in the range of valid
inputs. But since this is for a machine-specific, rarely-used option we'll
leave it up to you to decide about those tradeoffs.