1*4882a593SmuzhiyunFrom b7dd97708b9d0ed09d8d7ac435f8b25eadbf6487 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: =?UTF-8?q?Petr=20P=C3=83=C2=ADsa=C3=85=E2=84=A2?= <address@hidden>
3*4882a593SmuzhiyunDate: Thu, 13 Aug 2020 11:20:38 -0700
4*4882a593SmuzhiyunSubject: [PATCH 1/2] Fix building with GCC 10
5*4882a593SmuzhiyunMIME-Version: 1.0
6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8
7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunGCC 10 defaults to -fno-common that results into errors on multiple
10*4882a593Smuzhiyunglobal variable definitions:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld:
13*4882a593Smuzhiyunshar-opts.o:(.data.rel.ro.local+0x0): multiple definition of
14*4882a593Smuzhiyun`program_name'; shar.o:(.rodata+0x10): first defined here
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunThis patch fixes it by changing the definitions in header files into extern
17*4882a593Smuzhiyundeclarations.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun<https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00001.html>
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunSigned-off-by: Petr Písař <address@hidden>
22*4882a593SmuzhiyunSigned-off-by: Khem Raj <raj.khem@gmail.com>
23*4882a593Smuzhiyun---
24*4882a593Smuzhiyun src/shar-opts.h     | 2 +-
25*4882a593Smuzhiyun src/shar-std.def    | 2 +-
26*4882a593Smuzhiyun src/unshar-opts.h   | 2 +-
27*4882a593Smuzhiyun src/uudecode-opts.h | 2 +-
28*4882a593Smuzhiyun src/uuencode-opts.h | 2 +-
29*4882a593Smuzhiyun 5 files changed, 5 insertions(+), 5 deletions(-)
30*4882a593Smuzhiyun
31*4882a593Smuzhiyundiff --git a/src/shar-opts.h b/src/shar-opts.h
32*4882a593Smuzhiyunindex 172676f..f6e4e79 100644
33*4882a593Smuzhiyun--- a/src/shar-opts.h
34*4882a593Smuzhiyun+++ b/src/shar-opts.h
35*4882a593Smuzhiyun@@ -352,7 +352,7 @@ extern "C" {
36*4882a593Smuzhiyun  *  global exported definitions
37*4882a593Smuzhiyun  */
38*4882a593Smuzhiyun #include "local.h"
39*4882a593Smuzhiyun-char const * const program_name;
40*4882a593Smuzhiyun+extern char const * const program_name;
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun extern bool initialization_done;
43*4882a593Smuzhiyun extern int optidx;
44*4882a593Smuzhiyundiff --git a/src/shar-std.def b/src/shar-std.def
45*4882a593Smuzhiyunindex ed06b77..a28f61c 100644
46*4882a593Smuzhiyun--- a/src/shar-std.def
47*4882a593Smuzhiyun+++ b/src/shar-std.def
48*4882a593Smuzhiyun@@ -41,7 +41,7 @@ no-misuse-usage;
49*4882a593Smuzhiyun usage-message;
50*4882a593Smuzhiyun die-code;
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun-export  = '#include "local.h"'"\nchar const * const program_name;";
53*4882a593Smuzhiyun+export  = '#include "local.h"'"\nextern char const * const program_name;";
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun #shell
56*4882a593Smuzhiyun echo "include = 'char const * const program_name = \"${progname}\";';"
57*4882a593Smuzhiyundiff --git a/src/unshar-opts.h b/src/unshar-opts.h
58*4882a593Smuzhiyunindex 568ffca..aa85833 100644
59*4882a593Smuzhiyun--- a/src/unshar-opts.h
60*4882a593Smuzhiyun+++ b/src/unshar-opts.h
61*4882a593Smuzhiyun@@ -192,7 +192,7 @@ extern "C" {
62*4882a593Smuzhiyun extern size_t       separator_str_len;
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun #include "local.h"
65*4882a593Smuzhiyun-char const * const program_name;
66*4882a593Smuzhiyun+extern char const * const program_name;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun /* * * * * *
70*4882a593Smuzhiyundiff --git a/src/uudecode-opts.h b/src/uudecode-opts.h
71*4882a593Smuzhiyunindex 5b74419..289a366 100644
72*4882a593Smuzhiyun--- a/src/uudecode-opts.h
73*4882a593Smuzhiyun+++ b/src/uudecode-opts.h
74*4882a593Smuzhiyun@@ -170,7 +170,7 @@ extern "C" {
75*4882a593Smuzhiyun  *  global exported definitions
76*4882a593Smuzhiyun  */
77*4882a593Smuzhiyun #include "local.h"
78*4882a593Smuzhiyun-char const * const program_name;
79*4882a593Smuzhiyun+extern char const * const program_name;
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun /* * * * * *
83*4882a593Smuzhiyundiff --git a/src/uuencode-opts.h b/src/uuencode-opts.h
84*4882a593Smuzhiyunindex 1a5b7bc..f2df0a8 100644
85*4882a593Smuzhiyun--- a/src/uuencode-opts.h
86*4882a593Smuzhiyun+++ b/src/uuencode-opts.h
87*4882a593Smuzhiyun@@ -166,7 +166,7 @@ extern "C" {
88*4882a593Smuzhiyun  *  global exported definitions
89*4882a593Smuzhiyun  */
90*4882a593Smuzhiyun #include "local.h"
91*4882a593Smuzhiyun-char const * const program_name;
92*4882a593Smuzhiyun+extern char const * const program_name;
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun /* * * * * *
96*4882a593Smuzhiyun--
97*4882a593Smuzhiyun2.28.0
98*4882a593Smuzhiyun
99