Skip to content
Snippets Groups Projects
Commit 03e16afa authored by Jonathan Lebon's avatar Jonathan Lebon
Browse files

missing-syscalls: Use different name for copy_file_range

In glibc 2.27, a wrapper for `copy_file_range` was added[1]. The
function is now always defined, either using a userspace fallback or
just returning `ENOSYS` if the kernel doesn't support it. This throws
off our preprocessor conditionals. Work around this by just renaming our
implementation differently. This is similar to what systemd did[2].

Hit this when trying to build on F28, which rebased to glibc 2.27.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=bad7a0c81f501fbbcc79af9eaa4b8254441c4a1f
[2] https://github.com/systemd/systemd/commit/5187dd2c403caf92d09f3491e41f1ceb3f10491f
parent 0c82203c
No related branches found
No related tags found
No related merge requests found
...@@ -140,10 +140,10 @@ static inline int memfd_create(const char *name, unsigned int flags) { ...@@ -140,10 +140,10 @@ static inline int memfd_create(const char *name, unsigned int flags) {
# endif # endif
# endif # endif
static inline ssize_t copy_file_range(int fd_in, loff_t *off_in, static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
int fd_out, loff_t *off_out, int fd_out, loff_t *off_out,
size_t len, size_t len,
unsigned int flags) { unsigned int flags) {
# ifdef __NR_copy_file_range # ifdef __NR_copy_file_range
return syscall(__NR_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags); return syscall(__NR_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags);
# else # else
...@@ -151,4 +151,6 @@ static inline ssize_t copy_file_range(int fd_in, loff_t *off_in, ...@@ -151,4 +151,6 @@ static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
return -1; return -1;
# endif # endif
} }
# define copy_file_range missing_copy_file_range
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment