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

Reply via email to