Hi,
when trying to run polyml 4.2.0 on Linux, I get a segmentation fault. I am trying to run this old version, because I want to use Isabelle (http://isabelle.in.tum.de/ seems to be down currently). On that website, a precompiled binary is available. However, it's crashing on startup with a SIGSEGV. So I downloaded the source code of polyml 4.2.0, extracted driver.420.tar.gz, ran configure and make and tried to run poly. But also in this version I get a segmentation fault.
my kernel: uname -rm 2.6.22-gentoo-r2 i686
gdb shows this backtrace:
#0 0xa7f21410 in __kernel_vsyscall () #1 0x410d4038 in mmap () from /lib/libc.so.6 #2 0x08059b34 in ReserveAddressSpace (addr=0x98000000 "", len=268435456) at mmap.c:363 #3 0x08059a41 in ReserveMLSpace (bottom=0x98000000 "", top=0xa8000000 <Address 0xa8000000 out of bounds>) at mmap.c:376 #4 0x08059b82 in ReserveMLSpaces () at mmap.c:403 #5 0x08052741 in main (argc=1, argv=0xafc18304) at mpoly.c:726
The mmap call in line 362/363 is
caddr_t pa = mmap((caddr_t)addr, len, PROT_NONE, MAP_PRIVATE | MAP_FIXED | MAP_NORESERVE | MAP_ANONYMOUS, -1, 0L);
when removing MAP_PRIVATE from the flags, it seems to work. I am not really in the code. Maybe you can tell me: will I run into trouble, when using this as a fix?
Has anybody an idea why this call to mmap results in a segmentation fault and how to fix this properly? I played a bit with the len argument. When setting it to 267500000, sometimes it's crashing and sometimes not. len=260000000 seems to be stable.
Thank you in advance Martin Walch