git: 2bd641cc196e - main - java/openjdk17: fix build with lld 17
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 06 Oct 2023 17:50:59 UTC
The branch main has been updated by dim:
URL: https://cgit.FreeBSD.org/ports/commit/?id=2bd641cc196eebc4dcb3df64df89fe30934106c0
commit 2bd641cc196eebc4dcb3df64df89fe30934106c0
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-09-26 15:26:06 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-10-06 17:48:54 +0000
java/openjdk17: fix build with lld 17
Building java/openjdk17 with lld 17 results in the following link errors:
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ21WB_HandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ26WB_AsyncHandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN12JvmtiEnvBase27check_for_periodic_clean_upEvE28ThreadInsideIterationClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN15G1RemSetSummary6updateEvE11CollectData' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet22set_active_all_threadsEbbE22SetThreadActiveClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet23abandon_partial_markingEvE25AbandonThreadQueueClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN18G1ConcurrentRefine30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet12abandon_logsEvE23AbandonThreadLogClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet16concatenate_logsEvE27ConcatenateThreadLogClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN7Threads25change_thread_claim_tokenEvE11ResetClaims' failed: symbol not defined
c++: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. The problem is due to the Makefile
JvmMapfile.gmk, which generates a linker version script. It uses "nm
--defined-only" to dump symbols in object files, but this also includes
local (hidden) symbols. Add "--extern-only" to make it only dump global
symbols.
PR: 274109
Approved by: maintainer timeout (10 days)
MFH: 2023Q4
---
.../files/patch-make_hotspot_lib_JvmMapfile.gmk | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/java/openjdk17/files/patch-make_hotspot_lib_JvmMapfile.gmk b/java/openjdk17/files/patch-make_hotspot_lib_JvmMapfile.gmk
new file mode 100644
index 000000000000..f3dd87603e77
--- /dev/null
+++ b/java/openjdk17/files/patch-make_hotspot_lib_JvmMapfile.gmk
@@ -0,0 +1,20 @@
+--- make/hotspot/lib/JvmMapfile.gmk.orig 2023-07-19 03:18:33 UTC
++++ make/hotspot/lib/JvmMapfile.gmk
+@@ -53,7 +53,7 @@ ifeq ($(call isTargetOs, linux), true)
+ # platform dependent.
+
+ ifeq ($(call isTargetOs, linux), true)
+- DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
++ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *.o
+ ifneq ($(FILTER_SYMBOLS_PATTERN), )
+ FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
+ endif
+@@ -117,7 +117,7 @@ else ifeq ($(call isTargetOs, bsd), true)
+ if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
+ }'
+ else
+- DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
++ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *.o
+ FILTER_SYMBOLS_AWK_SCRIPT := \
+ '{ \
+ if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \