summaryrefslogtreecommitdiffstats
path: root/rules
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2020-08-25 11:50:46 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-08-27 11:45:22 +0200
commitb74244bc8847c40d5f28480d2d9f99d15b3b333c (patch)
tree61a47555ef06846b4dbaebdc3873b067631bd59f /rules
parent4e5b08ca47bd60e72b677290a4097398cfd307a0 (diff)
downloadOSELAS.Toolchain-b74244bc8847c40d5f28480d2d9f99d15b3b333c.tar.gz
OSELAS.Toolchain-b74244bc8847c40d5f28480d2d9f99d15b3b333c.tar.xz
cross-lld: new package
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'rules')
-rw-r--r--rules/cross-lld.in35
-rw-r--r--rules/cross-lld.make65
2 files changed, 100 insertions, 0 deletions
diff --git a/rules/cross-lld.in b/rules/cross-lld.in
new file mode 100644
index 0000000..79e0e98
--- /dev/null
+++ b/rules/cross-lld.in
@@ -0,0 +1,35 @@
+menuconfig CROSS_LLD
+ tristate
+ select HOST_CMAKE
+ select CROSS_LLVM
+ depends on CROSS_CLANG
+ default CROSS_CLANG
+ prompt "lld "
+ help
+ LLD is a new, high-performance linker. It is built as a set of
+ reusable components which highly leverage existing libraries in
+ the larger LLVM Project.
+
+if CROSS_LLD
+
+config CROSS_LLD_VERSION
+ string
+ prompt "lld version"
+ default "${PTXCONF_CROSS_LLVM_VERSION}"
+ help
+ Specify the version of lld here.
+ The default ${PTXCONF_CROSS_LLVM_VERSION} is usually correct.
+
+config CROSS_LLD_MD5
+ string
+ prompt "lld source md5sum"
+
+config CROSS_LLD_LICENSE
+ string
+ prompt "lld license"
+
+config CROSS_LLD_LICENSE_FILES
+ string
+ prompt "lld license files"
+
+endif
diff --git a/rules/cross-lld.make b/rules/cross-lld.make
new file mode 100644
index 0000000..97b8291
--- /dev/null
+++ b/rules/cross-lld.make
@@ -0,0 +1,65 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+CROSS_PACKAGES-$(PTXCONF_CROSS_LLD) += cross-lld
+
+#
+# Paths and names
+#
+CROSS_LLD_VERSION := $(call remove_quotes,$(PTXCONF_CROSS_LLD_VERSION))
+CROSS_LLD_MD5 := $(call remove_quotes,$(PTXCONF_CROSS_LLD_MD5))
+CROSS_LLD := lld-$(CROSS_LLD_VERSION)
+CROSS_LLD_SUFFIX := src.tar.xz
+CROSS_LLD_URL := \
+ https://releases.llvm.org/$(CROSS_LLD).$(CROSS_LLD_SUFFIX) \
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$(CROSS_LLD_VERSION)/$(CROSS_LLD).$(CROSS_LLD_SUFFIX)
+CROSS_LLD_SOURCE := $(SRCDIR)/$(CROSS_LLD).$(CROSS_LLD_SUFFIX)
+CROSS_LLD_DIR := $(CROSS_BUILDDIR)/$(CROSS_LLD)
+CROSS_LLD_LICENSE := $(call remove_quotes,$(PTXCONF_CROSS_LLD_LICENSE))
+CROSS_LLD_LICENSE_FILES := $(call remove_quotes,$(PTXCONF_CROSS_LLD_LICENSE_FILES))
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+CROSS_LLD_CONF_TOOL := cmake
+CROSS_LLD_CONF_OPT := \
+ $(HOST_CMAKE_OPT) \
+ -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=$(PTXCONF_PREFIX_CROSS) \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DLLD_USE_VTUNE=OFF \
+ -DLLD_BUILD_TOOLS=ON \
+ -DLLVM_CONFIG_PATH=$(CROSS_LLVM_DIR)-build/bin/llvm-config
+
+
+CROSS_LLD_LDFLAGS := \
+ -Wl,-rpath,$$ORIGIN/../lib
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/cross-lld.install:
+ @$(call targetinfo)
+ @$(call world/install, CROSS_LLD)
+ @install -vd -m755 \
+ $(CROSS_LLD_PKGDIR)$(PTXCONF_PREFIX_CROSS)/$(PTXCONF_GNU_TARGET)/bin
+ @ln -sfv \
+ ../../bin/lld \
+ $(CROSS_LLD_PKGDIR)$(PTXCONF_PREFIX_CROSS)/$(PTXCONF_GNU_TARGET)/bin/ld.lld
+ @$(call touch)
+
+# vim: syntax=make