[11u] RFR: 8256557: libharfbuzz fails to link on gcc 4.4.x due to -Wl, -z, defs

Hohensee, Paul hohensee at amazon.com
Fri Nov 20 21:23:11 UTC 2020


Looks good!

Thanks,
Paul

On 11/20/20, 12:49 PM, "Severin Gehwolf" <sgehwolf at redhat.com> wrote:

    Hi Paul,

    Thanks for the review!

    On Thu, 2020-11-19 at 00:48 +0000, Hohensee, Paul wrote:
    > Set according to gcc version instead?

    OK. How about this?

    diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
    --- a/make/lib/Awt2dLibraries.gmk
    +++ b/make/lib/Awt2dLibraries.gmk
    @@ -547,6 +547,16 @@
         HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
       endif

    +  LIBHARFBUZZ_LDFLAGS := $(LDFLAGS_JDKLIB) \
    +                         $(call SET_SHARED_LIBRARY_ORIGIN)
    +  ifeq ($(TOOLCHAIN_TYPE), gcc)
    +    ifeq ($(CC_VERSION_NUMBER), 4.4.7)
    +      LIBHARFBUZZ_LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
    +        $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) \
    +        $(call SET_SHARED_LIBRARY_ORIGIN)
    +    endif
    +  endif
    +
       ifneq ($(OPENJDK_TARGET_OS), windows)
         HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
                            -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
    @@ -608,8 +618,7 @@
               truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
               hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
           DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
    -      LDFLAGS := $(LDFLAGS_JDKLIB) \
    -          $(call SET_SHARED_LIBRARY_ORIGIN), \
    +      LDFLAGS := $(LIBHARFBUZZ_LDFLAGS), \
           LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
           LDFLAGS_aix := -Wl$(COMMA)-berok, \
           LIBS := $(BUILD_LIBHARFBUZZ), \


    Thanks,
    Severin


    > On 11/18/20, 11:37 AM, "jdk-updates-dev on behalf of Severin Gehwolf" <jdk-updates-dev-retn at openjdk.java.net on behalf of sgehwolf at redhat.com> wrote:
    >
    >     Hi,
    >
    >     Please review this JDK 11.0.10 specific fix for building slowdebug on a
    >     system with gcc 4.4.x (e.g. RHEL 6). JDK-8249821 got backported to
    >     11.0.10 and that causes one slight difference in how libharfbuzz is
    >     being linked: When it was linked as part of libfontmanager.so there was
    >     no -Wl,-z,defs. After JDK-8249821 it's there, which makes the build
    >     fail for slowdebug on this old toolchain. The proposal is to remove -
    >     Wl,-z,defs from LDFLAGS_JDKLIB for libharfbuzz as was done before.
    >
    >     Bug: https://bugs.openjdk.java.net/browse/JDK-8256557
    >
    >     Patch:
    >
    >     diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
    >     --- a/make/lib/Awt2dLibraries.gmk
    >     +++ b/make/lib/Awt2dLibraries.gmk
    >     @@ -608,8 +608,9 @@
    >                truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
    >                hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
    >            DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
    >     -      LDFLAGS := $(LDFLAGS_JDKLIB) \
    >     -          $(call SET_SHARED_LIBRARY_ORIGIN), \
    >     +      LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
    >     +        $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) \
    >     +        $(call SET_SHARED_LIBRARY_ORIGIN), \
    >            LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
    >            LDFLAGS_aix := -Wl$(COMMA)-berok, \
    >            LIBS := $(BUILD_LIBHARFBUZZ), \
    >
    >     Tested build on gcc 4.4.x slowdebug. Works with the patch.
    >
    >     I know this isn't pretty, but as there were no code changes done
    >     in JDK-8249821 it would preserve the status quo. Plus, it would unbreak
    >     our vanilla JDK 11 builds.
    >
    >     Thoughts?
    >
    >     Thanks,
    >     Severin
    >
    >




More information about the jdk-updates-dev mailing list