Hi Holger,

On Sun, Feb 28, 2010 at 11:16:01AM +0100, Holger Just wrote:
> Hi Willy,
> 
> On 2010-02-28 07:29, Willy Tarreau wrote:
> > Could you please try to add the two following lines at the top of the
> > 3 faulty files (types/session.h, types/proxy.h, types/protocols.h) :
> > 
> > #include <sys/types.h>
> > #include <sys/socket.h>
> > 
> > I think it should fix the build.
> 
> Thanks for your help. Unfortunately, it did not work. The errors are
> exactly the same.
> 
> I noticed though, that the definition of sockaddr_storage in
> /usr/include/sys/socket_impl.h looks like this:
> 
> 
> #if !defined(_XPG4_2) || defined(_XPG6) || defined(__EXTENSIONS__)
> [...]
> struct sockaddr_storage {
>         sa_family_t     ss_family;      /* Address family */
>         /* Following fields are implementation specific */
>         char            _ss_pad1[_SS_PAD1SIZE];
>         sockaddr_maxalign_t _ss_align;
>         char            _ss_pad2[_SS_PAD2SIZE];
> };
> #endif
> 
> 
> So if I add SILENT_DEFINE="-D__EXTENSIONS__=1" to the make call gcc does
> not complain anymore (even without adding the additional includes). I'm
> not currently able to decide if the resulting executable is completely
> valid or if this is a valid approach even.

Interesting. However, at least one of those defines is already present
elsewhere because 1.3 correctly builds on solaris and already supports
IPv6. The SuSv4 specification says that socket.h should be enough, but
given the part you have spotted above, clearly something else is missing.

I'll have to unpack my ultra5 and replug it to test. I'd really like to
get this definitely sorted out.

Regards,
Willy


Reply via email to