Avoid multiple definitions of some global variables gcc 10 defaults to -fno-common, which means that the same global variable being defined by multiple translation units (roughly, C source files) causes a linking error. This is similar to the behaviour of global functions, and C++'s "one-definition rule". The way to get a global variable shared between translation units is to declare it as extern (usually in a header file), and then ensure that exactly one translation unit contains a definition.