hipe segmentation fault
Serge Aleynikov
serge@REDACTED
Sat May 6 18:19:06 CEST 2006
Your explanation makes perfect sense indeed, and in search for the
answer, I did find that HAVE_MMAP was *not* set by configure on this
machine.
What is see is that if I try to do:
$ rm -fr otp_src_R10B-10
$ tar xzf otp_src_R10B-10.tar.gz
$ cd otp_src_R10B-10
$ ./configure --enable-threads | grep mmap
checking for working mmap... yes
so mmap gets defined fine. However, if I run autoconf-2.13 in erts,
mmap doesn't get found:
$ rm -fr otp_src_R10B-10
$ tar xzf otp_src_R10B-10.tar.gz
$ cd otp_src_R10B-10/erts
$ autoconf-2.13
$ cd ..
$ ./configure --enable-threads | grep mmap
checking for working mmap... no
However, when autoconf is being used instead of autoconf-2.13 in the
case above, mmap gets found all right.
Anyone has any idea why?
Serge
Mikael Pettersson wrote:
> On Fri, 05 May 2006 09:36:45 -0400, Serge Aleynikov wrote:
>
>>When I applied this patch to FC5 Linux 64-bit OS, Erlang compiled fine,
>>however when I did the same on a 32-bit Linux FC5 OS, the make process
>>failed with the errors shown below.
>>
>>Serge
>>
>>gcc -g -O3 -I/home/serge/Projects/Distrs/R10B-10/erts/i686-pc-linux-gnu
>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DHYBRID
>>-DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes
>>-D_THREAD_SAFE -D_REENTRANT -DUSE_THREADS -Ibeam -Isys/unix
>>-Isys/common -Ii686-pc-linux-gnu -Ii686-pc-linux-gnu/hybrid -Izlib
>>-Ihipe -I../include/internal -I../include/internal/i686-pc-linux-gnu -c
>>hipe/hipe_x86.c -o
>>/home/serge/Projects/Distrs/R10B-10/erts/obj.hybrid.beam/i686-pc-linux-gnu/hipe_x86.o
>>hipe/hipe_x86.c: In function 'morecore':
>>hipe/hipe_x86.c:107: warning: implicit declaration of function 'mmap'
>>hipe/hipe_x86.c:108: error: 'PROT_EXEC' undeclared (first use in this
>>function)
>>hipe/hipe_x86.c:108: error: (Each undeclared identifier is reported only
>>once
>>hipe/hipe_x86.c:108: error: for each function it appears in.)
>>hipe/hipe_x86.c:108: error: 'PROT_READ' undeclared (first use in this
>>function)
>>hipe/hipe_x86.c:108: error: 'PROT_WRITE' undeclared (first use in this
>>function)
>>hipe/hipe_x86.c:109: error: 'MAP_PRIVATE' undeclared (first use in this
>>function)
>>hipe/hipe_x86.c:109: error: 'MAP_ANONYMOUS' undeclared (first use in
>>this function)
>>hipe/hipe_x86.c:114: warning: assignment makes pointer from integer
>>without a cast
>>hipe/hipe_x86.c:115: error: 'MAP_FAILED' undeclared (first use in this
>>function)
>
>
> This means that, for some reason, an #include of <sys/mman.h> was lost.
> This shouldn't happen: hipe_x86.c includes global.h, which includes
> sys.h, which includes erl_unix_sys.h (unless one of __WIN32__/VXWORKS/_OSE_
> is defined), which includes <sys/mman.h> unless erts/configure decided
> that HAVE_MMAP should be 0, which shouldn't be possible on FC5.
>
> I've built R10B-10 on an FC5 box (i686, 100% vanilla, no updates),
> and no problems occurred. I can't explain why things don't work for you,
> but simply adding "#include <sys/mman.h>" at the end of the
> #include directives in hipe_x86.c ought to work.
>
> /Mikael
>
More information about the erlang-questions
mailing list