RFR: JDK-8201536 configure fails compiler check due to bad -m32 flag
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Thu Apr 19 19:17:22 UTC 2018
This is intended to be a proper fix for the -m32/-m64 compiler flag on
unsupported platforms regression due to my previous flag refactoring.
Here's my analysis of the old code, from the bug report:
The old code set the -m<bits> flag in these cases:
if OS is solaris or aix,
or if OS_TYPE is unix and build_type is reduced
While this captures incorrect aspects of the situation, it has worked
without complaints. I think what it *really* tries to do is:
* We can only run reduced builds on platforms where we can set the
-m<bits> flag.
* xlc and sunstudio compilers needs to have -m<bits> (or -q<bits> in the
case of xlc) to function properly. I assume this also means it's always
supported for those compilers on the platforms we support there.
For clang/gcc, the flag applies to x86, sparc and ppc. Maybe we should
just set it on x86, but then again, it won't hurt to set it on all these
three architectures.
In theory, this means that reduced builds should be able to be supported
on all platforms that support sunstudio and xlc. However, these are,
afaik: solaris-sparcv9, solaris-x86_64, aix-ppc64, aix-s390x, where we
do not support a 32-bit variant anyway. I do not know if there is an
aix-x86 and aix-x86_64? If so, we should be able to do a reduced build
for aix-x86_64.
So in practice, reduced builds are supported only for clang/gcc on
x86_64. (And Windows, which uses a different mechanism.)
Bug: https://bugs.openjdk.java.net/browse/JDK-8201536
WebRev: http://cr.openjdk.java.net/~ihse/JDK-8201536-fix-m64-cflag/webrev.01
/Magnus
More information about the build-dev
mailing list