RFR: 8200245: Zero fails to build on linux-ia64 due to ia64-specific cruft

David Holmes david.holmes at oracle.com
Tue Mar 27 00:19:15 UTC 2018

Hi Adrian,

On 26/03/2018 11:55 PM, John Paul Adrian Glaubitz wrote:
> Hi!
> Zero currently fails to build from source on linux-ia64 due to some remaining
> ia64-specific cruft which was previously part of the native ia64 port. The

Everytime I think we already cleaned all this out I get reminded that we 
didn't :(

Your specific fix looks fine.

I'm unclear whether any of the other ia64 cruft pertains to the "native 
port" or to zero?


> error - shown here for jdk7u - is the same on all versions of OpenJDK after
> 7u:
> g++-6 -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DIA64 -DZERO_LIBARCH=\"ia64\" -DPRODUCT -I. -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/prims
> -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/precompiled
> -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/cpu/zero/vm -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/os_cpu/linux_zero/vm
> -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/os/linux/vm -I/<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/os/posix/vm -I../generated
> -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DDERIVATIVE_ID="\"IcedTea 2.6.12\"" -DDEB_MULTIARCH="\"ia64-linux-gnu\"" -DDISTRIBUTION_ID="\"Debian GNU/Linux unstable
> (sid), package 7u161-2.6.12-1\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_linux_zero
> -DTARGET_OS_ARCH_MODEL_linux_zero -DTARGET_COMPILER_gcc  -std=gnu++98 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden
> -fno-delete-null-pointer-checks -fno-lifetime-dse  -pipe -g -O2 -finline-functions -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -DINCLUDE_TRACE=1
> -Wpointer-arith -Wsign-compare -Wno-deprecated-declarations   -g -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -Wformat -Werror=format-security -Wdate-time
> -D_FORTIFY_SOURCE=2 -c -fpch-deps -MMD -MP -MF ../generated/dependencies/orderAccess.o.d -o orderAccess.o
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/runtime/orderAccess.cpp
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/runtime/os.cpp: In static member function 'static bool os::is_first_C_frame(frame*)':
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/runtime/os.cpp:1019:15: error: 'class Thread' has no member named 'register_stack_base'; did you mean
> 'set_stack_base'?
>         thread->register_stack_base() HPUX_ONLY(+ 0x0) LINUX_ONLY(+ 0x50)) {
>                 ^~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/src/share/vm/runtime/os.cpp:1019:37: error: expected ')' before 'HPUX_ONLY'
>         thread->register_stack_base() HPUX_ONLY(+ 0x0) LINUX_ONLY(+ 0x50)) {
>                                       ^~~~~~~~~
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/make/linux/makefiles/rules.make:150: recipe for target 'os.o' failed
> make[8]: *** [os.o] Error 1
> make[8]: *** Waiting for unfinished jobs....
> make[8]: Leaving directory '/<<PKGBUILDDIR>>/build/openjdk.build-boot/hotspot/outputdir/linux_ia64_zero/product'
> /<<PKGBUILDDIR>>/build/openjdk-boot/hotspot/make/linux/makefiles/top.make:119: recipe for target 'the_vm' failed
> make[7]: *** [the_vm] Error 2
> The referenced method register_stack_base() was part of the ia64-specific implementation
> of the Thread class which is no longer part of OpenJDK. Thus, the best way to fix this
> is just removing this remaining cruft. This fixes the Zero build on linux-ia64 for me.
> Please review the change in [1].
> Thanks,
> Adrian
>> [1] http://cr.openjdk.java.net/~glaubitz/8200245/webrev.00/

More information about the hotspot-dev mailing list