← Back to team overview

openjdk team mailing list archive

Bug#864464: openjdk-9: Please drop armel from hotspot_archs

 

On 09/06/17 00:52, John Paul Adrian Glaubitz wrote:
Source: openjdk-9
Version: 9~b170-2
Severity: normal
User: debian-arm@xxxxxxxxxxxxxxxx
Usertags: armel

Hello!

openjdk-9 currently fails to build from source on armel because
the ARM-specific code in the native Hotspot JVM uses instructions
like "bkpt" [1] and "pld" [2] which are only available on ARMv5
and newer while armel is equivalent to ARMv4T.

I have already looked into patching out some of the ARMv5 assembly
for armel and while getting rid of "bkpt" is a matter of not defining
BREAKPOINT as __asm__ volatile ("bkpt"),

--- a/hotspot/src/cpu/arm/vm/globalDefinitions_arm.hpp  2017-05-11 12:11:42.000000000 +0000
+++ b/hotspot/src/cpu/arm/vm/globalDefinitions_arm.hpp  2017-06-08 21:48:36.527377766 +0000
@@ -70,7 +70,7 @@
  #define C1_LIRGENERATOR_MD_HPP "c1_LIRGenerator_arm.hpp"
#ifdef TARGET_COMPILER_gcc
-#ifdef ARM32
+#if defined(ARM32) && defined(__ARM_FP)
  #undef BREAKPOINT
  #define BREAKPOINT __asm__ volatile ("bkpt")
  #endif

getting rid of "pld" wasn't that easy because it's part of a larger
assembly source. Thus, the only viable option is to drop armel
from the list hotspot_archs in debian/rules.
From some googling it seems that PLD is just a cache hint instruction, so afaict it should be ok just to ifdef it out when building for CPUs that don't support it.


Follow ups

References