diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-07-30 22:57:19 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-08-12 22:00:22 -0700 |
commit | a932d6024a3500dd518176a8bb98fbb8ec9695c7 (patch) | |
tree | 9a6dcd2135d1b3d54579fbb998bf560842a3a00b /recipes-devtools | |
parent | 610a8e1a2ce02b77f905bac261e80b023450b573 (diff) | |
download | meta-clang-a932d6024a3500dd518176a8bb98fbb8ec9695c7.tar.gz |
clang: Build lldb as part of clang unified package
This helps in building lldb which now needs build tree of llvm/clang
to build itself (lldb-tblgen needs the build tree)
Promote RISCV to first class citizen
Package additional files and depend on libedit for lldb
put python lldb files into own package
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes-devtools')
-rw-r--r-- | recipes-devtools/clang/clang_git.bb | 30 | ||||
-rw-r--r-- | recipes-devtools/clang/lldb_git.bb | 58 |
2 files changed, 15 insertions, 73 deletions
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index 75b56ce..4f4af8f 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb | |||
@@ -24,7 +24,6 @@ OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" | |||
24 | def get_clang_experimental_arch(bb, d, arch_var): | 24 | def get_clang_experimental_arch(bb, d, arch_var): |
25 | import re | 25 | import re |
26 | a = d.getVar(arch_var, True) | 26 | a = d.getVar(arch_var, True) |
27 | if re.match('riscv(32|64)$', a): return 'RISCV' | ||
28 | return "" | 27 | return "" |
29 | 28 | ||
30 | def get_clang_arch(bb, d, arch_var): | 29 | def get_clang_arch(bb, d, arch_var): |
@@ -36,6 +35,7 @@ def get_clang_arch(bb, d, arch_var): | |||
36 | elif re.match('aarch64$', a): return 'AArch64' | 35 | elif re.match('aarch64$', a): return 'AArch64' |
37 | elif re.match('aarch64_be$', a): return 'AArch64' | 36 | elif re.match('aarch64_be$', a): return 'AArch64' |
38 | elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' | 37 | elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' |
38 | elif re.match('riscv(32|64)(eb|)$', a): return 'RISCV' | ||
39 | elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' | 39 | elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' |
40 | else: | 40 | else: |
41 | bb.note("'%s' is not a primary llvm architecture" % a) | 41 | bb.note("'%s' is not a primary llvm architecture" % a) |
@@ -61,18 +61,16 @@ PACKAGECONFIG[full-lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGI | |||
61 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," | 61 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," |
62 | PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," | 62 | PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," |
63 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," | 63 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," |
64 | PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit," | ||
65 | |||
66 | # | 64 | # |
67 | # Default to build all OE-Core supported target arches (user overridable). | 65 | # Default to build all OE-Core supported target arches (user overridable). |
68 | # | 66 | # |
69 | LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;X86" | 67 | LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" |
70 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" | 68 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" |
71 | 69 | ||
72 | LLVM_TARGETS_TO_BUILD_TARGET ?= "" | 70 | LLVM_TARGETS_TO_BUILD_TARGET ?= "" |
73 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}" | 71 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}" |
74 | 72 | ||
75 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "RISCV" | 73 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" |
76 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" | 74 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" |
77 | 75 | ||
78 | HF = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" | 76 | HF = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" |
@@ -91,7 +89,7 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ | |||
91 | -DCMAKE_SYSTEM_NAME=Linux \ | 89 | -DCMAKE_SYSTEM_NAME=Linux \ |
92 | -DCMAKE_BUILD_TYPE=Release \ | 90 | -DCMAKE_BUILD_TYPE=Release \ |
93 | -DBUILD_SHARED_LIBS=OFF \ | 91 | -DBUILD_SHARED_LIBS=OFF \ |
94 | -DLLVM_ENABLE_PROJECTS='clang;lld' \ | 92 | -DLLVM_ENABLE_PROJECTS='clang;lld;lldb' \ |
95 | -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \ | 93 | -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \ |
96 | -G Ninja ${S}/llvm \ | 94 | -G Ninja ${S}/llvm \ |
97 | -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ | 95 | -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ |
@@ -115,11 +113,13 @@ EXTRA_OECMAKE_append_class-nativesdk = "\ | |||
115 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | 113 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ |
116 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 114 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
117 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | 115 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ |
116 | -DLLDB_TABLEGEN=${STAGING_BINDIR_NATIVE}/lldb-tblgen \ | ||
118 | " | 117 | " |
119 | EXTRA_OECMAKE_append_class-target = "\ | 118 | EXTRA_OECMAKE_append_class-target = "\ |
120 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ | 119 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ |
121 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 120 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
122 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | 121 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ |
122 | -DLLDB_TABLEGEN=${STAGING_BINDIR_NATIVE}/lldb-tblgen \ | ||
123 | -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD_TARGET}' \ | 123 | -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD_TARGET}' \ |
124 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 124 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
125 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | 125 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ |
@@ -127,13 +127,8 @@ EXTRA_OECMAKE_append_class-target = "\ | |||
127 | -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \ | 127 | -DLLVM_TARGET_ARCH=${@get_clang_target_arch(bb, d)} \ |
128 | -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \ | 128 | -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \ |
129 | " | 129 | " |
130 | EXTRA_OECMAKE_append_class-target_riscv64 = "\ | 130 | |
131 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | 131 | DEPENDS = "binutils zlib libffi libxml2 libedit ninja-native swig-native" |
132 | " | ||
133 | EXTRA_OECMAKE_append_class-target_riscv32 = "\ | ||
134 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | ||
135 | " | ||
136 | DEPENDS = "binutils zlib libffi libxml2 ninja-native" | ||
137 | DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk" | 132 | DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk" |
138 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH}" | 133 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH}" |
139 | 134 | ||
@@ -165,6 +160,7 @@ do_install() { | |||
165 | 160 | ||
166 | do_install_append_class-native () { | 161 | do_install_append_class-native () { |
167 | install -Dm 0755 ${B}/bin/clang-tblgen ${D}${bindir}/clang-tblgen | 162 | install -Dm 0755 ${B}/bin/clang-tblgen ${D}${bindir}/clang-tblgen |
163 | install -Dm 0755 ${B}/tools/clang/stage2-bins/bin/lldb-tblgen ${D}${bindir}/lldb-tblgen | ||
168 | for f in `find ${D}${bindir} -executable -type f -not -type l`; do | 164 | for f in `find ${D}${bindir} -executable -type f -not -type l`; do |
169 | test -n "`file $f|grep -i ELF`" && ${STRIP} $f | 165 | test -n "`file $f|grep -i ELF`" && ${STRIP} $f |
170 | echo "stripped $f" | 166 | echo "stripped $f" |
@@ -173,6 +169,7 @@ do_install_append_class-native () { | |||
173 | 169 | ||
174 | do_install_append_class-nativesdk () { | 170 | do_install_append_class-nativesdk () { |
175 | install -Dm 0755 ${B}/bin/clang-tblgen ${D}${bindir}/clang-tblgen | 171 | install -Dm 0755 ${B}/bin/clang-tblgen ${D}${bindir}/clang-tblgen |
172 | install -Dm 0755 ${B}/bin/lldb-tblgen ${D}${bindir}/lldb-tblgen | ||
176 | for f in `find ${D}${bindir} -executable -type f -not -type l`; do | 173 | for f in `find ${D}${bindir} -executable -type f -not -type l`; do |
177 | test -n "`file $f|grep -i ELF`" && ${STRIP} $f | 174 | test -n "`file $f|grep -i ELF`" && ${STRIP} $f |
178 | done | 175 | done |
@@ -182,15 +179,17 @@ do_install_append_class-nativesdk () { | |||
182 | 179 | ||
183 | PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src" | 180 | PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src" |
184 | 181 | ||
185 | PACKAGES =+ "${PN}-libllvm libclang" | 182 | PACKAGES =+ "${PN}-libllvm libclang python-lldb" |
186 | 183 | ||
187 | BBCLASSEXTEND = "native nativesdk" | 184 | BBCLASSEXTEND = "native nativesdk" |
188 | 185 | ||
186 | FILES_python-lldb = "${libdir}/python3*/site-packages/lldb/*" | ||
187 | |||
189 | FILES_${PN} += "\ | 188 | FILES_${PN} += "\ |
190 | ${libdir}/BugpointPasses.so \ | 189 | ${libdir}/BugpointPasses.so \ |
191 | ${libdir}/LLVMHello.so \ | 190 | ${libdir}/LLVMHello.so \ |
192 | ${libdir}/TestPlugin.so \ | ||
193 | ${libdir}/LLVMgold.so \ | 191 | ${libdir}/LLVMgold.so \ |
192 | ${libdir}/*Plugin.so \ | ||
194 | ${datadir}/scan-* \ | 193 | ${datadir}/scan-* \ |
195 | ${datadir}/opt-viewer/ \ | 194 | ${datadir}/opt-viewer/ \ |
196 | " | 195 | " |
@@ -212,6 +211,7 @@ FILES_${PN}-dev += "\ | |||
212 | 211 | ||
213 | INSANE_SKIP_${PN} += "already-stripped" | 212 | INSANE_SKIP_${PN} += "already-stripped" |
214 | INSANE_SKIP_${PN}-dev += "dev-elf" | 213 | INSANE_SKIP_${PN}-dev += "dev-elf" |
214 | INSANE_SKIP_python-lldb += "dev-so dev-deps" | ||
215 | 215 | ||
216 | #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config. | 216 | #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config. |
217 | SSTATE_SCAN_FILES_remove = "*-config" | 217 | SSTATE_SCAN_FILES_remove = "*-config" |
diff --git a/recipes-devtools/clang/lldb_git.bb b/recipes-devtools/clang/lldb_git.bb deleted file mode 100644 index 933aa44..0000000 --- a/recipes-devtools/clang/lldb_git.bb +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | # Copyright (C) 2017 Kai Ruhnau <kai.ruhnau@target-sg.com> | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | |||
4 | DESCRIPTION = "Next generation, high-performance debugger" | ||
5 | HOMEPAGE = "http://lldb.llvm.org/" | ||
6 | SECTION = "devel" | ||
7 | |||
8 | DEPENDS += "clang-native zlib libxml2 ninja-native" | ||
9 | |||
10 | require clang.inc | ||
11 | require common-source.inc | ||
12 | |||
13 | inherit cmake pkgconfig | ||
14 | |||
15 | LIC_FILES_CHKSUM = "file://llvm/LICENSE.TXT;md5=${LLVMMD5SUM}; \ | ||
16 | file://clang/LICENSE.TXT;md5=${CLANGMD5SUM}; \ | ||
17 | file://lldb/LICENSE.TXT;md5=${LLDBMD5SUM}; \ | ||
18 | " | ||
19 | |||
20 | OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" | ||
21 | |||
22 | EXTRA_OECMAKE="\ | ||
23 | -DCMAKE_CROSSCOMPILING=1 \ | ||
24 | -DLLVM_ENABLE_CXX11=ON \ | ||
25 | -DLLVM_BUILD_LLVM_DYLIB=ON \ | ||
26 | -DBUILD_SHARED_LIBS=OFF \ | ||
27 | -DLLVM_BUILD_LLVM_DYLIB=ON \ | ||
28 | -DLLVM_ENABLE_PIC=ON \ | ||
29 | -DLLDB_DISABLE_LIBEDIT=1 \ | ||
30 | -DLLDB_DISABLE_CURSES=1 \ | ||
31 | -DLLDB_DISABLE_PYTHON=1 \ | ||
32 | -DLLVM_ENABLE_TERMINFO=0 \ | ||
33 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
34 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | ||
35 | -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ | ||
36 | -DLLDB_TEST_USE_CUSTOM_C_COMPILER=ON \ | ||
37 | -DLLDB_TEST_USE_CUSTOM_CXX_COMPILER=ON \ | ||
38 | -DLLDB_TEST_C_COMPILER='${CC}' \ | ||
39 | -DLLDB_TEST_CXX_COMPILER='${CXX}' \ | ||
40 | -DCMAKE_BUILD_TYPE=Release \ | ||
41 | -DLLVM_ENABLE_PROJECTS='clang;lldb' \ | ||
42 | -G Ninja ${S}/llvm \ | ||
43 | " | ||
44 | |||
45 | EXTRA_OEMAKE = "VERBOSE=1" | ||
46 | |||
47 | CXXFLAGS_append_toolchain-gcc = " -Wno-error=format-security" | ||
48 | |||
49 | do_compile() { | ||
50 | ninja ${PARALLEL_MAKE} lldb | ||
51 | } | ||
52 | |||
53 | do_install() { | ||
54 | DESTDIR=${D} ninja ${PARALLEL_MAKE} tools/lldb/install | ||
55 | } | ||
56 | |||
57 | INSANE_SKIP_${PN}-dbg = "libdir" | ||
58 | INSANE_SKIP_${PN} = "libdir" | ||