[U-Boot] armv8 relocation questions

Wolfgang Denk wd at denx.de
Mon May 19 23:05:09 CEST 2014


Dear Jeroen,

In message <1400532143.1985.57.camel at 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

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I'd rather be led to hell than managed to heaven.


More information about the U-Boot mailing list