https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69271
--- Comment #4 from Jan Hubicka <hubicka at ucw dot cz> --- The optimization was intentional - dropping the weak bit makes GCC to optimize the references to symbol better (knowing it won't be NULL because the definition is provided). I wonder how this break glibc. What is the difference between weak and non-weak symbols in dynamic linking?