1*4882a593SmuzhiyunFrom 9c9623c8a47fb5580dfea1a59296c6d224479504 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Sergei Trofimovich <slyfox@gentoo.org>
3*4882a593SmuzhiyunDate: Mon, 2 Mar 2020 23:45:22 +0000
4*4882a593SmuzhiyunSubject: [PATCH] mod_quotatab: fix build failure against gcc-10
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunOn gcc-10 (and gcc-9 -fno-common) build fails as:
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun```
9*4882a593Smuzhiyun$ ./configure --with-modules=mod_quotatab && make
10*4882a593Smuzhiyun...
11*4882a593Smuzhiyunld: modules/module_glue.o:(.data.rel+0x68):
12*4882a593Smuzhiyun  undefined reference to `quotatab_file_module'
13*4882a593Smuzhiyuncollect2: error: ld returned 1 exit status
14*4882a593Smuzhiyunmake: *** [Makefile:56: proftpd] Error 1
15*4882a593Smuzhiyun```
16*4882a593Smuzhiyun
17*4882a593Smuzhiyungcc-10 will change the default from -fcommon to fno-common:
18*4882a593Smuzhiyunhttps://gcc.gnu.org/PR85678.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunThe error also happens if CFLAGS=-fno-common passed explicitly.
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunSigned-off-by: Sergei Trofimovich <slyfox@gentoo.org>
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun[Retrieved from:
25*4882a593Smuzhiyunhttps://github.com/proftpd/proftpd/commit/9c9623c8a47fb5580dfea1a59296c6d224479504]
26*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
27*4882a593Smuzhiyun---
28*4882a593Smuzhiyun contrib/mod_quotatab.c | 1 +
29*4882a593Smuzhiyun contrib/mod_quotatab.h | 2 +-
30*4882a593Smuzhiyun 2 files changed, 2 insertions(+), 1 deletion(-)
31*4882a593Smuzhiyun
32*4882a593Smuzhiyundiff --git a/contrib/mod_quotatab.c b/contrib/mod_quotatab.c
33*4882a593Smuzhiyunindex 4fa6c1f44..0ee480163 100644
34*4882a593Smuzhiyun--- a/contrib/mod_quotatab.c
35*4882a593Smuzhiyun+++ b/contrib/mod_quotatab.c
36*4882a593Smuzhiyun@@ -50,6 +50,7 @@ typedef struct regtab_obj {
37*4882a593Smuzhiyun module quotatab_module;
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun /* Quota objects for the current session */
40*4882a593Smuzhiyun+quota_deltas_t quotatab_deltas;
41*4882a593Smuzhiyun static quota_table_t *limit_tab = NULL;
42*4882a593Smuzhiyun static quota_limit_t sess_limit;
43*4882a593Smuzhiyun
44*4882a593Smuzhiyundiff --git a/contrib/mod_quotatab.h b/contrib/mod_quotatab.h
45*4882a593Smuzhiyunindex ed30333f5..c818395a0 100644
46*4882a593Smuzhiyun--- a/contrib/mod_quotatab.h
47*4882a593Smuzhiyun+++ b/contrib/mod_quotatab.h
48*4882a593Smuzhiyun@@ -188,7 +188,7 @@ typedef struct table_obj {
49*4882a593Smuzhiyun #define QUOTATAB_TALLY_SRC      0x0002
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun /* Quota objects for the current session. */
52*4882a593Smuzhiyun-quota_deltas_t quotatab_deltas;
53*4882a593Smuzhiyun+extern quota_deltas_t quotatab_deltas;
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun /* Function prototypes necessary for quotatab sub-modules */
56*4882a593Smuzhiyun int quotatab_log(const char *, ...)
57