summaryrefslogtreecommitdiff
path: root/user/awesome/gcc10.patch
blob: f1d0c34041a3f7ce8da239441af307ace39f0a2f (plain) (blame)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
From d256d9055095f27a33696e0aeda4ee20ed4fb1a0 Mon Sep 17 00:00:00 2001
From: Reiner Herrmann <reiner@reiner-h.de>
Date: Fri, 17 Apr 2020 19:25:40 +0200
Subject: [PATCH] Move variable declarations from header to C file to fix build
 with GCC 10

GCC 10 builds with -fno-common by default, which causes linker errors when
variables are declared in header files and included in multiple places.

See also: https://gcc.gnu.org/gcc-10/porting_to.html
---
 common/lualib.c  | 2 ++
 common/lualib.h  | 2 +-
 luaa.c           | 2 ++
 luaa.h           | 2 +-
 objects/button.c | 2 ++
 objects/button.h | 2 +-
 objects/client.c | 2 ++
 objects/client.h | 2 +-
 objects/drawin.c | 2 ++
 objects/drawin.h | 2 +-
 objects/key.c    | 2 ++
 objects/key.h    | 2 +-
 objects/tag.c    | 2 ++
 objects/tag.h    | 2 +-
 objects/window.c | 1 +
 objects/window.h | 2 +-
 16 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/common/lualib.c b/common/lualib.c
index 312fb2d594..bb110ac716 100644
--- a/common/lualib.c
+++ b/common/lualib.c
@@ -20,6 +20,8 @@
 #include "common/lualib.h"
 #include "luaa.h"
 
+lua_CFunction lualib_dofunction_on_error;
+
 void luaA_checkfunction(lua_State *L, int idx)
 {
     if(!lua_isfunction(L, idx))
diff --git a/common/lualib.h b/common/lualib.h
index 8a3ef089d7..a91261843c 100644
--- a/common/lualib.h
+++ b/common/lualib.h
@@ -28,7 +28,7 @@
 #include "common/util.h"
 
 /** Lua function to call on dofunction() error */
-lua_CFunction lualib_dofunction_on_error;
+extern lua_CFunction lualib_dofunction_on_error;
 
 void luaA_checkfunction(lua_State *, int);
 void luaA_checktable(lua_State *, int);
diff --git a/luaa.c b/luaa.c
index 419a8c2eb2..aeaba9cd1f 100644
--- a/luaa.c
+++ b/luaa.c
@@ -91,6 +91,8 @@ extern const struct luaL_Reg awesome_mouse_meta[];
 extern const struct luaL_Reg awesome_root_methods[];
 extern const struct luaL_Reg awesome_root_meta[];
 
+signal_array_t global_signals;
+
 /** A call into the Lua code aborted with an error.
  *
  * This signal is used in the example configuration, @{05-awesomerc.md},
diff --git a/luaa.h b/luaa.h
index e159258348..d26c437691 100644
--- a/luaa.h
+++ b/luaa.h
@@ -317,7 +317,7 @@ const char *luaA_find_config(xdgHandle *, const char *, luaA_config_callback *);
 bool luaA_parserc(xdgHandle *, const char *);
 
 /** Global signals */
-signal_array_t global_signals;
+extern signal_array_t global_signals;
 
 int luaA_class_index_miss_property(lua_State *, lua_object_t *);
 int luaA_class_newindex_miss_property(lua_State *, lua_object_t *);
diff --git a/objects/button.c b/objects/button.c
index 892347a928..5ffdcd4432 100644
--- a/objects/button.c
+++ b/objects/button.c
@@ -35,6 +35,8 @@
 
 #include "button.h"
 
+lua_class_t button_class;
+
 /** Button object.
  *
  * @tfield int button The mouse button number, or 0 for any button.
diff --git a/objects/button.h b/objects/button.h
index fb8bb8da28..8f0b894305 100644
--- a/objects/button.h
+++ b/objects/button.h
@@ -39,7 +39,7 @@ typedef struct button_t
     xcb_button_t button;
 } button_t;
 
-lua_class_t button_class;
+extern lua_class_t button_class;
 LUA_OBJECT_FUNCS(button_class, button_t, button)
 ARRAY_FUNCS(button_t *, button, DO_NOTHING)
 
diff --git a/objects/client.c b/objects/client.c
index 7b2d3a2022..b617a9e7a9 100644
--- a/objects/client.c
+++ b/objects/client.c
@@ -106,6 +106,8 @@
 #include <xcb/shape.h>
 #include <cairo-xcb.h>
 
+lua_class_t client_class;
+
 /** Client class.
  *
  * This table allow to add more dynamic properties to the clients. For example,
diff --git a/objects/client.h b/objects/client.h
index 74a23131c5..387e7c2aea 100644
--- a/objects/client.h
+++ b/objects/client.h
@@ -192,7 +192,7 @@ struct client_t
 ARRAY_FUNCS(client_t *, client, DO_NOTHING)
 
 /** Client class */
-lua_class_t client_class;
+extern lua_class_t client_class;
 
 LUA_OBJECT_FUNCS(client_class, client_t, client)
 
diff --git a/objects/drawin.c b/objects/drawin.c
index 3fd1cc4350..3bbd93179c 100644
--- a/objects/drawin.c
+++ b/objects/drawin.c
@@ -46,6 +46,8 @@
 #include <cairo-xcb.h>
 #include <xcb/shape.h>
 
+lua_class_t drawin_class;
+
 /** Drawin object.
  *
  * @field border_width Border width.
diff --git a/objects/drawin.h b/objects/drawin.h
index 31f315aac5..2f8887d944 100644
--- a/objects/drawin.h
+++ b/objects/drawin.h
@@ -52,7 +52,7 @@ void luaA_drawin_systray_kickout(lua_State *);
 
 void drawin_class_setup(lua_State *);
 
-lua_class_t drawin_class;
+extern lua_class_t drawin_class;
 
 #endif
 // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
diff --git a/objects/key.c b/objects/key.c
index c42f7446d8..365ba998cc 100644
--- a/objects/key.c
+++ b/objects/key.c
@@ -43,6 +43,8 @@
 #include <xkbcommon/xkbcommon.h>
 #include <glib.h>
 
+lua_class_t key_class;
+
 /** Key object.
  *
  * @tfield string key The key to trigger an event.
diff --git a/objects/key.h b/objects/key.h
index 8aa07ffe3d..45f23cac79 100644
--- a/objects/key.h
+++ b/objects/key.h
@@ -36,7 +36,7 @@ typedef struct keyb_t
     xcb_keycode_t keycode;
 } keyb_t;
 
-lua_class_t key_class;
+extern lua_class_t key_class;
 LUA_OBJECT_FUNCS(key_class, keyb_t, key)
 DO_ARRAY(keyb_t *, key, DO_NOTHING)
 
diff --git a/objects/tag.c b/objects/tag.c
index a0050cc2a9..1b1a135762 100644
--- a/objects/tag.c
+++ b/objects/tag.c
@@ -203,6 +203,8 @@
 #include "ewmh.h"
 #include "luaa.h"
 
+lua_class_t tag_class;
+
 /**
  * @signal request::select
  */
diff --git a/objects/tag.h b/objects/tag.h
index d6bb40e0d8..f830b1e2c5 100644
--- a/objects/tag.h
+++ b/objects/tag.h
@@ -46,7 +46,7 @@ struct tag
     client_array_t clients;
 };
 
-lua_class_t tag_class;
+extern lua_class_t tag_class;
 LUA_OBJECT_FUNCS(tag_class, tag_t, tag)
 
 void tag_class_setup(lua_State *);
diff --git a/objects/window.c b/objects/window.c
index 440970f3d0..371d06bcd3 100644
--- a/objects/window.c
+++ b/objects/window.c
@@ -59,6 +59,7 @@
 #include "property.h"
 #include "xwindow.h"
 
+lua_class_t window_class;
 LUA_CLASS_FUNCS(window, window_class)
 
 static xcb_window_t
diff --git a/objects/window.h b/objects/window.h
index 5386fafead..fbc5296cf5 100644
--- a/objects/window.h
+++ b/objects/window.h
@@ -80,7 +80,7 @@ typedef struct
     WINDOW_OBJECT_HEADER
 } window_t;
 
-lua_class_t window_class;
+extern lua_class_t window_class;
 
 void window_class_setup(lua_State *);