Re: 2.6.26-rc5-mm1: uml link error
From: Miklos Szeredi
Date: Tue Jun 10 2008 - 07:20:00 EST
> From: Peter Oberparleiter <peter.oberparleiter@xxxxxxxxxx>
>
> Fix for linker error on UML:
>
> /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld:arch/um/kernel/vmlinux.lds:267: syntax error
>
> The error is triggered by the use of SORT(CONSTRUCTORS) in the UML
> linker script which conflicts with the kernel-call-constructors patch.
> Here is what the ld info page says about sorting constructors:
>
> If you are using the GNU C++ support for initialization priority,
> which provides some control over the order in which global
> constructors are run, you must sort the constructors at link time
> to ensure that they are executed in the correct order.
>
> As there's no C++ code inside the kernel it should be safe to remove
> the SORT construct.
Hmm, uml still doesn't boot with this patch, it dies while calling the
constructors. So maybe that SORT contruct is still needed?
Miklos
mszeredi@tucsk:/store/uml> /store/quilt/linux/linux umid=uml
Locating the bottom of the address space ... 0x0
Locating the top of the address space ... 0xffffd000
Core dump limits :
soft - NONE
hard - NONE
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...missing
Checking for tmpfs mount on /dev/shm...nothing mounted on /dev/shm
Checking PROT_EXEC mmap in /tmp/...OK
Checking for the skas3 patch in the host:
- /proc/mm...not found: No such file or directory
- PTRACE_FAULTINFO...not found
- PTRACE_LDT...not found
UML running in SKAS0 mode
Adding 15208448 bytes to physical memory to account for exec-shield gap
Aborted (core dumped)
mszeredi@tucsk:/store/uml> gdb /store/quilt/linux/linux core
GNU gdb 6.6.50.20070726-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-suse-linux"...
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libutil.so.1...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Core was generated by `/store/quilt/linux/linux umid=uml'.
Program terminated with signal 6, Aborted.
#0 0xffffe430 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe430 in __kernel_vsyscall ()
#1 0xf7e598f5 in raise () from /lib/libc.so.6
#2 0xf7e5b1e1 in abort () from /lib/libc.so.6
#3 0x0807173d in os_dump_core () at arch/um/os-Linux/util.c:119
#4 0x08061d07 in panic_exit (self=0x8451594, unused1=0, unused2=0x8471f20) at arch/um/kernel/um_arch.c:233
#5 0x0809a2ea in notifier_call_chain (nl=0x84594ec, val=0, v=0x8471f20, nr_to_call=-1, nr_calls=0x0)
at kernel/notifier.c:85
#6 0x0809a3e0 in __atomic_notifier_call_chain (nh=0x84594dc, val=0, v=0x8471f20, nr_to_call=-1, nr_calls=0x0)
at kernel/notifier.c:174
#7 0x0809a41f in atomic_notifier_call_chain (nh=0x84594dc, val=0, v=0x8471f20) at kernel/notifier.c:183
#8 0x0807e88a in panic (fmt=0x83dd7be "Segfault with no mm") at kernel/panic.c:104
#9 0x08061922 in segv (fi={error_code = 21, cr2 = 4294967295, trap_no = 14}, ip=4294967295, is_user=0,
regs=0x844fc70) at arch/um/kernel/trap.c:176
#10 0x080616c7 in segv_handler (sig=11, regs=0x6) at arch/um/kernel/trap.c:152
#11 0x0806ff00 in sig_handler_common (sig=11, sc=0x844fd24) at arch/um/os-Linux/signal.c:49
#12 0x0806ff87 in sig_handler (sig=11, sc=0x844fd24) at arch/um/os-Linux/signal.c:81
#13 0x0807011d in handle_signal (sig=2894, sc=0x844fd24) at arch/um/os-Linux/signal.c:158
#14 0x08071fb8 in hard_handler (sig=11) at arch/um/os-Linux/sys-i386/signal.c:12
#15 <signal handler called>
#16 0xffffffff in ?? ()
#17 0x08049793 in do_ctors () at init/main.c:706
#18 0x080499cc in do_basic_setup () at init/main.c:789
#19 0x08049a43 in kernel_init (unused=0x0) at init/main.c:897
#20 0x0806f241 in run_kernel_thread (fn=0x8049a10 <kernel_init>, arg=0x0, jmp_ptr=0xa860b50)
at arch/um/os-Linux/process.c:267
#21 0x0805ed02 in new_thread_handler () at arch/um/kernel/process.c:151
#22 0x00000000 in ?? ()
(gdb)
Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/