Bug 163969
Summary: | aot-compile-rpm should use -fjni | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Robin Green <greenrd> | ||||||
Component: | java-1.4.2-gcj-compat | Assignee: | Gary Benson <gbenson> | ||||||
Status: | CLOSED RAWHIDE | QA Contact: | |||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | rawhide | CC: | gbenson, overholt | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2005-07-29 08:46:21 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: | 164079 | ||||||||
Attachments: |
|
Description
Robin Green
2005-07-22 15:02:37 UTC
Quoting comment #0: > While trying to debug overholt I didn't write that! This is caused by a bugzilla bug. Bugzilla changed some text of the form "bugXXXXX" into "overholt". The email just sent out by bugzilla had the correct text. Some unintentional humour there... (In reply to comment #1) > I didn't write that! > > This is caused by a bugzilla bug. I was wrong. It was caused by a bug in a firefox extension I was using. I'll shut up about this irrelevancy now, I promise! This is a gcj bug. Moving to gcc component. The original issue reported is caused by: /usr/lib/gcj/eclipse/org.eclipse.core.resources_3.1.0.jar.so: undefined symbol: _ZN3org7eclipse4core8internal10localstore21CoreFileSystemLibrary22internalCopyAttributesEP6JArrayIcES7_b This is caused by gcj not defining that symbol. Here is a cut-down test case: 1. Download attached file t.jar 2. gcj -findirect-dispatch -shared -Wl,-Bsymbolic -o t.jar.so t.jar 3. readelf -W -s t.jar.so |grep internalCopyAttr Actual results: 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZN3org7eclipse4core8internal10localstore21CoreFileSystemLibrary22internalCopyAttributesEP6JArrayIcES7_b 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZN3org7eclipse4core8internal10localstore21CoreFileSystemLibrary23internalCopyAttributesWEP6JArrayIwES7_b 210: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZN3org7eclipse4core8internal10localstore21CoreFileSystemLibrary22internalCopyAttributesEP6JArrayIcES7_b 216: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZN3org7eclipse4core8internal10localstore21CoreFileSystemLibrary23internalCopyAttributesWEP6JArrayIwES7_b Expected results: Those symbols should not be all UND (i.e. undefined) because they correspond to the methods actually being compiled at the time. Version: gcc-java-4.0.1-4 Created attachment 117100 [details]
test case
This test case just contains a single .class file extracted from
/usr/share/eclipse/plugins/org.eclipse.core.resources_3.1.0.jar from
eclipse-platform-3.1.0_fc-6.
Oops - this isn't a compiler bug at all. It's just that gcj wasn't called with -fjni. So my "reduced test case" is bogus. Testing a patch. Created attachment 117104 [details]
Fix
This patch fixes the problem.
[To get eclipse to build against rawhide, I also had to comment out part of the
ecj bootstrap process because of a gcj error, and replace references to mozilla
1.7.8 with mozilla 1.7.10 in a patch, but that's irrelevant to this bug.]
Looks like aot-compile-rpm ought to be passing -fjini then. I'll make it happen. (In reply to comment #7) > Looks like aot-compile-rpm ought to be passing -fjini then. I'll make it happen. But what if in future an app uses CNI instead of JNI? Then -fjni should not be passed. How would that be dealt with? aot-compile-rpm is not a generic build system. aot-compile-rpm is a script to convert normal, bytecode-only rpms into ones with native solibs for gcj. People wanting to use CNI can use make or whatever. Updating subject and component. Fixed. Packages requiring -fjni should BuildRequires: java-gcj-compat-devel >= 1.0.36 |