diff -Naur pcre-8.42-original/sljit/sljitConfigInternal.h pcre-8.42/sljit/sljitConfigInternal.h --- pcre-8.42-original/sljit/sljitConfigInternal.h 2018-03-13 16:15:23.000000000 +0000 +++ pcre-8.42/sljit/sljitConfigInternal.h 2018-09-13 01:16:46.640000000 +0000 @@ -530,7 +530,7 @@ #endif /* !SLJIT_FUNC */ #ifndef SLJIT_INDIRECT_CALL -#if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN)) \ +#if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && ((defined _CALL_ELF && _CALL_ELF == 1) || (!defined _CALL_ELF))) \ || ((defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) && defined _AIX) /* It seems certain ppc compilers use an indirect addressing for functions which makes things complicated. */ diff -Naur pcre-8.42-original/sljit/sljitNativePPC_common.c pcre-8.42/sljit/sljitNativePPC_common.c --- pcre-8.42-original/sljit/sljitNativePPC_common.c 2018-01-08 10:25:56.000000000 +0000 +++ pcre-8.42/sljit/sljitNativePPC_common.c 2018-09-13 01:21:00.360000000 +0000 @@ -42,7 +42,8 @@ #include <sys/cache.h> #endif -#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN) +#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN) \ + || (defined _CALL_ELF && _CALL_ELF == 2) #define SLJIT_PASS_ENTRY_ADDR_TO_CALL 1 #endif