Page MenuHomeFreeBSD

D47742.diff
No OneTemporary

D47742.diff

diff --git a/UPDATING b/UPDATING
--- a/UPDATING
+++ b/UPDATING
@@ -27,6 +27,15 @@
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
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -203,7 +203,7 @@
link_elf_methods, sizeof(struct elf_file)
};
-static bool link_elf_leak_locals = true;
+static bool link_elf_leak_locals = false;
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
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -192,7 +192,7 @@
link_elf_methods, sizeof(struct elf_file)
};
-static bool link_elf_obj_leak_locals = true;
+static bool link_elf_obj_leak_locals = false;
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");

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 16, 5:42 AM (4 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35125285
Default Alt Text
D47742.diff (1 KB)

Event Timeline