Amanda-Users

Re: 2.5.2 compilation failure on irix-6.5.x

2007-05-07 15:12:28
Subject: Re: 2.5.2 compilation failure on irix-6.5.x
From: Pieter Bowman <bowman AT math.utah DOT edu>
To: Jean-Francois Malouin <Jean-Francois.Malouin AT bic.mni.mcgill DOT ca>
Date: Mon, 7 May 2007 13:09:05 -0600 (MDT)
>> ...
>> cc-1084 cc: ERROR File = /usr/include/sys/socket.h, Line = 66
>>   The indicated declaration has an invalid combination of type specifiers.
>> 
>>   typedef int socklen_t;
>> ...

I'm guessing that Jean-Francois' release of IRIX is probably newer
than the one I have (IRIX 6.5.4m here).  The socket.h here doesn't
have a typedef for socklen_t.  This also probably means that defining
INET6 might be a bad idea.  After looking through the amanda source
and /usr/include/netinet/in.h a little more, I've found that:

        INET_ADDRSTRLEN is only defined if INET6 is defined.

However, one thing I hadn't looked at is that on our IRIX system,
WORKING_IPV6 is not being defined.

>From the Solaris version of netinet/in.h:

/*
 * Miscellaneous IPv6 constants.
 */
#define INET_ADDRSTRLEN         16      /* max len IPv4 addr in ascii dotted */
                                        /* decimal notation. */
#define INET6_ADDRSTRLEN        46      /* max len of IPv6 addr in ascii */
                                        /* standard colon-hex notation. */

This seems to imply that INET_ADDRSTRLEN should not be used on systems
which can't do IPV6.  Or an alternate definition set up.

I was able to complete a build of amanda 2.5.2 on IRIX with the
following addition to amanda.h and using gcc (SGI's cc won't handle
the vstrallocf definition):

#ifndef INET_ADDRSTRLEN
#define INET_ADDRSTRLEN 16
#endif

Pieter

<Prev in Thread] Current Thread [Next in Thread>