< prev index next >

make/lib/Awt2dLibraries.gmk

Print this page
@  rev 49621 : 8196516: libfontmanager must be built with LDFLAGS allowing unresolved symbols
|  Summary: Fixes build failures on some sustems with custom LDFLAGS settings.
~


 602 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 603   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 604       X11TextRenderer.c \
 605       fontpath.c \
 606       lcdglyph.c
 607 else
 608   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 609       lcdglyph.c
 610 endif
 611 
 612 LIBFONTMANAGER_CFLAGS += $(FONT_HEADERS) $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
 613 
 614 ifeq ($(TOOLCHAIN_TYPE), gcc)
 615   # Turn off all warnings for sunFont.c. This is needed because the specific warning
 616   # about discarding 'const' qualifier cannot be turned off individually.
 617   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
 618   # Turn off aliasing with GCC for ExtensionSubtables.cpp
 619   BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
 620 endif
 621 




 622 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
 623     NAME := fontmanager, \
 624     SRC := $(LIBFONTMANAGER_SRC), \
 625     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 626         AccelGlyphCache.c, \
 627     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 628     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 629     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 630     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 631     CFLAGS_windows = -DCC_NOEX, \
 632     WARNINGS_AS_ERRORS_xlc := false, \
 633     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
 634         type-limits missing-field-initializers implicit-fallthrough, \
 635     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
 636         maybe-uninitialized, \
 637     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
 638         tautological-constant-out-of-range-compare int-to-pointer-cast, \
 639     DISABLED_WARNINGS_C_solstudio = \
 640         E_INTEGER_OVERFLOW_DETECTED \
 641         E_ARG_INCOMPATIBLE_WITH_ARG_L \
 642         E_ENUM_VAL_OVERFLOWS_INT_MAX, \
 643     DISABLED_WARNINGS_CXX_solstudio := \
 644         truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
 645         hidevf w_novirtualdescr arrowrtn2, \
 646     DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101, \
 647     LDFLAGS := $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \

 648         $(call SET_SHARED_LIBRARY_ORIGIN), \
 649     LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
 650     LDFLAGS_macosx := -undefined dynamic_lookup, \
 651     LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 652     LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
 653     LIBS_aix := -lawt_headless,\
 654     LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 655         $(WIN_AWT_LIB), \
 656 ))
 657 
 658 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
 659 
 660 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
 661   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_HEADLESS)
 662 endif
 663 
 664 ifeq ($(FREETYPE_TO_USE), bundled)
 665   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
 666 endif
 667 




 602 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 603   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 604       X11TextRenderer.c \
 605       fontpath.c \
 606       lcdglyph.c
 607 else
 608   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 609       lcdglyph.c
 610 endif
 611 
 612 LIBFONTMANAGER_CFLAGS += $(FONT_HEADERS) $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
 613 
 614 ifeq ($(TOOLCHAIN_TYPE), gcc)
 615   # Turn off all warnings for sunFont.c. This is needed because the specific warning
 616   # about discarding 'const' qualifier cannot be turned off individually.
 617   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
 618   # Turn off aliasing with GCC for ExtensionSubtables.cpp
 619   BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
 620 endif
 621 
 622 # LDFLAGS clarification:
 623 #   Filter relevant linker flags disallowing unresolved symbols as we cannot
 624 #   build-time decide to which library to link against (libawt_headless or
 625 #   libawt_xawt). See JDK-8196516 for details.
 626 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
 627     NAME := fontmanager, \
 628     SRC := $(LIBFONTMANAGER_SRC), \
 629     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 630         AccelGlyphCache.c, \
 631     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 632     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 633     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 634     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 635     CFLAGS_windows = -DCC_NOEX, \
 636     WARNINGS_AS_ERRORS_xlc := false, \
 637     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
 638         type-limits missing-field-initializers implicit-fallthrough, \
 639     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
 640         maybe-uninitialized, \
 641     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
 642         tautological-constant-out-of-range-compare int-to-pointer-cast, \
 643     DISABLED_WARNINGS_C_solstudio = \
 644         E_INTEGER_OVERFLOW_DETECTED \
 645         E_ARG_INCOMPATIBLE_WITH_ARG_L \
 646         E_ENUM_VAL_OVERFLOWS_INT_MAX, \
 647     DISABLED_WARNINGS_CXX_solstudio := \
 648         truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
 649         hidevf w_novirtualdescr arrowrtn2, \
 650     DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101, \
 651     LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
 652                     $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
 653         $(call SET_SHARED_LIBRARY_ORIGIN), \
 654     LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
 655     LDFLAGS_macosx := -undefined dynamic_lookup, \
 656     LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 657     LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
 658     LIBS_aix := -lawt_headless,\
 659     LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 660         $(WIN_AWT_LIB), \
 661 ))
 662 
 663 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
 664 
 665 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
 666   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_HEADLESS)
 667 endif
 668 
 669 ifeq ($(FREETYPE_TO_USE), bundled)
 670   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
 671 endif
 672 


< prev index next >