So investigating this a little more, I wonder if its possible that the reason i experience the segfault before login is that the -37um kernel was compiled on a libc6 2.2 system, and being run in a libc6 2.3.1 system.
 
The libc6 2.3.1 system also does NOT compile the kernel properly. It fails with
 
mv vmlinux vmlinux.o
gcc -Wl,-T,arch/um/link.ld -static  -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc \
        -o linux arch/um/main.o vmlinux.o -L/usr/lib -lutil
/usr/lib/libc.a(printf_fphex.o): In function `__printf_fphex':
printf_fphex.o(.text+0x1ef): undefined reference to `local symbols in discarded section .rodata.str4.4'
printf_fphex.o(.text+0x200): undefined reference to `local symbols in discarded section .rodata.str4.4'
printf_fphex.o(.text+0x2c8): undefined reference to `local symbols in discarded section .rodata.str4.4'
printf_fphex.o(.text+0x2d9): undefined reference to `local symbols in discarded section .rodata.str4.4'
printf_fphex.o(.text+0x375): undefined reference to `local symbols in discarded section .rodata.str4.4'
/usr/lib/libc.a(printf_fphex.o)(.text+0x386): more undefined references to `local symbols in discarded section .rodata.str4.4' follow
/usr/lib/libc.a(wcrtomb.o): In function `wcrtomb':
wcrtomb.o(.text+0x188): undefined reference to `local symbols in discarded section .rodata.str1.32'
/usr/lib/libc.a(mbsnrtowcs.o): In function `mbsnrtowcs':
mbsnrtowcs.o(.text+0x212): undefined reference to `local symbols in discarded section .rodata.str1.32'
/usr/lib/libc.a(opendir.o): In function `tryopen_o_directory':
opendir.o(.text+0x17): undefined reference to `local symbols in discarded section .rodata.str1.1'
/usr/lib/libc.a(confstr.o): In function `confstr':
confstr.o(.text+0x83): undefined reference to `local symbols in discarded section .rodata.str1.1'
/usr/lib/libc.a(assert.o): In function `__assert_fail':
assert.o(.text+0xd): undefined reference to `local symbols in discarded section .rodata.str1.1'
assert.o(.text+0x16): undefined reference to `local symbols in discarded section .rodata.str1.1'
assert.o(.text+0x22): undefined reference to `local symbols in discarded section .rodata.str1.1'
/usr/lib/libc.a(assert.o)(.text+0x38): more undefined references to `local symbols in discarded section .rodata.str1.1' follow
collect2: ld returned 1 exit status
make: *** [linux] Error 1
 
Ive tried compiling this on various libc6 2.3.1 machines, all debian, however very different machines with different hardware, packages, etc. And all of them experience this compile error.
 
This was generated from a clean 2.4.19 tree, with -37um patch applied (also tried 36, 34, same errors). Then running: make mrproper ARCH=um; make menuconfig ARCH=um (changing nothing, just exiting and saving); make dep ARCH=um; make linux ARCH=um
 
 
 
Please give any feedback you can possibly come up with!!
 
 
-----Original Message-----
From: Dayton Turner
Sent: Wednesday, December 11, 2002 1:46 PM
To: user-mode-linux-devel@lists.sourceforge.net
Subject: [uml-devel] Segfault before login prompt on recent builds

Hi List,
 
I've noticed my UML locks up recently while tomcat is being used, after experiencing more issues though, Im not sure if my lockups were tomcat related. I guess we'll find out :) Anyways, I was running 2.4.19-17um before (deb), and I have since compiled 2.4.19-34um and 2.4.19-37um, both experience the same problem.
 
Right before the login prompt would appear, I recieve the message:
 
    Tracing thread segfault at address 0x4028083c, ip 0xa01c7fb3
 
I ran GDB on it, and recieved the following:
 
(gdb) bt
#0  0xa01a5287 in pause ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#1  0xa00f8a29 in tracer_segv (sig=11, sc=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 1076365368, esi = 0, ebp = 3221212700, esp = 3221212516, ebx = 3221212700, edx = 2687581608, ecx = 1073913116, eax = 2687581608, trapno = 14, err = 4, eip = 2686222259, cs = 35, __csh = 0, eflags = 66050, esp_at_signal = 3221212516, ss = 43, __ssh = 0, fpstate = 0xbfffcae8, oldmask = 268435456, cr2 = 1076365372}) at tracer.c:94
#2  <signal handler called>
#3  0xa01c7fb3 in _dl_relocate_object ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#4  0xa01c667b in dl_open_worker ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#5  0xa01ac53e in _dl_catch_error ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#6  0xa01c68e2 in _dl_open ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#7  0xa01c1168 in do_dlopen ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#8  0xa01ac53e in _dl_catch_error ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#9  0xa01c1123 in dlerror_run ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#10 0xa01c11d8 in __libc_dlopen ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#11 0xa01bfce5 in __nss_lookup_function ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#12 0xa01bf9e0 in __nss_lookup ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#13 0xa01c047d in __nss_group_lookup ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#14 0xa01be74f in getgrnam_r ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#15 0xa01a7962 in __unix_grantpt ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#16 0xa01a77d9 in grantpt ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
#17 0xa0143a24 in grantpt_cb (arg=0xaead3934) at pty.c:99
#18 0xa00f7831 in do_proc_op (t=0xaead0000, proc_id=0) at process_kern.c:308
#19 0xa00f8fb2 in tracer (init_proc=0xa00f79a0 <start_kernel_proc>, sp=0xa021bffc)
    at tracer.c:302
#20 0xa00f7ace in start_uml_tt () at process_kern.c:474
#21 0xa00f60c5 in linux_main (argc=7, argv=0xbffffa54) at um_arch.c:364
#22 0xa000d3c1 in main (argc=7, argv=0xbffffa54, envp=0xbffffa74)
    at arch/um/main.c:143
#23 0xa0192d95 in __libc_start_main ()
    at /tmp/linux-2.4.19/arch/um/include/../kernel/skas/include/uaccess.h:113
 
I also experienced problems compiling the kernel itself on this machine, when it came time to link, I got printf_fphex errors as it was building the 'linux' binary. I compiled the kernel on another machine and it worked fine. Copied it back to the original host, and i recieve this error. In my quest for an answer, I moved my root file system to the machine the kernel built properly on in the first place, and go figure, it booted ok. No errors.
 
the only things i can think of are libc or gcc versions, but i could easily overlook other things that could play a role.
 
Here are some version numbers, I am running debian 3.0 on both.
 
Working Machine
ii  libc6 = 2.2.5-14.3
ii  gcc            2.95.4-8       The GNU C compiler.
ii  gcc-2.95       2.95.4-0.01100 The GNU C compiler.
ii  gcc-3.0        3.0.2-0pre0110 The GNU C compiler.
Broken Machine:
 
ii  libc6          2.3.1-5        GNU C Library: Shared libraries and Timezone
ii  gcc            2.95.4-17      The GNU C compiler.
ii  gcc-2.95       2.95.4-0.01100 The GNU C compiler.
 
Any insight whatsoever would be greatly greatly appreciated. :)
 
Thanks


 

--
Dayton Turner
Air Games Wireless Inc.
Suite 204, 309 W. Cordova St.
Vancouver BC V6B 1E5 Canada
Tel:    +1.604.408.2228
Fax:    +1.604.408.2649
Cell:   +1.604.710.2466
Email:  dayton@airg.com
Web:    www.airg.com