On Wed, Nov 22, 2006, Doug Summers wrote:

> Ralf S. Engelschall wrote:
> >On Tue, Nov 21, 2006, Doug Summers wrote:
> >
> >>For whatever reason I can't get tar-1.16 or openpkg (anything later than
> >>10.18) to build on AIX 5.2 or newer.
> >>
> >>Here are the errors (identical for both builds):
> >>In file included from ./stdint.h:55,
> >>                 from ///usr/include/inttypes.h:51,
> >>                 from ./inttypes.h:24,
> >>                 from xstrtol.h:25,
> >>                 from xstrtoumax.c:23:
> >>/opt/openpkg/bin/../lib/gcc/powerpc-ibm-aix5.2.0.0/4.1.1/include/sys/types.h:188:
> >>error: expected '=', ',', ';', 'asm' or '__attribute__' before 'daddr_t'
> >>/opt/openpkg/bin/../lib/gcc/powerpc-ibm-aix5.2.0.0/4.1.1/include/sys/types.h:194:
> >>[...]
> >
> >The include file which breaks is part of GCC's local overrides/variants
> >of <sys/types.h>. The reason for such a break usually is because a
> >dependent header file has to be included first. With the available
> >information I cannot identify how to actually solve the problem,
> >so you have to dig deeper yourself or at least show me the context
> >(or even the while file) around the lines 188 and 194 in the
> >/opt/openpkg/bin/../lib/gcc/powerpc-ibm-aix5.2.0.0/4.1.1/include/sys/typ
> >es.h files. Perhaps this way we see what the problem is.
> >
> Here's the types.h section from an AIX 5.2 machine:
> /*
>  * standard AIX type definitions
>  */
> typedef int             level_t;
> typedef __long64_t      daddr_t;        /* disk address */
> typedef int             daddr32_t;      /* size invariant 32-bit disk
> address */
> #if defined(__64BIT__) || defined(_LONG_LONG)
> typedef int64_t         daddr64_t;      /* size invariant 64-bit disk
> address */
> #endif
> typedef char *          caddr_t;        /* "core" (i.e. memory) address */
> typedef __ulong64_t     ino_t;          /* inode number (filesystem) */
> typedef uint_t          ino32_t;        /* size invariant 32-bit inode
> number */
> #if defined(__64BIT__) || defined(_LONG_LONG)
> typedef uint64_t        ino64_t;        /* size invariant 64-bit inode
> number */
> #endif
>
> I checked this file on AIX 5.1. While the above lines aren't in the
> exact same place the content is the same. I think the problem is with
> the newer AIX releases and not GCC. I have similar issues trying to
> build with XLC.

I guess the problem is that "__long64_t" or "__ulong64_t" are not
defined. You can try a "grep -r __ulong64_t /usr/include" to see where
AIX defines these non-standard types.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
User Communication List                      openpkg-users@openpkg.org

Reply via email to