/usr/src/UXP-PM28.5.0_Release/js/src/gc/Heap.h:935:1: error: static assertion failed: Ensure our ChunkBitmap actually covers all arenas.
146:24.72 static_assert(ArenaBitmapBytes * ArenasPerChunk == sizeof(ChunkBitmap),
146:24.72 ^~~~~~~~~~~~~
146:24.72 /usr/src/UXP-PM28.5.0_Release/js/src/gc/Heap.h:948:1: error: static assertion failed: If the chunk padding is larger than an arena, we should have one more arena.
146:24.72 static_assert(ChunkPadSize < BytesPerArenaWithHeader,
146:24.72 ^~~~~~~~~~~~~
146:24.72 /usr/src/UXP-PM28.5.0_Release/js/src/gc/Heap.h:960:41: error: size of array ‘padding’ is negative
146:24.72 uint8_t padding[ChunkPadSize];
146:24.72 ^
Thanks to git bisect I could track the bug down. The commit a2786c051173286c9d7ccee2c3c6a19c15966322 changed the file js/src/jstypes.h:
from
to)
-/* Additional GCC defines are when running on Solaris, AIX, and HPUX */
-# if defined(__x86_64__) || defined(__sparcv9) || \
- defined(__64BIT__) || defined(__LP64__)
-# define JS_64BIT
-# endif
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Sun Studio C/C++ */
-# if defined(__x86_64) || defined(__sparcv9)
#
in short: sparcv9 and LP64 were removed. For reasons I do not know under Linux/ppc64 LP64 is defined, and 64BIT is not.+# if defined(__x86_64__) || defined(__64BIT__)
# define JS_64BIT
# endif
Palemoon 28.5.0 compiles fine if the check for LP64 is added again.
# if defined(__x86_64__) || defined(__64BIT__) || defined(__LP64__)
Dear developers, please change this back in the official source code.
You may refer to this in the bug tracker as issue 1092: https://github.com/MoonchildProductions/UXP/issues/1092
Furthermore I would welcome a short enlightenment about LP64. What exactly does it mean?
Thank you very much.