8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux
Reviewed-by: serb, ihse, azvegint
This commit is contained in:
parent
422eba81b1
commit
05fe06a6ba
@ -432,92 +432,49 @@ endif
|
|||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
|
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
|
||||||
LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
|
LIBFONTMANAGER_EXTRA_SRC =
|
||||||
|
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS)
|
||||||
else
|
else
|
||||||
|
LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
|
||||||
|
|
||||||
# This is better than adding EXPORT_ALL_SYMBOLS
|
ifeq ($(call isTargetOs, windows), false)
|
||||||
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
|
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
|
||||||
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
|
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
|
||||||
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
|
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
||||||
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
|
endif
|
||||||
endif
|
ifeq ($(call isTargetOs, linux macosx), true)
|
||||||
|
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
|
||||||
|
endif
|
||||||
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
|
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), false)
|
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
||||||
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
|
# when building libharfbuzz
|
||||||
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
|
ifeq ($(call isTargetOs, aix), true)
|
||||||
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
|
HARFBUZZ_CFLAGS += -qdebug=necan
|
||||||
endif
|
endif
|
||||||
ifeq ($(call isTargetOs, linux macosx), true)
|
|
||||||
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
|
|
||||||
endif
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
|
||||||
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
|
|
||||||
endif
|
|
||||||
ifeq ($(call isTargetOs, macosx), false)
|
|
||||||
LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
|
|
||||||
endif
|
|
||||||
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
|
|
||||||
LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
|
|
||||||
|
|
||||||
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
|
ifeq ($(call isTargetOs, macosx), false)
|
||||||
|
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
|
||||||
|
endif
|
||||||
|
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
|
||||||
|
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
|
||||||
|
|
||||||
# For use by libfontmanager:
|
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
|
||||||
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
|
maybe-uninitialized class-memaccess
|
||||||
else
|
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
|
||||||
LIBHARFBUZZ_LIBS := -lharfbuzz
|
|
||||||
endif
|
|
||||||
|
|
||||||
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
|
|
||||||
libharfbuzz/hb-ucdn \
|
|
||||||
#
|
|
||||||
|
|
||||||
LIBHARFBUZZ_OPTIMIZATION := HIGH
|
|
||||||
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
|
|
||||||
# when building libharfbuzz
|
|
||||||
ifeq ($(call isTargetOs, aix), true)
|
|
||||||
LIBHARFBUZZ_CFLAGS += -qdebug=necan
|
|
||||||
endif
|
|
||||||
|
|
||||||
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
|
|
||||||
|
|
||||||
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
|
|
||||||
NAME := harfbuzz, \
|
|
||||||
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
|
|
||||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
|
||||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
|
|
||||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
|
|
||||||
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
|
|
||||||
CFLAGS_windows = -DCC_NOEX, \
|
|
||||||
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
|
|
||||||
WARNINGS_AS_ERRORS_xlc := false, \
|
|
||||||
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
|
|
||||||
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
|
|
||||||
maybe-uninitialized class-memaccess, \
|
|
||||||
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
|
|
||||||
tautological-constant-out-of-range-compare int-to-pointer-cast \
|
tautological-constant-out-of-range-compare int-to-pointer-cast \
|
||||||
undef missing-field-initializers range-loop-analysis, \
|
undef missing-field-initializers range-loop-analysis
|
||||||
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
|
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
|
||||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
||||||
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
|
|
||||||
LDFLAGS_aix := -Wl$(COMMA)-berok, \
|
|
||||||
LIBS := $(BUILD_LIBHARFBUZZ), \
|
|
||||||
LIBS_unix := $(LIBM) $(LIBCXX), \
|
|
||||||
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
|
|
||||||
LIBS_windows := user32.lib, \
|
|
||||||
))
|
|
||||||
|
|
||||||
ifeq ($(FREETYPE_TO_USE), bundled)
|
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
|
||||||
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
TARGETS += $(BUILD_LIBHARFBUZZ)
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
###########################################################################
|
|
||||||
|
|
||||||
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
|
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
|
||||||
libharfbuzz \
|
libharfbuzz \
|
||||||
@ -528,10 +485,10 @@ LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
|
|||||||
libawt/java2d/loops \
|
libawt/java2d/loops \
|
||||||
#
|
#
|
||||||
|
|
||||||
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
|
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
|
||||||
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
|
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
|
||||||
|
|
||||||
LIBFONTMANAGER_OPTIMIZATION := HIGH
|
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
|
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
|
||||||
@ -569,7 +526,12 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
|
|||||||
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
|
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
|
||||||
CFLAGS_windows = -DCC_NOEX, \
|
CFLAGS_windows = -DCC_NOEX, \
|
||||||
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
|
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
|
||||||
|
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
|
||||||
WARNINGS_AS_ERRORS_xlc := false, \
|
WARNINGS_AS_ERRORS_xlc := false, \
|
||||||
|
DISABLED_WARNINGS_gcc := $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
|
||||||
|
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
|
||||||
|
DISABLED_WARNINGS_clang := $(HARFBUZZ_DISABLED_WARNINGS_clang), \
|
||||||
|
DISABLED_WARNINGS_microsoft := $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
|
||||||
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
|
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
|
||||||
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
|
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
|
||||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||||
@ -577,17 +539,13 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
|
|||||||
LDFLAGS_aix := -Wl$(COMMA)-berok, \
|
LDFLAGS_aix := -Wl$(COMMA)-berok, \
|
||||||
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
|
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
|
||||||
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
|
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
|
||||||
LIBS_macosx := -lawt_lwawt, \
|
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
|
||||||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
|
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
|
||||||
$(WIN_AWT_LIB), \
|
$(WIN_AWT_LIB), \
|
||||||
))
|
))
|
||||||
|
|
||||||
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
|
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
|
||||||
|
|
||||||
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
|
|
||||||
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(call isTargetOs, macosx), true)
|
ifeq ($(call isTargetOs, macosx), true)
|
||||||
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
|
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
|
||||||
endif
|
endif
|
||||||
|
@ -53,8 +53,6 @@ public class FontManagerNativeLibrary {
|
|||||||
NB: consider moving freetype wrapper part to separate
|
NB: consider moving freetype wrapper part to separate
|
||||||
shared library in order to avoid dependency. */
|
shared library in order to avoid dependency. */
|
||||||
System.loadLibrary("freetype");
|
System.loadLibrary("freetype");
|
||||||
/* Same for harfbuzz */
|
|
||||||
System.loadLibrary("harfbuzz");
|
|
||||||
}
|
}
|
||||||
System.loadLibrary("fontmanager");
|
System.loadLibrary("fontmanager");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user