diff mbox series

[1/1] package/uclibc: fix termios redefinition issue for PowerPC

Message ID 20190821003059.22765-1-vadim4j@gmail.com
State Changes Requested
Headers show
Series [1/1] package/uclibc: fix termios redefinition issue for PowerPC | expand

Commit Message

Vadym Kochan Aug. 21, 2019, 12:30 a.m. UTC
Fix redefinition of 'struct termios' by syncing termios powerpc headers
from glibc, the commit which fixed the same issue in glibc:

    d4795e4a43e6f0c221bc5dc64c612206a21a177b PowerPC: Fix termios definitions

    https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b

it fixed the following bug request:

    https://bugzilla.redhat.com/show_bug.cgi?id=1122714

In case of Buildroot it fixes flashrom build for PowerPC.

Fixes:
	http://autobuild.buildroot.net/results/797dde5cbf0e94162c7cc7b557841605c78ac2f3/

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 ...rPC-sync-with-termios-fix-from-glibc.patch | 434 ++++++++++++++++++
 1 file changed, 434 insertions(+)
 create mode 100644 package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch

Comments

Arnout Vandecappelle Aug. 21, 2019, 9:35 p.m. UTC | #1
Hi Vadim,

On 21/08/2019 02:30, Vadim Kochan wrote:
> Fix redefinition of 'struct termios' by syncing termios powerpc headers
> from glibc, the commit which fixed the same issue in glibc:
> 
>     d4795e4a43e6f0c221bc5dc64c612206a21a177b PowerPC: Fix termios definitions
> 
>     https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b
> 
> it fixed the following bug request:
> 
>     https://bugzilla.redhat.com/show_bug.cgi?id=1122714
> 
> In case of Buildroot it fixes flashrom build for PowerPC.
> 
> Fixes:
> 	http://autobuild.buildroot.net/results/797dde5cbf0e94162c7cc7b557841605c78ac2f3/>
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
>  ...rPC-sync-with-termios-fix-from-glibc.patch | 434 ++++++++++++++++++
>  1 file changed, 434 insertions(+)
>  create mode 100644 package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> 
> diff --git a/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> new file mode 100644
> index 0000000000..7f676fba32
> --- /dev/null
> +++ b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> @@ -0,0 +1,434 @@
> +From 11d50ce9f44e5d2224ec6a3d8a9225d9164c7c64 Mon Sep 17 00:00:00 2001
> +From: Vadim Kochan <vadim4j@gmail.com>
> +Date: Tue, 20 Aug 2019 23:16:18 +0300
> +Subject: [PATCH] PowerPC: sync with termios fix from glibc
> +
> +It fixes the following bug:
> +
> +    https://bugzilla.redhat.com/show_bug.cgi?id=1122714
> +
> +with original glibc's fix:
> +
> +    d4795e4a43e6f0c221bc5 (PowerPC: Fix termios definitions)
> +
> +https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b
> +
> +Signed-off-by: Vadim Kochan <vadim4j@gmail.com>

 Since this commit is exactly the same as the change to glibc, you should keep
at least the original Sob, probably also the authorship.

 Also, I don't see a trace of this patch on the uClibc-ng mailing list. Did you
send it upstream?

 And finally: you should keep the original commit message, it provides relevant
information. And you should extend that message with an explanation of why here
we can completely remove termios.h while in glibc they kept it.


 Regards,
 Arnout

> +---
> + libc/sysdeps/linux/powerpc/bits/ioctl-types.h |  74 +++-
> + libc/sysdeps/linux/powerpc/bits/termios.h     | 320 ------------------
> + 2 files changed, 73 insertions(+), 321 deletions(-)
> + delete mode 100644 libc/sysdeps/linux/powerpc/bits/termios.h
Vadym Kochan Aug. 22, 2019, 6:27 a.m. UTC | #2
Hi Arnout,


On Thu, Aug 22, 2019 at 12:35 AM Arnout Vandecappelle <arnout@mind.be> wrote:
>
>  Hi Vadim,
>
> On 21/08/2019 02:30, Vadim Kochan wrote:
> > Fix redefinition of 'struct termios' by syncing termios powerpc headers
> > from glibc, the commit which fixed the same issue in glibc:
> >
> >     d4795e4a43e6f0c221bc5dc64c612206a21a177b PowerPC: Fix termios definitions
> >
> >     https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b
> >
> > it fixed the following bug request:
> >
> >     https://bugzilla.redhat.com/show_bug.cgi?id=1122714
> >
> > In case of Buildroot it fixes flashrom build for PowerPC.
> >
> > Fixes:
> >       http://autobuild.buildroot.net/results/797dde5cbf0e94162c7cc7b557841605c78ac2f3/>
> > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > ---
> >  ...rPC-sync-with-termios-fix-from-glibc.patch | 434 ++++++++++++++++++
> >  1 file changed, 434 insertions(+)
> >  create mode 100644 package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> >
> > diff --git a/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> > new file mode 100644
> > index 0000000000..7f676fba32
> > --- /dev/null
> > +++ b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
> > @@ -0,0 +1,434 @@
> > +From 11d50ce9f44e5d2224ec6a3d8a9225d9164c7c64 Mon Sep 17 00:00:00 2001
> > +From: Vadim Kochan <vadim4j@gmail.com>
> > +Date: Tue, 20 Aug 2019 23:16:18 +0300
> > +Subject: [PATCH] PowerPC: sync with termios fix from glibc
> > +
> > +It fixes the following bug:
> > +
> > +    https://bugzilla.redhat.com/show_bug.cgi?id=1122714
> > +
> > +with original glibc's fix:
> > +
> > +    d4795e4a43e6f0c221bc5 (PowerPC: Fix termios definitions)
> > +
> > +https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b
> > +
> > +Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
>
>  Since this commit is exactly the same as the change to glibc, you should keep
> at least the original Sob, probably also the authorship.
>
>  Also, I don't see a trace of this patch on the uClibc-ng mailing list. Did you
> send it upstream?
>
>  And finally: you should keep the original commit message, it provides relevant
> information. And you should extend that message with an explanation of why here
> we can completely remove termios.h while in glibc they kept it.

Yes, you are right, I will fix all your comments.

Regards,
Vadim Kochan
diff mbox series

Patch

diff --git a/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
new file mode 100644
index 0000000000..7f676fba32
--- /dev/null
+++ b/package/uclibc/0005-PowerPC-sync-with-termios-fix-from-glibc.patch
@@ -0,0 +1,434 @@ 
+From 11d50ce9f44e5d2224ec6a3d8a9225d9164c7c64 Mon Sep 17 00:00:00 2001
+From: Vadim Kochan <vadim4j@gmail.com>
+Date: Tue, 20 Aug 2019 23:16:18 +0300
+Subject: [PATCH] PowerPC: sync with termios fix from glibc
+
+It fixes the following bug:
+
+    https://bugzilla.redhat.com/show_bug.cgi?id=1122714
+
+with original glibc's fix:
+
+    d4795e4a43e6f0c221bc5 (PowerPC: Fix termios definitions)
+
+https://sourceware.org/git/?p=glibc.git;a=commit;h=d4795e4a43e6f0c221bc5dc64c612206a21a177b
+
+Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
+---
+ libc/sysdeps/linux/powerpc/bits/ioctl-types.h |  74 +++-
+ libc/sysdeps/linux/powerpc/bits/termios.h     | 320 ------------------
+ 2 files changed, 73 insertions(+), 321 deletions(-)
+ delete mode 100644 libc/sysdeps/linux/powerpc/bits/termios.h
+
+diff --git a/libc/sysdeps/linux/powerpc/bits/ioctl-types.h b/libc/sysdeps/linux/powerpc/bits/ioctl-types.h
+index 87b8265af..926061fa8 100644
+--- a/libc/sysdeps/linux/powerpc/bits/ioctl-types.h
++++ b/libc/sysdeps/linux/powerpc/bits/ioctl-types.h
+@@ -1,5 +1,77 @@
++/* Structure types for pre-termios terminal ioctls.  Linux/powerpc version.
++   Copyright (C) 2014-2019 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
+ #ifndef _SYS_IOCTL_H
+ # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
+ #endif
+ 
+-#include <termios.h>
++/* Get definition of constants for use with `ioctl'.  */
++#include <asm/ioctls.h>
++
++
++struct winsize
++  {
++    unsigned short int ws_row;
++    unsigned short int ws_col;
++    unsigned short int ws_xpixel;
++    unsigned short int ws_ypixel;
++  };
++
++#define NCC 10
++struct termio
++  {
++    unsigned short int c_iflag;		/* input mode flags */
++    unsigned short int c_oflag;		/* output mode flags */
++    unsigned short int c_cflag;		/* control mode flags */
++    unsigned short int c_lflag;		/* local mode flags */
++    unsigned char c_line;		/* line discipline */
++    unsigned char c_cc[NCC];		/* control characters */
++};
++
++/* modem lines */
++#define TIOCM_LE	0x001
++#define TIOCM_DTR	0x002
++#define TIOCM_RTS	0x004
++#define TIOCM_ST	0x008
++#define TIOCM_SR	0x010
++#define TIOCM_CTS	0x020
++#define TIOCM_CAR	0x040
++#define TIOCM_RNG	0x080
++#define TIOCM_DSR	0x100
++#define TIOCM_CD	TIOCM_CAR
++#define TIOCM_RI	TIOCM_RNG
++
++/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
++
++/* line disciplines */
++#define N_TTY		0
++#define N_SLIP		1
++#define N_MOUSE		2
++#define N_PPP		3
++#define N_STRIP		4
++#define N_AX25		5
++#define N_X25		6	/* X.25 async  */
++#define N_6PACK		7
++#define N_MASC		8	/* Mobitex module  */
++#define N_R3964		9	/* Simatic R3964 module  */
++#define N_PROFIBUS_FDL	10	/* Profibus  */
++#define N_IRDA		11	/* Linux IR  */
++#define N_SMSBLOCK	12	/* SMS block mode  */
++#define N_HDLC		13	/* synchronous HDLC  */
++#define N_SYNC_PPP	14	/* synchronous PPP  */
++#define	N_HCI		15	/* Bluetooth HCI UART  */
+diff --git a/libc/sysdeps/linux/powerpc/bits/termios.h b/libc/sysdeps/linux/powerpc/bits/termios.h
+deleted file mode 100644
+index ffd99a5e2..000000000
+--- a/libc/sysdeps/linux/powerpc/bits/termios.h
++++ /dev/null
+@@ -1,320 +0,0 @@
+-/* Copyright (C) 1997,1999,2001,2003,2004,2005 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _TERMIOS_H
+-# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+-#endif
+-
+-typedef unsigned char	cc_t;
+-typedef unsigned int	speed_t;
+-typedef unsigned int	tcflag_t;
+-
+-/*
+- * termios type and macro definitions.  Be careful about adding stuff
+- * to this file since it's used in GNU libc and there are strict rules
+- * concerning namespace pollution.
+- */
+-
+-#define NCCS 32
+-struct termios {
+-	tcflag_t c_iflag;		/* input mode flags */
+-	tcflag_t c_oflag;		/* output mode flags */
+-	tcflag_t c_cflag;		/* control mode flags */
+-	tcflag_t c_lflag;		/* local mode flags */
+-	cc_t c_line;			/* line discipline (== c_cc[19]) */
+-	cc_t c_cc[NCCS];		/* control characters */
+-	speed_t c_ispeed;		/* input speed */
+-	speed_t c_ospeed;		/* output speed */
+-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+-};
+-
+-/* c_cc characters */
+-#define VINTR	0
+-#define VQUIT	1
+-#define VERASE	2
+-#define VKILL	3
+-#define VEOF	4
+-#define VMIN	5
+-#define VEOL	6
+-#define VTIME	7
+-#define VEOL2	8
+-#define VSWTC	9
+-
+-#define VWERASE	10
+-#define VREPRINT	11
+-#define VSUSP		12
+-#define VSTART		13
+-#define VSTOP		14
+-#define VLNEXT		15
+-#define VDISCARD	16
+-
+-/* c_iflag bits */
+-#define IGNBRK	0000001
+-#define BRKINT	0000002
+-#define IGNPAR	0000004
+-#define PARMRK	0000010
+-#define INPCK	0000020
+-#define ISTRIP	0000040
+-#define INLCR	0000100
+-#define IGNCR	0000200
+-#define ICRNL	0000400
+-#define IXON	0001000
+-#define IXOFF	0002000
+-#define IXANY	0004000
+-#define IUCLC	0010000
+-#define IMAXBEL	0020000
+-#define IUTF8	0040000
+-
+-/* c_oflag bits */
+-#define OPOST	0000001
+-#define ONLCR	0000002
+-#define OLCUC	0000004
+-
+-#define OCRNL	0000010
+-#define ONOCR	0000020
+-#define ONLRET	0000040
+-
+-#define OFILL	00000100
+-#define OFDEL	00000200
+-#if defined __USE_MISC || defined __USE_XOPEN
+-# define NLDLY	00001400
+-# define   NL0	00000000
+-# define   NL1	00000400
+-# define   NL2	00001000
+-# define   NL3	00001400
+-# define TABDLY	00006000
+-# define   TAB0	00000000
+-# define   TAB1	00002000
+-# define   TAB2	00004000
+-# define   TAB3	00006000
+-# define CRDLY	00030000
+-# define   CR0	00000000
+-# define   CR1	00010000
+-# define   CR2	00020000
+-# define   CR3	00030000
+-# define FFDLY	00040000
+-# define   FF0	00000000
+-# define   FF1	00040000
+-# define BSDLY	00100000
+-# define   BS0	00000000
+-# define   BS1	00100000
+-#endif
+-#define VTDLY	00200000
+-#define   VT0	00000000
+-#define   VT1	00200000
+-
+-#ifdef __USE_MISC
+-# define XTABS	00006000
+-#endif
+-
+-/* c_cflag bit meaning */
+-#ifdef __USE_MISC
+-# define CBAUD	0000377
+-#endif
+-#define  B0	0000000		/* hang up */
+-#define  B50	0000001
+-#define  B75	0000002
+-#define  B110	0000003
+-#define  B134	0000004
+-#define  B150	0000005
+-#define  B200	0000006
+-#define  B300	0000007
+-#define  B600	0000010
+-#define  B1200	0000011
+-#define  B1800	0000012
+-#define  B2400	0000013
+-#define  B4800	0000014
+-#define  B9600	0000015
+-#define  B19200	0000016
+-#define  B38400	0000017
+-#ifdef __USE_MISC
+-# define EXTA B19200
+-# define EXTB B38400
+-# define CBAUDEX 0000020
+-#endif
+-#define  B57600   00020
+-#define  B115200  00021
+-#define  B230400  00022
+-#define  B460800  00023
+-#define  B500000  00024
+-#define  B576000  00025
+-#define  B921600  00026
+-#define  B1000000 00027
+-#define  B1152000 00030
+-#define  B1500000 00031
+-#define  B2000000 00032
+-#define  B2500000 00033
+-#define  B3000000 00034
+-#define  B3500000 00035
+-#define  B4000000 00036
+-#define __MAX_BAUD B4000000
+-
+-#define CSIZE	00001400
+-#define   CS5	00000000
+-#define   CS6	00000400
+-#define   CS7	00001000
+-#define   CS8	00001400
+-
+-#define CSTOPB	00002000
+-#define CREAD	00004000
+-#define PARENB	00010000
+-#define PARODD	00020000
+-#define HUPCL	00040000
+-
+-#define CLOCAL	00100000
+-#ifdef __USE_MISC
+-# define CMSPAR   010000000000		/* mark or space (stick) parity */
+-# define CRTSCTS  020000000000		/* flow control */
+-#endif
+-
+-/* c_lflag bits */
+-#define ISIG	0x00000080
+-#define ICANON	0x00000100
+-#if defined __USE_MISC || defined __USE_XOPEN
+-# define XCASE	0x00004000
+-#endif
+-#define ECHO	0x00000008
+-#define ECHOE	0x00000002
+-#define ECHOK	0x00000004
+-#define ECHONL	0x00000010
+-#define NOFLSH	0x80000000
+-#define TOSTOP	0x00400000
+-#ifdef __USE_MISC
+-# define ECHOCTL	0x00000040
+-# define ECHOPRT	0x00000020
+-# define ECHOKE	0x00000001
+-# define FLUSHO	0x00800000
+-# define PENDIN	0x20000000
+-#endif
+-#define IEXTEN	0x00000400
+-
+-/* Values for the ACTION argument to `tcflow'.  */
+-#define	TCOOFF		0
+-#define	TCOON		1
+-#define	TCIOFF		2
+-#define	TCION		3
+-
+-/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
+-#define	TCIFLUSH	0
+-#define	TCOFLUSH	1
+-#define	TCIOFLUSH	2
+-
+-/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
+-#define	TCSANOW		0
+-#define	TCSADRAIN	1
+-#define	TCSAFLUSH	2
+-
+-#ifndef __UCLIBC_STRICT_HEADERS__
+-struct sgttyb {
+-	char	sg_ispeed;
+-	char	sg_ospeed;
+-	char	sg_erase;
+-	char	sg_kill;
+-	short	sg_flags;
+-};
+-#endif
+-
+-struct tchars {
+-	char	t_intrc;
+-	char	t_quitc;
+-	char	t_startc;
+-	char	t_stopc;
+-	char	t_eofc;
+-	char	t_brkc;
+-};
+-
+-struct ltchars {
+-	char	t_suspc;
+-	char	t_dsuspc;
+-	char	t_rprntc;
+-	char	t_flushc;
+-	char	t_werasc;
+-	char	t_lnextc;
+-};
+-
+-/* Used for packet mode */
+-#define TIOCPKT_DATA		 0
+-#define TIOCPKT_FLUSHREAD	 1
+-#define TIOCPKT_FLUSHWRITE	 2
+-#define TIOCPKT_STOP		 4
+-#define TIOCPKT_START		 8
+-#define TIOCPKT_NOSTOP		16
+-#define TIOCPKT_DOSTOP		32
+-
+-struct winsize {
+-	unsigned short ws_row;
+-	unsigned short ws_col;
+-	unsigned short ws_xpixel;
+-	unsigned short ws_ypixel;
+-};
+-
+-#define NCC 10
+-struct termio {
+-	unsigned short c_iflag;		/* input mode flags */
+-	unsigned short c_oflag;		/* output mode flags */
+-	unsigned short c_cflag;		/* control mode flags */
+-	unsigned short c_lflag;		/* local mode flags */
+-	unsigned char c_line;		/* line discipline */
+-	unsigned char c_cc[NCC];	/* control characters */
+-};
+-
+-/* c_cc characters */
+-#define _VINTR	0
+-#define _VQUIT	1
+-#define _VERASE	2
+-#define _VKILL	3
+-#define _VEOF	4
+-#define _VMIN	5
+-#define _VEOL	6
+-#define _VTIME	7
+-#define _VEOL2	8
+-#define _VSWTC	9
+-
+-/* modem lines */
+-#define TIOCM_LE	0x001
+-#define TIOCM_DTR	0x002
+-#define TIOCM_RTS	0x004
+-#define TIOCM_ST	0x008
+-#define TIOCM_SR	0x010
+-#define TIOCM_CTS	0x020
+-#define TIOCM_CAR	0x040
+-#define TIOCM_RNG	0x080
+-#define TIOCM_DSR	0x100
+-#define TIOCM_CD	TIOCM_CAR
+-#define TIOCM_RI	TIOCM_RNG
+-
+-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+-#define TIOCSER_TEMT    0x01	/* Transmitter physically empty */
+-
+-/* line disciplines */
+-#define N_TTY		0
+-#define N_SLIP		1
+-#define N_MOUSE		2
+-#define N_PPP		3
+-#define N_STRIP		4
+-#define N_AX25		5
+-#define N_X25		6	/* X.25 async  */
+-#define N_6PACK		7
+-#define N_MASC		8	/* Mobitex module  */
+-#define N_R3964		9	/* Simatic R3964 module  */
+-#define N_PROFIBUS_FDL	10	/* Profibus  */
+-#define N_IRDA		11	/* Linux IR  */
+-#define N_SMSBLOCK	12	/* SMS block mode  */
+-#define N_HDLC		13	/* synchronous HDLC  */
+-#define N_SYNC_PPP	14	/* synchronous PPP  */
+-#define	N_HCI		15	/* Bluetooth HCI UART  */
+-- 
+2.22.0
+