Bug 1136544 - Could not open %files file /builddir/build/....../java-1.8.0-openjdk.files: No such file or directory
Summary: Could not open %files file /builddir/build/....../java-1.8.0-openjdk.files: N...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: java-1.8.0-openjdk
Version: 21
Hardware: ppc64le
OS: Linux
medium
high
Target Milestone: ---
Assignee: jiri vanek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PPCTracker
TreeView+ depends on / blocked
 
Reported: 2014-09-02 20:25 UTC by Karsten Hopp
Modified: 2014-09-04 15:18 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-09-04 12:55:38 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
patch for spec file to add ppc64le as a jit arch and a variant of ppc64 (851 bytes, patch)
2014-09-03 23:38 UTC, Omair Majid
no flags Details | Diff

Description Karsten Hopp 2014-09-02 20:25:07 UTC
Description of problem:
The file list java-1.8.0-openjdk.files doesn't get created on ppc64le:

Processing files: java-1.8.0-openjdk-1.8.0.20-1.b26.fc21.ppc64le
error: Could not open %files file /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.20-1.b26.fc21.ppc64le/java-1.8.0-openjdk.files: No such file or directory
RPM build errors:
    Could not open %files file /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.20-1.b26.fc21.ppc64le/java-1.8.0-openjdk.files: No such file or directory
Child return code was: 1

Version-Release number of selected component (if applicable):
java-1.8.0-openjdk-1.8.0.20-1.b26.fc21.

How reproducible:
always

Steps to Reproduce:
1. ppc-koji build --scratch f21 java-1.8.0-openjdk-1.8.0.20-1.b26.fc21.src.rpm
2.
3.

Actual results:
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2068809

Expected results:


Additional info:

Comment 1 jiri vanek 2014-09-03 15:59:44 UTC
ok. the filtering is wrong, there is nowhere xYES in log

The regex is expecting something like
.../lib/ppc64le/...
 - {archinstall}

but on the the build is done into normal
.../lib/ppc64/..


I think that best solution is to get rid of this ppc64le archinstall value. It seems that it is not used, and notrmal ppc  is used instead.

Comment 2 jiri vanek 2014-09-03 16:01:56 UTC
One more note, if archinstall is broken like this, then not only filelist is corrupted.
fgrep archinstall form specfile - audio, jsa, systemtap.... everything points to ppc64le....

Comment 3 Omair Majid 2014-09-03 23:38:15 UTC
Created attachment 934236 [details]
patch for spec file to add ppc64le as a jit arch and a variant of ppc64

The attached patch (sort of) tries to address the problem and makes the ppc64le build a jit build (rather than zero).

But building this leads to weird errors, like:

/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.20-2.b26.fc21.ppc64le/jdk8/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.cpp:122:29: error: 'FunctionDescriptor' was not declared in this scope
      call_c(CAST_FROM_FN_PTR(FunctionDescriptor*,

FunctionDescriptor is defined in an #if !defined(ABI_ELFv2) block (in hotspot/src/cpu/ppc/vm/assembler_ppc.hpp) and the makfile (hotspot/make/linux/makefiles/ppc64.make) says '# Little endian machine uses ELFv2 ABI'

I am a little confused about the upstream build status of ppc64le now.

Comment 4 jiri vanek 2014-09-04 07:58:55 UTC
There is small error in your patch. To jit only ppc64le should be added. Not whole ppc swarm. Otherwise yes:(( I will push this change to rhel 7 and f21+f22

Comment 5 Omair Majid 2014-09-04 14:43:49 UTC
(In reply to jiri vanek from comment #4)
> To jit only ppc64le should be added. Not
> whole ppc swarm.

Are you sure about that? I figured the %{power64} macro indicates ppc64 and its variants. Upstream JIT exists for both ppc64be and ppc64le AFAIK.

Anyway, turns out the missing bit was the interpreter.. A scratch build [1] completed with the `--with-jvm-interpreter=cpp` argument suggested at [2]. Apparently only the cpp interpreter is supported on ppc64le. Please note that the scratch build built on ppc64(be) and ppc64le, with my original patch - the JIT is enabled for both.

I have pushed the ccp-interpreter change.

[1] http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2078350
[2] http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2014-July/002065.html

Comment 6 Andrew John Hughes 2014-09-04 15:16:06 UTC
The original patch is correct; the only PPC platforms not supported by the PPC JIT is ppc32 and some early (<power5) versions of ppc64. ppc64be is actually better supported than ppc64le and the original reason we split them in 7 was so that Zero was still used for ppc64le, which didn't have support from the PPC port back then.

The cpp interpreter is used by the JIT on both architectures, I believe. What I don't understand is why this isn't automatically turned on for this architecture. In merging with 7, I fixed it to do this:

http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/rev/43b9c3182bd1b0

Comment 7 Andrew John Hughes 2014-09-04 15:18:18 UTC
s/is ppc32/are ppc32/

Serves me right for rewording.


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