> Since this is fine on RHEL I presume the problem is related to the solaris
> environment. It looks like there the _IP32 macro is not defined. I notice
> that the Sun/Oracle documentation at
> https://docs.oracle.com/cd/E19683-01/806-6543/chapter4-2/index.html says
> that this macro is used to say that the sizes of int, long, and pointer are
> all 32 bits. There is something strange about that macro though. Here is
Also, the Oracle docs don't take Clang into account. Clang will define
ILP32 under all 32-bit data models, and not just ILP32 data model on
x86_64 as the System V ABI spec calls out. That means the preprocessor
macro __ILP32__ bleeds into other platforms, like mipsel, armel and
aarch32. That's why we have to tie x86_64 into the tests.
I asked the LLVM devs about the unusual use of the macro definitions,
and how we should craft the test for Clang users. The LLVM devs are
very arrogant and their response was something like "nothing forbids
it so we do it". Keep in mind everyone else we tested does it
according to the System V spec, including Comeau, GCC, and ICC. Only
Clang gratuitously defines ILP32.
Here are some related docs and reading:
For completeness, GCC choking on it is a GCC bug (or an Oracle bug if
Oracle patches introduced it). But as I said earlier, if it breaks the
compile then we'll take it as our bug. We don't want users enduring
You received this message because you are subscribed to the "Crypto++ Users"
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
More information about Crypto++ and this group is available at
You received this message because you are subscribed to the Google Groups
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.