tools: add mold, a modern linker
mold is a faster drop-in replacement for existing Unix linkers. A single binary is able to link various targets, which is why this lives in tools/. All toolchain builds then just need to copy the linker over, hence avoiding multiple builds with the same outcome. Signed-off-by: Andre Heider <a.heider@gmail.com>
This commit is contained in:
parent
65a716bb95
commit
b1fa9e3d2b
|
@ -83,6 +83,7 @@ tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_TARGET_tegra),y) += cbootimage
|
||||||
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USES_MINOR),y) += kernel2minor
|
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USES_MINOR),y) += kernel2minor
|
||||||
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USE_SPARSE),y) += sparse
|
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USE_SPARSE),y) += sparse
|
||||||
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USE_LLVM_BUILD),y) += llvm-bpf
|
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USE_LLVM_BUILD),y) += llvm-bpf
|
||||||
|
tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(CONFIG_USE_MOLD),y) += mold
|
||||||
|
|
||||||
# builddir dependencies
|
# builddir dependencies
|
||||||
$(curdir)/autoconf/compile := $(curdir)/m4/compile
|
$(curdir)/autoconf/compile := $(curdir)/m4/compile
|
||||||
|
@ -114,6 +115,7 @@ $(curdir)/meson/compile := $(curdir)/ninja/compile
|
||||||
$(curdir)/missing-macros/compile := $(curdir)/autoconf/compile
|
$(curdir)/missing-macros/compile := $(curdir)/autoconf/compile
|
||||||
$(curdir)/mkimage/compile += $(curdir)/bison/compile $(curdir)/libressl/compile
|
$(curdir)/mkimage/compile += $(curdir)/bison/compile $(curdir)/libressl/compile
|
||||||
$(curdir)/mklibs/compile := $(curdir)/libtool/compile
|
$(curdir)/mklibs/compile := $(curdir)/libtool/compile
|
||||||
|
$(curdir)/mold/compile := $(curdir)/cmake/compile $(curdir)/zlib/compile $(curdir)/zstd/compile
|
||||||
$(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile
|
$(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile
|
||||||
$(curdir)/mpfr/compile := $(curdir)/gmp/compile
|
$(curdir)/mpfr/compile := $(curdir)/gmp/compile
|
||||||
$(curdir)/mtd-utils/compile := $(curdir)/libtool/compile $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile
|
$(curdir)/mtd-utils/compile := $(curdir)/libtool/compile $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=mold
|
||||||
|
PKG_VERSION:=1.11.0
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL_FILE:=v$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=https://github.com/rui314/mold/archive/refs/tags
|
||||||
|
PKG_HASH:=99318eced81b09a77e4c657011076cc8ec3d4b6867bd324b8677974545bc4d6f
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
|
CMAKE_HOST_OPTIONS += \
|
||||||
|
-DMOLD_LTO=ON \
|
||||||
|
-DMOLD_MOSTLY_STATIC=ON \
|
||||||
|
-DMOLD_USE_SYSTEM_MIMALLOC=OFF \
|
||||||
|
-DMOLD_USE_SYSTEM_TBB=OFF
|
||||||
|
|
||||||
|
$(eval $(call HostBuild))
|
Loading…
Reference in New Issue