mirror of https://gitee.com/openkylin/libvirt.git
util: add compat wrapper for g_fsync
g_fsync isn't available until 2.63 so we need a compat wrapper temporarily. Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
2c33532423
commit
41d9bba57e
|
@ -1504,6 +1504,7 @@ virSecurityManagerVerify;
|
|||
|
||||
|
||||
# util/glibcompat.h
|
||||
vir_g_fsync;
|
||||
vir_g_strdup_printf;
|
||||
vir_g_strdup_vprintf;
|
||||
|
||||
|
|
|
@ -19,11 +19,13 @@
|
|||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "glibcompat.h"
|
||||
|
||||
#undef g_strdup_printf
|
||||
#undef g_strdup_vprintf
|
||||
#undef g_fsync
|
||||
|
||||
/* Due to a bug in glib, g_strdup_printf() nor g_strdup_vprintf()
|
||||
* abort on OOM. It's fixed in glib's upstream. Provide our own
|
||||
|
@ -51,3 +53,14 @@ vir_g_strdup_vprintf(const char *msg, va_list args)
|
|||
abort();
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
gint
|
||||
vir_g_fsync(gint fd)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
return _commit(fd);
|
||||
#else
|
||||
return fsync(fd);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -25,8 +25,13 @@ char *vir_g_strdup_printf(const char *msg, ...)
|
|||
G_GNUC_PRINTF(1, 2);
|
||||
char *vir_g_strdup_vprintf(const char *msg, va_list args)
|
||||
G_GNUC_PRINTF(1, 0);
|
||||
gint vir_g_fsync(gint fd);
|
||||
|
||||
#if !GLIB_CHECK_VERSION(2, 64, 0)
|
||||
# define g_strdup_printf vir_g_strdup_printf
|
||||
# define g_strdup_vprintf vir_g_strdup_vprintf
|
||||
#endif
|
||||
|
||||
#if !GLIB_CHECK_VERSION(2, 63, 0)
|
||||
# define g_fsync vir_g_fsync
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue