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

Commit 3adb4ce

Browse files
author
Dmitry Cherepanov
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: yan Backport-of: 05fe06a6bafc089c6466ccbdea335e5dbfdaf335
1 parent 83aec21 commit 3adb4ce

File tree

1 file changed

+41
-86
lines changed

1 file changed

+41
-86
lines changed

make/modules/java.desktop/lib/Awt2dLibraries.gmk

Lines changed: 41 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -434,102 +434,59 @@ endif
434434

435435
###########################################################################
436436

437+
437438
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
438-
LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
439+
LIBFONTMANAGER_EXTRA_SRC =
440+
BUILD_LIBFONTMANAGER_FONTLIB += $(HARFBUZZ_LIBS)
439441
else
440-
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
441-
442-
# This is better than adding EXPORT_ALL_SYMBOLS
443-
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
444-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
445-
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
446-
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
447-
endif
448-
449-
ifeq ($(call isTargetOs, windows), false)
450-
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
451-
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
452-
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
453-
endif
454-
ifeq ($(call isTargetOs, linux macosx), true)
455-
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
456-
endif
457-
ifeq ($(call isTargetOs, macosx), true)
458-
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
459-
endif
460-
ifeq ($(call isTargetOs, macosx), false)
461-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
462-
endif
463-
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
464-
LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
465-
466-
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
467-
468-
# For use by libfontmanager:
469-
ifeq ($(call isTargetOs, windows), true)
470-
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
471-
else
472-
LIBHARFBUZZ_LIBS := -lharfbuzz
473-
endif
474-
475-
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
476-
libharfbuzz/hb-ucdn \
477-
#
478-
479-
LIBHARFBUZZ_OPTIMIZATION := HIGH
480-
481-
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
482-
483-
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
484-
NAME := harfbuzz, \
485-
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
486-
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
487-
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
488-
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
489-
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
490-
CFLAGS_windows = -DCC_NOEX, \
491-
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
492-
WARNINGS_AS_ERRORS_xlc := false, \
493-
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
494-
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
495-
maybe-uninitialized class-memaccess, \
496-
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
442+
LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
443+
HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
444+
445+
ifeq ($(call isTargetOs, windows), false)
446+
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
447+
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
448+
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
449+
endif
450+
ifeq ($(call isTargetOs, linux macosx), true)
451+
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
452+
endif
453+
ifeq ($(call isTargetOs, macosx), true)
454+
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
455+
endif
456+
457+
ifeq ($(call isTargetOs, macosx), false)
458+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
459+
endif
460+
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
461+
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
462+
463+
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
464+
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
465+
maybe-uninitialized class-memaccess
466+
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
497467
tautological-constant-out-of-range-compare int-to-pointer-cast \
498-
undef missing-field-initializers, \
499-
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
500-
LDFLAGS := $(LDFLAGS_JDKLIB) \
501-
$(call SET_SHARED_LIBRARY_ORIGIN), \
502-
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
503-
LDFLAGS_aix := -Wl$(COMMA)-berok, \
504-
LIBS := $(BUILD_LIBHARFBUZZ), \
505-
LIBS_unix := $(LIBM) $(LIBCXX), \
506-
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
507-
LIBS_windows := user32.lib, \
508-
))
509-
510-
ifeq ($(FREETYPE_TO_USE), bundled)
511-
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
512-
endif
468+
undef missing-field-initializers
469+
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
513470

514-
TARGETS += $(BUILD_LIBHARFBUZZ)
471+
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
515472

516473
endif
517474

518-
###########################################################################
519475

520476
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
521477
libharfbuzz \
478+
libharfbuzz/hb-ucdn \
522479
common/awt \
523480
common/font \
524481
libawt/java2d \
525482
libawt/java2d/pipe \
526483
libawt/java2d/loops \
527484
#
528485

529-
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
530-
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
486+
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
487+
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
531488

532-
LIBFONTMANAGER_OPTIMIZATION := HIGH
489+
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
533490

534491
ifeq ($(call isTargetOs, windows), true)
535492
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -567,28 +524,26 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
567524
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
568525
CFLAGS_windows = -DCC_NOEX, \
569526
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
527+
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
570528
WARNINGS_AS_ERRORS_xlc := false, \
571-
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast, \
572-
DISABLED_WARNINGS_clang := sign-compare, \
573-
DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \
529+
DISABLED_WARNINGS_gcc := sign-compare unused-function int-to-pointer-cast $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
530+
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
531+
DISABLED_WARNINGS_clang := sign-compare $(HARFBUZZ_DISABLED_WARNINGS_clang), \
532+
DISABLED_WARNINGS_microsoft := 4018 4996 $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
574533
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
575534
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
576535
$(call SET_SHARED_LIBRARY_ORIGIN), \
577536
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
578537
LDFLAGS_aix := -Wl$(COMMA)-berok, \
579538
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
580539
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
581-
LIBS_macosx := -lawt_lwawt, \
540+
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
582541
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
583542
$(WIN_AWT_LIB), \
584543
))
585544

586545
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
587546

588-
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
589-
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
590-
endif
591-
592547
ifeq ($(call isTargetOs, macosx), true)
593548
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
594549
endif

0 commit comments

Comments
 (0)