Skip to content

Commit 6a6e00e

Browse files
committed
8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux
8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790 Reviewed-by: clanger Backport-of: 05fe06a
1 parent 83d916e commit 6a6e00e

File tree

1 file changed

+34
-93
lines changed

1 file changed

+34
-93
lines changed

make/lib/Awt2dLibraries.gmk

Lines changed: 34 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -535,26 +535,13 @@ endif
535535

536536
###########################################################################
537537

538+
538539
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
539-
LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
540+
LIBFONTMANAGER_EXTRA_SRC =
541+
BUILD_LIBFONTMANAGER_FONTLIB += $(HARFBUZZ_LIBS)
540542
else
543+
LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
541544
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
542-
# This is better than adding EXPORT_ALL_SYMBOLS
543-
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang solstudio), )
544-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
545-
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
546-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
547-
endif
548-
549-
LIBHARFBUZZ_LDFLAGS := $(LDFLAGS_JDKLIB) \
550-
$(call SET_SHARED_LIBRARY_ORIGIN)
551-
ifeq ($(TOOLCHAIN_TYPE), gcc)
552-
ifeq ($(CC_VERSION_NUMBER), 4.4.7)
553-
LIBHARFBUZZ_LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
554-
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) \
555-
$(call SET_SHARED_LIBRARY_ORIGIN)
556-
endif
557-
endif
558545

559546
ifneq ($(OPENJDK_TARGET_OS), windows)
560547
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
@@ -571,84 +558,45 @@ else
571558
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
572559
endif
573560
ifneq ($(OPENJDK_TARGET_OS), macosx)
574-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
561+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
575562
endif
576563
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
577-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
578-
579-
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
580-
581-
# For use by libfontmanager:
582-
ifeq ($(OPENJDK_TARGET_OS), windows)
583-
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
584-
else
585-
LIBHARFBUZZ_LIBS := -lharfbuzz
586-
endif
587-
588-
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
589-
libharfbuzz/hb-ucdn \
590-
#
591-
592-
LIBHARFBUZZ_OPTIMIZATION := HIGH
593-
594-
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
595-
596-
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
597-
NAME := harfbuzz, \
598-
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
599-
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
600-
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
601-
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
602-
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
603-
CFLAGS_windows = -DCC_NOEX, \
604-
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
605-
WARNINGS_AS_ERRORS_xlc := false, \
606-
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
607-
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
608-
maybe-uninitialized class-memaccess, \
609-
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
610-
tautological-constant-out-of-range-compare int-to-pointer-cast \
611-
undef missing-field-initializers, \
612-
DISABLED_WARNINGS_C_solstudio := \
613-
E_INTEGER_OVERFLOW_DETECTED \
614-
E_ARG_INCOMPATIBLE_WITH_ARG_L \
615-
E_ENUM_VAL_OVERFLOWS_INT_MAX, \
616-
DISABLED_WARNINGS_CXX_solstudio := \
617-
truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
618-
hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
619-
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
620-
LDFLAGS := $(LIBHARFBUZZ_LDFLAGS), \
621-
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
622-
LDFLAGS_aix := -Wl$(COMMA)-berok, \
623-
LIBS := $(BUILD_LIBHARFBUZZ), \
624-
LIBS_unix := $(LIBM) $(LIBCXX), \
625-
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
626-
LIBS_windows := user32.lib, \
627-
))
628-
629-
ifeq ($(FREETYPE_TO_USE), bundled)
630-
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
631-
endif
564+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
565+
566+
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
567+
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
568+
maybe-uninitialized class-memaccess
569+
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
570+
tautological-constant-out-of-range-compare int-to-pointer-cast \
571+
undef missing-field-initializers
572+
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
573+
HARFBUZZ_DISABLED_WARNINGS_C_solstudio := \
574+
E_INTEGER_OVERFLOW_DETECTED \
575+
E_ARG_INCOMPATIBLE_WITH_ARG_L \
576+
E_ENUM_VAL_OVERFLOWS_INT_MAX
577+
HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio := \
578+
truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
579+
hidevf w_novirtualdescr arrowrtn2 unknownpragma
632580

633-
TARGETS += $(BUILD_LIBHARFBUZZ)
581+
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
634582

635583
endif
636584

637-
###########################################################################
638585

639586
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
640587
libharfbuzz \
588+
libharfbuzz/hb-ucdn \
641589
common/awt \
642590
common/font \
643591
libawt/java2d \
644592
libawt/java2d/pipe \
645593
libawt/java2d/loops \
646594
#
647595

648-
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
649-
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
596+
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
597+
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
650598

651-
LIBFONTMANAGER_OPTIMIZATION := HIGH
599+
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
652600

653601
ifeq ($(OPENJDK_TARGET_OS), windows)
654602
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -686,35 +634,28 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
686634
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
687635
CFLAGS_windows = -DCC_NOEX, \
688636
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
637+
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
689638
WARNINGS_AS_ERRORS_xlc := false, \
690-
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
691-
DISABLED_WARNINGS_clang := sign-compare, \
692-
DISABLED_WARNINGS_C_solstudio := \
693-
E_INTEGER_OVERFLOW_DETECTED \
694-
E_ARG_INCOMPATIBLE_WITH_ARG_L \
695-
E_ENUM_VAL_OVERFLOWS_INT_MAX, \
696-
DISABLED_WARNINGS_CXX_solstudio := \
697-
truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
698-
hidevf w_novirtualdescr arrowrtn2 unknownpragma, \
699-
DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996 4996 4146 4334 4819 4101 4068 4805 4138, \
639+
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
640+
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
641+
DISABLED_WARNINGS_clang := sign-compare $(HARFBUZZ_DISABLED_WARNINGS_clang), \
642+
DISABLED_WARNINGS_C_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_C_solstudio), \
643+
DISABLED_WARNINGS_CXX_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio), \
644+
DISABLED_WARNINGS_microsoft := 4018 4996 $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
700645
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
701646
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
702647
$(call SET_SHARED_LIBRARY_ORIGIN), \
703648
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
704649
LDFLAGS_aix := -Wl$(COMMA)-berok, \
705650
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
706651
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
707-
LIBS_macosx := -lawt_lwawt, \
652+
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
708653
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
709654
$(WIN_AWT_LIB), \
710655
))
711656

712657
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
713658

714-
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
715-
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
716-
endif
717-
718659
ifeq ($(OPENJDK_TARGET_OS), macosx)
719660
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
720661
endif

0 commit comments

Comments
 (0)