when you have weak and non-weak references to a non exiting symbol, linker seems to treat them as they were all weak references. a small demo code: https://github.com/yamt/garbage/tree/master/c/weak