pingr
pingr copied to clipboard
Fix build on FreeBSD
The include directive of netinet/in.h
must be before resolv.h
on FreeBSD, otherwise, the following errors will occur:
In file included from dns.c:265:
/usr/include/resolv.h:159:14: error: array has incomplete element type 'struct sockaddr_in'
nsaddr_list[MAXNS]; /*%< address of name server */
^
/usr/include/resolv.h:158:9: note: forward declaration of 'struct sockaddr_in'
struct sockaddr_in
^
/usr/include/resolv.h:173:18: error: field has incomplete type 'struct in_addr'
struct in_addr addr;
^
/usr/include/resolv.h:173:10: note: forward declaration of 'struct in_addr'
struct in_addr addr;
^
/usr/include/resolv.h:198:21: error: field has incomplete type 'struct sockaddr_in'
struct sockaddr_in sin;
^
/usr/include/resolv.h:158:9: note: forward declaration of 'struct sockaddr_in'
struct sockaddr_in
^
3 errors generated.
The reason is that the resolv.h
on FreeBSD is not yet self-contained, see this bug report: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=182466
This fix was committed with the FreeBSD port net/R-cran-pingr
in https://cgit.freebsd.org/ports/commit/?id=fce80f530301d0079d84bc4b818ba957ad29617b.
@gaborcsardi There is actually one last thing to fix for FreeBSD build - -lresolv
is not needed for FreeBSD since it is in libc. So, https://github.com/r-lib/pingr/blob/bfe03f4c34945c50a856a7c4844f642fb310193d/src/Makevars#L1 will raise an error during build. To fix it, just an empty PKG_LIBS would work, but I do not know Makevars
enough to have a platform-specific fix there. What do you think?
Re -lresolv
I am afraid that means that we need a configure
file, not autoconf, just a simple shell script, that creates Makevars
.
Re
-lresolv
I am afraid that means that we need aconfigure
file, not autoconf, just a simple shell script, that createsMakevars
.
Sounds good - I opened #21 for this and will work on it later, and am fine with leaving it out of this PR for now.
Sounds good. I think we can add it to this PR, so that this PR fixed the compilation on FreeBSD. I might add it, it is fairly quick. (Well, I hope...)
Sounds good. I think we can add it to this PR, so that this PR fixed the compilation on FreeBSD. I might add it, it is fairly quick. (Well, I hope...)
Sounds good, please feel free to do that! I need to get some sleep now... zzzZ