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