Source: openjdk-10
Version: 10.0.1+10-3
Severity: normal
Tags: patch
User: debian-powe...@lists.debian.org
Usertags: powerpcspe

Hi!

The openjdk-10 (and 9 and 11) builds fail on powerpcspe with:

Compiling 2916 files for java.base
/bin/chmod -f ug+w 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/com/sun/java/util/jar/pack/intrinsic.properties
( /usr/lib/jvm/java-9-openjdk-powerpcspe/bin/java -Xms64M -Xmx1024M 
-XX:ThreadStackSize=768 -Duser.language=en -Duser.country=US -Xshare:auto 
--limit-modules 
java.base,jdk.zipfs,java.compiler.interim,jdk.compiler.interim,jdk.jdeps.interim,jdk.javadoc.interim
 --add-modules 
java.compiler.interim,jdk.compiler.interim,jdk.jdeps.interim,jdk.javadoc.interim
 --module-path /<<PKGBUILDDIR>>/build/buildtools/interim_modules --add-exports 
java.base/sun.reflect.annotation=jdk.compiler.interim --add-exports 
java.base/jdk.internal.util.jar=jdk.jdeps.interim --add-exports 
java.base/jdk.internal.misc=jdk.jdeps.interim -m 
jdk.compiler.interim/com.sun.tools.javac.Main -g -source 10 -target 10 
--doclint-format html5 -encoding ascii -XDignore.symbol.file=true -Xlint:all 
-Werror -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' 
-XDstringConcat=inline --module-source-path 
"/<<PKGBUILDDIR>>/build/support/gensrc/*:/<<PKGBUILDDIR>>/src/*/linux/classes:/<<PKGBUILDDIR>>/src/*/unix/classes:/<<PKGBUILDDIR>>/src/*/share/classes"
 --module-path "" --system none -implicit:none -classpath 
/<<PKGBUILDDIR>>/build/buildtools/depend -Xplugin:"depend 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_pubapi" -d 
/<<PKGBUILDDIR>>/build/jdk/modules -h 
/<<PKGBUILDDIR>>/build/support/headers.java.base.tmp 
@/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.tmp > 
>(/usr/bin/tee 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.log) 2> 
>(/usr/bin/tee 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.log >&2) || ( 
exitcode=$? && /bin/cp 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.log 
/<<PKGBUILDDIR>>/build/make-support/failure-logs/jdk_modules_java.base__the.java.base_batch.log
 && /bin/cp 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.cmdline 
/<<PKGBUILDDIR>>/build/make-support/failure-logs/jdk_modules_java.base__the.java.base_batch.cmdline
 && exit $exitcode ) ) && /bin/mv 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch.tmp 
/<<PKGBUILDDIR>>/build/jdk/modules/java.base/_the.java.base_batch
compiler/java/jar running ...
/<<PKGBUILDDIR>>/src/java.base/share/classes/java/lang/Float.java:95: error: 
floating point number too small
    public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
                                          ^
make[4]: Leaving directory '/<<PKGBUILDDIR>>/make/gensrc'
(cd /<<PKGBUILDDIR>>/make/gensrc/ && /usr/bin/make  -r -R -I 
/<<PKGBUILDDIR>>/make/common SPEC=/<<PKGBUILDDIR>>/build/spec.gmk 
MAKE_LOG_FLAGS=""  -f Gensrc-java.desktop.gmk -I/<<PKGBUILDDIR>>/make 
-I/<<PKGBUILDDIR>>/make/gensrc MODULE=java.desktop )
make[4]: Entering directory '/<<PKGBUILDDIR>>/make/gensrc'
DefineNativeToolchain TOOLCHAIN_DEFAULT  

This is akin to the issue that is addressed on alpha with the 
alpha-float-const.diff
patch. Looking at the source code in [1], the fix for alpha just uses a 
different
representation which calculates the float value instead of using a literal. 
Thus,
I think we can address the issue on powerpcspe by using the same hack here for
MIN_NORMAL which can be represented as Float.intBitsToFloat(0x1).

Attaching a debdiff.

Thanks,
Adrian

> [1] 
> http://hg.openjdk.java.net/jdk10/jdk10/jdk/file/777356696811/src/java.base/share/classes/java/lang/Float.java#l79

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
diff -Nru old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff
--- old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
1970-01-01 01:00:00.000000000 +0100
+++ new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
2018-05-01 15:37:59.734953846 +0200
@@ -0,0 +1,11 @@
+--- a/src/java.base/share/classes/java/lang/Float.java 2018-03-13 
17:46:28.000000000 +0100
++++ b/src/java.base/share/classes/java/lang/Float.java 2018-05-01 
15:35:55.626369726 +0200
+@@ -92,7 +92,7 @@
+      * hexadecimal floating-point literal {@code 0x0.000002P-126f}
+      * and also equal to {@code Float.intBitsToFloat(0x1)}.
+      */
+-    public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
++    public static final float MIN_VALUE = Float.intBitsToFloat(0x1);
+ 
+     /**
+      * Maximum exponent a finite {@code float} variable may have.  It
diff -Nru old/openjdk-10-10.0.1+10/debian/rules 
new/openjdk-10-10.0.1+10/debian/rules
--- old/openjdk-10-10.0.1+10/debian/rules       2018-04-21 05:09:19.000000000 
+0200
+++ new/openjdk-10-10.0.1+10/debian/rules       2018-05-01 15:39:25.882144101 
+0200
@@ -368,6 +368,11 @@
        alpha-float-const.diff
 endif
 
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpcspe))
+  COMMON_PATCHES += \
+       powerpcspe-float-const.diff
+endif
+
 ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
   COMMON_PATCHES += \
        kfreebsd-support-jdk.diff \
diff -Nru old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff
--- old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
1970-01-01 01:00:00.000000000 +0100
+++ new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
2018-05-01 15:37:59.734953846 +0200
@@ -0,0 +1,11 @@
+--- a/src/java.base/share/classes/java/lang/Float.java 2018-03-13 
17:46:28.000000000 +0100
++++ b/src/java.base/share/classes/java/lang/Float.java 2018-05-01 
15:35:55.626369726 +0200
+@@ -92,7 +92,7 @@
+      * hexadecimal floating-point literal {@code 0x0.000002P-126f}
+      * and also equal to {@code Float.intBitsToFloat(0x1)}.
+      */
+-    public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
++    public static final float MIN_VALUE = Float.intBitsToFloat(0x1);
+ 
+     /**
+      * Maximum exponent a finite {@code float} variable may have.  It
diff -Nru old/openjdk-10-10.0.1+10/debian/rules 
new/openjdk-10-10.0.1+10/debian/rules
--- old/openjdk-10-10.0.1+10/debian/rules       2018-04-21 05:09:19.000000000 
+0200
+++ new/openjdk-10-10.0.1+10/debian/rules       2018-05-01 15:39:25.882144101 
+0200
@@ -368,6 +368,11 @@
        alpha-float-const.diff
 endif
 
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpcspe))
+  COMMON_PATCHES += \
+       powerpcspe-float-const.diff
+endif
+
 ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
   COMMON_PATCHES += \
        kfreebsd-support-jdk.diff \
diff -Nru old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff
--- old/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
1970-01-01 01:00:00.000000000 +0100
+++ new/openjdk-10-10.0.1+10/debian/patches/powerpcspe-float-const.diff 
2018-05-01 15:37:59.734953846 +0200
@@ -0,0 +1,11 @@
+--- a/src/java.base/share/classes/java/lang/Float.java 2018-03-13 
17:46:28.000000000 +0100
++++ b/src/java.base/share/classes/java/lang/Float.java 2018-05-01 
15:35:55.626369726 +0200
+@@ -92,7 +92,7 @@
+      * hexadecimal floating-point literal {@code 0x0.000002P-126f}
+      * and also equal to {@code Float.intBitsToFloat(0x1)}.
+      */
+-    public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
++    public static final float MIN_VALUE = Float.intBitsToFloat(0x1);
+ 
+     /**
+      * Maximum exponent a finite {@code float} variable may have.  It
diff -Nru old/openjdk-10-10.0.1+10/debian/rules 
new/openjdk-10-10.0.1+10/debian/rules
--- old/openjdk-10-10.0.1+10/debian/rules       2018-04-21 05:09:19.000000000 
+0200
+++ new/openjdk-10-10.0.1+10/debian/rules       2018-05-01 15:39:25.882144101 
+0200
@@ -368,6 +368,11 @@
        alpha-float-const.diff
 endif
 
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpcspe))
+  COMMON_PATCHES += \
+       powerpcspe-float-const.diff
+endif
+
 ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
   COMMON_PATCHES += \
        kfreebsd-support-jdk.diff \

Reply via email to