Skip to content
This repository was archived by the owner on Aug 27, 2022. It is now read-only.

Commit 05fe06a

Browse files
committed
8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux
Reviewed-by: serb, ihse, azvegint
1 parent 422eba8 commit 05fe06a

File tree

2 files changed

+45
-89
lines changed

2 files changed

+45
-89
lines changed

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

Lines changed: 45 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -432,92 +432,49 @@ endif
432432

433433
###########################################################################
434434

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

516-
TARGETS += $(BUILD_LIBHARFBUZZ)
474+
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
517475

518476
endif
519477

520-
###########################################################################
521478

522479
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
523480
libharfbuzz \
@@ -528,10 +485,10 @@ LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
528485
libawt/java2d/loops \
529486
#
530487

531-
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
532-
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
488+
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
489+
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
533490

534-
LIBFONTMANAGER_OPTIMIZATION := HIGH
491+
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
535492

536493
ifeq ($(call isTargetOs, windows), true)
537494
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -569,25 +526,26 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
569526
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
570527
CFLAGS_windows = -DCC_NOEX, \
571528
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
529+
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
572530
WARNINGS_AS_ERRORS_xlc := false, \
531+
DISABLED_WARNINGS_gcc := $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
532+
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
533+
DISABLED_WARNINGS_clang := $(HARFBUZZ_DISABLED_WARNINGS_clang), \
534+
DISABLED_WARNINGS_microsoft := $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
573535
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
574536
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
575537
$(call SET_SHARED_LIBRARY_ORIGIN), \
576538
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
577539
LDFLAGS_aix := -Wl$(COMMA)-berok, \
578540
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
579541
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
580-
LIBS_macosx := -lawt_lwawt, \
542+
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
581543
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
582544
$(WIN_AWT_LIB), \
583545
))
584546

585547
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
586548

587-
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
588-
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
589-
endif
590-
591549
ifeq ($(call isTargetOs, macosx), true)
592550
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
593551
endif

src/java.desktop/share/classes/sun/font/FontManagerNativeLibrary.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ top of freetype library (that is used in binary form).
5353
NB: consider moving freetype wrapper part to separate
5454
shared library in order to avoid dependency. */
5555
System.loadLibrary("freetype");
56-
/* Same for harfbuzz */
57-
System.loadLibrary("harfbuzz");
5856
}
5957
System.loadLibrary("fontmanager");
6058

0 commit comments

Comments
 (0)