Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

RE: [milter-greylist] Compile problem on Tru64 UNIX

2004-10-12 by attila.bruncsak@itu.int

> > I took time now to try to go higher version
> > from 1.5.3 with my patch up to version 1.5.8.
> > The 1.5.4 already includes the IPV6 support.
> > To have the IPV6 compiled on Tru64 UNIX
> > the _OSF_SOURCE symbol has to be defined.
> 
> Could you write a configure test that check that macro? The work is
> easy, as we already have similar tests (for instance about
> -D__EXTENSIONS__)
> 

In Tru64 UNIX version 4.x there is no native IPV6 support
(maybe with special kits installed only).
Anyhow, I never succeeded to compile it on Tru64 UNIX V4.x only on V5.x.

In the <netinet/in.h> file just near to the end it looks like that:

#ifdef _OSF_SOURCE
#include <netinet/in6.h>
#endif

I tried explicitly including the in6.h header file but started to break
on missing definitions like u_short and u_long and others. I gave up on
that.

I tried to compile it without IPV6 support.
The problem is that sys/socket.h defines the
AF_INET6 even with _BSD_SOURCE and _X_OPEN_SOURCE=500 and without
_OSF_SOURCE defined.
I do not know what the standards say.
Is it correct that way?
The compilation fails on not finding any IPV6 related definitions,
since the AF_INET6 protects the IPV6 related code.

> > With this change the compilation on Tru64 UNIX is more or 
> less clean.
> 
> You say more or less clean. Could we work on removing the warnings?
> 

Here is the actual warning:

$ cc -D_OSF_SOURCE -I/usr/local/src/sendmail/libmilter/include -pthread
-D_XOPEN
_SOURCE=500 -D_BSD_SOURCE -c pending.c
cc: Warning: pending.c, line 523: In the definition of the function
"ipfromstrin
g", the promoted type of family is incompatible with the type of the
correspondi
ng parameter in a prior declaration. (promotmatchw)
        sa_family_t family;
--------------------^

And here is an example code which demonstrates the warning:

$ cat t.c
/* this declaration goes to the header file */
void func(char);

/* and that is the actual implementation */
void func(u)
  char u;
  {
  }
$ cc -c t.c
cc: Warning: t.c, line 6: In the definition of the function "func", the
promoted
 type of u is incompatible with the type of the corresponding parameter in a
pri
or declaration. (promotmatchw)
  char u;
-------^

Bests,
Attila

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.