Ian Mordey <ian.mor...@wandisco.com> writes:

> Not that I can spot:
> gutils.h
> G_INLINE_FUNC gint      g_bit_nth_lsf (gulong  mask,
>                                        gint    nth_bit);
> G_INLINE_FUNC gint      g_bit_nth_msf (gulong  mask,
>                                        gint    nth_bit);
> G_INLINE_FUNC guint     g_bit_storage (gulong  number);
>
> gstring.h
> #ifdef G_CAN_INLINE
> static inline GString*
> g_string_append_c_inline (GString *gstring,
>                           gchar    c)
> {
>
> gmessages.h
> #ifdef G_HAVE_ISO_VARARGS
> #define g_error(...)    g_log (G_LOG_DOMAIN,         \
>                                G_LOG_LEVEL_ERROR,    \
>                                __VA_ARGS__)
> #define g_message(...)  g_log (G_LOG_DOMAIN,         \
>                                G_LOG_LEVEL_MESSAGE,  \
>                                __VA_ARGS__)
> #define g_critical(...) g_log (G_LOG_DOMAIN,         \
>                                G_LOG_LEVEL_CRITICAL, \
>                                __VA_ARGS__)
> #define g_warning(...)  g_log (G_LOG_DOMAIN,         \
>                                G_LOG_LEVEL_WARNING,  \
>                                __VA_ARGS__)
> #elif defined(G_HAVE_GNUC_VARARGS)r
>
>
>> Another option is to run the compile command manually but change '-c' to
>> '-E', remove '-o subversion/libsvn_auth_gnome_keyring/gnome_keyring.o',
>> and redirect stdout to a file.  That gives us the preprocessed source
>> with all the includes resolved (probably quite a big file).
>>
> It is quite big! Here you go:
> https://pastebin.com/HhvEZFRq

The problem is that the header files do not appear to work with the
compiler option -std=c90.  The problems: G_INLINE_FUNC is expanding to
"static inline", G_CAN_INLINE is allowing "static inline" and
G_HAVE_ISO_VARARGS is allowing ... in macros. None of those are
supported with -std=c90.

Also, the compiler error messages are poor.

I think the 1.9 build that works also passes -std=c90, it certainly does
on my machine here.  If I am correct then the glib headers have compiler
feature detection but it is broken for the 1.8 build.  I don't know what
would break it, but if you can work out what is different between 1.8
and 1.9 I would be interested, maybe we can fix it.

It would be good to work out why -std=c90 is broken but you can probably
fix the build by forcing -std=c99.  Either build using:

   make EXTRA_CFLAGS=-std=c99

or configure using

   CFLAGS=-std=c99 ./configure ...

-- 
Philip

Reply via email to