← Back to team overview

openjdk team mailing list archive

Bug#736418: openjdk-7: FTBFS on mips and mipsel

 

Package: openjdk-7
Version: 7u51-2.4.4-1
Severity: serious
Tags: upstream patch
Justification: fails to build from source (but built successfully in the past)

openjdk-7 fails to build from source on mips and mipsel due to
unaligned access. This upload disabled the hotspot-mips-align.diff patch,
but only the first part of this patch has been merged upstream. The
later part concerning ffi is still needed.

The attached patch removes the part applied upstream from
hotspot-mips-align.diff and re-enable it in debian/rules. It should also
help the sparc build to go further.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: mipsel (mips64)

Kernel: Linux 3.2.0-4-5kc-malta
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
diff -Nru openjdk-7-7u51-2.4.4/debian/patches/hotspot-mips-align.diff openjdk-7-7u51-2.4.4/debian/patches/hotspot-mips-align.diff
--- openjdk-7-7u51-2.4.4/debian/patches/hotspot-mips-align.diff	2014-01-18 11:46:55.000000000 +0000
+++ openjdk-7-7u51-2.4.4/debian/patches/hotspot-mips-align.diff	2014-01-18 11:48:00.000000000 +0000
@@ -1,41 +1,3 @@
---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
-+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
-@@ -56,7 +56,16 @@
-     jlong   l;
-     jdouble d;
-     uint32_t      v[2];
--};
-+}
-+#ifndef _LP64
-+  /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit
-+     on a 32-bit CPU. Accesses to double values should be 64-bit aligned
-+     on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs,
-+     as it might also help GCC to select the best instruction on other
-+     CPUs. */
-+  __attribute__ ((packed, aligned (4)))
-+#endif
-+;
- 
- 
- typedef class BytecodeInterpreter* interpreterState;
-@@ -169,7 +178,16 @@
-     jlong   l;
-     jdouble d;
-     uint32_t      v[2];
--};
-+}
-+#ifndef _LP64
-+  /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit
-+     on a 32-bit CPU. Accesses to double values should be 64-bit aligned
-+     on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs,
-+     as it might also help GCC to select the best instruction on other
-+     CPUs. */
-+  __attribute__ ((packed, aligned (4)))
-+#endif
-+;
- 
- /*
-  * Generic 32-bit wide "Java slot" definition. This type occurs
 --- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
 +++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
 @@ -322,7 +322,7 @@
diff -Nru openjdk-7-7u51-2.4.4/debian/rules openjdk-7-7u51-2.4.4/debian/rules
--- openjdk-7-7u51-2.4.4/debian/rules	2014-01-18 11:46:55.000000000 +0000
+++ openjdk-7-7u51-2.4.4/debian/rules	2014-01-18 11:48:00.000000000 +0000
@@ -446,6 +446,7 @@
 	debian/patches/ppc64el.diff \
 	debian/patches/zero-x32.diff \
 	debian/patches/zero-sparc.diff \
+	debian/patches/hotspot-mips-align.diff \
 
 # FIXME CACAO update needed
 #ifeq ($(DEB_HOST_ARCH),armel)