Subject: Re: CVS commit: src/libexec/ld.elf_so/arch/powerpc
To: None <firstname.lastname@example.org, email@example.com>
From: Charles M. Hannum <firstname.lastname@example.org>
Date: 09/26/2005 14:33:52
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
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