openjdk team mailing list archive
-
openjdk team
-
Mailing list archive
-
Message #12400
Bug#864464: openjdk-9: Please drop armel from hotspot_archs
On 06/11/2017 10:16 PM, John Paul Adrian Glaubitz wrote:
> On 06/10/2017 10:24 AM, peter green wrote:
>> 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.
>
> I gave it a short (patches for disabling "bkpt" and "pld" attached), but ran into
> yet another problem with an unresolvable linker symbol:
Which is actually a known problem upstream, see [1], and fixed by the attached patch.
The JVM then fully builds without any problems, but then bails out with:
/home/glaubitz/openjdk-9/openjdk-9-9~b170/build/jdk/bin/java -Xms64M -Xmx1024M -XX:ThreadStackSize=768 -XX:+UseSerialGC -Xms32M -Xmx512M -XX:TieredStopAtLevel=1
-cp /home/glaubitz/openjdk-9/openjdk-9-9~b170/build/buildtools/tools_jigsaw_classes --add-exports java.base/jdk.internal.module=ALL-UNNAMED
build.tools.jigsaw.AddPackagesAttribute /home/glaubitz/openjdk-9/openjdk-9-9~b170/build/jdk
Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP
ExplodedImageOptimize.gmk:40: recipe for target '/home/glaubitz/openjdk-9/openjdk-9-9~b170/build/jdk/_packages_attribute.done' failed
make[4]: Leaving directory '/home/glaubitz/openjdk-9/openjdk-9-9~b170/src/make'
make[4]: *** [/home/glaubitz/openjdk-9/openjdk-9-9~b170/build/jdk/_packages_attribute.done] Error 1
make[3]: *** [exploded-image-optimize] Error 2
make/Main.gmk:356: recipe for target 'exploded-image-optimize' failed
make[3]: Leaving directory '/home/glaubitz/openjdk-9/openjdk-9-9~b170/src'
ERROR: Build failed for target 'images' in configuration '/home/glaubitz/openjdk-9/openjdk-9-9~b170/build' (exit code 2)
make[3]: Entering directory '/home/glaubitz/openjdk-9/openjdk-9-9~b170/src'
I can try to disable this particular check and see if that yields a working JVM.
Adrian
> [1] http://mail.openjdk.java.net/pipermail/aarch32-port-dev/2016-November/000610.html
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@xxxxxxxxxx
`. `' Freie Universitaet Berlin - glaubitz@xxxxxxxxxxxxxxxxxxx
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
--- a/hotspot/src/cpu/arm/vm/c1_LIRGenerator_arm.cpp~ 2017-05-11 15:11:42.000000000 +0300
+++ b/hotspot/src/cpu/arm/vm/c1_LIRGenerator_arm.cpp 2017-06-13 15:22:05.384000000 +0300
@@ -702,25 +702,25 @@
// __aeabi_XXXX_glibc: Imported code from glibc soft-fp bundle for calculation accuracy improvement. See CR 6757269.
case Bytecodes::_fadd:
- runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fadd_glibc);
+ runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fadd);
break;
case Bytecodes::_fmul:
runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fmul);
break;
case Bytecodes::_fsub:
- runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fsub_glibc);
+ runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fsub);
break;
case Bytecodes::_fdiv:
runtime_func = CAST_FROM_FN_PTR(address, __aeabi_fdiv);
break;
case Bytecodes::_dadd:
- runtime_func = CAST_FROM_FN_PTR(address, __aeabi_dadd_glibc);
+ runtime_func = CAST_FROM_FN_PTR(address, __aeabi_dadd);
break;
case Bytecodes::_dmul:
runtime_func = CAST_FROM_FN_PTR(address, __aeabi_dmul);
break;
case Bytecodes::_dsub:
- runtime_func = CAST_FROM_FN_PTR(address, __aeabi_dsub_glibc);
+ runtime_func = CAST_FROM_FN_PTR(address, __aeabi_dsub);
break;
case Bytecodes::_ddiv:
runtime_func = CAST_FROM_FN_PTR(address, __aeabi_ddiv);
--- a/hotspot/src/cpu/arm/vm/c1_Runtime1_arm.cpp~ 2017-05-11 15:11:42.000000000 +0300
+++ b/hotspot/src/cpu/arm/vm/c1_Runtime1_arm.cpp 2017-06-13 15:26:04.660000000 +0300
@@ -1178,15 +1178,15 @@
#define FUNCTION_CASE(a, f) \
if ((intptr_t)a == CAST_FROM_FN_PTR(intptr_t, f)) return #f
- FUNCTION_CASE(entry, __aeabi_fadd_glibc);
+ FUNCTION_CASE(entry, __aeabi_fadd);
FUNCTION_CASE(entry, __aeabi_fmul);
- FUNCTION_CASE(entry, __aeabi_fsub_glibc);
+ FUNCTION_CASE(entry, __aeabi_fsub);
FUNCTION_CASE(entry, __aeabi_fdiv);
- // __aeabi_XXXX_glibc: Imported code from glibc soft-fp bundle for calculation accuracy improvement. See CR 6757269.
- FUNCTION_CASE(entry, __aeabi_dadd_glibc);
+ // __aeabi_XXXX: Imported code from glibc soft-fp bundle for calculation accuracy improvement. See CR 6757269.
+ FUNCTION_CASE(entry, __aeabi_dadd);
FUNCTION_CASE(entry, __aeabi_dmul);
- FUNCTION_CASE(entry, __aeabi_dsub_glibc);
+ FUNCTION_CASE(entry, __aeabi_dsub);
FUNCTION_CASE(entry, __aeabi_ddiv);
FUNCTION_CASE(entry, __aeabi_f2d);
--- a/hotspot/src/cpu/arm/vm/assembler_arm_32.hpp~ 2017-05-11 12:11:42.000000000 +0000
+++ b/hotspot/src/cpu/arm/vm/assembler_arm_32.hpp 2017-06-13 14:05:01.609304494 +0000
@@ -1232,12 +1232,6 @@
extern int __aeabi_dcmpge(double, double);
extern int __aeabi_dcmpgt(double, double);
-// Imported code from glibc soft-fp bundle for
-// calculation accuracy improvement. See CR 6757269.
-extern double __aeabi_fadd_glibc(float, float);
-extern double __aeabi_fsub_glibc(float, float);
-extern double __aeabi_dadd_glibc(double, double);
-extern double __aeabi_dsub_glibc(double, double);
};
#endif // __SOFTFP__
--- a/hotspot/src/cpu/arm/vm/templateTable_arm.cpp~ 2017-05-11 12:11:42.000000000 +0000
+++ b/hotspot/src/cpu/arm/vm/templateTable_arm.cpp 2017-06-13 15:02:58.020857807 +0000
@@ -1712,8 +1712,8 @@
__ mov(R1, R0_tos);
__ pop_i(R0);
switch (op) {
- case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fadd_glibc), R0, R1); break;
- case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fsub_glibc), R0, R1); break;
+ case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fadd), R0, R1); break;
+ case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fsub), R0, R1); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fmul), R0, R1); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fdiv), R0, R1); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::frem), R0, R1); break;
@@ -1755,8 +1755,8 @@
__ pop_l(R0, R1);
switch (op) {
// __aeabi_XXXX_glibc: Imported code from glibc soft-fp bundle for calculation accuracy improvement. See CR 6757269.
- case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dadd_glibc), R0, R1, R2, R3); break;
- case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dsub_glibc), R0, R1, R2, R3); break;
+ case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dadd), R0, R1, R2, R3); break;
+ case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dsub), R0, R1, R2, R3); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dmul), R0, R1, R2, R3); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_ddiv), R0, R1, R2, R3); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::drem), R0, R1, R2, R3); break;
References