[Kamailio-Devel] Build failures with seas and mi_xmlrpc modules on OpenBSD 4.3
Henning Westerholt
henning.westerholt at 1und1.de
Thu Oct 16 10:34:35 CEST 2008
On Thursday 16 October 2008, Jason Creighton wrote:
> [Sorry if the devel list isn't the right place for this; Please steer me
> in the right direction if it is not.]
Hi Jason,
you could also open a bug report on our tracker for this issues, but now lets
discuss this on the list.
> I'm trying to build Kamailio 1.4.1 on OpenBSD 4.3, and I've having a few
> issues with some of the modules.
>
> The mi_xmlrpc module fails to build with what appears to be a simple
> problem:
> [..]
> It appears that on OpenBSD, there is no <wait.h>, only a <sys/wait.h>.
> Considering that the other two files in that module that use wait.h
> (abyss_xmlrpc_server.c and mi_xmlrpc.c) include the <sys/wait.h> version
> already, it doesn't seem like there would be a problem with doing that
> in abyss_thread_fork.c. (It makes it build for me, anyway)
Yes, i think its ok to replace the <wait.h> with the <sys/wait.h>. I tested
it, on my system (debian) wait.h just includes <sys/wait.h>. I'll later
commit this change to trunk and also backport it to the 1.3/1.4 branches. All
other places in the trunk uses only sys/wait.h, so i think this is ok.
> seas has a more subtle problem, and I'm not even sure it's a problem
> with Kamailio. The actual error message is kinda large, so I've attached
> it rather than including it inline. The upshot appears to be that on
> OpenBSD (4.3 anyway) it's possible to include <netinet/in.h> is such a
> way that it fails because it depends on some typedefs that are defined
> in <sys/types.h> (eg, in_addr_t)
>
> There's a note about this in sys/types.h:
>
> /*
> * XPG4.2 states that inclusion of <netinet/in.h> must pull these
> * in and that inclusion of <sys/socket.h> must pull in sa_family_t.
> * We put these here because there are other headers that require
> * these types and <sys/socket.h> and <netinet/in.h> will indirectly
> * include <sys/types.h>.
> * XXX - now that we have protected versions these should move.
> */
> typedef __in_addr_t in_addr_t; /* base type for internet address */
> typedef __in_port_t in_port_t; /* IP port type */
> typedef __sa_family_t sa_family_t; /* sockaddr address family type */
> typedef __socklen_t socklen_t; /* length type for network syscalls */
>
> But apparently sys/types.h isn't being included like they say it will, I
> can get it to compile if I force inclusion of <sys/types.h> (eg, with
> "DEFS+=-include sys/types.h" in that module's Makefule), but I have no
> idea what the right solution would be.
Strange, perhaps the comment in the file is obselet. I don't think that adding
a '#include <sys/types.h>' to this file will break something. But perhaps we
can add this with an #ifdef? Do you know what type of #define is usually
checked against an openbsd compiler/ system?
> Also, mediaproxy doesn't compile due to the lack of MSG_NOSIGNAL on
> OpenBSD, but it looks like this is probably fixed in trunk, so that's no
> big deal:
> http://sourceforge.net/tracker/?func=detail&atid=743020&aid=2132257&group_i
>d=139143
Yes, this issue should be already fixed.
Cheers,
Henning
More information about the Devel
mailing list