GHC uses nm to find the sizes of some things when building, but llvm-nm doesn't quite work for WebAssembly (or -flto for that matter). They tried fixing it once, but llvm-nm now shows the offset information, not the size information as expected.
We currently have a hacky fix that uses -flto to trick GHC into producing LLVM bitcode, which we then llvm-dis to get the necessary information out of. I find it rather amusing that this works, but it's obviously a terrible solution.
We have a ticket in with LLVM:
https://bugs.llvm.org/show_bug.cgi?id=34392
GHC uses
nmto find the sizes of some things when building, butllvm-nmdoesn't quite work for WebAssembly (or-fltofor that matter). They tried fixing it once, but llvm-nm now shows the offset information, not the size information as expected.We currently have a hacky fix that uses
-fltoto trick GHC into producing LLVM bitcode, which we thenllvm-disto get the necessary information out of. I find it rather amusing that this works, but it's obviously a terrible solution.We have a ticket in with LLVM:
https://bugs.llvm.org/show_bug.cgi?id=34392