WebAssembly lld port
====================

Note: The WebAssembly port is still a work in progress and is be lacking
certain features.

The WebAssembly version of lld takes WebAssembly binaries as inputs and produces
a WebAssembly binary as its output.  For the most part this port tried to mimic
the behaviour of traditional ELF linkers and specifically the ELF lld port.
Where possible that command line flags and the semantics should be the same.


Object file format
------------------

The format the input object files that lld expects is specified as part of the
the WebAssembly tool conventions
https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md.

This is object format that the llvm will produce when run with the
``wasm32-unknown-unknown-wasm`` target.  To build llvm with WebAssembly support
currently requires enabling the experimental backed using
``-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly``.


Missing features
----------------

There are several key features that are not yet implement in the WebAssembly
ports:

- COMDAT support.  This means that support for C++ is still very limited.
- Function stripping.  Currently there is no support for ``--gc-sections`` so
  functions and data from a given object will linked as a unit.
- Section start/end symbols.  The synthetic symbols that mark the start and
  of data regions are not yet created in the output file.
