[save_CFLAGS=$CFLAGS save_LIBS=$LIBS CFLAGS="$LIBGLIB_CFLAGS $CFLAGS"
LIBS="conftest_bar.$OBJEXT $LIBGLIB_LIBS $save_LIBS"
dx_cv_glib_busted_gnu_inline=unknown
-for dx_attempt in no yes; do
-AS_CASE([$dx_attempt],
-[yes], [DEFTEST='#define G_INLINE_FUNC static inline'
-], [DEFTEST=
+for dx_cv_glib_inline_workaround in no G_INLINE_FUNC G_IMPLEMENT_INLINES; do
+AS_CASE([$dx_cv_glib_inline_workaround],
+[G_INLINE_FUNC], [DEFTEST='#define G_INLINE_FUNC static inline' ret=yes
+], [G_IMPLEMENT_INLINES], [DEFTEST='#define G_IMPLEMENT_INLINES 1' ret=yes
+], [DEFTEST= ret=no
])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([$DEFTEST
#include <glib.h>
AC_LINK_IFELSE([AC_LANG_PROGRAM([$DEFTEST
#include <glib.h>
extern int bar(void);], [return bar();])],
-[dx_cv_glib_busted_gnu_inline=$dx_attempt; break])
+[dx_cv_glib_busted_gnu_inline=$ret; break])
rm -f conftest_bar.$OBJEXT
done
CFLAGS=$save_CFLAGS LIBS=$save_LIBS])
-AS_CASE([$dx_cv_glib_busted_gnu_inline], [yes],
-[AC_DEFINE([G_INLINE_FUNC], [static inline],
+AS_CASE([$dx_cv_glib_inline_workaround],
+[G_INLINE_FUNC], [AC_DEFINE([G_INLINE_FUNC], [static inline],
[Define to static inline to work around multiple definitions in old GLib.])
+], [G_IMPLEMENT_INLINES], [AC_DEFINE([G_IMPLEMENT_INLINES], [1],
+ [If G_INLINE_FUNC cannot work around multiple definition issues,
+ define to 1 to disable inlining altogether in GLib.])
])])