Hello Severin,

If adding the -lawt_headless makes the code compile with -Wl,-z,defs, then I would also like to see that filtering removed in the same patch. However, I think someone from 2d needs to shed some light on the origin of this. I would assume that at some point there was a reason for not adding -lawt_headless to libfontmanager, and for that to work, someone removed the -Wl,-z,defs from that linker command line. Tracing this back, the removal of -z defs was there in the initial Mercurial commit, so someone needs to go back into the really old archives to find answers here.

Regarding -Xlinker vs -Wl, I believe we tried to unify usage to one or the other at some point.

/Erik

On 2018-01-26 08:10, 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:

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

Reply via email to