
In the case of weakly defined symbols in shared libraries we now generate both an import and an export. The dynamic linker can then choose how a winner from among all the shared libraries that define a given symbol. Previously any direct usage of a weakly defined symbol would use the DSO-local definition (For example, even through there would be single address for a weakly defined function, each DSO could end up directly calling its local version). Fixes: https://github.com/emscripten-core/emscripten/issues/13773 Differential Revision: https://reviews.llvm.org/D108413