On Mon, Jan 04, 2021 at 06:13:25PM +0800, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.elf-compat > head: b9613abdecd9d2dae95f4712985280c80ce8e646 > commit: 5df3c15125233fbc59fd003249c381c7edd985cc [11/13] Kconfig: regularize selection of CONFIG_BINFMT_ELF > config: x86_64-randconfig-a005-20210104 (attached as .config) > compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 > reproduce (this is a W=1 build): > # https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git/commit/?id=5df3c15125233fbc59fd003249c381c7edd985cc > git remote add vfs https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git > git fetch --no-tags vfs work.elf-compat > git checkout 5df3c15125233fbc59fd003249c381c7edd985cc > # save the attached .config to linux build tree > make W=1 ARCH=x86_64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > > All errors (new ones prefixed by >>): > > ld: fs/compat_binfmt_elf.o: in function `create_elf_tables': > >> fs/binfmt_elf.c:254: undefined reference to `vdso_image_32' > >> ld: fs/binfmt_elf.c:254: undefined reference to `vdso_image_32' > >> ld: fs/binfmt_elf.c:254: undefined reference to `vdso_image_32' Bloody wonderful. Background: right now in mainline selecting X32 without IA32_EMULATION ends up with being unable to execute x32 binaries. Which is the reason why that build breakage does not happen there. It's not hard to fix (just turn the else branch of COMPAT_ARCH_DLINFO into else if (IS_ENABLED(CONFIG_IA32_EMULATION)); absent IA32_EMULATION compat_elf_check_arch() will reject anything that doesn't have exec->e_machine == EM_X86_64, so that else is dead code on such configs anyway). Let me check if such configs (X32, !IA32_EMULATION, 64bit userland with some x32 binaries) boot and work; if that fix is all it takes, I'll throw it into the series next to other x32 commits...