On May 23, 2012 9:14 AM, "Michael Scherer" <[email protected]> wrote: > > On Thu, 17 May 2012 22:59:41 +0200 > Alex Schuster <[email protected]> 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 >
If the problem is due to .config, run make oldconfig first. Rgds,

