Re: broken local_t on i386

From: Alan Cox
Date: Mon Jun 12 2006 - 15:55:47 EST


Ar Llu, 2006-06-12 am 20:11 +0200, ysgrifennodd Andi Kleen:
> The segment register needs an offset. So you need the linker to generate
> the offset from the base of the per cpu segment somehow. At compile time the
> address is not known so it cannot be done then.

What happens if you put a section at zero and a section at non-fixed
address (aligned). In the asm macros you stick the variable in both,
using the zero based one for linker symbols and the non zero based one
for data, then discard the zero based one.

That used to work for old binutils which didn't care/spot if you were
discarding material you actually linked against. Not sure what todays
binutils does with it.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/