
Dear Jeroen,
In message 1400532143.1985.57.camel@yellow you wrote:
I have no idea how the tool chain was configured here, and what the linker script might look like.
for what it is worth: aarch64-linux-gnu-gcc (Ubuntu/Linaro 4.8.1-10ubuntu7) 4.8.1 with its default linker script.
OK, now I know where it's coming from; did you look into this?
Maybe. This is with some (unknown here) specific set of compiler options and linker statements. This does not mean that the same or silimar code will be generated for U-Boot,
Could be, but the vexpress_aemv8a shows the same pattern. It has around 1688 of adrp instructions.
Probably with the same / similar compiler options?
I wondered about that. I could not find such a flag, nor did David think it exists.. [1]
You mean this statement:
We can not make gcc-aarch64 do not use adrp instruction when constructing address of label.
?
David, can you definitely confirm that there are no compiler / linker flags for relocatable code that might influence code generation / use of adrp here?
That depends on specific compiler options / linker settings, eventually?
Perhaps eventually. But for now it seems that also U-boot is forced to keep the relocation offset a multiple of 4k.
For aarch64, you mean? Because the tool chain and/or our current understanding how it generates code requires it, right?
Best regards,
Wolfgang Denk