From 66013e876c706c1b8f508c5857fc997e373f3b0d Mon Sep 17 00:00:00 2001 From: MBaesken Date: Fri, 28 Nov 2025 16:44:02 +0100 Subject: [PATCH 1/2] JDK-8372643 --- make/autoconf/flags-ldflags.m4 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/make/autoconf/flags-ldflags.m4 b/make/autoconf/flags-ldflags.m4 index 572790b567b45..74824aab4d940 100644 --- a/make/autoconf/flags-ldflags.m4 +++ b/make/autoconf/flags-ldflags.m4 @@ -76,7 +76,11 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER], BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ -fPIC" - LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing" + if test "x$OPENJDK_TARGET_OS" = xmacosx; then + LDFLAGS_LTO="-flto=auto -Wl,-object_path_lto,lto.o -fuse-linker-plugin -fno-strict-aliasing" + else + LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing" + fi LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r" if test "x$OPENJDK_TARGET_OS" = xlinux; then From 508122b3cfb9035f94969a55d0ac50eb2c11bb0c Mon Sep 17 00:00:00 2001 From: MBaesken Date: Wed, 3 Dec 2025 16:22:58 +0100 Subject: [PATCH 2/2] Move -Wl,-object_path_lto setting, and specify a file at OBJECT_DIR --- make/autoconf/flags-ldflags.m4 | 6 +----- make/common/native/Flags.gmk | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/make/autoconf/flags-ldflags.m4 b/make/autoconf/flags-ldflags.m4 index 74824aab4d940..572790b567b45 100644 --- a/make/autoconf/flags-ldflags.m4 +++ b/make/autoconf/flags-ldflags.m4 @@ -76,11 +76,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER], BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ -fPIC" - if test "x$OPENJDK_TARGET_OS" = xmacosx; then - LDFLAGS_LTO="-flto=auto -Wl,-object_path_lto,lto.o -fuse-linker-plugin -fno-strict-aliasing" - else - LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing" - fi + LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing" LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r" if test "x$OPENJDK_TARGET_OS" = xlinux; then diff --git a/make/common/native/Flags.gmk b/make/common/native/Flags.gmk index 843701cb4db8a..efb4c08e74c54 100644 --- a/make/common/native/Flags.gmk +++ b/make/common/native/Flags.gmk @@ -229,6 +229,11 @@ define SetupLinkerFlags # TOOLCHAIN_TYPE plus OPENJDK_TARGET_OS ifeq ($$($1_LINK_TIME_OPTIMIZATION), true) $1_EXTRA_LDFLAGS += $(LDFLAGS_LTO) + # Instruct the ld64 linker not to delete the temporary object file + # generated during Link Time Optimization + ifeq ($(call isTargetOs, macosx), true) + $1_EXTRA_LDFLAGS += -Wl,-object_path_lto,$$($1_OBJECT_DIR)/$$($1_NAME)_lto_helper.o + endif endif $1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) \