Instead we now link the bootwrapper with -pie to get a position-
independent executable, and process the relocations in the dynamic
relocation section that the linker puts into the executable.
Hurray! Looks good, just a few nits...
+ bl .+4
+p_base: mflr r10 /* r10 now points to runtime addr of
p_base */
bl p_base instead?
+10: or. r8,r0,r9 /* skip relocation if we don't have both */
beq 3f
Either the code or the comment is wrong -- the code says "skip
relocation
if we don't have either".
+ cmpwi r0,22 /* R_PPC_RELATIVE */
+ bne 3f
It would be nice if there was some way to complain (at build time?)
if there are unhandled relocations present. Prevents a lot of headaches
when things go wrong (and they will ;-) )
4: dcbf r0,r9
icbi r0,r9
Fix these while you're at it? It's not r0, it's 0.
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .dynamic :
+ {
+ __dynamic_start = .;
+ *(.dynamic)
+ }
+ .hash : { *(.hash) }
+ .interp : { *(.interp) }
+ .rela.dyn : { *(.rela*) }
Do some of these sections need alignment?
Segher
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev