[patch] linux-x86-64 (for comments)

Chagin Dmitry chagin.dmitry at gmail.com
Sat May 10 21:12:20 UTC 2008


On Sat, 10 May 2008, Roman Divacky wrote:

>> now /compat/linux/bin/pwd exited without SIGSEGV, but on former can't 
>> load libc
>
> please... post more technical details if you want us to help you. if you
> mean this as "blog" entry only it's fine as it is :) but I suggest to 
> establish an official blog (ask flz@ about one) for this announcements :)
>

ooo, no blog )
about technical details:
now problem in getdents syscall's family
trace of ldconfig look like this

kernel: linux(26702): open(/lib, 0x90800, 0x6bdae0)
kernel: linux(26702): open returns error 0
kernel: retval[0]: 0x3   /   3
kernel: linux(26702): newfstat(3, *)
kernel: retval[0]: 0x0   /   0
kernel: linux(26702): fcntl(3, 00000001, *)
kernel: retval[0]: 0x0   /   0
kernel: linux(26702): fcntl(3, 00000002, *)
kernel: retval[0]: 0x0   /   0
kernel: linux(26702): getdents(3, *, 8192)
kernel: retval[0]: 0x88   /   136

kernel: trap!
kernel: frame->tf_trapno: 0x12
kernel: frame->tf_rip: 0x420608
kernel: frame->tf_rcx: 0x4205e5
kernel: frame->tf_rsp: 0x7fffffffd810
kernel: frame->tf_rbp: 0xffe00
kernel: frame->tf_rbx: 0x6cdbf0
kernel: frame->tf_rax: 0x88
kernel: frame->tf_addr: 0xffe10    ups )))
kernel: frame->tf_cs: 0x2b
kernel: frame->tf_ss: 0x23

-------> here we are die
   420608:       0f b7 45 10             movzwl 0x10(%rbp),%eax
   42060c:       48 8d 5d 12             lea    0x12(%rbp),%rbx
   420610:       48 89 df                mov    %rbx,%rdi

this code is in function search_dir in elf/ldconfig.c (glibc)
here i think that is it :)

-- 
Have fun!
chd


More information about the freebsd-emulation mailing list