package/lld: new host package
authorJoseph Kogut <joseph.kogut@gmail.com>
Wed, 24 Jul 2019 17:35:36 +0000 (10:35 -0700)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Sat, 19 Oct 2019 22:40:48 +0000 (00:40 +0200)
lld can be used by external packages or by setting BR2_TARGET_LDFLAGS
(though a dependency is missing to make the latter really work). Future
patches will improve the integration in the build.

Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
DEVELOPERS
package/Config.in.host
package/lld/Config.in.host [new file with mode: 0644]
package/lld/lld.hash [new file with mode: 0644]
package/lld/lld.mk [new file with mode: 0644]

index 941462a077090a45157e15c06a34940d79818aa6..87edcac9abd32f1ff06e7c946506053cdd14b03b 100644 (file)
@@ -1274,6 +1274,7 @@ F:        package/at-spi2-core/
 F:     package/clang/
 F:     package/gconf/
 F:     package/libnss/
+F:     package/lld/
 F:     package/llvm/
 F:     package/python-cython/
 F:     package/python-raven/
index 93822304e96e802b8f61028f5accbf32658e8466..9eeb5c91a9cc56341f1e81f6c949210e64da10c7 100644 (file)
@@ -35,6 +35,7 @@ menu "Host utilities"
        source "package/jq/Config.in.host"
        source "package/jsmin/Config.in.host"
        source "package/libp11/Config.in.host"
+       source "package/lld/Config.in.host"
        source "package/lpc3250loader/Config.in.host"
        source "package/lttng-babeltrace/Config.in.host"
        source "package/mender-artifact/Config.in.host"
diff --git a/package/lld/Config.in.host b/package/lld/Config.in.host
new file mode 100644 (file)
index 0000000..86ba3ff
--- /dev/null
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_HOST_LLD
+       bool "host lld"
+       depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm
+       depends on BR2_HOST_GCC_AT_LEAST_4_8 # llvm
+       help
+         LLD is a linker from the LLVM project that is a drop-in
+         replacement for system linkers, and runs much faster than
+         them. It also provides features that are useful for
+         toolchain developers.
+
+         https://lld.llvm.org/
+
+comment "lld needs a toolchain w/ host gcc >= 4.8"
+       depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
+       depends on !BR2_HOST_GCC_AT_LEAST_4_8
diff --git a/package/lld/lld.hash b/package/lld/lld.hash
new file mode 100644 (file)
index 0000000..dfbb290
--- /dev/null
@@ -0,0 +1,3 @@
+# locally calculated
+sha256 9caec8ec922e32ffa130f0fb08e4c5a242d7e68ce757631e425e9eba2e1a6e37  lld-8.0.0.src.tar.xz
+sha256 f0502d2d0e19748c534ee95ea486c092273303dbef76404c8b17dc8bf6ca441b  LICENSE.TXT
diff --git a/package/lld/lld.mk b/package/lld/lld.mk
new file mode 100644 (file)
index 0000000..a6933e2
--- /dev/null
@@ -0,0 +1,23 @@
+################################################################################
+#
+# lld
+#
+################################################################################
+
+LLD_VERSION = 8.0.0
+LLD_SITE = https://llvm.org/releases/$(LLD_VERSION)
+LLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz
+LLD_LICENSE = NCSA
+LLD_LICENSE_FILES = LICENSE.TXT
+LLD_SUPPORTS_IN_SOURCE_BUILD = NO
+HOST_LLD_DEPENDENCIES = host-llvm
+
+# GCC looks for tools in a different path from LLD's default installation path
+define HOST_LLD_CREATE_SYMLINKS
+       ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/lld
+       ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/ld.lld
+endef
+
+HOST_LLD_POST_INSTALL_HOOKS += HOST_LLD_CREATE_SYMLINKS
+
+$(eval $(host-cmake-package))