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");