From 14c36638c1a125b1c2d06857c7e7c44f266d0e8e Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Wed, 21 Aug 2019 03:30:59 +0300 Subject: package/uclibc: fix termios redefinition issue for PowerPC 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 --- ...-PowerPC-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 000000000..7f676fba3 --- /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 +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 +--- + 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 ++ . */ ++ + #ifndef _SYS_IOCTL_H + # error "Never use directly; include instead." + #endif + +-#include ++/* Get definition of constants for use with `ioctl'. */ ++#include ++ ++ ++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 +- . */ +- +-#ifndef _TERMIOS_H +-# error "Never include directly; use 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 + -- cgit v1.2.3