Re: glib/gmessages.h on platforms without ISO/GNU varargs
- From: muppet <scott asofyet org>
- To: gtk-devel-list gnome org
- Subject: Re: glib/gmessages.h on platforms without ISO/GNU varargs
- Date: Mon, 11 Oct 2004 10:49:41 -0400
On Oct 11, 2004, at 10:29 AM, Albert Chin wrote:
The Sun C compiler on Solaris 2.5.1 does not support ISO/GNU varargs.
Therefore, when <glib/gmessages.h> is pulled in from <glib.h>, it
forces the caller to link in -lglib for g_logv() because:
the pure macro versions are just wrappers around g_log(), so even just
using those requires linking with -lglib.
...
#else /* no varargs macros */
static void
g_error (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
va_end (args);
}
...
Is there a reason we don't list only the function prototypes and move
the functions to gmessages.c?
it wouldn't work. G_LOG_DOMAIN and G_LOG_LEVEL_ERROR are macros that
are to be evaluated by the calling code; if you put only the prototype
in the header, you'd still have to macro-ize it somehow to get those to
show up. this declaration gives you a private version of the function,
with the local values of those macros, in each module that uses it
(uses more space, but that's the penalty for a crappy compiler :-).
--
"that's it! you're a genius!" "yes. that's what i think. do you
think i deserve a raise?"
- dialogue from 'Godzilla versus Mothra', 1964
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]