Skip to content

Commit a26a6c9

Browse files
committed
kbuild: Strip trailing padding bytes from modules.builtin.modinfo
After commit d50f210 ("kbuild: align modinfo section for Secureboot Authenticode EDK2 compat"), running modules_install with certain versions of kmod (such as 29.1 in Ubuntu Jammy) in certain configurations may fail with: depmod: ERROR: kmod_builtin_iter_next: unexpected string without modname prefix The additional padding bytes to ensure .modinfo is aligned within vmlinux.unstripped are unexpected by kmod, as this section has always just been null-terminated strings. Strip the trailing padding bytes from modules.builtin.modinfo after it has been extracted from vmlinux.unstripped to restore the format that kmod expects while keeping .modinfo aligned within vmlinux.unstripped to avoid regressing the Authenticode calculation fix for EDK2. Cc: stable@vger.kernel.org Fixes: d50f210 ("kbuild: align modinfo section for Secureboot Authenticode EDK2 compat") Reported-by: Omar Sandoval <osandov@fb.com> Reported-by: Samir M <samir@linux.ibm.com> Reported-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Closes: https://lore.kernel.org/7fef7507-ad64-4e51-9bb8-c9fb6532e51e@linux.ibm.com/ Tested-by: Omar Sandoval <osandov@fb.com> Tested-by: Samir M <samir@linux.ibm.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Nicolas Schier <nsc@kernel.org> Link: https://patch.msgid.link/20251105-kbuild-fix-builtin-modinfo-for-kmod-v1-1-b419d8ad4606@kernel.org Signed-off-by: Nathan Chancellor <nathan@kernel.org>
1 parent 6146a0f commit a26a6c9

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

scripts/Makefile.vmlinux

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,24 @@ vmlinux: vmlinux.unstripped FORCE
102102
# modules.builtin.modinfo
103103
# ---------------------------------------------------------------------------
104104

105+
# .modinfo in vmlinux.unstripped is aligned to 8 bytes for compatibility with
106+
# tools that expect vmlinux to have sufficiently aligned sections but the
107+
# additional bytes used for padding .modinfo to satisfy this requirement break
108+
# certain versions of kmod with
109+
#
110+
# depmod: ERROR: kmod_builtin_iter_next: unexpected string without modname prefix
111+
#
112+
# Strip the trailing padding bytes after extracting .modinfo to comply with
113+
# what kmod expects to parse.
114+
quiet_cmd_modules_builtin_modinfo = GEN $@
115+
cmd_modules_builtin_modinfo = $(cmd_objcopy); \
116+
sed -i 's/\x00\+$$/\x00/g' $@
117+
105118
OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary
106119

107120
targets += modules.builtin.modinfo
108121
modules.builtin.modinfo: vmlinux.unstripped FORCE
109-
$(call if_changed,objcopy)
122+
$(call if_changed,modules_builtin_modinfo)
110123

111124
# modules.builtin
112125
# ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)