LIBPATH issue with GTK+ on AIX [message #1784819] |
Wed, 04 April 2018 12:35 |
Nitish Mishra Messages: 2 Registered: April 2018 |
Junior Member |
|
|
So, I see following issue while launching eclipse on AIX, according to log file:
!SESSION 2018-04-04 07:03:11.583 -----------------------------------------------
eclipse.buildId=M20130204-1200
java.fullversion=JRE 1.7.0 IBM J9 2.6 AIX ppc64-64 Compressed References 20170111_332921 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR10_20170111_1358_B332921
JIT - tr.r11_20170107_130494
GC - R26_Java726_SR10_20170111_1358_B332921_CMPRSS
J9CL - 20170111_332921
BootLoader constants: OS=aix, ARCH=ppc64, WS=gtk, NL=en_US
Command-line arguments: -os aix -ws gtk -arch ppc64
!ENTRY org.eclipse.osgi 4 0 2018-04-04 07:03:13.790
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
/home/nitish/eclipse/eclipse/configuration/org.eclipse.osgi/bundles/192/1/.cp/libswt-pi-gtk-4236.a ( 0509-022 Cannot load module /opt/freeware/lib/libgdk-x11-2.0.a(libgdk-x11-2.0.so.0).
0509-150 Dependent module /usr/lib/libXrender.a(libXrender.so.1) could not be loaded.
0509-152 Member libXrender.so.1 is not found in archive
0509-022 Cannot load module /home/nitish/eclipse/eclipse/configuration/org.eclipse.osgi/bundles/192/1/.cp/libswt-pi-gtk-4236.a.
0509-150 Dependent module /opt/freeware/lib/libgdk-x11-2.0.a(libgdk-x11-2.0.so.0) could not be loaded.)
swt-pi-gtk (Not found in java.library.path)
/.swt/lib/aix/ppc64/libswt-pi-gtk-4236.a ( 0509-022 Cannot load module /opt/freeware/lib/libgdk-x11-2.0.a(libgdk-x11-2.0.so.0).
0509-150 Dependent module /usr/lib/libXrender.a(libXrender.so.1) could not be loaded.
0509-152 Member libXrender.so.1 is not found in archive
0509-022 Cannot load module /.swt/lib/aix/ppc64/libswt-pi-gtk-4236.a.
0509-150 Dependent module /opt/freeware/lib/libgdk-x11-2.0.a(libgdk-x11-2.0.so.0) could not be loaded.)
/.swt/lib/aix/ppc64/libswt-pi-gtk.a ( 0509-022 Cannot load module /.swt/lib/aix/ppc64/liblibswt-pi-gtk.a.so.
0509-026 System error: A file or directory in the path name does not exist.)
The problem is that, /opt/freeware/lib/libgdk-x11-2.0.a ( library comes from GTK installation which is installed via rpm, built locally) is trying to load libXrender.a from /usr/lib location where it is not able to find the required .so file. However, I built gtk with LIBPATH as /opt/freeware/lib, so instead of loading /usr/lib/libXrender.a, actually it should load /opt/freeware/lib/libXrender.a which has required libXrender.so.1 library. Please see below for the dependency path:
command: dump -Hov -X32_64 /opt/freeware/lib/libgdk-x11-2.0.a
Output:
***Import File Strings***
INDEX PATH BASE MEMBER
0 /opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib
1 libc.a shr_64.o
2 libglib-2.0.a libglib-2.0.so.0
3 libgobject-2.0.a libgobject-2.0.so.0
4 libcairo.a libcairo.so.2
5 libgdk_pixbuf-2.0.a libgdk_pixbuf-2.0.so.0
6 libintl.a libintl.so.8
7 libX11.a shr_64.o
8 libXext.a shr_64.o
9 libpango-1.0.a libpango-1.0.so.0
10 libgmodule-2.0.a libgmodule-2.0.so.0
11 libXrender.a libXrender.so.1
12 libfontconfig.a libfontconfig.so.1
13 libpangocairo-1.0.a libpangocairo-1.0.so.0
14 libgio-2.0.a libgio-2.0.so.0
Now, when I run GTK, it is running fine and behaving as expected. It is loading right file from right location.
Problem comes, when I am trying to launch eclipse. The same library, libgdk-x11-2.0.a, is trying to load libXrender.a from /usr/lib and it is failing.
This indicates that somehow ECLIPSE is overriding the LIBPATH environment variable. If I am right, Can someone tell me how to fix that. I want my eclipse to load all required library (to run eclipse) from /opt/freeware/lib location and if it is not in that location then it should go to /usr/lib or /lib (library location preferences to be set).
|
|
|
Powered by
FUDForum. Page generated in 0.03183 seconds