Skip to content

Commit f57db75

Browse files
committed
build: Use -z noseparate-code on NetBSD < 11.0
This can be dropped once Bitcoin Core no longer supports NetBSD 10.0 or if upstream fix is backported. NetBSD's dynamic linker ld.elf_so < 11.0 supports exactly 2 `PT_LOAD` segments and binaries linked with `-z separate-code` have 4 `PT_LOAD` segments. bitcoin/bitcoin#28724 (comment) https://mail-index.netbsd.org/tech-userlevel/2023/01/05/msg013666.html
1 parent 8046759 commit f57db75

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

CMakeLists.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,19 @@ if(ENABLE_HARDENING)
533533
try_append_linker_flag("-Wl,--high-entropy-va" TARGET hardening_interface)
534534
try_append_linker_flag("-Wl,-z,relro" TARGET hardening_interface)
535535
try_append_linker_flag("-Wl,-z,now" TARGET hardening_interface)
536-
try_append_linker_flag("-Wl,-z,separate-code" TARGET hardening_interface)
536+
# TODO: This can be dropped once Bitcoin Core no longer supports
537+
# NetBSD 10.0 or if upstream fix is backported.
538+
# NetBSD's dynamic linker ld.elf_so < 11.0 supports exactly 2
539+
# `PT_LOAD` segments and binaries linked with `-z separate-code`
540+
# have 4 `PT_LOAD` segments.
541+
# Relevant discussions:
542+
# - https://github.com/bitcoin/bitcoin/pull/28724#issuecomment-2589347934
543+
# - https://mail-index.netbsd.org/tech-userlevel/2023/01/05/msg013666.html
544+
if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD" AND CMAKE_SYSTEM_VERSION VERSION_LESS 11.0)
545+
try_append_linker_flag("-Wl,-z,noseparate-code" TARGET hardening_interface)
546+
else()
547+
try_append_linker_flag("-Wl,-z,separate-code" TARGET hardening_interface)
548+
endif()
537549
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
538550
try_append_linker_flag("-Wl,-fixup_chains" TARGET hardening_interface)
539551
endif()

0 commit comments

Comments
 (0)