Purify on FreeBSD
Manik Taneja
mantanej at ironport.com
Fri Apr 11 15:15:50 UTC 2008
Hi,
I'm trying to get purify that was built on a linux (RHEL 4) machine to run
on a FreeBSD 6.3 system with linux emulation (fc4) installed on it.
The first issue that I'm running into is the following. If write a simple C
program that uses fork(), build that on a linux system and run that on BSD
it fails with the following error.
curry:~/rational/hacks 09:37 AM $pwd
/home/mantanej/rational/hacks
curry:~/rational/hacks 09:37 AM $./a.out
fork: Invalid argument
However, if use a program that doesn't use fork, but uses system calls such
as malloc (sbrk) , open etc, that just works fine without any complaints. So
looks like this is probably a bug in the fork emulator on linux. See below
for output of truss .
The next thing I tried, was to move the libc and ld files from my linux
machine to the BSD machine and copy them in /usr/compact/linux/lib i.e.
ldd ./a.out
libc.so.6 => /lib/tls/libc.so.6 (0x00149000)
/lib/ld-linux.so.2 (0x0012b000)
In that case I get the following error on BSD
$./a.out
./a.out: relocation error: /lib/libc.so.6: symbol _dl_out_of_memory, version
GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference
I searched on google and it seems some people have seen this error, but
nobody seems to know how to fix it.
Will greatly appreciate any help in this regard.
Thanks,
Manik
6901: linux_brk(0x0) = 134520832 (0x804a000)
6901: linux_newuname(0xbfbfe76e) = 0 (0x0)
6901: linux_access(0x4c2b2564,0x4) ERR#2 'No such file or
directory'
6901: linux_open("/etc/ld.so.cache",0x0,01) = 3 (0x3)
6901: linux_fstat64(0x3,0xbfbfe050,0x4c2b6fc4) = 0 (0x0)
6901: linux_mmap(0xbfbfe034) = 1277919232 (0x4c2b8000)
6901: close(3) = 0 (0x0)
6901: linux_open("/lib/libc.so.6",0x0,00) = 3 (0x3)
6901: read(3,"\^?ELF\^A\^A\^A\0\0\0\0\0\0\0\0"...,512) = 512 (0x200)
6901: linux_fstat64(0x3,0xbfbfe0ac,0x4c2b6fc4) = 0 (0x0)
6901: linux_mmap(0xbfbfdf04) = 1277927424 (0x4c2ba000)
6901: linux_mmap(0xbfbfdf04) = 1279070208 (0x4c3d1000)
6901: linux_mmap(0xbfbfdf04) = 1279086592 (0x4c3d5000)
6901: close(3) = 0 (0x0)
6901: linux_mmap(0xbfbfe474) = 1279094784 (0x4c3d7000)
6901: linux_set_thread_area(0xbfbfe594) ERR#78 'Function not
implemented'
6901: linux_modify_ldt(0x1,0xbfbfe594,0x10) = 0 (0x0)
6901: linux_mprotect(0x4c3d1000,0x2000,0x1) = 0 (0x0)
6901: linux_mprotect(0x4c2b6000,0x1000,0x1) = 0 (0x0)
6901: munmap(0x4c2b8000,7270) = 0 (0x0)
6901: linux_clone(0x1200011,0x0) ERR#22 'Invalid argument'
6901: dup(0x2) = 3 (0x3)
6901: linux_fcntl64(0x3,0x3,0x0) = 2 (0x2)
6901: linux_brk(0x0) = 134520832 (0x804a000)
6901: linux_brk(0x806b000) = 134656000 (0x806b000)
6901: linux_fstat64(0x3,0xbfbfe41c,0x4c3d2ff4) = 0 (0x0)
6901: linux_ioctl(0x3,0x5401,0xbfbfe390) = 0 (0x0)
6901: linux_mmap2(0x0,0x1000,0x3,0x22,0xffffffff,0x6) = 1277919232
(0x4c2b8000)
6901: linux_llseek(0x3,0x0,0x0,0xbfbfe45c,0x1) = 0 (0x0)
fork: Invalid argument
6901: write(3,"fork: Invalid argument\n",23) = 23 (0x17)
6901: close(3) = 0 (0x0)
6901: munmap(0x4c2b8000,4096) = 0 (0x0)
6901: process exit, rval = 65280
More information about the freebsd-emulation
mailing list