build fixes for 2.1.11 - EAI_NODATA, EAI_ADDRFAMILY

Christoph Moench-Tegeder cmt at
Wed Jan 27 09:32:41 CET 2016


when compiling gnupg 2.1.11 on FreeBSD 10.2, the build fails in
dirmngr/dns-stuff.c as EAI_NODATA and EAI_ADDRFAMILY are not
defined on FreeBSD:

dns-stuff.c:180:10: error: use of undeclared identifier 'EAI_NODATA'
    case EAI_NODATA:    err = gpg_error (GPG_ERR_NO_DATA); break;
dns-stuff.c:186:10: error: use of undeclared identifier 'EAI_ADDRFAMILY'
    case EAI_ADDRFAMILY:err = gpg_error (GPG_ERR_EADDRNOTAVAIL); break;

In fact, those defines are disabled as "obsoleted" in netdb.h, and
IEEE 1003.1-2013 does not mention those constants.
NOTE: the code in question was already in 2.1.10, but I missed that

To work around this, I propose the following patch:

--- dirmngr/dns-stuff.c.orig	2016-01-27 09:08:32.073992000 +0100
+++ dirmngr/dns-stuff.c	2016-01-27 09:09:23.454463000 +0100
@@ -177,13 +177,17 @@
     case EAI_BADFLAGS:  err = gpg_error (GPG_ERR_INV_FLAG); break;
     case EAI_FAIL:      err = gpg_error (GPG_ERR_SERVER_FAILED); break;
     case EAI_MEMORY:    err = gpg_error (GPG_ERR_ENOMEM); break;
+#ifdef EAI_NODATA
     case EAI_NODATA:    err = gpg_error (GPG_ERR_NO_DATA); break;
     case EAI_NONAME:    err = gpg_error (GPG_ERR_NO_NAME); break;
     case EAI_SERVICE:   err = gpg_error (GPG_ERR_NOT_SUPPORTED); break;
     case EAI_FAMILY:    err = gpg_error (GPG_ERR_EAFNOSUPPORT); break;
     case EAI_SOCKTYPE:  err = gpg_error (GPG_ERR_ESOCKTNOSUPPORT); break;
 #ifndef HAVE_W32_SYSTEM
     case EAI_ADDRFAMILY:err = gpg_error (GPG_ERR_EADDRNOTAVAIL); break;
     case EAI_SYSTEM:    err = gpg_error_from_syserror (); break;
     default:            err = gpg_error (GPG_ERR_UNKNOWN_ERRNO); break;


Spare Space

More information about the Gnupg-devel mailing list