|
From: Naveen K. <g_n...@ya...> - 2005-08-04 19:08:04
|
>valgrind-current. If we do >this in netbsd, it seems that the auxv structures that >we look for in >fix_auxv() are not there. Only the first two we place >are located. If >stage1 is compiled as dynamic, the rest of the auxv >structures can be >found and fixed up. I had a similar problem(no auxv) in Solaris 8 when stage1 was compiled as static. You just need to make up the remaining auxv entries with known info about the OS and stage2 exe and add it just like AT_UME_PADFD or AT_UME_EXECFD. > My suspicion was that loading a dynamic stage2 when >stage1 is also >dynamic could result in some problems, so I tried a >static stage2, >which successfully loaded. The problem here in stage >2 is that the >break() , used internally by malloc in libc syscalls >fail. I dont >think netbsd falls back to mmap like in glibc, I have >not investigated >this closely. I had the exact same problem on Solaris. I circumvented that by using the mapmalloc library which implements malloc using mmap.Is there such an alternative on netbsd ? Worst case you can try to hack mapmalloc on netbsd from solaris. http://cvs.opensolaris.org/source/xref/usr/src/lib/libmapmalloc/ Naveen ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs |