On Mon, Feb 12, 2007 at 06:04:36PM +0100, Karel Kulhavy wrote:
> Hi
> 
> Now I tried to make "yes" work without the redhat base. I uninstalled
> redhat_base, partial-redhat_base and partial-partial-redhat_base (??).
> Then ldd yes on the Linux system shows these libraries:
> [EMAIL PROTECTED] ~ $ ldd `which yes`
>         linux-gate.so.1 =>  (0xffffe000)
>         libc.so.6 => /lib/libc.so.6 (0xb7e79000)
>         /lib/ld-linux.so.2 (0xb7fa7000)
> 
> I copied the following files to /emul/linux/... :
> /lib/ld-linux.so.2
> /lib/libc.so.6
> /lib/ld-2.4.so
> /lib/libc-2.4.so
> /etc/ld.so.cache
> /etc/ld.so.conf
> 
> Now when I run ./yes (which I copied too), I get Bad system call (core dumped)
> and the following trace:
> 
---snip---
>  16287 yes      CALL  mmap2(0,0x1000,0x3,0x22,0xffffffff,0)
>  16287 yes      RET   mmap2 1382084608/0x5260f000
>  16287 yes      CALL  #243 (unimplemented linux_sys_set_thread_area)()
>  16287 yes      PSIG  SIGSYS SIG_DFL code 0
>  16287 yes      NAMI  "yes.core"
> 
> What does this mean? That linux_sys_set_thread_area is unimplemented
> in the emulation?
> 

Yes, it means exactly that. Unfortunately, you cannot pull in
arbitrary linux libraries and expect them to work because many of them
make system calls that are unimplemented in the OpenBSD emulation
code. I tried to use the Debian libraries on a dual boot system since
it seemed wasteful to install a second set of linux libraries and ran
into this same problem.

Look at /usr/src/sys/compat/linux/linux_syscalls.c to see what is
unimplemented; there are about 30 of them. If you want to stray from
redhat_base, you will make it difficult for yourself.

-- Mark

Reply via email to