On Wed, Apr 29, 2015 at 6:27 AM, Leif Lindholm leif.lindholm@linaro.org wrote:
On 29 April 2015 at 14:04, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
I have no issues with this patch, but I have a question: Can we assume that we never will need to have initialised data in the stub? If so, we should try to get that formally stated somewhere, or this will happen again.
Indeed. There was a similar issue with linux_banner, although that seems to have resolved itself.
Actually, when using 'hidden' visibility, there are no GOT related issues anymore since all global references will be PC relative. Only, Russell and his toolchain museum are never going to go for that :-(
The whole "don't use global data" thing was done to avoid having to do GOT fixups, and before the code sharing with ARM64. I do wonder about how well this will work in the long term when sharing code with x86/ARM64.
If not, I did something fairly ugly (but functional) when I came across this issue last time I looked at bringing the old code up to date; I added a __stubdata storage type qualifier that was empty on all other archs and created a .stubdata section for this variable on ARM.
Yes, I noticed that. My pov is that if we are going to support .data, we could just as well put it in .data and not abuse .piggydata for that.
Yeah, only the comment in the linker script looks very explicit and not very likely to change.
/ Leif