Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


An LLVM Linker for Mobile Computing


MCLinker is a full-fledged system linker for mobile devices. Hence it is fast, small with low memory footprints. MCLinker leverages the LLVM to link object files, and generate shared objects or executable files. Code in MCLinker project is licensed under the "UIUC" BSD-Style license which is compatible with commercial products.


Following systems can be linked successfully

  • ARM Android (4.2+) kernel and system image
  • FreeBSD buildworld and buildkernel for i386 targets
  • ARM Linux kernel 3.x

Supported Environment

  • Target Platforms: AArch64, ARM, X86, X86_64, x32, MIPS32, MIPS64 and Hexagon machines
  • Host OS: X86/X86_64 Linux, Android, Mac OS X and Windows
  • For Android NDK r9 and above, developers can simply use -fuse-ld=mcld to link JNI programs by MCLinker


  • A system linker
  • GNU ld options compatibility
  • Support cross linking
  • Can be used as a library or a stand-alone tool
  • Support multiple targets
  • Fast, small with low memory footprint

Current Status

Date: 2015/09/11
LLVM: 3.8svn (trunk)
MCLinker: 2.11.0-dev, master branch

Date: 2015/09/11
LLVM: 3.8svn (trunk@246954)
MCLinker: 2.10.0-rc, release_210 branch

Next Milestone

  • ARM exception handling format enhancement
  • TLS
  • Plugin support (LTO)
  • Version script support
  • To be one of system linkers of BSD platform

Code License

University of Illinois/NCSA
Open Source License