Fix getpc_test for PPC64v2 LE

This patch fix the PPC64 guard to get the function address for PPC64v2.
It removes the use of an indirection (to get the ODP text address),
since the PPCv2 does not have function descriptors.
This commit is contained in:
Adhemerval Zanella 2014-02-02 19:32:37 -02:00
parent fb76964876
commit 7495af7b7f
1 changed files with 4 additions and 2 deletions

View File

@ -99,14 +99,16 @@ int main(int argc, char** argv) {
char* expected = (char*)&RoutineCallingTheSignal;
char* actual = (char*)getpc_retval;
// For ia64, ppc64, and parisc64, the function pointer is actually
// For ia64, ppc64v1, and parisc64, the function pointer is actually
// a struct. For instance, ia64's dl-fptr.h:
// struct fdesc { /* An FDESC is a function descriptor. */
// ElfW(Addr) ip; /* code entry point */
// ElfW(Addr) gp; /* global pointer */
// };
// We want the code entry point.
#if defined(__ia64) || defined(__powerpc64__) // NOTE: ppc64 is UNTESTED
// NOTE: ppc64 ELFv2 (Little Endian) does not have function pointers
#if defined(__ia64) || \
(defined(__powerpc64__) && _CALL_ELF != 2)
expected = ((char**)expected)[0]; // this is "ip"
#endif