kbuild: Fix running modpost with musl libc
authorSamuel Holland <samuel@sholland.org>
Tue, 27 Dec 2022 21:48:21 +0000 (15:48 -0600)
committerMasahiro Yamada <masahiroy@kernel.org>
Fri, 30 Dec 2022 08:22:14 +0000 (17:22 +0900)
commit63ffe00d8c939eda1a8fa87484ca4537e13a20b7
tree8157ee23459523cc923e81ede7db03074a9badfc
parent9c9b55a59416a87fc73c479d78cb3218076dbc30
kbuild: Fix running modpost with musl libc

commit 3d57e1b7b1d4 ("kbuild: refactor the prerequisites of the modpost
rule") moved 'vmlinux.o' inside modpost-args, possibly before some of
the other options. However, getopt() in musl libc follows POSIX and
stops looking for options upon reaching the first non-option argument.
As a result, the '-T' option is misinterpreted as a positional argument,
and the build fails:

  make -f ./scripts/Makefile.modpost
     scripts/mod/modpost   -E   -o Module.symvers vmlinux.o -T modules.order
  -T: No such file or directory
  make[1]: *** [scripts/Makefile.modpost:137: Module.symvers] Error 1
  make: *** [Makefile:1960: modpost] Error 2

The fix is to move all options before 'vmlinux.o' in modpost-args.

Fixes: 3d57e1b7b1d4 ("kbuild: refactor the prerequisites of the modpost rule")
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/Makefile.modpost