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

Reply via email to