kumquat-buildroot/package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch
Thomas Petazzoni 2694222c3d Revert "package/libglib2: bump to version 2.58.1"
This reverts commit 178eb1d7ea. This
bump causes too many build failures in reverse dependencies of
libglib2, for which a proper solution needs to be found.

See also the analysis from Yann E. Morin:

  http://lists.busybox.net/pipermail/buildroot/2018-December/237663.html

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-12-03 08:55:53 +01:00

53 lines
1.8 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 0beb62f564072f3585762c9c55fe894485993b62 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Tue, 10 Apr 2018 18:55:11 +0200
Subject: [PATCH] gio: fix compilation without F_{S,G}ETPIPE_SZ
Commit a5778ef7c51044147fe470ea1707dd297f44f880 broke compilation on
architectures without F_SETPIPE_SZ and F_GETPIPE_SZ such as or1k.
If those variables are undefined, put back previous behavior, buffer
size set to 1024 * 64
Fixes:
- http://autobuild.buildroot.net/results/398490e07343a931b25ca6ab5c90a75d7a073e9f
(Modified by Philip Withnall <withnall@endlessm.com> to add an
explanatory comment.)
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=795133
---
gio/gfile.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/gio/gfile.c b/gio/gfile.c
index 334ad8ec3..a67aad383 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -3012,6 +3012,7 @@ splice_stream_with_progress (GInputStream *in,
if (!g_unix_open_pipe (buffer, FD_CLOEXEC, error))
return FALSE;
+#if defined(F_SETPIPE_SZ) && defined(F_GETPIPE_SZ)
/* Try a 1MiB buffer for improved throughput. If that fails, use the default
* pipe size. See: https://bugzilla.gnome.org/791457 */
buffer_size = fcntl (buffer[1], F_SETPIPE_SZ, 1024 * 1024);
@@ -3029,6 +3030,13 @@ splice_stream_with_progress (GInputStream *in,
goto out;
}
}
+#else
+ /* If #F_GETPIPE_SZ isnt available, assume were on Linux < 2.6.35,
+ * but ≥ 2.6.11, meaning the pipe capacity is 64KiB. Ignore the possibility of
+ * running on Linux < 2.6.11 (where the capacity was the system page size,
+ * typically 4KiB) because its ancient. See pipe(7). */
+ buffer_size = 1024 * 64;
+#endif
g_assert (buffer_size > 0);
--
2.13.0