From 781e2a8d9542ccbc7aa230e10819961a8b3e25d4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 5 Aug 2020 00:03:26 -0700 Subject: minicom: Fix build when using -fno-common gcc10 defaults to -fno-common which flags the multiple global variables as errors, these patches ( from fedora ) fixes the issue (From OE-Core rev: d79177ab293063b176ded2566173c29d00360ad5) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- ...p-superfluous-global-variable-definitions.patch | 35 ++++++++++++++++++ ...p-superfluous-global-variable-definitions.patch | 37 +++++++++++++++++++ ...p-superfluous-global-variable-definitions.patch | 42 ++++++++++++++++++++++ meta/recipes-extended/minicom/minicom_2.7.1.bb | 3 ++ 4 files changed, 117 insertions(+) create mode 100644 meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch create mode 100644 meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch create mode 100644 meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch 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 index 0000000000..4c6e249315 --- /dev/null +++ b/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,35 @@ +From b65152ebc03832972115e6d98e50cb6190d01793 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +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 +--- + 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 index 0000000000..1740051e0a --- /dev/null +++ b/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,37 @@ +From 924bd2da3a00e030e29d82b74ef82900bd50b475 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +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 +--- + 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 index 0000000000..58cd58eda8 --- /dev/null +++ b/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,42 @@ +From a4fc603b3641d2efe31479116eb7ba66932901c7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +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 +--- + 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 + diff --git a/meta/recipes-extended/minicom/minicom_2.7.1.bb b/meta/recipes-extended/minicom/minicom_2.7.1.bb index 1e6f1317eb..03034864c8 100644 --- a/meta/recipes-extended/minicom/minicom_2.7.1.bb +++ b/meta/recipes-extended/minicom/minicom_2.7.1.bb @@ -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" -- cgit v1.2.3-54-g00ecf