[erlang-questions] Compiling erlang on AIX 5.3

VAUCHER Laurent <>
Tue Jan 30 13:20:41 CET 2007


  Hi.

  I'm trying to compile R11B2 on AIX 5.3 and, as you might guess, it
fails.
I can help fixing it, but I will need some help.

First, the ./configure script warns me that odbc will not be built
(that's probably normal).
Then, when doing make, compilation fails on
erts/emulator/sys/unix/erl_check_io.c
The problem comes from AIX, in fact, because the included <poll.h> file
does a very nasty trick: it simply #defines events and revents. And
those identifiers are used as struct fields in
erts/emulator/beam/erl_driver.h Well, I have found a kind of workaround,
which is to force #include <poll.h> just before the struct definition. I
have not yet found how to protect this include so that it only happens
on AIX.

Compilation seems to proceed further, but then

=== Entering application parsetools
make[3]: Entering directory `/tmp/otp_src_R11B-2/lib/parsetools/src'
erlc -W   +debug_info -I/tmp/otp_src_R11B-2/lib/stdlib/include -o../ebin
yecc.erl
Could not load program
/tmp/otp_src_R11B-2/bin/powerpc-ibm-aix5.3.0.0/beam:
        The program does not have an entry point or
          the o_snentry field in the auxiliary header is invalid.
Examine file headers with the 'dump -ohv' command.
make[3]: *** [../ebin/yecc.beam] Error 255
make[3]: Leaving directory `/tmp/otp_src_R11B-2/lib/parsetools/src'
make[2]: *** [opt] Error 2
make[2]: Leaving directory `/tmp/otp_src_R11B-2/lib/parsetools'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/tmp/otp_src_R11B-2/lib'
make: *** [secondary_bootstrap_build] Error 2


  I have no idea what this can mean. The suggested dump -ohv on 'beam'
gives the following result

/tmp/otp_src_R11B-2>dump -ohv bin/powerpc-ibm-aix5.3.0.0/beam

bin/powerpc-ibm-aix5.3.0.0/beam:

                        ***Object Module Header***
# Sections      Symbol Ptr      # Symbols       Opt Hdr Len     Flags
         5      0x00019018           7882                72     0x1002
Flags=( EXEC DYNLOAD DEP_SYSTEM )
Timestamp = "Jan 24 11:35:43 2007"
Magic = 0x1df  (32-bit XCOFF)

                        ***Optional Header***
Tsize        Dsize       Bsize       Tstart      Dstart
0x00007078  0x00000894  0x000000c0  0x10000150  0x200001c8

SNloader     SNentry     SNtext      SNtoc       SNdata
0x0004      0x0000      0x0001      0x0002      0x0002

TXTalign     DATAalign   TOC         vstamp      entry
0x0005      0x0003      0x200009f4  0x0001      0xffffffff

maxSTACK     maxDATA     SNbss       magic       modtype
0x00000000  0x00000000  0x0003      0x010b        1L

                        ***Section Header Information***
                         Section Header for .text
PHYaddr      VTRaddr     SCTsiz      RAWptr      RELptr
0x10000150  0x10000150  0x00007078  0x00000150  0x000156e6

LN#ptr       #RELent     #LINent     Flags
0x00015f2e  0x0074      0x0827      0x00000020

                         Section Header for .data
PHYaddr      VTRaddr     SCTsiz      RAWptr      RELptr
0x200001c8  0x200001c8  0x00000894  0x000071c8  0x00015b6e

LN#ptr       #RELent     #LINent     Flags
0x00000000  0x0060      0x0000      0x00000040

                         Section Header for .bss
PHYaddr      VTRaddr     SCTsiz      RAWptr      RELptr
0x20000a5c  0x20000a5c  0x000000c0  0x00000000  0x00000000

LN#ptr       #RELent     #LINent     Flags
0x00000000  0x0000      0x0000      0x00000080

                         Section Header for .loader
PHYaddr      VTRaddr     SCTsiz      RAWptr      RELptr
0x00000000  0x00000000  0x00000627  0x00007a5c  0x00000000

LN#ptr       #RELent     #LINent     Flags
0x00000000  0x0000      0x0000      0x00001000

                         Section Header for .debug
PHYaddr      VTRaddr     SCTsiz      RAWptr      RELptr
0x00000000  0x00000000  0x0000d661  0x00008084  0x00000000

LN#ptr       #RELent     #LINent     Flags
0x00000000  0x0000      0x0000      0x00002000


  Does anyone have an idea here?


Laurent Vaucher.





More information about the erlang-questions mailing list