https://gcc.gnu.org/gcc-10/changes.html:

GCC now defaults to -fno-common. As a result, global variable accesses are more efficient on various targets. In C, global variables with multiple tentative definitions now result in linker errors. With -fcommon such definitions are silently merged during linking. 

This can be simulated on gcc 9.2.0 with CFLAGS="... -fno-common" too.

Gentoo bug: https://bugs.gentoo.org/707210

Comment From: hydrapolic

This seems to work with redis 5.0.7:

diff --git a/src/sds.h b/src/sds.h
index 1bdb60d..adcc12c 100644
--- a/src/sds.h
+++ b/src/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>

Comment From: hydrapolic

Fixed in 5.0.8, thanks.