Bug 442514
| Summary: | Build fails due to missing _LITTLE_ENDIAN definition in fdlibm.h | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Zhan, Yi <yi.zhan> | ||||
| Component: | java-1.6.0-openjdk | Assignee: | Thomas Fitzsimmons <fitzsim> | ||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | low | ||||||
| Version: | rawhide | CC: | gbenson, langel | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | ia64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2008-04-18 14:30:01 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 163350 | ||||||
| Attachments: |
|
||||||
Created attachment 302428 [details]
add _LITTLE_ENDIAN for ia64
Fix committed into icedtea6. Building new version into rawhide, should be in tomorrow. |
Description of problem: When trying to build java-1.6.0-openjdk on ia64, we got below error: java.lang.IllegalArgumentException: disparate values at sun.misc.FDBigInt.quoRemIteration(FloatingDecimal.java:2795) at sun.misc.FloatingDecimal.dtoa(FloatingDecimal.java:833) at sun.misc.FloatingDecimal.<init>(FloatingDecimal.java:460) Full log: http://ia64.koji.fedoraproject.org/koji/getfile?taskID=51511&name=build.log I looked into this issue and found that Math.floor() is used in FloatingDecimal.dtoa() to calculate decExp. And Math.floor() always returns 0 here, no matter what argument passed to it. The implemention of the floor function is in openjdk/jdk/src/share/native/java/lang/fdlibm/src/s_floor.c and the cause of the malfuntion is that the definition _LITTLE_ENDIAN is missing when including openjdk/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h. So the big endian macros such as __HI(x) was used instead of the little endian ones. Adding the definition of _LITTLE_ENDIAN in fdlibm.h for ia64 could fix the issue. A successful test build with this fix is at http://ia64.koji.fedoraproject.org/koji/taskinfo?taskID=60392. Version-Release number of selected component (if applicable): java-1.6.0-openjdk-1.6.0.0-0.0.8.b08.fc9 How reproducible: always Steps to Reproduce: The issue could be reproduced by rebuilding the srpm on ia64 or 1. make icedtea-against-ecj 2. used the just built javac to compile any .java file containing public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; 3. Actual results: # Running javac: /builddir/build/BUILD/icedtea6-1.1/bootstrap/jdk1.6.0/bin/java -Xmx896m -Xms896m -XX:-Inline -Xbootclasspath/p:/builddir/build/BUILD/ice\ dtea6-1.1/openjdk/control/build/linux-ia64/langtools/dist/bootstrap/lib/javac.jar -jar /builddir/build/BUILD/icedtea6-1.1/openjdk/contro\ l/build/linux-ia64/langtools/dist/bootstrap/lib/javac.jar -g -source 1.5 -target 5 -encoding ascii -Xbootclasspath:/builddir/build/BUILD\ /icedtea6-1.1/openjdk/control/build/linux-ia64/classes -sourcepath /builddir/build/BUILD/icedtea6-1.1/openjdk/control/build/linux-ia64/g\ ensrc:../../../src/solaris/classes:../../../src/share/classes -d /builddir/build/BUILD/icedtea6-1.1/openjdk/control/build/linux-ia64/cla\ sses @/builddir/build/BUILD/icedtea6-1.1/openjdk/control/build/linux-ia64/tmp/java/java.lang/java/.classes.list An exception has occurred in the compiler (1.6.0-internal_bootstrap). Please file a bug at the Java Developer Connection (http://java.su\ n.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report\ . Thank you. java.lang.IllegalArgumentException: disparate values at sun.misc.FDBigInt.quoRemIteration(FloatingDecimal.java:2795) at sun.misc.FloatingDecimal.dtoa(FloatingDecimal.java:833) at sun.misc.FloatingDecimal.<init>(FloatingDecimal.java:460) at sun.misc.FloatingDecimal.parseHexString(FloatingDecimal.java:2297) at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1064) at java.lang.Float.valueOf(Float.java:405) Expected results: Additional info: