diff --git a/src/audit.h b/src/audit.h index efe056a..eea60d8 100644 --- a/src/audit.h +++ b/src/audit.h @@ -59,12 +59,18 @@ # define La_regs La_ppc32_regs # define La_retval La_ppc32_retval # define int_retval lrv_r3 -#elif defined __powerpc__ && __WORDSIZE == 64 +#elif defined __powerpc__ && __WORDSIZE == 64 && _CALL_ELF != 2 # define pltenter la_ppc64_gnu_pltenter # define pltexit la_ppc64_gnu_pltexit # define La_regs La_ppc64_regs # define La_retval La_ppc64_retval # define int_retval lrv_r3 +#elif defined __powerpc__ && __WORDSIZE == 64 && _CALL_ELF == 2 +# define pltenter la_ppc64v2_gnu_pltenter +# define pltexit la_ppc64v2_gnu_pltexit +# define La_regs La_ppc64v2_regs +# define La_retval La_ppc64v2_retval +# define int_retval lrv_r3 #elif defined __sh__ # define pltenter la_sh_gnu_pltenter # define pltexit la_sh_gnu_pltexit diff --git a/src/stack.c b/src/stack.c index 3aa55d1..0d5c2ed 100644 --- a/src/stack.c +++ b/src/stack.c @@ -6,6 +6,13 @@ #include "config.h" +#if defined __powerpc__ +/* check the current stack pointer and check its boundaries */ +int lt_stack_framesize(struct lt_config_audit *cfg, La_regs *regs) +{ + return lt_sh(cfg, framesize); +} +#else static __thread void *stack_start = NULL; static __thread void *stack_end = NULL; @@ -124,3 +131,4 @@ int lt_stack_framesize(struct lt_config_audit *cfg, La_regs *regs) return framesize; } +#endif