compiler warning on freebsd

Julien ÉLIE julien at trigofacile.com
Tue Sep 13 15:13:21 EDT 2011


Hi Alexey,

>>>> No problem if I do not use the "strict-prototypes" warning with GCC.
>>>>
>>>> Line 353 is:
>>>> int (*proc)();
>>>> in sasl_callback_t definition.
>>>
>>> I might have fixes for these in my private fork. I will try to apply
>>> them to the HEAD.
>>
>> Oh, that's great! Many thanks.
>> We're using Cyrus SASL for the AUTHINFO SASL extension of the news 
>> server INN.
> 
> This is on the trunk now.

I have just tried to build Cyrus SASL 2.1.25 but it still does not work.
I see that line 353 is now:
    int (*proc)(void);


I now have the following failures with GCC 4.6.1 (on x86_64 GNU/Linux):


imap_connection.c:1290: error: initialization from incompatible pointer type
imap_connection.c:1292: error: initialization from incompatible pointer type
imap_connection.c:1294: error: initialization from incompatible pointer type
imap_connection.c:1296: error: initialization from incompatible pointer type
make[2]: *** [imap_connection.o] Error 1

caused by the second arguments of:

/* callbacks we support */
static sasl_callback_t saslcallbacks[] = {
  {
    SASL_CB_GETREALM, &getsimple, NULL
  }, {
    SASL_CB_USER, &getsimple, NULL
  }, {
    SASL_CB_AUTHNAME, &getsimple, NULL
  }, {
    SASL_CB_PASS, &getsecret, NULL
  }, {
    SASL_CB_LIST_END, NULL, NULL
  }
};


where prototype of the first function is:

static int getsimple(void *context UNUSED,
                     int id,
                     const char **result,
                     unsigned *len)


-- 
Julien ÉLIE

« Le chemin le plus court d'un point à un autre est la ligne droite,
  à condition que les deux points soient bien en face l'un de
  l'autre. » (Pierre Dac)


More information about the Cyrus-sasl mailing list