commit:     14577373ea94b996b856cad1c7f837fb79032d2f
Author:     Joshua Kinard <kumba <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 24 19:43:33 2019 +0000
Commit:     Joshua Kinard <kumba <AT> gentoo <DOT> org>
CommitDate: Sun Mar 24 19:45:12 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14577373

sys-apps/util-linux: Build fix on MIPS from upstream

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 <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.12

 ...til-linux-2.33.1-fix-struct_termios-check.patch | 30 ++++++++++++++++++++++
 sys-apps/util-linux/util-linux-2.33.1.ebuild       |  7 +++++
 2 files changed, 37 insertions(+)

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
index 00000000000..df52af45049
--- /dev/null
+++ b/sys-apps/util-linux/files/util-linux-2.33.1-fix-struct_termios-check.patch
@@ -0,0 +1,30 @@
+From 963413a1adf6767ab17712097e288e1a346f63a7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.k...@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.k...@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;
+

diff --git a/sys-apps/util-linux/util-linux-2.33.1.ebuild 
b/sys-apps/util-linux/util-linux-2.33.1.ebuild
index a671878bc14..503832c70fa 100644
--- a/sys-apps/util-linux/util-linux-2.33.1.ebuild
+++ b/sys-apps/util-linux/util-linux-2.33.1.ebuild
@@ -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() {

Reply via email to