[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: benchmark between aranym and crest



Bill Allombert wrote:
ballombe@aranym:~/pari-2.3.1$ cat config/ansi.c
int main(int argc, char **argv){ return 0; }
ballombe@aranym:~/pari-2.3.1$ cc config/ansi.c
config/ansi.c: In function âmainâ:
config/ansi.c:1: internal compiler error: Illegal instruction

The system run sid with cc being gcc-4.1.1-14. The strange thing is that
g++ config/ansi.c works fine. (Crest does not show this problem of course)

The gcc-4.1.1-14 does not compile anything. It always crashes here (strace output):

7314  open("/tmp/ccoNE7AY.s", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
7314  fstat64(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
7314 old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc033a000 7314 open("a.gcda", O_RDWR) = -1 ENOENT (No such file or directory)
7314  --- SIGILL (Illegal instruction) @ 0 (0) ---

g++ does this:

7390  open("/tmp/ccgruVK5.s", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
7390  fstat64(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
7390 old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc033a000 7390 old_mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc033c000 7390 open("a.gcda", O_RDWR) = -1 ENOENT (No such file or directory) 7390 old_mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc0340000
7390  write(3, "#NO_APP\n\t.file\t\"a.c\"\n\t.text\n\t.al"..., 298) = 298
7390  close(3)                          = 0


So g++ before opening the "a.gcda" file calls one more mmap than the gcc before the SIGSEGV. Does it mean anything? I don't feel like digging in gcc source code.

I hope this problem appears on real m68k hardware - perhaps it's kernel or something else that's different than on crest and could cause this.

Petr



Reply to: