aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch
blob: 9e2ebe75644ebb2733986bc45f632e730c8825ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
From b7dd97708b9d0ed09d8d7ac435f8b25eadbf6487 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=83=C2=ADsa=C3=85=E2=84=A2?= <address@hidden>
Date: Thu, 13 Aug 2020 11:20:38 -0700
Subject: [PATCH 1/2] Fix building with GCC 10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

GCC 10 defaults to -fno-common that results into errors on multiple
global variable definitions:

/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld:
shar-opts.o:(.data.rel.ro.local+0x0): multiple definition of
`program_name'; shar.o:(.rodata+0x10): first defined here

This patch fixes it by changing the definitions in header files into extern
declarations.

<https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00001.html>

Signed-off-by: Petr Písař <address@hidden>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/shar-opts.h     | 2 +-
 src/shar-std.def    | 2 +-
 src/unshar-opts.h   | 2 +-
 src/uudecode-opts.h | 2 +-
 src/uuencode-opts.h | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/shar-opts.h b/src/shar-opts.h
index 172676f..f6e4e79 100644
--- a/src/shar-opts.h
+++ b/src/shar-opts.h
@@ -352,7 +352,7 @@ extern "C" {
  *  global exported definitions
  */
 #include "local.h"
-char const * const program_name;
+extern char const * const program_name;
 
 extern bool initialization_done;
 extern int optidx;
diff --git a/src/shar-std.def b/src/shar-std.def
index ed06b77..a28f61c 100644
--- a/src/shar-std.def
+++ b/src/shar-std.def
@@ -41,7 +41,7 @@ no-misuse-usage;
 usage-message;
 die-code;
 
-export  = '#include "local.h"'"\nchar const * const program_name;";
+export  = '#include "local.h"'"\nextern char const * const program_name;";
 
 #shell
 echo "include = 'char const * const program_name = \"${progname}\";';"
diff --git a/src/unshar-opts.h b/src/unshar-opts.h
index 568ffca..aa85833 100644
--- a/src/unshar-opts.h
+++ b/src/unshar-opts.h
@@ -192,7 +192,7 @@ extern "C" {
 extern size_t       separator_str_len;
 
 #include "local.h"
-char const * const program_name;
+extern char const * const program_name;
 
 
 /* * * * * *
diff --git a/src/uudecode-opts.h b/src/uudecode-opts.h
index 5b74419..289a366 100644
--- a/src/uudecode-opts.h
+++ b/src/uudecode-opts.h
@@ -170,7 +170,7 @@ extern "C" {
  *  global exported definitions
  */
 #include "local.h"
-char const * const program_name;
+extern char const * const program_name;
 
 
 /* * * * * *
diff --git a/src/uuencode-opts.h b/src/uuencode-opts.h
index 1a5b7bc..f2df0a8 100644
--- a/src/uuencode-opts.h
+++ b/src/uuencode-opts.h
@@ -166,7 +166,7 @@ extern "C" {
  *  global exported definitions
  */
 #include "local.h"
-char const * const program_name;
+extern char const * const program_name;
 
 
 /* * * * * *
-- 
2.28.0