mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 09:36:41 -04:00
java/openjdk{19,20,21}: fix build with lld 17
Building java/openjdk{19,20,21} 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 '_ZTVZ24WB_HandshakeReadMonitorsE19ReadMonitorsClosure' 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 '_ZTVZL20reinitialize_itablesvE18ReinitTableClosure' 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
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: 276425
Approved by: otis (mentor), dim
MFH: 2024Q1
Differential Revision: https://reviews.freebsd.org/D43620
(cherry picked from commit a1f91b22f1
)
This commit is contained in:
parent
3bea1dbe7a
commit
cfb52bd42c
3 changed files with 60 additions and 0 deletions
20
java/openjdk19/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
20
java/openjdk19/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- make/hotspot/lib/JvmMapfile.gmk.orig 2022-07-20 22:54:48 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
|
||||||
|
@@ -134,7 +134,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; \
|
20
java/openjdk20/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
20
java/openjdk20/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- make/hotspot/lib/JvmMapfile.gmk.orig 2024-01-26 16:33:03 UTC
|
||||||
|
+++ make/hotspot/lib/JvmMapfile.gmk
|
||||||
|
@@ -53,7 +53,7 @@ endif
|
||||||
|
# platform dependent.
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
|
- DUMP_SYMBOLS_CMD := $(NM) --defined-only *$(OBJ_SUFFIX)
|
||||||
|
+ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *$(OBJ_SUFFIX)
|
||||||
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
||||||
|
endif
|
||||||
|
@@ -134,7 +134,7 @@ else ifeq ($(call isTargetOs, bsd), true)
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
||||||
|
}'
|
||||||
|
else
|
||||||
|
- DUMP_SYMBOLS_CMD := $(NM) --defined-only *$(OBJ_SUFFIX)
|
||||||
|
+ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *$(OBJ_SUFFIX)
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
20
java/openjdk21/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
20
java/openjdk21/files/patch-make_hotspot_lib_JvmMapfile.gmk
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- make/hotspot/lib/JvmMapfile.gmk.orig 2024-01-26 16:33:03 UTC
|
||||||
|
+++ make/hotspot/lib/JvmMapfile.gmk
|
||||||
|
@@ -53,7 +53,7 @@ endif
|
||||||
|
# platform dependent.
|
||||||
|
|
||||||
|
ifeq ($(call isTargetOs, linux), true)
|
||||||
|
- DUMP_SYMBOLS_CMD := $(NM) --defined-only *$(OBJ_SUFFIX)
|
||||||
|
+ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *$(OBJ_SUFFIX)
|
||||||
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
||||||
|
endif
|
||||||
|
@@ -134,7 +134,7 @@ else ifeq ($(call isTargetOs, bsd), true)
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
||||||
|
}'
|
||||||
|
else
|
||||||
|
- DUMP_SYMBOLS_CMD := $(NM) --defined-only *$(OBJ_SUFFIX)
|
||||||
|
+ DUMP_SYMBOLS_CMD := $(NM) --extern-only --defined-only *$(OBJ_SUFFIX)
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
Loading…
Add table
Reference in a new issue