Mats Erik Andersson <mats.anders...@gisladisker.se> writes:

> tisdag den 21 september 2010 klockan 10:56 skrev Simon Josefsson detta:
>> Mats Erik Andersson <mats.anders...@gisladisker.se> writes:
>> 
>> >     ifconfig/if_index.c: Encapsulate using HAVE_STRUCT_IF_NAMEINDEX
>> 
>> Here I am less certain, so I didn't push this one.  All these #ifdef's
>> are ugly.  Can't we move this into gnulib to allow the code to assume
>> there is a struct?  I'm assuming it is a standard GNU/POSIX struct.
>> Note that I am only speaking generally, I haven't considered the details
>> around this struct at all.
>
> Without the proposed change, OpenBSD comes to a halt with a cryptic
> message about clashing prototypes for free(3). The explanation is
> that OpenBSD uses
>
>     ### /usr/include/net/if.h
>
>     #define if_freenameindex(x) free(x)
>
> The corresponding function in GNU/Linux is a true function!

Interesting.  According to POSIX:

http://www.opengroup.org/onlinepubs/9699919799/functions/if_freenameindex.html

It should be a real function.  Could you report this as a OpenBSD bug?

It does sounds as if this is something that gnulib could offer a working
replacement for, instead of InetUtils using a hack.  It looks like an
OpenBSD bug that would affect other applications too.

The exact compile error would help in understanding why things fail
here.  Could you create a small example that reproduce the problem?
E.g. something like:

#include <net/if.h>
int main (void) { if_freenameindex ((void*)0); }

or something like that?  And then quote the compile error.

/Simon

Reply via email to