[pcre-dev] [Bug 2787] New: Incorrect bitness detection for J…

Top Page

Reply to this message
Author: admin
Date:  
To: pcre-dev
Subject: [pcre-dev] [Bug 2787] New: Incorrect bitness detection for JIT on AIX with newer xlc compilers.
https://bugs.exim.org/show_bug.cgi?id=2787

            Bug ID: 2787
           Summary: Incorrect bitness detection for JIT on AIX with newer
                    xlc compilers.
           Product: PCRE
           Version: 10.37 (PCRE2)
          Hardware: Other
                OS: AIX
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Code
          Assignee: Philip.Hazel@???
          Reporter: osubboti@???
                CC: pcre-dev@???


The XL C compiler's _ARCH_* macros are based on the -qarch setting and
do not necessarily imply the object mode. In particular the _ARCH_PPC64
macro only indicates that the compiler is targeted to run on a Power
processor with 64-bit support. The __64BIT__ macro is needed to detect
that the compiler is actually in 64bit mode.

The fix is:

diff --git a/pcre2/sljit/sljitConfigInternal.h
b/pcre2/sljit/sljitConfigInternal.h
index f5703e8e7..baa260ec9 100644
--- a/pcre2/sljit/sljitConfigInternal.h
+++ b/pcre2/sljit/sljitConfigInternal.h
@@ -130,7 +130,7 @@
#endif
#elif defined (__aarch64__)
#define SLJIT_CONFIG_ARM_64 1
-#elif defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64) ||
(defined(_POWER) && defined(__64BIT__))
+#elif defined(__ppc64__) || defined(__powerpc64__) || (defined(_ARCH_PPC64) &&
defined(__64BIT__)) || (defined(_POWER) && defined(__64BIT__))
#define SLJIT_CONFIG_PPC_64 1
#elif defined(__ppc__) || defined(__powerpc__) || defined(_ARCH_PPC) ||
defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER)
#define SLJIT_CONFIG_PPC_32 1

--
You are receiving this mail because:
You are on the CC list for the bug.