arm64: do not descend to vdso directories twice
authorMasahiro Yamada <masahiroy@kernel.org>
Fri, 18 Dec 2020 02:45:40 +0000 (11:45 +0900)
committerWill Deacon <will@kernel.org>
Wed, 20 Jan 2021 12:18:46 +0000 (12:18 +0000)
commita5b8ca97fbf8300a5e21c393df25ce6f521e7939
treee408b44b8200420fb5e05c14edacbf566dbb503e
parent19c329f6808995b142b3966301f217c831e7cf31
arm64: do not descend to vdso directories twice

arm64 descends into each vdso directory twice; first in vdso_prepare,
second during the ordinary build process.

PPC mimicked it and uncovered a problem [1]. In the first descend,
Kbuild directly visits the vdso directories, therefore it does not
inherit subdir-ccflags-y from upper directories.

This means the command line parameters may differ between the two.
If it happens, the offset values in the generated headers might be
different from real offsets of vdso.so in the kernel.

This potential danger should be avoided. The vdso directories are
built in the vdso_prepare stage, so the second descend is unneeded.

[1]: https://lore.kernel.org/linux-kbuild/CAK7LNARAkJ3_-4gX0VA2UkapbOftuzfSTVMBbgbw=HD8n7N+7w@mail.gmail.com/T/#ma10dcb961fda13f36d42d58fa6cb2da988b7e73a

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Link: https://lore.kernel.org/r/20201218024540.1102650-1-masahiroy@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/Makefile
arch/arm64/kernel/Makefile
arch/arm64/kernel/vdso-wrap.S [moved from arch/arm64/kernel/vdso/vdso.S with 100% similarity]
arch/arm64/kernel/vdso/Makefile
arch/arm64/kernel/vdso32-wrap.S [moved from arch/arm64/kernel/vdso32/vdso.S with 100% similarity]
arch/arm64/kernel/vdso32/Makefile