On Tue, May 9, 2017 at 9:18 AM, Brian Dolbec <dol...@gentoo.org> wrote:
> On Sun, 7 May 2017 16:50:40 -0700 > Zac Medico <zmed...@gentoo.org> wrote: > > > The loff_t type is a GNU extension, so use the portable off_t > > type instead. Also, enable Large File Support macros in setup.py, > > for 64-bit offsets. > > > > Reported-by: Patrick Steinhardt <p...@pks.im> > > X-Gentoo-bug: 617778 > > X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=617778 > > --- > > setup.py | 5 ++++- > > src/portage_util_file_copy_reflink_linux.c | 6 +++--- > > 2 files changed, 7 insertions(+), 4 deletions(-) > > > > diff --git a/setup.py b/setup.py > > index e993177..1ba6f87 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 b031d96..2fb17a0 > > 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; > > looks fine and is Anthony approved ;) > Thanks, merged: https://gitweb.gentoo.org/proj/portage.git/commit/?id=1a7aeb58c4e687e4d4012054b56373f27941a067 -- Thanks, Zac