https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92572
--- Comment #5 from Alexander Monakov <amonakov at gcc dot gnu.org> --- GCC is emitting static_local as @gnu_unique_object, so it should be unified by the Glibc dynamic linker. You can use 'nm -CD' to check its type after linking for the main executable and the library to make sure ld keeps it unique, and LD_DEBUG=all (see 'man ld.so') to see how it gets resolved at runtime.