[PATCH] D62443: [WebAssembly] Move Emscripten-specific behavior under a --emscripten flag

Dan Gohman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 31 15:03:57 PDT 2019

sunfish added a comment.

In D62443#1525418 <https://reviews.llvm.org/D62443#1525418>, @sbc100 wrote:

> I have proposed https://reviews.llvm.org/D62744 which covers most of the changes here.
> For `-pie/-shared` I'd rather not add a `--emscripten` flag.  In fact I'd rather not have such a flag at all.    Some background that might help here:  The PIC support in LLVM conforms to  the (admittedly unstable/experimental) spec specified in  https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md.  Note that this document includes both the "emscripten" way of doing things and the future "Planned Changes" way of doing things which is implemented in LLVM.     emscripten-wasm-finalize, which is part of binaryen, then converts from the LLVM/official ABI to the emscripten ABI for dynamic linking.   I will update the docs to be more clear but as I see it non of the PIC support in LLVM is emscripten-specific.

I agree that the design isn't necessarily specific to Emscripten. My concern is that it seems to have some limitations, which I've been assuming mean that we'd want to design a new system when it comes time to add dynamic linking outside of Emscripten anyway. I've commented on other issues about the specific concerns, so we can follow up there.

> If you really want to add a new flag I'd be OK with "--experimental".. but I'd rather not have either.  Have you been experiencing issues with people passing `-pie/-shared` this flag and getting unexpected results?

Yes, we have reports both of people using -Wl,--shared and having things not work, and of people compiling with -fPIC and having things not work. These are what prompted me to write this patch and the LLVM one.




More information about the llvm-commits mailing list