<AWT Dev> Runtime paths for awt*.so on Solaris

Erik Joelsson erik.joelsson at oracle.com
Thu Mar 20 12:43:20 UTC 2014


Hello,

While going through the makefiles for native libraries in the jdk, I 
noticed that there are a couple of runtime paths set in the link command 
lines that don't seem to be used, specifically:

libawt.so: -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) 
-R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR)
libawt_xawt.so: -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR)
libawt_headless.so: -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) 
-R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR)

In addition to this, libjawt.so and libsplashscreen.so are specifying 
one or both of -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) and 
-L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) without a 
corresponding -R flag to help them find the libs at runtime. This seems 
to be working currently because libX11.so and libXext.so have softlinks 
in /usr/lib so the extra -L flag for libsplashscreen is unnecessary, and 
for libjawt.so, I'm guessing that it's piggy backing on 
libawt.so/libawt_xawt.so to find the dependencies from their -R paths.

I'm wondering if there could be hidden reasons for doing this or if it's 
simply just leftovers from long ago? I'm working on a patch where I 
would like to clean this up and so far, ldd seems happy finding all 
dependencies after removing the seemingly unneeded -R flags and adding 
them to the libraries that actually need them. The /usr/dt/lib path 
doesn't seem to be used by anyone so I removed that completely.

/Erik


More information about the awt-dev mailing list