Qualcomm has introduced a new compound linker called ELD, which is specifically designed for use with Qualcomm compilers based on LLVM. ELD is optimized for binding object files in projects for built-in systems and takes into account the active use of linker scripts, as well as the need for modification and expansion of the layout process. The code for ELD is written in C++ and is distributed under the BSD license. This new project can be used as a transparent replacement for the GNU linker, consuming less memory while providing a higher binding rate and allowing for changes in the behavior of the layout process.
The architecture of ELD is designed to easily add support for new platforms through the connection of backends. Currently, backends for the target platforms Qualcomm Hexagon NPU, AARCH32, AARCH64, and RISC-V (with XQIU extensions) are available. The development of ELD is based on the mclinker project.
Some of the main features of ELD include support for static, dynamic, and partial binding, working with executable and composed ELF files, optimization at the binding stage, compatibility with GNU LD at the command string options level, support for linker scripts, and the ability to generate detailed and readable binding maps. ELD also offers support for connecting plugins, frameen functionality for creating TAR archives to reproduce layouts, and extended options for diagnosing and debugging complicated problems.