You're going to wait until the compiler generates incorrect
code for you after knowing that it *probably* will? Nice.
> I agree that this is much better. But do not understand what small
> relocs have to do with simple address arithmetic? You've always been
> right before: what am I missing?
"Small" variables may be positioned by the compiler such that
they are addressable via a 16-bit relocation from some GP register.
If that variable isn't actually located in the small data area,
then the 16-bit relocation may overflow, resulting in link errors.
So it isn't a matter of the arithmetic itself, but loading the
addresses with which to do the arithmetic.
By declaring the variable to be an array of unspecified size,
you're giving the compiler no information as to the size of the
variable, and so it cannot assume the variable is located in the
small data area.
r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/