summaryrefslogtreecommitdiffstats
path: root/debian/patches/platform-quirks.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/platform-quirks.diff')
-rw-r--r--debian/patches/platform-quirks.diff47
1 files changed, 47 insertions, 0 deletions
diff --git a/debian/patches/platform-quirks.diff b/debian/patches/platform-quirks.diff
new file mode 100644
index 0000000..e46fe56
--- /dev/null
+++ b/debian/patches/platform-quirks.diff
@@ -0,0 +1,47 @@
+Description: Platform-specific fixes
+ * Define PATH_MAX, MAX_IOV for Hurd.
+ * Add workaround for broken GNU/kFreeBSD system headers.
+Author: Karl Ferdinand Ebert <kfebert@gmail.com>
+Author: Romain Francoise <rfrancoise@debian.org>
+Author: James Clarke <jrtc27@debian.org>
+Bug-Debian: http://bugs.debian.org/609333
+Forwarded: not-needed
+
+--- a/compat.h
++++ b/compat.h
+@@ -21,6 +21,20 @@
+ #include <sys/ioctl.h>
+ #include <sys/uio.h>
+
++/*
++ * Shouldn't be needed, but GNU/kFreeBSD headers are currently slightly broken.
++ * The glibc limits.h eventually includes the FreeBSD limits-related headers,
++ * which don't define a TTY_NAME_MAX. However, anything (in)directly including
++ * the glibc sys/param.h will include the glibc bits/param.h, which defines
++ * TTY_NAME_MAX as SPECNAMELEN, i.e. 63, which differs from our fallback of 32.
++ * Thus, without this hack, different source files can (and do) end up with
++ * different values for TTY_NAME_MAX, which among other things affects the
++ * layout of struct window_pane due to the tty buffer.
++ */
++#ifdef __FreeBSD_kernel__
++#include <sys/param.h>
++#endif
++
+ #include <fnmatch.h>
+ #include <limits.h>
+ #include <stdio.h>
+@@ -289,6 +303,14 @@ void explicit_bzero(void *, size_t);
+ int getdtablecount(void);
+ #endif
+
++#ifndef PATH_MAX
++#define PATH_MAX 4096
++#endif
++
++#ifndef IOV_MAX
++#define IOV_MAX 1024
++#endif
++
+ #ifndef HAVE_CLOSEFROM
+ /* closefrom.c */
+ void closefrom(int);