From 771e160da4daa98bfe37bf1acba65454c088910c Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 13 Mar 2025 16:54:54 +0000 Subject: [PATCH] 8351323: Parameterize compiler and linker flags for iconv Reviewed-by: ihse, erikj --- make/autoconf/libraries.m4 | 14 ++++++++++++++ make/autoconf/spec.gmk.template | 3 +++ make/modules/java.desktop/lib/ClientLibraries.gmk | 13 ++++++++----- make/modules/java.instrument/Lib.gmk | 7 +++++-- make/modules/jdk.jdwp.agent/Lib.gmk | 6 +++--- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/make/autoconf/libraries.m4 b/make/autoconf/libraries.m4 index 70d52d189f4..b946be97d96 100644 --- a/make/autoconf/libraries.m4 +++ b/make/autoconf/libraries.m4 @@ -205,6 +205,20 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], fi AC_SUBST(LIBPTHREAD) + # Setup libiconv flags and library + if test "x$OPENJDK_TARGET_OS" == "xaix" || test "x$OPENJDK_TARGET_OS" == "xmacosx"; then + ICONV_CFLAGS= + ICONV_LDFLAGS= + ICONV_LIBS=-liconv + else + ICONV_CFLAGS= + ICONV_LDFLAGS= + ICONV_LIBS= + fi + AC_SUBST(ICONV_CFLAGS) + AC_SUBST(ICONV_LDFLAGS) + AC_SUBST(ICONV_LIBS) + # Control if libzip can use mmap. Available for purposes of overriding. LIBZIP_CAN_USE_MMAP=true AC_SUBST(LIBZIP_CAN_USE_MMAP) diff --git a/make/autoconf/spec.gmk.template b/make/autoconf/spec.gmk.template index e502f5e281b..92ee1c93287 100644 --- a/make/autoconf/spec.gmk.template +++ b/make/autoconf/spec.gmk.template @@ -427,6 +427,9 @@ LIBFFI_LIBS := @LIBFFI_LIBS@ LIBFFI_CFLAGS := @LIBFFI_CFLAGS@ ENABLE_LIBFFI_BUNDLING := @ENABLE_LIBFFI_BUNDLING@ LIBFFI_LIB_FILE := @LIBFFI_LIB_FILE@ +ICONV_CFLAGS := @ICONV_CFLAGS@ +ICONV_LDFLAGS := @ICONV_LDFLAGS@ +ICONV_LIBS := @ICONV_LIBS@ FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@ REPRODUCIBLE_CFLAGS := @REPRODUCIBLE_CFLAGS@ diff --git a/make/modules/java.desktop/lib/ClientLibraries.gmk b/make/modules/java.desktop/lib/ClientLibraries.gmk index 330b914b7e5..5587b13a6c9 100644 --- a/make/modules/java.desktop/lib/ClientLibraries.gmk +++ b/make/modules/java.desktop/lib/ClientLibraries.gmk @@ -228,9 +228,11 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false) EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \ OPTIMIZATION := SIZE, \ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) \ - $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \ + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS) \ + $(ICONV_CFLAGS), \ CXXFLAGS := $(LIBSPLASHSCREEN_CFLAGS) \ - $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \ + $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS) \ + $(ICONV_CFLAGS), \ EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \ DISABLED_WARNINGS_gcc_dgif_lib.c := sign-compare, \ DISABLED_WARNINGS_gcc_jcmaster.c := implicit-fallthrough, \ @@ -256,19 +258,20 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false) DISABLED_WARNINGS_microsoft_splashscreen_impl.c := 4018 4267 4244, \ DISABLED_WARNINGS_microsoft_splashscreen_png.c := 4267, \ DISABLED_WARNINGS_microsoft_splashscreen_sys.c := 4267 4244, \ + LDFLAGS := $(ICONV_LDFLAGS), \ LDFLAGS_windows := -delayload:user32.dll, \ JDK_LIBS_windows := java.base:libjava, \ JDK_LIBS_macosx := libosxapp, \ - LIBS := $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(LIBZ_LIBS) $(PNG_LIBS), \ + LIBS := $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(LIBZ_LIBS) $(PNG_LIBS) $(ICONV_LIBS), \ LIBS_unix := $(LIBM) $(LIBPTHREAD), \ LIBS_linux := $(LIBDL) $(X_LIBS) -lX11 -lXext, \ - LIBS_macosx := -liconv \ + LIBS_macosx := \ -framework ApplicationServices \ -framework Cocoa \ -framework Foundation \ -framework Metal \ -framework Security, \ - LIBS_aix := $(LIBDL) -liconv $(X_LIBS) -lX11 -lXext, \ + LIBS_aix := $(LIBDL) $(X_LIBS) -lX11 -lXext, \ LIBS_windows := delayimp.lib gdi32.lib kernel32.lib user32.lib, \ STATIC_LIB_EXCLUDE_OBJS := $(LIBSPLASHSCREEN_STATIC_LIB_EXCLUDE_OBJS), \ )) diff --git a/make/modules/java.instrument/Lib.gmk b/make/modules/java.instrument/Lib.gmk index 0d1a3d81b50..609814c86ed 100644 --- a/make/modules/java.instrument/Lib.gmk +++ b/make/modules/java.instrument/Lib.gmk @@ -35,14 +35,17 @@ include LibCommon.gmk $(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \ NAME := instrument, \ OPTIMIZATION := LOW, \ + CFLAGS := $(ICONV_CFLAGS), \ CFLAGS_windows := -Dstrcasecmp=stricmp, \ CFLAGS_debug := -DJPLIS_LOGGING, \ CFLAGS_release := -DNO_JPLIS_LOGGING, \ + LDFLAGS := $(ICONV_LDFLAGS), \ JDK_LIBS := java.base:libjava java.base:libjli java.base:libjvm, \ + LIBS := $(ICONV_LIBS), \ LIBS_unix := $(LIBZ_LIBS), \ LIBS_linux := $(LIBDL), \ - LIBS_aix := $(LIBDL) -liconv, \ - LIBS_macosx := -liconv \ + LIBS_aix := $(LIBDL), \ + LIBS_macosx := \ -framework ApplicationServices \ -framework Cocoa \ -framework Security, \ diff --git a/make/modules/jdk.jdwp.agent/Lib.gmk b/make/modules/jdk.jdwp.agent/Lib.gmk index b4a8cc622c6..8fe7787d76e 100644 --- a/make/modules/jdk.jdwp.agent/Lib.gmk +++ b/make/modules/jdk.jdwp.agent/Lib.gmk @@ -53,7 +53,7 @@ TARGETS += $(BUILD_LIBDT_SOCKET) $(eval $(call SetupJdkLibrary, BUILD_LIBJDWP, \ NAME := jdwp, \ OPTIMIZATION := LOW, \ - CFLAGS := -DJDWP_LOGGING, \ + CFLAGS := -DJDWP_LOGGING $(ICONV_CFLAGS), \ DISABLED_WARNINGS_gcc_eventFilter.c := unused-variable, \ DISABLED_WARNINGS_gcc_SDE.c := unused-function, \ DISABLED_WARNINGS_gcc_threadControl.c := unused-but-set-variable \ @@ -68,14 +68,14 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJDWP, \ DISABLED_WARNINGS_clang_threadControl.c := unused-but-set-variable \ unused-variable, \ DISABLED_WARNINGS_clang_utf_util.c := unused-but-set-variable, \ + LDFLAGS := $(ICONV_LDFLAGS), \ EXTRA_HEADER_DIRS := \ include \ libjdwp/export \ java.base:libjava, \ JDK_LIBS := java.base:libjvm, \ + LIBS := $(ICONV_LIBS), \ LIBS_linux := $(LIBDL), \ - LIBS_macosx := -liconv, \ - LIBS_aix := -liconv, \ )) TARGETS += $(BUILD_LIBJDWP)