Bug 1307224 - latest OpenJDK8 is FTBFS on aarch64 rawhide
Summary: latest OpenJDK8 is FTBFS on aarch64 rawhide
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: java-1.8.0-openjdk
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Andrew Haley
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ARM64, F-ExcludeArch-aarch64
TreeView+ depends on / blocked
 
Reported: 2016-02-13 10:57 UTC by Peter Robinson
Modified: 2016-02-18 08:44 UTC (History)
9 users (show)

Fixed In Version: java-1.8.0-openjdk-1.8.0.72-6.b15.fc24
Clone Of:
Environment:
Last Closed: 2016-02-18 08:44:41 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Remove unneeded template from aarch64 sources (2.96 KB, patch)
2016-02-15 11:53 UTC, Severin Gehwolf
no flags Details | Diff
Updated spec file patch fixing FTBFS (3.63 KB, patch)
2016-02-16 10:03 UTC, Severin Gehwolf
no flags Details | Diff

Description Peter Robinson 2016-02-13 10:57:35 UTC
The build java-1.8.0-openjdk-1.8.0.72-5.b15.fc24 (latest fixed on rawhide post gcc6 mass rebuild) is FTBFS on aarch64

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3385824


/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make/linux/makefiles/rules.make:149: Building signature.o  (from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/signature.cpp) (/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/signature.cpp  newer)
/usr/bin/g++ -DLINUX -D_GNU_SOURCE -DAARCH64 -DPRODUCT -I. -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/prims -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/precompiled -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os_cpu/linux_aarch64/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os/linux/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"25.72-b15\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"mockbuild\"" -DHOTSPOT_LIB_ARCH=\"aarch64\" -DHOTSPOT_VM_DISTRO="\"OpenJDK\""  -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_aarch64 -DTARGET_ARCH_MODEL_aarch64 -DTARGET_OS_ARCH_linux_aarch64 -DTARGET_OS_ARCH_MODEL_linux_aarch64 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden  -pipe -fno-strict-aliasing  -g -fno-omit-frame-pointer -O3  -DVM_LITTLE_ENDIAN -Werror -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value   -fstack-protector-strong -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-guess-branch-probability -DDTRACE_ENABLED -c -MMD -MP -MF ../generated/dependencies/signature.o.d -fpch-deps -o signature.o /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/signature.cpp 
+ /usr/bin/g++ -DLINUX -D_GNU_SOURCE -DAARCH64 -DPRODUCT -I. -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/prims -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/precompiled -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os_cpu/linux_aarch64/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os/linux/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/os/posix/vm -I../generated '-DHOTSPOT_RELEASE_VERSION="25.72-b15"' '-DHOTSPOT_BUILD_TARGET="product"' '-DHOTSPOT_BUILD_USER="mockbuild"' '-DHOTSPOT_LIB_ARCH="aarch64"' '-DHOTSPOT_VM_DISTRO="OpenJDK"' -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_aarch64 -DTARGET_ARCH_MODEL_aarch64 -DTARGET_OS_ARCH_linux_aarch64 -DTARGET_OS_ARCH_MODEL_linux_aarch64 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -pipe -fno-strict-aliasing -g -fno-omit-frame-pointer -O3 -DVM_LITTLE_ENDIAN -Werror -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -fstack-protector-strong -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-guess-branch-probability -DDTRACE_ENABLED -c -MMD -MP -MF ../generated/dependencies/signature.o.d -fpch-deps -o signature.o /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/signature.cpp
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make/linux/makefiles/rules.make:149: recipe for target 'sharedRuntime_aarch64.o' failed
gmake[6]: *** [sharedRuntime_aarch64.o] Error 1
gmake[6]: *** Waiting for unfinished jobs....
gmake[6]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/build/jdk8.build/hotspot/linux_aarch64_compiler2/product'
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make/linux/makefiles/top.make:119: recipe for target 'the_vm' failed
gmake[5]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/build/jdk8.build/hotspot/linux_aarch64_compiler2/product'
gmake[5]: *** [the_vm] Error 2
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make/linux/Makefile:293: recipe for target 'product' failed
gmake[4]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/build/jdk8.build/hotspot'
Makefile:230: recipe for target 'generic_build2' failed
gmake[3]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make'
Makefile:177: recipe for target 'product' failed
gmake[2]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/make'
gmake[4]: *** [product] Error 2
gmake[3]: *** [generic_build2] Error 2
gmake[2]: *** [product] Error 2
HotspotWrapper.gmk:44: recipe for target '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/build/jdk8.build/hotspot/_hotspot.timestamp' failed
gmake[1]: Leaving directory '/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/make'
gmake[1]: *** [/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/build/jdk8.build/hotspot/_hotspot.timestamp] Error 2
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk//make/Main.gmk:108: recipe for target 'hotspot-only' failed
make: *** [hotspot-only] Error 2
RPM build errors:

Comment 1 Severin Gehwolf 2016-02-15 09:14:23 UTC
Adding Andrew Haley to CC. Seems to be caused by:

/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:197:65: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
 template <class T> static const T& min (const T& a, const T& b) {
                                                                 ^
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:198:3: error: expected primary-expression before 'return'
   return (a > b) ? b : a;
   ^~~~~~
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:198:3: error: expected '}' before 'return'
In file included from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/utilities/debug.hpp:28:0,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/globals.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/memory/allocation.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/memory/iterator.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/memory/genOopClosures.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/oops/klass.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/runtime/handles.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/memory/universe.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/code/oopRecorder.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/asm/assembler.hpp:28,
                 from /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/precompiled/precompiled.hpp:29:
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1113:18: warning: variable templates only available with -std=c++14 or -std=gnu++14
 #define min(a,b) Do_not_use_min_use_MIN2_instead
                  ^
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:197:36: note: in expansion of macro 'min'
 template <class T> static const T& min (const T& a, const T& b) {
                                    ^~~
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:198:3: error: expected ';' before 'return'
   return (a > b) ? b : a;
   ^~~~~~
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.aarch64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp:199:1: error: expected declaration before '}' token
 }
 ^

Comment 2 Severin Gehwolf 2016-02-15 11:53:56 UTC
Created attachment 1127233 [details]
Remove unneeded template from aarch64 sources

Spec file patch getting the build past the original failure.

Comment 3 Severin Gehwolf 2016-02-15 11:55:35 UTC
Scratch build with patch in comment 2:
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3389510

It now fails in %check with:
+ JAVA_HOME=/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image
+ /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/javac -d . /builddir/build/SOURCES/TestCryptoLevel.java
Error: missing `client' JVM at `/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/jre/lib/aarch64/client/libjvm.so'.
Please install or use the JRE or JDK that contains these missing components.
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.Jq1dz8 (%check)

Comment 4 Andrew Haley 2016-02-15 12:15:19 UTC
(In reply to Severin Gehwolf from comment #3)
> Scratch build with patch in comment 2:
> http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3389510
> 
> It now fails in %check with:
> +
> JAVA_HOME=/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.
> aarch64/openjdk/build/jdk8.build/images/j2sdk-image
> +
> /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/
> build/jdk8.build/images/j2sdk-image/bin/javac -d .
> /builddir/build/SOURCES/TestCryptoLevel.java
> Error: missing `client' JVM at
> `/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/
> openjdk/build/jdk8.build/images/j2sdk-image/jre/lib/aarch64/client/libjvm.
> so'.
> Please install or use the JRE or JDK that contains these missing components.
> RPM build errors:
> error: Bad exit status from /var/tmp/rpm-tmp.Jq1dz8 (%check)

Look in

images/j2sdk-image/jre/lib/amd64/jvm.cfg

You should see

-server KNOWN
-client IGNORE

Comment 5 Severin Gehwolf 2016-02-15 13:00:04 UTC
(In reply to Andrew Haley from comment #4)
> (In reply to Severin Gehwolf from comment #3)
> > Scratch build with patch in comment 2:
> > http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3389510
> > 
> > It now fails in %check with:
> > +
> > JAVA_HOME=/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.
> > aarch64/openjdk/build/jdk8.build/images/j2sdk-image
> > +
> > /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/
> > build/jdk8.build/images/j2sdk-image/bin/javac -d .
> > /builddir/build/SOURCES/TestCryptoLevel.java
> > Error: missing `client' JVM at
> > `/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/
> > openjdk/build/jdk8.build/images/j2sdk-image/jre/lib/aarch64/client/libjvm.
> > so'.
> > Please install or use the JRE or JDK that contains these missing components.
> > RPM build errors:
> > error: Bad exit status from /var/tmp/rpm-tmp.Jq1dz8 (%check)
> 
> Look in
> 
> images/j2sdk-image/jre/lib/amd64/jvm.cfg
> 
> You should see
> 
> -server KNOWN
> -client IGNORE

OK. But why is "images/j2sdk-image/bin/javac -d ./builddir/build/SOURCES/TestCryptoLevel.java" selecting a client JVM anyway?

Also, why did this work before? Looking at the build log of the last successful build on aarch64[1] I see this:
+ /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.71-1.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/javac -d . /builddir/build/SOURCES/TestCryptoLevel.java
+ /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.71-1.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/java TestCryptoLevel
Running with the unlimited policy.

Note that this TestCryptoLevel check runs in %check now. It has been running in %build/%install before.

[1] http://arm.koji.fedoraproject.org//packages/java-1.8.0-openjdk/1.8.0.71/1.b15.fc24/data/logs/aarch64/build.log

Comment 6 Andrew Haley 2016-02-15 14:29:12 UTC
On 02/15/2016 01:00 PM, bugzilla wrote:
> OK. But why is "images/j2sdk-image/bin/javac -d
> ./builddir/build/SOURCES/TestCryptoLevel.java" selecting a client JVM anyway?

I think there's a guess in the build machinery which is based on
the class of the machine it thinks it's running on.

> Also, why did this work before? Looking at the build log of the last successful
> build on aarch64[1] I see this:
> +
> /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.71-1.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/javac
> -d . /builddir/build/SOURCES/TestCryptoLevel.java
> +
> /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.71-1.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/java
> TestCryptoLevel
> Running with the unlimited policy.
>
> Note that this TestCryptoLevel check runs in %check now. It has been running in
> %build/%install before.

As I said, it's just a guess.  "-client" should work.

Andrew.

Comment 7 Severin Gehwolf 2016-02-15 14:56:00 UTC
(In reply to Andrew Haley from comment #6)
> "-client" should work.

I take it that should be "-server" ?

Comment 8 Andrew Haley 2016-02-15 14:58:37 UTC
(In reply to Severin Gehwolf from comment #7)
> (In reply to Andrew Haley from comment #6)
> > "-client" should work.
> 
> I take it that should be "-server" ?

Certainly not.  If "-client" does not work, that is a bug.

Comment 9 Severin Gehwolf 2016-02-15 15:12:25 UTC
(In reply to Andrew Haley from comment #8)
> (In reply to Severin Gehwolf from comment #7)
> > (In reply to Andrew Haley from comment #6)
> > > "-client" should work.
> > 
> > I take it that should be "-server" ?
> 
> Certainly not.  If "-client" does not work, that is a bug.

Very confusing. So the fix is to use "-client" explicitly which should circumvent guessing machinery and then be ignored. The result, thus, will be that the only server JVM will be used instead?

Comment 10 Andrew Haley 2016-02-15 15:20:29 UTC
(In reply to Severin Gehwolf from comment #9)
> (In reply to Andrew Haley from comment #8)
> > (In reply to Severin Gehwolf from comment #7)
> > > (In reply to Andrew Haley from comment #6)
> > > > "-client" should work.
> > > 
> > > I take it that should be "-server" ?
> > 
> > Certainly not.  If "-client" does not work, that is a bug.
> 
> Very confusing. So the fix is to use "-client" explicitly which should
> circumvent guessing machinery and then be ignored. The result, thus, will be
> that the only server JVM will be used instead?

Hmm.  Please show me the command which led to this error.  Did it not contain "-client"?

Comment 11 Severin Gehwolf 2016-02-15 15:27:13 UTC
(In reply to Andrew Haley from comment #10)
> Hmm.  Please show me the command which led to this error.  Did it not
> contain "-client"?

See comment 3. The command that was failing is a simple "javac TestCryptoLevel.java". It does not contain "-J-client" if that's what you mean.

Comment 12 Andrew Haley 2016-02-15 15:32:15 UTC
(In reply to Severin Gehwolf from comment #11)

> See comment 3. The command that was failing is a simple "javac
> TestCryptoLevel.java". It does not contain "-J-client" if that's what you
> mean.

Yes, that's exactly what I meant.  I was assuming that the build machinery was passing "-client"; it sometimes does.  You never said what the contents of images/j2sdk-image/jre/lib/amd64/jvm.cfg was.  We really do need to know that.

Comment 13 Severin Gehwolf 2016-02-15 15:49:05 UTC
(In reply to Andrew Haley from comment #12)
> (In reply to Severin Gehwolf from comment #11)
> 
> > See comment 3. The command that was failing is a simple "javac
> > TestCryptoLevel.java". It does not contain "-J-client" if that's what you
> > mean.
> 
> Yes, that's exactly what I meant.  I was assuming that the build machinery
> was passing "-client"; it sometimes does.  You never said what the contents
> of images/j2sdk-image/jre/lib/amd64/jvm.cfg was.  We really do need to know
> that.

I don't have access to the builder (or Aarch64 HW) in order to be able to have a look. Peter would you be able to help? Looks like the builder for the task in comment 3 was aarch64-10a.arm.fedoraproject.org

Comment 14 Severin Gehwolf 2016-02-15 15:52:05 UTC
FWIW, here is a scratch build with explicit -J-client:
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3389926

It fails the same way:
+ export JAVA_HOME=/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image
+ JAVA_HOME=/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image
+ /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/bin/javac -J-client d . /builddir/build/SOURCES/TestCryptoLevel.java
Error: missing `client' JVM at `/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/jre/lib/aarch64/client/libjvm.so'.
Please install or use the JRE or JDK that contains these missing components.
RPM build errors:

Comment 15 Peter Robinson 2016-02-15 17:20:35 UTC
> I don't have access to the builder (or Aarch64 HW) in order to be able to
> have a look. Peter would you be able to help? Looks like the builder for the
> task in comment 3 was aarch64-10a.arm.fedoraproject.org

sure, if you need to just be able to kick off a build you can just do "arm-koji build --scratch f24 java-1.8.0-openjdk-NVR.src.rpm" to kick off a scratch build. 

If you need me to extract something out of the buildroot or check something in there let me know exactly what you need.

If you have a general aarch64 machine you can also run the build in mock with f24 config.

Comment 16 Severin Gehwolf 2016-02-15 18:33:21 UTC
(In reply to Andrew Haley from comment #12)
> (In reply to Severin Gehwolf from comment #11)
> 
> > See comment 3. The command that was failing is a simple "javac
> > TestCryptoLevel.java". It does not contain "-J-client" if that's what you
> > mean.
> 
> Yes, that's exactly what I meant.  I was assuming that the build machinery
> was passing "-client"; it sometimes does.  You never said what the contents
> of images/j2sdk-image/jre/lib/amd64/jvm.cfg was.  We really do need to know
> that.

I've pushed another scratch build[1] which shows the jvm.cfg. Output from the builder was:
$ cat /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.aarch64/openjdk/build/jdk8.build/images/j2sdk-image/jre/lib/aarch64/jvm.cfg
# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# 
# List of JVMs that can be used as an option to java, javac, etc.
# Order is important -- first in this list is the default JVM.
# NOTE that this both this file and its format are UNSUPPORTED and
# WILL GO AWAY in a future release.
#
# You may also select a JVM in an arbitrary location with the
# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
# and may not be available in a future release.
#
-client IF_SERVER_CLASS -server
-server KNOWN
-minimal KNOWN

This is wrong. How do we change that?

[1] http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3390171

Comment 17 Andrew John Hughes 2016-02-15 19:14:11 UTC
Change the file in the OpenJDK sources. The OpenJDK 7 / IcedTea 2.x one reads:

# n.b. server must be first so it is used as the default
-server KNOWN
-client ALIASED_TO -server
-minimal ERROR

http://icedtea.classpath.org/hg/release/icedtea7-forest-2.6/jdk/file/tip/src/solaris/bin/aarch64/jvm.cfg

Comment 18 Andrew John Hughes 2016-02-15 19:17:09 UTC
This seems related:

http://hg.openjdk.java.net/aarch64-port/jdk8u/jdk/rev/2940c1ead99b

Part of it seems to have been removed in a later merge (the java_md_solinux.c chunk).

Comment 19 Andrew John Hughes 2016-02-15 19:20:40 UTC
Chunk was removed here:

http://hg.openjdk.java.net/aarch64-port/jdk8u/jdk/rev/9399aa7ef558

Incidentally, I had to revert the manpage part of this last week.

Comment 20 Andrew Haley 2016-02-15 19:22:45 UTC
(In reply to Andrew John Hughes from comment #17)
> Change the file in the OpenJDK sources. The OpenJDK 7 / IcedTea 2.x one
> reads:
> 
> # n.b. server must be first so it is used as the default
> -server KNOWN
> -client ALIASED_TO -server
> -minimal ERROR


It's best to copy it from the x86 version.

Comment 21 Severin Gehwolf 2016-02-16 10:03:08 UTC
Created attachment 1127549 [details]
Updated spec file patch fixing FTBFS

Comment 22 Severin Gehwolf 2016-02-16 10:06:09 UTC
Successful scratch build with patch in comment 21:
http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3391107

Comment 23 Andrew John Hughes 2016-02-16 16:00:28 UTC
(In reply to Andrew Haley from comment #20)
> (In reply to Andrew John Hughes from comment #17)
> > Change the file in the OpenJDK sources. The OpenJDK 7 / IcedTea 2.x one
> > reads:
> > 
> > # n.b. server must be first so it is used as the default
> > -server KNOWN
> > -client ALIASED_TO -server
> > -minimal ERROR
> 
> 
> It's best to copy it from the x86 version.

So is the one in 7 also wrong?

Comment 24 Andrew Haley 2016-02-17 10:47:57 UTC
(In reply to Andrew John Hughes from comment #23)
> (In reply to Andrew Haley from comment #20)
> > (In reply to Andrew John Hughes from comment #17)
> > > Change the file in the OpenJDK sources. The OpenJDK 7 / IcedTea 2.x one
> > > reads:
> > > 
> > > # n.b. server must be first so it is used as the default
> > > -server KNOWN
> > > -client ALIASED_TO -server
> > > -minimal ERROR
> > 
> > 
> > It's best to copy it from the x86 version.
> 
> So is the one in 7 also wrong?

I don't think so.  Rather, the logic which accesses this file is different.

Comment 25 Andrew Haley 2016-02-17 10:49:45 UTC
(In reply to Andrew Haley from comment #20)
> (In reply to Andrew John Hughes from comment #17)
> > Change the file in the OpenJDK sources. The OpenJDK 7 / IcedTea 2.x one
> > reads:
> > 
> > # n.b. server must be first so it is used as the default
> > -server KNOWN
> > -client ALIASED_TO -server
> > -minimal ERROR
> 
> It's best to copy it from the x86 version.

For clarity: that's the AMD64 version.

Comment 26 Severin Gehwolf 2016-02-18 08:44:41 UTC
Fixed in rawhide. See:
http://arm.koji.fedoraproject.org/koji/buildinfo?buildID=349414


Note You need to log in before you can comment on or make changes to this bug.