definitions (weak and non-weak). GNU as silently discards the weak symbol in this case, but LLVM is more strict.(weak and non-weak). GNU as silently discards the weak symbol in this case, but LLVM is more strict.