[Buildroot] [PATCH 1/1] package/flashrom: fix redefinition of 'struct termios'
Vadim Kochan
vadim4j at gmail.com
Tue Jul 23 08:55:16 UTC 2019
Both libc and linux defines 'struct termios', in termbits.h and
termios.h which leads to the compilation error:
In file included from custom_baud.c:23:0:
/home/buildroot/autobuild/instance-3/output/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/asm-generic/termbits.h:12:8:
error: redefinition of 'struct termios'
struct termios {
^~~~~~~
In file included from
/home/buildroot/autobuild/instance-3/output/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/termios.h:39:0,
from
/home/buildroot/autobuild/instance-3/output/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/bits/ioctl-types.h:5,
from
/home/buildroot/autobuild/instance-3/output/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/sys/ioctl.h:29,
from custom_baud.c:21:
/home/buildroot/autobuild/instance-3/output/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/bits/termios.h:33:8:
note: originally defined here
struct termios {
^~~~~~~
So fix it by renaming 'termios' to 'asmtermios' before termbits.h only,
because 'struct termios2' is used only.
Fixes:
http://autobuild.buildroot.net/results/797dde5cbf0e94162c7cc7b557841605c78ac2f3/
Signed-off-by: Vadim Kochan <vadim4j at gmail.com>
---
...d-fix-redefinition-of-struct-termios.patch | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 package/flashrom/0002-custom_baud-fix-redefinition-of-struct-termios.patch
diff --git a/package/flashrom/0002-custom_baud-fix-redefinition-of-struct-termios.patch b/package/flashrom/0002-custom_baud-fix-redefinition-of-struct-termios.patch
new file mode 100644
index 0000000000..5c4a681303
--- /dev/null
+++ b/package/flashrom/0002-custom_baud-fix-redefinition-of-struct-termios.patch
@@ -0,0 +1,36 @@
+From e94fd14bba4fe21dcb791a44d700ad7f036b8c7e Mon Sep 17 00:00:00 2001
+From: Vadim Kochan <vadim4j at gmail.com>
+Date: Tue, 23 Jul 2019 11:37:17 +0300
+Subject: [PATCH] custom_baud: fix redefinition of 'struct termios'
+
+both libc and linux kernel defines 'struct termios', once it is defined
+via termbits.h and second time it is re-defined via sys/ioctl.h. But
+because only termios2 is used so hide 'struct termios' by renaming it as
+'struct asmtermios'.
+
+Signed-off-by: Vadim Kochan <vadim4j at gmail.com>
+---
+ custom_baud.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/custom_baud.c b/custom_baud.c
+index caf2b78..22fb74f 100644
+--- a/custom_baud.c
++++ b/custom_baud.c
+@@ -18,10 +18,12 @@
+ #include "custom_baud.h"
+
+ #if IS_LINUX
+-#include <sys/ioctl.h>
+ #include <fcntl.h>
++#define termios asmtermios
+ #include <asm-generic/termbits.h>
+ #include <asm-generic/ioctls.h>
++#undef termios
++#include <sys/ioctl.h>
+
+ /*
+ * This include hell above is why this is in a separate source file. See eg.
+--
+2.17.1
+
--
2.17.1
More information about the buildroot
mailing list