|
From: Jeremy F. <je...@go...> - 2005-01-16 08:58:27
|
On Sat, 2005-01-15 at 21:38 -0800, Naveen Kumar wrote: > Fixed it. I changed the interpreter for stage2 to > libc.so instead of ld.so. All executables by default > use ld.so and they work fine but the gcc exe itself > uses libc for some reason. So I decided to give that a > try and it worked. Dont know why hey stage2 is > starting. Now I get a Excellent! > The address 0x601DFB80 is the stage2 elf brkbase. Due > to this(brk-ENOMEM) any malloc calls or other calls > that depend on it fail. Any pointers ??? stage1.c deliberately sets the RLIMIT_DATA limit to 0 so that all brk calls fail. glibc's malloc() falls back to using mmap, which is what we want because brk() will put stuff in the wrong place, but we've padded the address space so that mmap goes in the right place. Perhaps you could try overriding malloc &c with versions that use mmap, or perhaps there's another malloc library which comes with Solaris which does this (or maybe a mode switch for libc malloc). BTW, what address-space layout are you using? J |