Bug 449456 - Make Java shared libraries like libjvm.so available for linking
Summary: Make Java shared libraries like libjvm.so available for linking
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: java-1.8.0-openjdk
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Andrew John Hughes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords: FutureFeature
: 740762 (view as bug list)
Depends On:
Blocks: 449360 740897
TreeView+ depends on / blocked
 
Reported: 2008-06-02 18:19 UTC by Felix Schwarz
Modified: 2018-10-24 12:42 UTC (History)
18 users (show)

(edit)
Clone Of:
(edit)
Last Closed:


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Bugzilla 740762 None CLOSED java.library.path is missing some paths 2019-01-03 14:31 UTC
Red Hat Bugzilla 1112012 None CLOSED java-1.8.0-openjdk on aarch64 returns the wrong path for -ljvm 2019-01-03 14:31 UTC

Internal Trackers: 740762 1112012

Description Felix Schwarz 2008-06-02 18:19:10 UTC
Currently libjvm.so and libjava.so are not mentioned in /etc/ld.so.conf.d.
Therefore it is not possible to write software which has to link against these
libraries without using rpath or dlopen.

This blocks packages like python-jcc from entering Fedora (bug 449360). 

See http://thread.gmane.org/gmane.linux.redhat.fedora.devel/85542 for a
discussion of these topics on fedora-devel.

Comment 2 Christopher Meng 2013-09-26 06:00:35 UTC
Hi, any news here?

It blocks a python module ;)

Comment 3 Deepak Bhole 2013-09-30 19:22:21 UTC
Some alternatives magic may be needed in addition to making it appear in ld.so.conf.d

Assigning to Jiri to investigate.

Comment 4 Omair Majid 2014-03-12 14:25:23 UTC
This is still a problem.

I was just pointed to the `mesos` package. This needs to link against a libjvm.so. Currently it does:

$ readelf --dynamic ./usr/lib64/libmesos-0.18.0.so.0 | grep jvm
 0x0000000000000001 (NEEDED)             Shared library: [libjvm.so]
 0x000000000000000f (RPATH)              Library rpath: [/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.5.0.6.pre02.fc21.x86_64/jre/lib/amd64/server]

So it hardcodes a path that will change on updates. And it will always use openjdk 7.

Also, yum only see the dependency on libjvm.so and selects java-1.8.0-openjdk (!) to provide that dependency. For some reason java-1.7.0-openjdk does not provide 'libjvm.so' (but it does provide 'libjvm.so()(64bits)'.

Comment 5 Mikolaj Izdebski 2014-03-19 15:51:39 UTC
Fedora allows installation of multiple JVMs, which are selectable by various configuration files (/etc/java.conf, ~/.java/java.conf, per-application config files, ...).  Applications shouldn't link directly to default libjvm.so, but rather link dynamically to libjvm.so loaded from configured $JAVA_HOME.  dlopen() is the right way to go.

Comment 6 Petr Pisar 2014-06-27 05:31:02 UTC
The problem is the libjvm.so does not reside in $JAVA_HOME. It lives somewhere deep in the directory tree and the exact location differs for each JDK version and platform.

Comment 7 Andrew John Hughes 2016-05-11 22:39:20 UTC
Moving this to the current version of OpenJDK.

Comment 8 Andrew John Hughes 2016-05-11 22:40:21 UTC
*** Bug 740762 has been marked as a duplicate of this bug. ***


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