MCLinker is a free and open-source system linker for mobile devices that supports various platforms (ARM and X86; 32-bit and 64-bit), it's fast, small with low memory footprints.
MCLinker leverages the LLVM to link object files, and generate shared objects and executable files. In our experiments, MCLinker increases the code size of Android libbcc only >180KB. Its code size is 1/8 of GNU ld and 1/15 of Google gold linker.
So far, MCLinker is a full-fledged linker on Android ICS platforms that can generate shared object for Android JNI (Java Native Interface) environment.
MCLinker provides support for various Android platforms. ARM and x86 platforms are examined, and MIPS is under development.
MCLinker is cross-platform and it works on Mac OS X, Windows and Linux.
What's New in This Release: [ read full changelog ]
Executive Summary:
· Add three new backends - x86_64, x32 and Hexagon.
· Support MinGW platform
· Support Mips multiple global offset tables.
· Support variant-length relocation entry. (Mips/x32/x86_64)
· Export libmcld library
· Migrate to LLVM r176038
Command Line Options and Building System:
· Support -m option.
· Support --defsym option.
· ./configure script supports --target options. (Conform to binutils)
New Features:
· Support weak alias symbols in shared libraries.
· Support 64-bit architecture.
· Support GNU linkonce sections.
· Support GNU excluded sections.
· Able to link ELF objects with GNU LTO sections.
· Support empty eh_frame section.