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