This fixes a FAIL on Solaris, due to a difference between the GNU and Solaris versions of sendfile(2).
2016-10-27 Uros Bizjak <ubiz...@gmail.com> PR libstdc++/70975 * src/filesystem/ops.cc (do_copy_file): Pass non-null pointer to sendfile for offset argument. Tested powerpc64le-linux, committed to trunk.
commit 27d5ce18d1d752dafb757ba31948aa1bb32cf122 Author: Jonathan Wakely <jwak...@redhat.com> Date: Thu Oct 27 15:23:10 2016 +0100 PR70975 Pass valid offset argument to sendfile 2016-10-27 Uros Bizjak <ubiz...@gmail.com> PR libstdc++/70975 * src/filesystem/ops.cc (do_copy_file): Pass non-null pointer to sendfile for offset argument. diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc index 9abcee0..8ed0a10 100644 --- a/libstdc++-v3/src/filesystem/ops.cc +++ b/libstdc++-v3/src/filesystem/ops.cc @@ -444,7 +444,8 @@ namespace } #ifdef _GLIBCXX_USE_SENDFILE - const auto n = ::sendfile(out.fd, in.fd, nullptr, from_st->st_size); + off_t offset = 0; + const auto n = ::sendfile(out.fd, in.fd, &offset, from_st->st_size); if (n < 0 && (errno == ENOSYS || errno == EINVAL)) { #endif