[OpenJDK 2D-Dev] RFR: JDK-8196218: [linux] libfontmanager should be linked against headless awt library

Phil Race philip.race at oracle.com
Fri Jan 26 16:44:05 UTC 2018


When this was fixed for Solaris 
https://bugs.openjdk.java.net/browse/JDK-8071710
the observed problem was not building (although it could have been) but 
at runtime.
I think you can verify what you've done with "ldd" ..

This patch adds awt_headless.so, but does not remove awt.so.

Perhaps the line

LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX)
After your fix I expect "ldd" should not need to show awt .. just awt_headless

ie linux should not have this -lawt dependency any more and the -lawt dependency should be specific to windows + mac ..


On 01/26/2018 08:10 AM, Severin Gehwolf wrote:
> Hi,
>
> Could I please get a review for this rather small patch which
> originally occurred for us on JDK 8 (Fedora) which recently switched to
> building with "-Wl,-z,defs" linker flags. The result was a build
> failure, due to unresolved symbols. Indeed libfontmanager.so should
> have -lawt_headless in the list of dependent libs as symbols such as
> AWTLoadFont come from libawt_headless.so, not libawt.so on Linux. Some
> more details are on the bug.
>
> webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8196218/webrev.01/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8196218
>
> Testing: Build fails with configure option
>           --with-extra-ldflags="-Xlinker -z -Xlinker defs"
>           prior the fix. Succeeds after.
>
> Question for 2d-folks/build-dev folks:
I don't know about this, build folks probably know.

-phil.
> There is this snippet in the libfontmanager block in
> make/lib/Awt2dLibraries.gmk, line 686:
>
>      LDFLAGS := $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
>          $(call SET_SHARED_LIBRARY_ORIGIN), \
>
> It's my understanding that this is supposed to filter "-Wl,-z,defs"
> from LDFLAGS_JDKLIB. Does anybody know why it does so? Is there a legit
> reason when unresolved symbols at link time are OK? Besides, why does
> it not also filter "-Xlinker -z -Xlinker defs"? FWIW, in JDK 8 it's the
> other way round. Xlinker flags are filtered, but -Wl,-z,defs is not.
> Thoughts?
>
> Thanks,
> Severin



More information about the build-dev mailing list