> Hello, i was trying to compile UML on 2.6.14 and 2.6.13.3 on CentOS, but
>   it seems to be broken smth i dont know exactly what to do. Here is the
> output of my problem after make linux ARCH=um :
> 
> 
>  GEN     .version
>   CHK     include/linux/compile.h
>   UPD     include/linux/compile.h
>   CC      init/version.o
>   LD      init/built-in.o
>   LD      .tmp_vmlinux1
> /usr/bin/ld: warning: ld-linux-x86-64.so.2, needed by /lib64/libc.so.6,
> not found (try using -rpath or -rpath-link)
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to
> [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> /lib64/libc.so.6: undefined reference to [EMAIL PROTECTED]'
> collect2: ld returned 1 exit status
>   KSYM    .tmp_kallsyms1.S
> nm: '.tmp_vmlinux1': No such file
> No valid symbol.
> make: *** [.tmp_kallsyms1.S] B³±d 1

I've seen the same problem on PLD, and this patch fixes it for me:

diff -ru linux-2.6.14/arch/um/Makefile linux-2.6.15-rc1/arch/um/Makefile
--- linux-2.6.14/arch/um/Makefile 2005-11-15 00:01:49.368374600 +0100
+++ linux-2.6.15-rc1/arch/um/Makefile 2005-11-14 23:24:24.355668408 +0100
@@ -107,7 +107,7 @@
 prepare: $(ARCH_DIR)/include/kern_constants.h

 LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
-LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib
+LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64

 CPP_MODE-$(CONFIG_MODE_TT) := -DMODE_TT
 CONFIG_KERNEL_STACK_ORDER ?= 2

The problem is that UML assumes that on x86-64, /lib will be a symlink 
to /lib64.  On distros where that isn't the case, the build breaks with the 
above error (which is a complaint that /lib64/libc.so.6 can't find the 64-bit 
dynamic library loader, which also lives in /lib64 and not /lib).

I'm unaware of a case where /lib64 is not the correct directory to link 
against on x86-64.  Obviously /lib is the right one for x86.

In theory the correct fix would be to delete the rpath line entirely and fix 
whatever's generating arch/um/kernel/vmlinux.lds to do it right for x86-64.  
But that's way beyond my understanding of the linker...

Rob


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_idv28&alloc_id845&op=click
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to