From 0dbc81c73ae19310f477e4888f4d4cba8474a846 Mon Sep 17 00:00:00 2001 From: Mikhail Zabaluev Date: Thu, 29 Oct 2015 10:54:34 +0200 Subject: [PATCH] Move G_POLLFD_FORMAT to glibconfig.h It's a platform-specific macro, so it belongs in glibconfig.h. This ensures that g-ir-scanner will not pick the wrong definition for introspection. https://bugzilla.gnome.org/show_bug.cgi?id=757294 --- configure.ac | 8 +++++++- glib/glibconfig.h.win32.in | 4 ++++ glib/gpoll.h | 11 ++--------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 63c3c7c68..9ad40f10f 100644 --- a/configure.ac +++ b/configure.ac @@ -125,6 +125,7 @@ case "$host" in *-*-mingw*) glib_native_win32=yes glib_pid_type='void *' + glib_pollfd_format='%#x' glib_cv_stack_grows=no # Unfortunately the mingw implementations of C99-style snprintf and vsnprintf # don't seem to be quite good enough, at least not in mingw-runtime-3.14. @@ -138,6 +139,7 @@ case "$host" in case "$host" in x86_64-*-*) LIB_EXE_MACHINE_FLAG=X64 + glib_pollfd_format='%#I64x' ;; esac @@ -146,6 +148,7 @@ case "$host" in *) glib_native_win32=no glib_pid_type=int + glib_pollfd_format='%d' ;; esac case $host in @@ -2866,6 +2869,8 @@ typedef gint64 goffset; #define G_GOFFSET_FORMAT G_GINT64_FORMAT #define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val) +#define G_POLLFD_FORMAT $g_pollfd_format + _______EOF if test -z "$glib_unknown_void_p"; then @@ -3333,8 +3338,9 @@ g_memory_barrier_needed="$glib_memory_barrier_needed" g_gcc_atomic_ops="$glib_cv_gcc_has_builtin_atomic_operations" g_module_suffix="$glib_gmodule_suffix" - g_pid_type="$glib_pid_type" +g_pollfd_format="\"$glib_pollfd_format\"" + case $host in *-*-cygwin*) glib_os="#define G_OS_UNIX diff --git a/glib/glibconfig.h.win32.in b/glib/glibconfig.h.win32.in index 418cbe06a..35abba9ed 100644 --- a/glib/glibconfig.h.win32.in +++ b/glib/glibconfig.h.win32.in @@ -115,6 +115,8 @@ typedef gint64 goffset; #ifndef _WIN64 +#define G_POLLFD_FORMAT "%#x" + #define GPOINTER_TO_INT(p) ((gint) (p)) #define GPOINTER_TO_UINT(p) ((guint) (p)) @@ -130,6 +132,8 @@ typedef unsigned int guintptr; #else +#define G_POLLFD_FORMAT "%#I64x" + #define GPOINTER_TO_INT(p) ((gint) (gint64) (p)) #define GPOINTER_TO_UINT(p) ((guint) (guint64) (p)) diff --git a/glib/gpoll.h b/glib/gpoll.h index f28e3c50e..95fe01ce1 100644 --- a/glib/gpoll.h +++ b/glib/gpoll.h @@ -22,6 +22,7 @@ #error "Only can be included directly." #endif +#include #include G_BEGIN_DECLS @@ -106,15 +107,7 @@ struct _GPollFD * A format specifier that can be used in printf()-style format strings * when printing the @fd member of a #GPollFD. */ -#ifdef G_OS_WIN32 -#if GLIB_SIZEOF_VOID_P == 8 -#define G_POLLFD_FORMAT "%#I64x" -#else -#define G_POLLFD_FORMAT "%#x" -#endif -#else -#define G_POLLFD_FORMAT "%d" -#endif +/* defined in glibconfig.h */ GLIB_AVAILABLE_IN_ALL gint