summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsetup.py5
-rw-r--r--src/portage_util_file_copy_reflink_linux.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/setup.py b/setup.py
index e99317792..1ba6f87f8 100755
--- a/setup.py
+++ b/setup.py
@@ -676,7 +676,10 @@ setup(
['$sysconfdir/portage/repo.postsync.d', ['cnf/repo.postsync.d/example']],
],
- ext_modules = [Extension(name=n, sources=m) for n, m in x_c_helpers.items()],
+ ext_modules = [Extension(name=n, sources=m,
+ extra_compile_args=['-D_FILE_OFFSET_BITS=64',
+ '-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE'])
+ for n, m in x_c_helpers.items()],
cmdclass = {
'build': x_build,
diff --git a/src/portage_util_file_copy_reflink_linux.c b/src/portage_util_file_copy_reflink_linux.c
index b031d962d..2fb17a0f5 100644
--- a/src/portage_util_file_copy_reflink_linux.c
+++ b/src/portage_util_file_copy_reflink_linux.c
@@ -66,7 +66,7 @@ initreflink_linux(void)
* (errno is set appropriately).
*/
static ssize_t
-cfr_wrapper(int fd_out, int fd_in, loff_t *off_out, size_t len)
+cfr_wrapper(int fd_out, int fd_in, off_t *off_out, size_t len)
{
#ifdef __NR_copy_file_range
return syscall(__NR_copy_file_range, fd_in, NULL, fd_out,
@@ -96,7 +96,7 @@ cfr_wrapper(int fd_out, int fd_in, loff_t *off_out, size_t len)
* reaches EOF.
*/
static off_t
-do_lseek_data(int fd_out, int fd_in, loff_t *off_out) {
+do_lseek_data(int fd_out, int fd_in, off_t *off_out) {
#ifdef SEEK_DATA
/* Use lseek SEEK_DATA/SEEK_HOLE for sparse file support,
* as suggested in the copy_file_range man page.
@@ -189,7 +189,7 @@ _reflink_linux_file_copy(PyObject *self, PyObject *args)
ssize_t buf_bytes, buf_offset, copyfunc_ret;
struct stat stat_in, stat_out;
char* buf;
- ssize_t (*copyfunc)(int, int, loff_t *, size_t);
+ ssize_t (*copyfunc)(int, int, off_t *, size_t);
if (!PyArg_ParseTuple(args, "ii", &fd_in, &fd_out))
return NULL;