Fix to compile for C libraries with no flockfile
Also use MS variant of flockfile, if available (requires MSVCRT compatible with MSVCR90 or newer).
This commit is contained in:
@ -413,7 +413,7 @@ AC_SUBST(DISABLE_ON_QUARTZ)
|
|||||||
AC_CHECK_LIB([rt], [shm_open], [SHM_LIBS="-lrt"], [SHM_LIBS=""])
|
AC_CHECK_LIB([rt], [shm_open], [SHM_LIBS="-lrt"], [SHM_LIBS=""])
|
||||||
AC_SUBST(SHM_LIBS)
|
AC_SUBST(SHM_LIBS)
|
||||||
|
|
||||||
AC_CHECK_FUNCS(posix_fallocate)
|
AC_CHECK_FUNCS(posix_fallocate flockfile _lock_file)
|
||||||
|
|
||||||
if test "x$enable_broadway_backend" = xyes; then
|
if test "x$enable_broadway_backend" = xyes; then
|
||||||
GDK_BACKENDS="$GDK_BACKENDS broadway"
|
GDK_BACKENDS="$GDK_BACKENDS broadway"
|
||||||
|
@ -64,6 +64,23 @@
|
|||||||
|
|
||||||
#include "deprecated/gtkrc.h"
|
#include "deprecated/gtkrc.h"
|
||||||
|
|
||||||
|
/* We need to call getc() a lot in a loop. This is suboptimal,
|
||||||
|
* as getc() does thread locking on the FILE it is given.
|
||||||
|
* To optimize that, lock the file first, then call getc(),
|
||||||
|
* then unlock.
|
||||||
|
* If locking functions are not present in libc, fall back
|
||||||
|
* to the suboptimal getc().
|
||||||
|
*/
|
||||||
|
#if !defined(HAVE_FLOCKFILE) && !defined(HAVE__LOCK_FILE)
|
||||||
|
# define flockfile(f) (void)1
|
||||||
|
# define funlockfile(f) (void)1
|
||||||
|
# define getc_unlocked(f) getc(f)
|
||||||
|
#elif !defined(HAVE_FLOCKFILE) && defined(HAVE__LOCK_FILE)
|
||||||
|
# define flockfile(f) _lock_file(f)
|
||||||
|
# define funlockfile(f) _unlock_file(f)
|
||||||
|
# define getc_unlocked(f) _getc_nolock(f)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SIMPLE_ID "gtk-im-context-simple"
|
#define SIMPLE_ID "gtk-im-context-simple"
|
||||||
#define NONE_ID "gtk-im-context-none"
|
#define NONE_ID "gtk-im-context-none"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user