git: fad4c92b78a1 - main - Revert "kernel linker: Disable local sym resolution by default"
Date: Tue, 25 Nov 2025 17:14:28 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=fad4c92b78a123f87195173ac118655fa8e325cd
commit fad4c92b78a123f87195173ac118655fa8e325cd
Author: Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2025-11-25 17:12:36 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2025-11-25 17:14:10 +0000
Revert "kernel linker: Disable local sym resolution by default"
I've received a report of a failure from resolving kern_kmq_open.
Revert for now as we are currently in stabweek.
This reverts commit 9562994a7aacee2baae6ddee1a7b558b48ae39ef.
Reported by: mav
---
UPDATING | 9 ---------
sys/kern/link_elf.c | 2 +-
sys/kern/link_elf_obj.c | 2 +-
3 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/UPDATING b/UPDATING
index 7f0cb44181d3..aaef0e5b4cd3 100644
--- a/UPDATING
+++ b/UPDATING
@@ -27,15 +27,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
-20251125:
- The `debug.link_elf_leak_locals` and `debug.link_elf_obj_leak_locals`
- sysctls now default to 0, so the kernel module linker no longer
- performs symbol resolution against local symbols from other modules.
-
- If a kernel module now fails to load because of an unresolved symbol,
- set these sysctls to 1 and file a bug report including details about
- the affected module.
-
20251115:
The FreeBSD-base repository is now defined in /etc/pkg/FreeBSD.conf,
disabled by default. In -CURRENT and -STABLE this points at nightly
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index f910fc3d5df5..ebd203858b66 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -203,7 +203,7 @@ static struct linker_class link_elf_class = {
link_elf_methods, sizeof(struct elf_file)
};
-static bool link_elf_leak_locals = false;
+static bool link_elf_leak_locals = true;
SYSCTL_BOOL(_debug, OID_AUTO, link_elf_leak_locals,
CTLFLAG_RWTUN, &link_elf_leak_locals, 0,
"Allow local symbols to participate in global module symbol resolution");
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 759cd75cba31..a3a53a39bfd6 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -192,7 +192,7 @@ static struct linker_class link_elf_class = {
link_elf_methods, sizeof(struct elf_file)
};
-static bool link_elf_obj_leak_locals = false;
+static bool link_elf_obj_leak_locals = true;
SYSCTL_BOOL(_debug, OID_AUTO, link_elf_obj_leak_locals,
CTLFLAG_RWTUN, &link_elf_obj_leak_locals, 0,
"Allow local symbols to participate in global module symbol resolution");