[gnutls-help] Compiling gnutls on solaris
dev
dev at cor0.com
Thu Sep 25 16:05:12 CEST 2014
may as well reply to myself as I see the problem and please pardon me
for unrolling the conditional expression in ./lib/x509/verify-high2.c
for the function load_dir_certs() :
static
int load_dir_certs(const char *dirname,
gnutls_x509_trust_list_t list,
unsigned int tl_flags, unsigned int tl_vflags,
unsigned type, unsigned crl)
{
DIR *dirp;
struct dirent *d;
int ret;
int r = 0;
char path[GNUTLS_PATH_MAX];
dirp = opendir(dirname);
if (dirp != NULL) {
do {
#ifdef _WIN32
d = readdir(dirp);
if (d != NULL) {
#else
struct dirent e;
ret = readdir_r(dirp, &e, &d);
if ( ret == 0
&&
d != NULL
&&
( d->d_type == DT_REG
||
d->d_type == DT_LNK
||
d->d_type == DT_UNKNOWN )
) {
#endif
That is borked.
The use of d_type from dirent.h is not portable
as it is a GNUism from linux land only.
No such animal exists in the POSIX dirent.h :
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dirent.h.html
In fact, it never has existed :
http://pubs.opengroup.org/onlinepubs/7908799/xsh/dirent.h.html
so looks like someone in linux land did a GNUism non-portable no no.
therefore :
CC verify-high2.lo
"verify-high2.c", line 312: error: undefined struct/union member:
d_type
yep.
dev
More information about the Gnutls-help
mailing list