sys-apps/util-linux: Build fix on MIPS from upstream
authorJoshua Kinard <kumba@gentoo.org>
Sun, 24 Mar 2019 19:43:33 +0000 (15:43 -0400)
committerJoshua Kinard <kumba@gentoo.org>
Sun, 24 Mar 2019 19:45:12 +0000 (15:45 -0400)
In glibc-2.29, the definitions of 'struct termios' were consolidated
across architectures.  This causes a build error in util-linux on MIPS
due to undefined struct members 'c_ospeed' and 'c_ispeed', which MIPS
does not have.  The included patch from upstream fixes this, and should
be in the next util-linux release.

Signed-off-by: Joshua Kinard <kumba@gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.12

sys-apps/util-linux/files/util-linux-2.33.1-fix-struct_termios-check.patch [new file with mode: 0644]
sys-apps/util-linux/util-linux-2.33.1.ebuild

diff --git a/sys-apps/util-linux/files/util-linux-2.33.1-fix-struct_termios-check.patch b/sys-apps/util-linux/files/util-linux-2.33.1-fix-struct_termios-check.patch
new file mode 100644 (file)
index 0000000..df52af4
--- /dev/null
@@ -0,0 +1,30 @@
+From 963413a1adf6767ab17712097e288e1a346f63a7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 4 Jan 2019 22:38:25 -0800
+Subject: [PATCH] ldattach: Check for value of _HAVE_STRUCT_TERMIOS_C_ISPEED
+
+in glibc 2.29+ checking for just existence of _HAVE_STRUCT_TERMIOS_C_ISPEED
+won't be enough, the value has to be checked
+
+see
+https://sourceware.org/git/?p=glibc.git;a=commit;h=e5a50db36eaa6e8c6427b3a971563240b633ca85
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sys-utils/ldattach.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sys-utils/ldattach.c b/sys-utils/ldattach.c
+index d33d68535..fb50711eb 100644
+--- a/sys-utils/ldattach.c
++++ b/sys-utils/ldattach.c
+@@ -242,7 +242,7 @@ static int my_cfsetspeed(struct termios *ts, int speed)
+        * -- we have to bypass glibc and set the speed manually (because glibc
+        *    checks for speed and supports Bxxx bit rates only)...
+        */
+-#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
++#if _HAVE_STRUCT_TERMIOS_C_ISPEED
+ # define BOTHER 0010000               /* non standard rate */
+       dbg("using non-standard speeds");
+       ts->c_ospeed = ts->c_ispeed = speed;
+
index a671878bc1492be89d81e2a8c3271c8e8012d434..503832c70fa63ac5b941dbabee551ae05c4805d5 100644 (file)
@@ -90,6 +90,13 @@ src_prepare() {
                configure || die
 
        elibtoolize
+
+       # In glibc-2.29+, a lot of changes were made to arch-specific
+       # handling of `struct termios', which breaks atleast MIPS.
+       # The below patch from upstream fixes this, and should be
+       # in the next release.
+       # See: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=963413a1adf6767ab17712097e288e1a346f63a7
+       epatch "${FILESDIR}/${P}-fix-struct_termios-check.patch"
 }
 
 lfs_fallocate_test() {