mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-07 19:19:39 +02:00
gfile: Ensure loff_t is defined on FreeBSD
When `copy_file_range()` support was added, I used the definition of `copy_file_range()` from Linux, which uses `loff_t` to abstract the different `off*_t` types. `loff_t` doesn’t exist on FreeBSD, so this doesn’t compile, and was caught in subsequent asynchronous CI. Define `loff_t` with a fallback value if it’s not defined, which should fix this and other uses of `loff_t` in `gfile.c` (for example, if FreeBSD ever starts declaring `splice()`). Fixes this CI failure: https://gitlab.gnome.org/GNOME/glib/-/jobs/2812302 Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
parent
fde068300e
commit
e02fa2ec90
@ -77,6 +77,13 @@
|
|||||||
#include "gioerror.h"
|
#include "gioerror.h"
|
||||||
#include "glibintl.h"
|
#include "glibintl.h"
|
||||||
|
|
||||||
|
/* Linux defines loff_t as a way to simplify the offset types for calls like
|
||||||
|
* splice() and copy_file_range(). BSD has copy_file_range() but doesn’t define
|
||||||
|
* loff_t. Abstract that. */
|
||||||
|
#ifndef HAVE_LOFF_T
|
||||||
|
typedef off_t loff_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:gfile
|
* SECTION:gfile
|
||||||
|
@ -828,6 +828,10 @@ if cc.has_header_symbol('dlfcn.h', 'RTLD_NEXT', args: '-D_GNU_SOURCE')
|
|||||||
glib_conf.set('HAVE_RTLD_NEXT', 1)
|
glib_conf.set('HAVE_RTLD_NEXT', 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if cc.has_type('loff_t', prefix: '#include <sys/types.h>')
|
||||||
|
glib_conf.set('HAVE_LOFF_T', 1)
|
||||||
|
endif
|
||||||
|
|
||||||
# Check whether to use statfs or statvfs
|
# Check whether to use statfs or statvfs
|
||||||
# Some systems have both statfs and statvfs, pick the most "native" for these
|
# Some systems have both statfs and statvfs, pick the most "native" for these
|
||||||
if have_func_statfs and have_func_statvfs
|
if have_func_statfs and have_func_statvfs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user