rspamd/rbldnsd

FTBFS with gcc-13

Closed this issue · 0 comments

Howdy,

I believe starting with gcc-11 this is a problem, but I was using gcc-13 and hit

/usr/bin/cmake -E cmake_link_script CMakeFiles/rbldnsd.dir/link.txt --verbose=1
/usr/lib/ccache/cc -g -O2 -ffile-prefix-map=/build/rbldnsd-1.0~20230821.5421349=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -fuse-ld=gold CMakeFiles/rbldnsd.dir/btrie.c.o CMakeFiles/rbldnsd.dir/dns_dnequ.c.o CMakeFiles/rbldnsd.dir/dns_dnlabels.c.o CMakeFiles/rbldnsd.dir/dns_dnlen.c.o CMakeFiles/rbldnsd.dir/dns_dnreverse.c.o CMakeFiles/rbldnsd.dir/dns_dntol.c.o CMakeFiles/rbldnsd.dir/dns_dntop.c.o CMakeFiles/rbldnsd.dir/dns_findname.c.o CMakeFiles/rbldnsd.dir/dns_ptodn.c.o CMakeFiles/rbldnsd.dir/hooks.c.o CMakeFiles/rbldnsd.dir/ip4atos.c.o CMakeFiles/rbldnsd.dir/ip4mask.c.o CMakeFiles/rbldnsd.dir/ip4parse.c.o CMakeFiles/rbldnsd.dir/ip6addr.c.o CMakeFiles/rbldnsd.dir/istream.c.o CMakeFiles/rbldnsd.dir/mempool.c.o CMakeFiles/rbldnsd.dir/rbldnsd.c.o CMakeFiles/rbldnsd.dir/rbldnsd_acl.c.o CMakeFiles/rbldnsd.dir/rbldnsd_aclkey.c.o CMakeFiles/rbldnsd.dir/rbldnsd_combined.c.o CMakeFiles/rbldnsd.dir/rbldnsd_dnhash.c.o CMakeFiles/rbldnsd.dir/rbldnsd_dnhash_fixed.c.o CMakeFiles/rbldnsd.dir/rbldnsd_dnset.c.o CMakeFiles/rbldnsd.dir/rbldnsd_generic.c.o CMakeFiles/rbldnsd.dir/rbldnsd_ip4set.c.o CMakeFiles/rbldnsd.dir/rbldnsd_ip4trie.c.o CMakeFiles/rbldnsd.dir/rbldnsd_ip4tset.c.o CMakeFiles/rbldnsd.dir/rbldnsd_ip6trie.c.o CMakeFiles/rbldnsd.dir/rbldnsd_ip6tset.c.o CMakeFiles/rbldnsd.dir/rbldnsd_packet.c.o CMakeFiles/rbldnsd.dir/rbldnsd_util.c.o CMakeFiles/rbldnsd.dir/rbldnsd_zones.c.o CMakeFiles/rbldnsd.dir/dns_nametab.c.o -o rbldnsd  t1ha/libt1ha.a sds/libsds.a -lsystemd /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libev.so -lrt -ldl -lresolv
/usr/bin/ld.gold: error: sds/libsds.a(sds.c.o): multiple definition of 'SDS_NOINIT'
/usr/bin/ld.gold: CMakeFiles/rbldnsd.dir/rbldnsd.c.o: previous definition here
collect2: error: ld returned 1 exit status

Which can easily be fixed with

 sds/sds.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/sds/sds.h
+++ b/sds/sds.h
@@ -34,7 +34,7 @@
 #define __SDS_H
 
 #define SDS_MAX_PREALLOC (1024*1024)
-const char *SDS_NOINIT;
+extern const char *SDS_NOINIT;
 
 #include <sys/types.h>
 #include <stdarg.h>