[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fail compile with cURL caused by headers
From: |
Marco Maggi |
Subject: |
Re: fail compile with cURL caused by headers |
Date: |
Mon, 09 Nov 2009 20:58:14 +0100 |
"Simon Josefsson" wrote:
>> when compiling cURL version 7.19.6, it fails with:
>>
>> libtool: compile: gcc -DHAVE_CONFIG_H -I../include -I../include -I../lib
>> -I../lib -I/usr/local/include >>-I/usr/local/include -I/usr/include/openssl
>> -I/usr/include -I/usr/local/include -O3 -march=i686 -mtune=i686 -g0
>> -Wno-system-headers -MT krb5.lo -MD -MP -MF .deps/krb5.Tpo -c krb5.c -fPIC
>> -DPIC -o .libs/krb5.o
>> In file included from /usr/local/include/gss.h:83,
>> from urldata.h:130,
>> from krb5.c:59:
>> /usr/local/include/gss/api.h:92: error: redefinition of 'struct
>> gss_OID_desc_struct'
>> /usr/local/include/gss/api.h:98: error: redefinition of 'struct
>> gss_OID_set_desc_struct'
>> /usr/local/include/gss/api.h:104: error: redefinition of 'struct
>> gss_buffer_desc_struct'
>> /usr/local/include/gss/api.h:110: error: redefinition of 'struct
>> gss_channel_bindings_struct'
>
> Don't include both those header files, gss.h is from GNU
> GSS and gssapi/gssapi.h is (probably) from Heimdal. Both
> provide a GSS implementation, and if you use both you'll
> run into problems. You should be able to just remove the
> gssapi/gssapi.h include if you want to use GNU GSS.
Yes, that is it. The error (which is still there in cURL
7.19.7) is that, while "lib/urldata.h" has this block:
#ifdef HAVE_GSSAPI
# ifdef HAVE_GSSGNU
# include <gss.h>
# elif defined HAVE_GSSMIT
# include <gssapi/gssapi.h>
# include <gssapi/gssapi_generic.h>
# else
# include <gssapi.h>
# endif
#endif
which correctly handles mutual exclusion of header files,
"lib/krb5.c" does:
#ifdef HAVE_GSSMIT
/* MIT style */
#include <gssapi/gssapi.h>
#include <gssapi/gssapi_generic.h>
#include <gssapi/gssapi_krb5.h>
#else
/* Heimdal-style */
#include <gssapi.h>
#endif
#include "urldata.h"
Thanks.
--
Marco Maggi