summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/distro/include/maintainers.inc1
-rw-r--r--meta/recipes-devtools/clang/clang-cross-canadian_git.bb2
-rw-r--r--meta/recipes-devtools/clang/clang-cross_git.bb6
-rw-r--r--meta/recipes-devtools/clang/clang-crosssdk_git.bb3
-rw-r--r--meta/recipes-devtools/clang/clang_git.bb12
-rw-r--r--meta/recipes-devtools/clang/lld_git.bb26
6 files changed, 39 insertions, 11 deletions
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index ed1bc18ba3..96d5a0819c 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -480,6 +480,7 @@ RECIPE_MAINTAINER:pn-linux-yocto = "Bruce Ashfield <bruce.ashfield@gmail.com>"
480RECIPE_MAINTAINER:pn-linux-yocto-dev = "Bruce Ashfield <bruce.ashfield@gmail.com>" 480RECIPE_MAINTAINER:pn-linux-yocto-dev = "Bruce Ashfield <bruce.ashfield@gmail.com>"
481RECIPE_MAINTAINER:pn-linux-yocto-rt = "Bruce Ashfield <bruce.ashfield@gmail.com>" 481RECIPE_MAINTAINER:pn-linux-yocto-rt = "Bruce Ashfield <bruce.ashfield@gmail.com>"
482RECIPE_MAINTAINER:pn-linux-yocto-tiny = "Bruce Ashfield <bruce.ashfield@gmail.com>" 482RECIPE_MAINTAINER:pn-linux-yocto-tiny = "Bruce Ashfield <bruce.ashfield@gmail.com>"
483RECIPE_MAINTAINER:pn-lld = "Khem Raj <raj.khem@gmail.com>"
483RECIPE_MAINTAINER:pn-lldb = "Khem Raj <raj.khem@gmail.com>" 484RECIPE_MAINTAINER:pn-lldb = "Khem Raj <raj.khem@gmail.com>"
484RECIPE_MAINTAINER:pn-llvm-project-source-20.1.8 = "Khem Raj <raj.khem@gmail.com>" 485RECIPE_MAINTAINER:pn-llvm-project-source-20.1.8 = "Khem Raj <raj.khem@gmail.com>"
485RECIPE_MAINTAINER:pn-llvm-tblgen-native = "Khem Raj <raj.khem@gmail.com>" 486RECIPE_MAINTAINER:pn-llvm-tblgen-native = "Khem Raj <raj.khem@gmail.com>"
diff --git a/meta/recipes-devtools/clang/clang-cross-canadian_git.bb b/meta/recipes-devtools/clang/clang-cross-canadian_git.bb
index c966861578..18bd6ecfde 100644
--- a/meta/recipes-devtools/clang/clang-cross-canadian_git.bb
+++ b/meta/recipes-devtools/clang/clang-cross-canadian_git.bb
@@ -11,7 +11,7 @@ PN = "clang-cross-canadian-${TRANSLATED_TARGET_ARCH}"
11 11
12inherit cross-canadian 12inherit cross-canadian
13 13
14DEPENDS = "nativesdk-clang binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} virtual/nativesdk-cross-binutils virtual/nativesdk-libc" 14DEPENDS = "nativesdk-clang binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} virtual/nativesdk-cross-binutils virtual/nativesdk-libc ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'nativesdk-lld', '', d)}"
15 15
16do_install() { 16do_install() {
17 install -d ${D}${bindir} 17 install -d ${D}${bindir}
diff --git a/meta/recipes-devtools/clang/clang-cross_git.bb b/meta/recipes-devtools/clang/clang-cross_git.bb
index bd72ee4e6d..33b01e4234 100644
--- a/meta/recipes-devtools/clang/clang-cross_git.bb
+++ b/meta/recipes-devtools/clang/clang-cross_git.bb
@@ -11,7 +11,7 @@ PN = "clang-cross-${TARGET_ARCH}"
11 11
12inherit cross 12inherit cross
13 13
14DEPENDS = "clang-native virtual/cross-binutils" 14DEPENDS = "clang-native virtual/cross-binutils ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'lld-native', '', d)}"
15 15
16do_install() { 16do_install() {
17 install -d ${D}${bindir} 17 install -d ${D}${bindir}
@@ -19,6 +19,8 @@ do_install() {
19 llvm-nm llvm-ar llvm-as llvm-ranlib llvm-strip llvm-objcopy llvm-objdump llvm-readelf \ 19 llvm-nm llvm-ar llvm-as llvm-ranlib llvm-strip llvm-objcopy llvm-objdump llvm-readelf \
20 llvm-addr2line llvm-dwp llvm-size llvm-strings llvm-cov 20 llvm-addr2line llvm-dwp llvm-size llvm-strings llvm-cov
21 do 21 do
22 ln -sf ../$tool ${D}${bindir}/${TARGET_PREFIX}$tool 22 if [ -x ${STAGING_BINDIR_NATIVE}/$tool ]; then
23 ln -sf ../$tool ${D}${bindir}/${TARGET_PREFIX}$tool
24 fi
23 done 25 done
24} 26}
diff --git a/meta/recipes-devtools/clang/clang-crosssdk_git.bb b/meta/recipes-devtools/clang/clang-crosssdk_git.bb
index 320579d8f1..9b527975a9 100644
--- a/meta/recipes-devtools/clang/clang-crosssdk_git.bb
+++ b/meta/recipes-devtools/clang/clang-crosssdk_git.bb
@@ -11,7 +11,8 @@ PN = "clang-crosssdk-${SDK_SYS}"
11 11
12inherit crosssdk 12inherit crosssdk
13 13
14DEPENDS = "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc" 14DEPENDS = "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc \
15 ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'lld-native', '', d)}"
15 16
16do_install() { 17do_install() {
17 install -d ${D}${bindir} 18 install -d ${D}${bindir}
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index cade4ca4a2..79525258be 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -57,7 +57,7 @@ PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF,,"
57PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,," 57PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,"
58PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit libedit-native" 58PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit libedit-native"
59PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,," 59PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,,"
60PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,," 60PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,,"
61PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," 61PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils,"
62PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," 62PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm,"
63PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," 63PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,,"
@@ -89,7 +89,7 @@ HF[vardepvalue] = "${HF}"
89 89
90# Ensure that LLVM_PROJECTS does not contain compiler runtime components e.g. libcxx etc 90# Ensure that LLVM_PROJECTS does not contain compiler runtime components e.g. libcxx etc
91# they are enabled via LLVM_ENABLE_RUNTIMES 91# they are enabled via LLVM_ENABLE_RUNTIMES
92LLVM_PROJECTS ?= "clang;clang-tools-extra;lld" 92LLVM_PROJECTS ?= "clang;clang-tools-extra"
93 93
94# linux hosts (.so) on Windows .pyd 94# linux hosts (.so) on Windows .pyd
95SOLIBSDEV:mingw32 = ".pyd" 95SOLIBSDEV:mingw32 = ".pyd"
@@ -141,8 +141,8 @@ DEPENDS = "binutils zlib zstd libffi libxml2 libxml2-native llvm-tblgen-native"
141DEPENDS:append:class-nativesdk = " clang-crosssdk-${SDK_SYS} virtual/nativesdk-cross-binutils" 141DEPENDS:append:class-nativesdk = " clang-crosssdk-${SDK_SYS} virtual/nativesdk-cross-binutils"
142DEPENDS:append:class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcxx', '', d)}" 142DEPENDS:append:class-target = " clang-cross-${TARGET_ARCH} ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcxx', '', d)}"
143 143
144RRECOMMENDS:${PN} = "binutils" 144RDEPENDS:${PN}:append:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' lld', '', d)}"
145RRECOMMENDS:${PN}:append:class-target = "${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', ' libcxx-dev', '', d)}" 145RRECOMMENDS:${PN}:append:class-target = "binutils ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', ' libcxx-dev', '', d)}"
146 146
147# patch out build host paths for reproducibility 147# patch out build host paths for reproducibility
148reproducible_build_variables() { 148reproducible_build_variables() {
@@ -370,10 +370,8 @@ clang_sysroot_preprocess() {
370 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ 370 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
371 install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ 371 install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
372 ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} 372 ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
373 # LLDTargets.cmake references the lld executable(!) that some modules/plugins link to
374 install -d ${SYSROOT_DESTDIR}${bindir}
375 373
376 binaries="lld diagtool clang-${MAJOR_VER} clang-format clang-offload-packager 374 binaries="diagtool clang-${MAJOR_VER} clang-format clang-offload-packager
377 clang-offload-bundler clang-scan-deps clang-repl 375 clang-offload-bundler clang-scan-deps clang-repl
378 clang-refactor clang-check clang-extdef-mapping clang-apply-replacements 376 clang-refactor clang-check clang-extdef-mapping clang-apply-replacements
379 clang-reorder-fields clang-tidy clang-change-namespace clang-doc clang-include-fixer 377 clang-reorder-fields clang-tidy clang-change-namespace clang-doc clang-include-fixer
diff --git a/meta/recipes-devtools/clang/lld_git.bb b/meta/recipes-devtools/clang/lld_git.bb
new file mode 100644
index 0000000000..02006e0edc
--- /dev/null
+++ b/meta/recipes-devtools/clang/lld_git.bb
@@ -0,0 +1,26 @@
1SUMMARY = "LLD - the LLVM Linker"
2DESCRIPTION = "LLD is a linker from the LLVM project that is a drop-in replacement for system linkers and runs much faster than them."
3HOMEPAGE = "https://lld.llvm.org"
4SECTION = "devel"
5
6require common-clang.inc
7require common-source.inc
8
9LIC_FILES_CHKSUM = "file://lld/LICENSE.TXT;md5=ae7dc7c027b1fa89b5b013d391d3ee2b"
10
11inherit cmake pkgconfig
12
13DEPENDS = "llvm-tblgen-native llvm"
14
15OECMAKE_SOURCEPATH = "${S}/lld"
16
17# Explicitly disable RPATHs as otherwise they're stipped out of the binaries,
18# and are then non-reproducible.
19#
20# Explicitly enable symlinks as the lld build doesn't call into the llvm setup
21# and turn that on.
22EXTRA_OECMAKE = "-DCMAKE_SKIP_BUILD_RPATH=ON \
23 -DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \
24 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen"
25
26BBCLASSEXTEND = "native nativesdk"