On 09/06/17 00:52, John Paul Adrian Glaubitz wrote:
Source: openjdk-9
Version: 9~b170-2
Severity: normal
User: [email protected]
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.

_______________________________________________
Mailing list: https://launchpad.net/~openjdk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openjdk
More help   : https://help.launchpad.net/ListHelp

Reply via email to