On 2018-09-14 10:03, Robert Lichtenberger wrote:
I have tried to build a Windows 32-bit JDK-11. While I was successful in
building a 64-bit Windows JDK, the attempt for 32-bit failed:

Here's what I did:

$ bash configure --with-boot-jdk=/cygdrive/c/jdk-10.0.2
--disable-warnings-as-errors --with-target-bits=32
...

====================================================
The existing configuration has been successfully updated in
/cygdrive/c/jdk/jdk11/build/windows-x86-normal-server-release
using configure arguments '--with-boot-jdk=/cygdrive/c/jdk-10.0.2
--disable-warnings-as-errors --with-target-bits=32'.

Configuration summary:
* Debug level:    release
* HS debug level: product
* JVM variants:   server
* JVM features:   server: 'cds cmsgc compiler1 compiler2 epsilongc g1gc
jfr jni-check jvmti management nmt parallelgc serialgc services vm-structs'
* OpenJDK target: OS: windows, CPU architecture: x86, address length: 32
* Version string: 11-internal+0-adhoc.synedra.jdk11 (11-internal)

Tools summary:
* Environment:    cygwin version 2.10.0(0.325/5/3) (root at
/cygdrive/c/cygwin64)
* Boot JDK:       openjdk version "10.0.2" 2018-07-17  OpenJDK Runtime
Environment 18.3 (build 10.0.2+13)  OpenJDK 64-Bit Server VM 18.3 (build
10.0.2+13, mixed mode)   (at /cygdrive/c/jdk-10.0.2)
* Toolchain:      microsoft (Microsoft Visual Studio 2017)
* C Compiler:     Version 19.15.26729 (at
/cygdrive/c/progra~2/micros~1/2017/commun~1/vc/tools/msvc/1415~1.267/bin/hostx86/x86/cl)
* C++ Compiler:   Version 19.15.26729 (at
/cygdrive/c/progra~2/micros~1/2017/commun~1/vc/tools/msvc/1415~1.267/bin/hostx86/x86/cl)

Build performance summary:
* Cores to use:   2
* Memory limit:   16383 MB
...

$ time make CONF=windows-x86-normal-server-release all
Building target 'all' in configuration 'windows-x86-normal-server-release'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(229): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(250): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(289): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(312): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(333): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(372): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(437): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(470): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(506): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
c:/jdk/jdk11/src/hotspot/share/code/codeBlob.cpp(541): error C2956:
sized deallocation function 'operator delete(void*, size_t)' would be
chosen as placement deallocation function.
predefined C++ types (compiler internal)(44): note: see declaration of
'operator delete'
make[3]: *** [lib/CompileJvm.gmk:151:
/cygdrive/c/jdk/jdk11/build/windows-x86-normal-server-release/hotspot/variant-server/libjvm/objs/codeBlob.obj]
Error 1
make[2]: *** [make/Main.gmk:257: hotspot-server-libs] Error 2
make[2]: *** Waiting for unfinished jobs....

ERROR: Build failed for target 'all' in configuration
'windows-x86-normal-server-release' (exit code 2)

This is most likely due to some issue on new/delete operators works, which are undergoing changes in the language. That is, a code issue on hotspot.

I don't know why you are seeing this on windows-x86 though. https://msdn.microsoft.com/en-us/library/mt723604.aspx suggests that you can disable this check by -Zc:sizedDealloc-. Do this by "configure --with-extra-cxxflags=Zc:sizedDealloc-".

On a meta-level: Is a JDK for Windows 32-bit just built no longer or is
it completely abandoned as a platform?

Oracle is not building 32-bit Windows regularly, and I don't think anyone else is doing that. (Perhaps AdoptOpenJDK?) In such a scenario, the code quickly bit rots. There has been no decision as of yet to remove the code from the code base, but unless someone steps up to maintain the code base, it's unlikely to survive in the long term.

/Magnus

Reply via email to