
Hi there, I just tried to build nhc98-1.16, with the three patches that are available applied, on my (Gentoo) Linux-x86 machine. After a ./configure --buildwith=gcc make I get the following error: [...] make[1]: Leaving directory `/var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/src/compiler98' cd src/prelude/ix86-Linux/NHC; make clean all # Patch machine-specific parts. make[1]: Entering directory `/var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/src/prelude/ix86-Linux/NHC' rm -f *.hi rm -f DErrNo.hc rm -f /var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/targets/ix86-Linux/obj/prelude/DErrNo/*.o *.o rm -f rm -f /var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/script/nhc98 -cpp -c +CTS -lib -redefine -CTS +RTS -H32M -RTS -o /var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/targets/ix86-Linux/obj/prelude/DErrNo/DErrNo.o DErrNo.hs /var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/script/nhc98: line 605: 10142 Segmentation fault $COMP $RUNFLAGS $COMPFLAGS $HINCDIRS -I. $UNLIT -P${NHC98INCDIR} $HSFILE $POSTGRFILE $TMPHIFILE $TMPCPPASFILE make[1]: *** [/var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/targets/ix86-Linux/obj/prelude/DErrNo/DErrNo.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16/src/prelude/ix86-Linux/NHC' make: *** [targets/ix86-Linux/compiler-gcc] Error 2 Note that I am building in /var/tmp/portage/nhc98-1.16-r1/work/nhc98-1.16. This seems to be the first call to the nhc98 script that does actually call the nhc98comp binary. Indeed, calling nhc98comp immediately produces a Segmentation fault. Here's an "strace ./nhc98comp": execve("./nhc98comp", ["./nhc98comp"], [/* 60 vars */]) = 0 uname({sys="Linux", node="adorp.cs.uu.nl", ...}) = 0 brk(0) = 0x8135000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=99363, ...}) = 0 mmap2(NULL, 99363, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3404\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=153448, ...}) = 0 mmap2(NULL, 137184, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002f000 mmap2(0x40050000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20) = 0x40050000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 ]\1\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1304540, ...}) = 0 mmap2(NULL, 1238628, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40051000 mmap2(0x4017a000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x129) = 0x4017a000 mmap2(0x4017d000, 9828, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4017d000 close(3) = 0 munmap(0x40016000, 99363) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\fQ;g:2l\261\275\377\310\324#\240Z\210Gi\345\373\265\245"..., 32) = 32 close(3) = 0 brk(0) = 0x8135000 brk(0x8156000) = 0x8156000 brk(0) = 0x8156000 mmap2(NULL, 8081408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40180000 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 892864824 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 892864824 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Here is which gcc and glibc I use: gcc-3.3.2 glibc-2.3.2 Any ideas? Best, Andres