On Thu, 17 May 2012 22:59:41 +0200 Alex Schuster <wo...@wonkology.org> wrote:
> Michael Scherer writes: > > > 1) make output: > > > > CHK include/linux/version.h > > CHK include/generated/utsrelease.h > > CALL scripts/checksyscalls.sh > > CHK include/generated/compile.h > > LD init/mounts.o > > ls -Al -m elf_x86_64 -r -o init/mounts.o init/do_mounts.o > > init/do_mounts_initrd.o init/mounts.o: No such file or directory > > make[1]: *** [init/mounts.o] Error 1 > > make: *** [init] Error 2 > > > > There is an LD, the ls line is part of the error message. > > But the options look really more like ld options to me. How this could > possibly happen, I don't know. Some overriding of $(LD) perhaps? Does > "env | egrep -i 'ls|ld'" show something weird? Does it also fail as a > non-root user, after you copied the stuff over to somewhere where this > user can write? Just grasping at straws here. > > > > But without doubt you are right that mounts.o is not built, for > > whatever reason. > > Because ld should build it from init/do_mounts.o, but ls is being > called instead? > > > The build command > > > > init/.do_mounts.o.cmd:cmd_init/do_mounts.o := gcc > > -Wp,-MD,init/.do_mounts.o.d -nostdinc > > -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/include > > -I/usr/src/linux-3.2.12-gentoo/arch/x86/include > > -Iarch/x86/include/generated -Iinclude > > -include /usr/src/linux-3.2.12-gentoo/include/linux/kconfig.h > > -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs > > -fno-strict-aliasing -fno-common > > -Werror-implicit-function-declaration -Wno-format-security > > -fno-delete-null-pointer-checks -O2 -m64 -march=k8 -mno-red-zone > > -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args > > -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 > > -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -pipe > > -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx > > -mno-sse2 -mno-3dnow -Wframe-larger-than=2048 > > -fno-omit-frame-pointer -fno-optimize-sibling-calls > > -fno-inline-functions-called-once -Wdeclaration-after-statement > > -Wno-pointer-sign -fno-strict-overflow -fconserve-stack > > -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=\#s" > > -D"KBUILD_BASENAME=KBUILD_STR(do_mounts)" > > -D"KBUILD_MODNAME=KBUILD_STR(mounts)" -c -o init/do_mounts.o > > init/do_mounts.c > > > > contains a directive to build mounts.o, see second last line, but > > it for some reason this is ignored. > > Maybe there is a flaw in that command, only I can't find it. > > Neither can I. Is this command executed at all? If you maybe replace > the 'gcc' by 'gccXXX', does this give an error? Or put an 'echo' in > front of the gcc'. > You can try 'make -d', this will give you LOTS of debug output, but I > don't think you will see the actual commands then. > > Wonko > Now at last there is some kind of "progress". Last thing I tried was replacing my current .config with that of my previous kernel (3.2.1-r2) and at least the make ran all the way up to the point where it should link everything to build vmlinux, only now it tells me it couldn't find vmlinux.o. The last couple of lines from the make output: CC arch/x86/lib/cache-smp.o CC arch/x86/lib/msr.o AS arch/x86/lib/msr-reg.o CC arch/x86/lib/msr-reg-export.o AS arch/x86/lib/iomap_copy_64.o LD arch/x86/lib/built-in.o ls -Al -m elf_x86_64 -r -o arch/x86/lib/built-in.o arch/x86/lib/msr-smp.o arch/x86/lib/cache-smp.o arch/x86/lib/msr.o arch/x86/lib/msr-reg.o arch/x86/lib/msr-reg-export.o arch/x86/lib/iomap_copy_64.o AS arch/x86/lib/clear_page_64.o AS arch/x86/lib/cmpxchg16b_emu.o AS arch/x86/lib/copy_page_64.o AS arch/x86/lib/copy_user_64.o AS arch/x86/lib/copy_user_nocache_64.o AS arch/x86/lib/csum-copy_64.o CC arch/x86/lib/csum-partial_64.o CC arch/x86/lib/csum-wrappers_64.o CC arch/x86/lib/delay.o AS arch/x86/lib/getuser.o GEN arch/x86/lib/inat-tables.c CC arch/x86/lib/inat.o CC arch/x86/lib/insn.o AS arch/x86/lib/memcpy_64.o AS arch/x86/lib/memmove_64.o AS arch/x86/lib/memset_64.o AS arch/x86/lib/putuser.o AS arch/x86/lib/rwlock.o AS arch/x86/lib/rwsem.o AS arch/x86/lib/thunk_64.o CC arch/x86/lib/usercopy.o CC arch/x86/lib/usercopy_64.o AR arch/x86/lib/lib.a LD vmlinux.o ls -Al -m elf_x86_64 -r -o vmlinux.o arch/x86/kernel/head_64.o arch/x86/kernel/head64.o arch/x86/kernel/head.o arch/x86/kernel/init_task.o init/built-in.o --start-group usr/built-in.o arch/x86/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o block/built-in.o lib/lib.a arch/x86/lib/lib.a lib/built-in.o arch/x86/lib/built-in.o drivers/built-in.o sound/built-in.o firmware/built-in.o arch/x86/pci/built-in.o arch/x86/power/built-in.o arch/x86/video/built-in.o net/built-in.o --end-group MODPOST vmlinux.o vmlinux.o: No such file or directory make[1]: *** [vmlinux.o] Error 1 make: *** [vmlinux.o] Error 2 Essentially the same error as previously with mounts.o, and after every LD comes an ls -Al ... line like above, which I never saw before in my make outputs. Don't know where that comes from. I'm now back where the troubles began, the vmlinux.o error was the first I encountered after my last successful build. Maybe a careful search of a diff of the .config files will give me some idea. By now you're probably somewhat tired of devoting your time to this problem, so thank you for all your efforts to help me. If I ever solve this, you'll hear from me (which doesn't mean the thread is closed. If someone is still curious... ;-) ) Kind regards, Michael