Thread (34 messages) 34 messages, 5 authors, 2022-05-12

Re: [PATCH v4 00/14] kbuild: yet another series of cleanups (modpost, LTO, MODULE_REL_CRCS, export.h)

From: Nathan Chancellor <nathan@kernel.org>
Date: 2022-05-09 22:13:41
Also in: linux-modules, lkml
Subsystem: kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers: Nathan Chancellor, Nicolas Schier, Linus Torvalds

On Mon, May 09, 2022 at 01:24:33PM +0900, Masahiro Yamada wrote:
On Mon, May 9, 2022 at 4:09 AM Masahiro Yamada [off-list ref] wrote:
quoted
This is the third batch of cleanups in this development cycle.

Major changes in v4:
 - Move static EXPORT_SYMBOL check to a script
 - Some refactoring

Major changes in v3:

 - Generate symbol CRCs as C code, and remove CONFIG_MODULE_REL_CRCS.

Major changes in v2:

 - V1 did not work with CONFIG_MODULE_REL_CRCS.
   I fixed this for v2.

 - Reflect some review comments in v1

 - Refactor the code more

 - Avoid too long argument error
This series is available at
git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
lto-cleanup-v4
Hi Masahiro,

I checked this out and went to run it through my QEMU tests but I see
two new errors.

Failure #1:

In file included from scripts/mod/section-check.c:3:
scripts/mod/modpost.h:15:10: fatal error: 'elfconfig.h' file not found
#include "elfconfig.h"
         ^~~~~~~~~~~~~
1 error generated.

I was able to get past that with
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index ca739c6c68a1..c33b83bfbcad 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -16,7 +16,7 @@ targets += $(devicetable-offsets-file) devicetable-offsets.s

 # dependencies on generated files need to be listed explicitly

-$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
+$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o $(obj)/section-check.o: $(obj)/elfconfig.h
 $(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)

 quiet_cmd_elfconfig = MKELF   $@
Failure #2:

  GEN     .version
  CHK     include/generated/compile.h
  GEN     .tmp_initcalls.lds
  LTO     vmlinux.o
  OBJTOOL vmlinux.o
  MODPOST vmlinux.symvers
  MODINFO modules.builtin.modinfo
  GEN     modules.builtin
  LD      .tmp_vmlinux.btf
ld.lld: error: cannot open .vmlinux.export.o: No such file or directory
  BTF     .btf.vmlinux.bin.o
pahole: .tmp_vmlinux.btf: No such file or directory
  CC      .vmlinux.export.c
  LD      .tmp_vmlinux.kallsyms1
ld.lld: error: .btf.vmlinux.bin.o: unknown file type
make[1]: *** [Makefile:1159: vmlinux] Error 1

I was not really able to see what is going wrong here. Attached is the
configuration that I ran into this with. If you need any other
information, please let me know!

Cheers,
Nathan

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help