Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/libexec/ld.elf_so/arch/powerpc



On Monday 26 September 2005 05:45, Chuck Silvers wrote:
> Module Name:  src
> Committed By: chs
> Date:         Mon Sep 26 05:45:13 UTC 2005
>
> Modified Files:
>       src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c
>
> Log Message:
> fix two problems with icache invalidation of the PLT:
>  - restore revision 1.33, it was correct.

It took me a few minutes to refresh myself on what's going on here, but...

No, it is *not* correct.  Please take the time to understand the PLT format 
before messing with it.

On PPC, the PLT area is split into two sections: the first contains code, and 
is actually 8 or 16 bytes per entry; the second contains pointers, and does 
not need to be synced.  The 8 vs. 16 split happens if the PLT is larger than 
8192 entries.

I have to admit that I'm not completely sure if the "large PLT" support does 
the right arithmetic -- I never got clear documentation on the format -- but 
the basic deal of only flushing 8 (or 16) bytes is definitely correct, and 
should not have been changed.

Please revert it and add a comment for the next person who is going to screw 
it up.  I believe Matt Thomas is the one who clued me into this the first 
time around.



Home | Main Index | Thread Index | Old Index