<div dir="ltr">Using LLVM v5, my Cone compiler (<a href="https://github.com/jondgoodwin/cone">https://github.com/jondgoodwin/cone</a>) automatically directly generated all functions as named and exported for both wasm text and binary files (not using clang/lld etc, but using the API).<div><br></div><div>Upgrading to LLVM v7, generated wasm object files now fail, exhibiting markedly different behavior, behavior that varies between the text and binary files. For example, the binary wasm file (only) now automatically adds two import directives that were not there before. More importantly, function names, visible in the wat file, are stripped from the binary wasm file and are not exported. It seems as if LLVM webassembly codegen has acted as if the linker were at play and had defaulted to options like: -fvisibility=hidden, -W1, --import-memory etc.</div><div><br></div><div>Is there a way to programmatically (via the LLVM APIs) alter this default behavior, so that I can make public functions once again visible and exported?  Also, is there documentation somewhere that describes these and other breaking changes in the way that LLVM v7  now generates webassembly object files?</div></div>