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