[RFC PATCH] Link the bootwrapper as a position-independent	executable
    Segher Boessenkool 
    segher at kernel.crashing.org
       
    Thu Aug  7 00:21:57 EST 2008
    
    
  
> 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
    
    
More information about the Linuxppc-dev
mailing list