aboutsummaryrefslogtreecommitdiffstats
path: root/main/ccache/ioctl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/ccache/ioctl.patch')
-rw-r--r--main/ccache/ioctl.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/main/ccache/ioctl.patch b/main/ccache/ioctl.patch
new file mode 100644
index 00000000000..1abfc45ae22
--- /dev/null
+++ b/main/ccache/ioctl.patch
@@ -0,0 +1,18 @@
+musl uses an `int` instead of a `unsigend long` for the ioctl function
+prototype, contrary to glibc, since POSIX mandates the former. This
+causes a spurious error on ppc64le which can be silenced by casting to
+int explicitly.
+
+See https://www.openwall.com/lists/musl/2020/01/20/2
+
+--- a/src/storage/local/LocalStorage.cpp
++++ b/src/storage/local/LocalStorage.cpp
+@@ -263,7 +263,7 @@
+ }
+ }
+
+- if (ioctl(*dest_fd, FICLONE, *src_fd) != 0) {
++ if (ioctl(*dest_fd, (int)FICLONE, *src_fd) != 0) {
+ throw core::Error(strerror(errno));
+ }
+