]> code.ossystems Code Review - openembedded-core.git/commitdiff
minicom: Fix build when using -fno-common
authorKhem Raj <raj.khem@gmail.com>
Wed, 5 Aug 2020 07:03:26 +0000 (00:03 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 6 Aug 2020 14:12:34 +0000 (15:12 +0100)
gcc10 defaults to -fno-common which flags the multiple global variables
as errors, these patches ( from fedora ) fixes the issue

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch [new file with mode: 0644]
meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch [new file with mode: 0644]
meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch [new file with mode: 0644]
meta/recipes-extended/minicom/minicom_2.7.1.bb

diff --git a/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
new file mode 100644 (file)
index 0000000..4c6e249
--- /dev/null
@@ -0,0 +1,35 @@
+From b65152ebc03832972115e6d98e50cb6190d01793 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:18:13 +0100
+Subject: [PATCH 1/3] Drop superfluous global variable definitions
+
+The file minicom.c, by including the minicom.h header, already defines
+the global variables 'dial_user' and 'dial_pass'. The object file
+minicom.o is always linked to dial.o. Thus the definitions in dial.c
+can be dropped.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/dial.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/dial.c b/src/dial.c
+index eada5ee..d9d481f 100644
+--- a/src/dial.c
++++ b/src/dial.c
+@@ -146,8 +146,6 @@ static int newtype;
+ /* Access to ".dialdir" denied? */
+ static int dendd = 0;
+ static char *tagged;
+-char *dial_user;
+-char *dial_pass;
+ /* Change the baud rate.  Treat all characters in the given array as if
+  * they were key presses within the comm parameters dialog (C-A P) and
+-- 
+2.24.1
+
diff --git a/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
new file mode 100644 (file)
index 0000000..1740051
--- /dev/null
@@ -0,0 +1,37 @@
+From 924bd2da3a00e030e29d82b74ef82900bd50b475 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:18:33 +0100
+Subject: [PATCH 2/3] Drop superfluous global variable definitions
+
+The only place where the EXTERN macro mechanism is used to define the
+global variables 'vt_outmap' and 'vt_inmap' is minicom.c (by defining
+an empty EXTERN macro and including the minicom.h header). The file
+vt100.c already defines these variables. The vt100.o object file is
+always linked to minicom.o. Thus it is safe not to define the
+variables in minicom.c and only declare them in the minicom.h header.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicom.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/minicom.h b/src/minicom.h
+index 061c013..0f9693b 100644
+--- a/src/minicom.h
++++ b/src/minicom.h
+@@ -141,7 +141,7 @@ EXTERN int sbcolor;     /* Status Bar Background Color */
+ EXTERN int st_attr;   /* Status Bar attributes. */
+ /* jl 04.09.97 conversion tables */
+-EXTERN unsigned char vt_outmap[256], vt_inmap[256];
++extern unsigned char vt_outmap[256], vt_inmap[256];
+ /* MARK updated 02/17/95 - history buffer */
+ EXTERN int num_hist_lines;  /* History buffer size */
+-- 
+2.24.1
+
diff --git a/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
new file mode 100644 (file)
index 0000000..58cd58e
--- /dev/null
@@ -0,0 +1,42 @@
+From a4fc603b3641d2efe31479116eb7ba66932901c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:21:41 +0100
+Subject: [PATCH 3/3] Drop superfluous global variable definitions
+
+The only place where the EXTERN macro mechanism is used to define the
+global variables 'portfd_is_socket', 'portfd_is_connected' and
+'portfd_sock_addr' is minicom.c (by defining an empty EXTERN macro and
+including the minicom.h header). The source file sysdep1_s.c already
+defines these variables. The sysdep1_s.o object file is always linked
+to minicom.o. Thus it is safe to drop the definitions from minicom.c
+and only declare the variables in the minicom.h header.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicom.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/minicom.h b/src/minicom.h
+index 0f9693b..1e7cb8c 100644
+--- a/src/minicom.h
++++ b/src/minicom.h
+@@ -113,9 +113,9 @@ EXTERN char *dial_user;     /* Our username there */
+ EXTERN char *dial_pass;     /* Our password */
+ #ifdef USE_SOCKET
+-EXTERN int portfd_is_socket;  /* File descriptor is a unix socket */
+-EXTERN int portfd_is_connected;       /* 1 if the socket is connected */
+-EXTERN struct sockaddr_un portfd_sock_addr;   /* the unix socket address */
++extern int portfd_is_socket;  /* File descriptor is a unix socket */
++extern int portfd_is_connected;       /* 1 if the socket is connected */
++extern struct sockaddr_un portfd_sock_addr;   /* the unix socket address */
+ #define portfd_connected ((portfd_is_socket && !portfd_is_connected) \
+                            ? -1 : portfd)
+ #else
+-- 
+2.24.1
+
index 1e6f1317ebe878870c5f46188d8607258d25f97b..03034864c8d817111da68796efc7c89e4c4ffbfa 100644 (file)
@@ -11,6 +11,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.gz \
            file://allow.to.disable.lockdev.patch \
            file://0001-fix-minicom-h-v-return-value-is-not-0.patch \
            file://0001-Fix-build-issus-surfaced-due-to-musl.patch \
+           file://0001-Drop-superfluous-global-variable-definitions.patch \
+           file://0002-Drop-superfluous-global-variable-definitions.patch \
+           file://0003-Drop-superfluous-global-variable-definitions.patch \
           "
 
 SRC_URI[md5sum] = "9021cb8c5445f6e6e74b2acc39962d62"