Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.

Commit 828454c

Browse files
Olga MikhaltsovaDmitry Cherepanov
authored andcommitted
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: dcherepanov Backport-of: 05fe06a
1 parent 58ecfb8 commit 828454c

File tree

1 file changed

+42
-79
lines changed

1 file changed

+42
-79
lines changed

make/lib/Awt2dLibraries.gmk

Lines changed: 42 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -537,22 +537,18 @@ endif
537537

538538
###########################################################################
539539

540+
540541
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
541-
LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
542+
LIBFONTMANAGER_EXTRA_SRC =
543+
BUILD_LIBFONTMANAGER_FONTLIB += $(HARFBUZZ_LIBS)
542544
else
545+
LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
543546
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
544547

545-
# This is better than adding EXPORT_ALL_SYMBOLS
546-
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
547-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
548-
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
549-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
550-
endif
551-
552548
ifeq ($(call isTargetOs, windows), false)
553549
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
554-
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
555-
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
550+
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
551+
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
556552
endif
557553
ifeq ($(call isTargetOs, solaris), true)
558554
HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
@@ -563,79 +559,53 @@ else
563559
ifeq ($(call isTargetOs, macosx), true)
564560
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
565561
endif
566-
ifeq ($(call isTargetOs, macosx), false)
567-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
568-
endif
569-
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
570-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
571562

572-
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
573-
574-
# For use by libfontmanager:
575-
ifeq ($(call isTargetOs, windows), true)
576-
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
577-
else
578-
LIBHARFBUZZ_LIBS := -lharfbuzz
563+
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
564+
# when building libharfbuzz
565+
ifeq ($(call isTargetOs, aix), true)
566+
HARFBUZZ_CFLAGS += -qdebug=necan
579567
endif
580568

581-
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
582-
libharfbuzz/hb-ucdn \
583-
#
584-
585-
LIBHARFBUZZ_OPTIMIZATION := HIGH
586-
587-
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
588-
589-
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
590-
NAME := harfbuzz, \
591-
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
592-
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
593-
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
594-
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
595-
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
596-
CFLAGS_windows = -DCC_NOEX, \
597-
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
598-
WARNINGS_AS_ERRORS_xlc := false, \
599-
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
600-
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
601-
maybe-uninitialized class-memaccess, \
602-
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
603-
tautological-constant-out-of-range-compare int-to-pointer-cast \
604-
undef missing-field-initializers, \
605-
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
606-
LDFLAGS := $(LDFLAGS_JDKLIB) \
607-
$(call SET_SHARED_LIBRARY_ORIGIN), \
608-
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
609-
LDFLAGS_aix := -Wl$(COMMA)-berok, \
610-
LIBS := $(BUILD_LIBHARFBUZZ), \
611-
LIBS_unix := $(LIBM) $(LIBCXX), \
612-
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
613-
LIBS_windows := user32.lib, \
614-
))
615-
616-
ifeq ($(FREETYPE_TO_USE), bundled)
617-
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
569+
ifeq ($(call isTargetOs, macosx), false)
570+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
618571
endif
572+
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
573+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
574+
575+
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
576+
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
577+
maybe-uninitialized class-memaccess
578+
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
579+
tautological-constant-out-of-range-compare int-to-pointer-cast \
580+
undef missing-field-initializers
581+
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
582+
HARFBUZZ_DISABLED_WARNINGS_C_solstudio := \
583+
E_INTEGER_OVERFLOW_DETECTED \
584+
E_ARG_INCOMPATIBLE_WITH_ARG_L \
585+
E_ENUM_VAL_OVERFLOWS_INT_MAX
586+
HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio := \
587+
truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
588+
hidevf w_novirtualdescr arrowrtn2 unknownpragma
619589

620-
TARGETS += $(BUILD_LIBHARFBUZZ)
590+
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
621591

622592
endif
623593

624-
###########################################################################
625594

626595
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
627596
libharfbuzz \
597+
libharfbuzz/hb-ucdn \
628598
common/awt \
629599
common/font \
630600
libawt/java2d \
631601
libawt/java2d/pipe \
632602
libawt/java2d/loops \
633603
#
634604

635-
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
636-
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
605+
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
606+
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
637607

638-
LIBFONTMANAGER_OPTIMIZATION := HIGH
608+
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
639609

640610
ifeq ($(call isTargetOs, windows), true)
641611
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -673,35 +643,28 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
673643
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
674644
CFLAGS_windows = -DCC_NOEX, \
675645
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
646+
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
676647
WARNINGS_AS_ERRORS_xlc := false, \
677-
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
678-
DISABLED_WARNINGS_clang := sign-compare, \
679-
DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \
680-
DISABLED_WARNINGS_C_solstudio = \
681-
E_INTEGER_OVERFLOW_DETECTED \
682-
E_ARG_INCOMPATIBLE_WITH_ARG_L \
683-
E_ENUM_VAL_OVERFLOWS_INT_MAX, \
684-
DISABLED_WARNINGS_CXX_solstudio := \
685-
truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
686-
hidevf w_novirtualdescr arrowrtn2 refmemnoconstr_aggr unknownpragma, \
648+
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
649+
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
650+
DISABLED_WARNINGS_clang := sign-compare $(HARFBUZZ_DISABLED_WARNINGS_clang), \
651+
DISABLED_WARNINGS_C_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_C_solstudio), \
652+
DISABLED_WARNINGS_CXX_solstudio := $(HARFBUZZ_DISABLED_WARNINGS_CXX_solstudio), \
653+
DISABLED_WARNINGS_microsoft := 4018 4996 $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
687654
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
688655
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
689656
$(call SET_SHARED_LIBRARY_ORIGIN), \
690657
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
691658
LDFLAGS_aix := -Wl$(COMMA)-berok, \
692659
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
693660
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
694-
LIBS_macosx := -lawt_lwawt, \
661+
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
695662
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
696663
$(WIN_AWT_LIB), \
697664
))
698665

699666
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
700667

701-
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
702-
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
703-
endif
704-
705668
ifeq ($(call isTargetOs, macosx), true)
706669
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
707670
endif

0 commit comments

Comments
 (0)