Re: [PATCH] C undefined behavior fix

Tom Rini
2002-01-03T01:17:34Z

On Thu, Jan 03, 2002 at 02:03:58AM +0100, jtv wrote:
> On Wed, Jan 02, 2002 at 05:29:35PM -0700, Tom Rini wrote:
>
> > > As far as I'm concerned the options are: fix RELOC;
> >
> > How?
>
> That's the EUR 64 * 10^6 question, isn't it? It's likely to cost some
> performance, but I suspect this would be the easiest solution.

I'm partial to Paul's' suggestion of redoing RELOC and friends in asm.

> > > obviate RELOC; use
> > > an appropriate gcc option if available (-fPIC might be it, -ffreestanding
> > > certainly isn't--see above);
> >
> > Maybe for 2.5. Too invasive for 2.4.x (initially at least).
>
> I'm not saying these are attractive or even feasible, just prioritizing
> the options I see. I'm sure I'll have forgotten some, but I'm convinced
> -ffreestanding isn't among them.

Well, Franz Sirl mentioned this before as a possible (or rather, why
aren't we doing it like this?), so maybe later someone will look into
this.

> Let's say RELOC also broke in other places, for the exact same reason but
> without (names familiar from) the standard library come into play. How
> would one recognize those cases? And once diagnosed, how to go about
> working around them? Even worse, what if gcc tries to help but still
> uses the stricter assumptions in some forgotten case?

Well, RELOC _always_ is doing funny arithmetic, and there's not much we
can do about it. At this point in the bootup we aren't running where
things think we are yet, and have to adjust things as such.

--
Tom Rini (TR1265)