summaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2013-07-06 17:13:11 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2013-07-12 12:06:01 +0200
commitb95f9d5f5821162cf40e915a0e35a94a605b744e (patch)
tree0e1e7def676a967d12f9d7a60b692b0df0b10867 /meta-oe
parentfc7eda558f058317789680d13149af63d86e372d (diff)
downloadmeta-openembedded-b95f9d5f5821162cf40e915a0e35a94a605b744e.tar.gz
llvm: split packages a bit more
* use split for llvm3.* like we did for llvm2.* * use PACKAGESPLITFUNCS instead of populate_packages_prepend * improve regexp in PACKAGES_DYNAMIC * append ${LLVM_RELEASE} to split package name, otherwise sstate will complain about multiple recipes trying to install pkgdata * split also -staticdev and -dbg libs, PN-dbg and PN-staticdev were huge, let old PN-dbg/PN-staticdev to RDEPEND on splitted packages * mesa packages libegl-gallium, libgbm-gallium, mesa-driver-pipe-swrast, mesa-driver-pipe-vmwgfx, mesa-driver-swrast, mesa-driver-vmwgfx are now depending only on libllvm3.2-llvm-3.2 (>= 3.2) instead of main llvm3.2 package, but for llvm-3* it's not big improvement (installed size wise), because libLLVM-3.2.so was creating 99% of that size. * there are still some huge packages: llvm2.8-dbg is huge because BUILD_SHARED_LIBS is disabled for 2.8 causing all binaries in ${bindir}/.debug to contain big static libs llvm2.9 is missing, because it has BUILD_SHARED_LIBS enabled and unlike 3.* it doesn't build static versions at all unless explicitly requested 51M llvm-test/llvm3.2/3.2-r0/packages-split/libllvm3.2-llvmselectiondag-staticdev 53M llvm-test/llvm2.8/2.8-r3/packages-split/llvm2.8-dev 54M llvm-test/llvm2.8/2.8-r3/packages-split/libllvm2.8-llvmanalysis-staticdev 55M llvm-test/llvm3.3/3.3-r0/packages-split/libllvm3.3-llvmselectiondag-staticdev 62M llvm-test/llvm3.2/3.2-r0/packages-split/libllvm3.2-llvmanalysis-staticdev 63M llvm-test/llvm3.3/3.3-r0/packages-split/libllvm3.3-llvmanalysis-staticdev 67M llvm-test/llvm2.9/2.9-r3/packages-split/llvm2.9-dbg 90M llvm-test/llvm3.2/3.2-r0/packages-split/llvm3.2-dbg 92M llvm-test/llvm3.3/3.3-r0/packages-split/llvm3.3-dbg 102M llvm-test/llvm2.8/2.8-r3/packages-split/libllvm2.8-llvmcodegen-staticdev 127M llvm-test/llvm3.2/3.2-r0/packages-split/libllvm3.2-llvmcodegen-staticdev 133M llvm-test/llvm3.3/3.3-r0/packages-split/libllvm3.3-llvmcodegen-staticdev 190M llvm-test/llvm3.2/3.2-r0/packages-split/libllvm3.2-llvm-3.2-dbg 207M llvm-test/llvm3.3/3.3-r0/packages-split/libllvm3.3-llvm-3.3-dbg 628M llvm-test/llvm2.8/2.8-r3/packages-split/llvm2.8-dbg Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-core/llvm/llvm.inc30
-rw-r--r--meta-oe/recipes-core/llvm/llvm2.inc14
-rw-r--r--meta-oe/recipes-core/llvm/llvm3.inc4
3 files changed, 26 insertions, 22 deletions
diff --git a/meta-oe/recipes-core/llvm/llvm.inc b/meta-oe/recipes-core/llvm/llvm.inc
index 20588f3f3..c0d6b6ef1 100644
--- a/meta-oe/recipes-core/llvm/llvm.inc
+++ b/meta-oe/recipes-core/llvm/llvm.inc
@@ -32,11 +32,33 @@ inherit perlnative pythonnative
32LLVM_RELEASE = "${PV}" 32LLVM_RELEASE = "${PV}"
33LLVM_DIR = "llvm${LLVM_RELEASE}" 33LLVM_DIR = "llvm${LLVM_RELEASE}"
34 34
35FILES_${PN}-dbg += "${bindir}/${LLVM_DIR}/.debug \ 35ALLOW_EMPTY_${PN} = "1"
36 ${libdir}/${LLVM_DIR}/.debug \ 36ALLOW_EMPTY_${PN}-staticdev = "1"
37FILES_${PN} = ""
38FILES_${PN}-staticdev = ""
39DOTDEBUG-dbg = " ${bindir}/${LLVM_DIR}/.debug \
40 ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \
41 ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \
42 /usr/src/debug \
37" 43"
38FILES_${PN}-dev += "${bindir} \ 44
45FILES_${PN}-dev += "${bindir}/${LLVM_DIR} \
39 ${libdir}/${LLVM_DIR}/BugpointPasses.so \ 46 ${libdir}/${LLVM_DIR}/BugpointPasses.so \
40 ${libdir}/${LLVM_DIR}/LLVMHello.so \ 47 ${libdir}/${LLVM_DIR}/LLVMHello.so \
41" 48"
42FILES_${PN}-staticdev = "${libdir}/${LLVM_DIR}/*.a" 49
50PACKAGES_DYNAMIC = "^libllvm-.*$"
51
52python llvm_populate_packages() {
53 libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d)
54 split_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True)
55 split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg', 'Split debug package for %s', allow_dirs=True)
56 split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-staticdev', 'Split staticdev package for %s', allow_dirs=True)
57 if split_packages:
58 pn = d.getVar('PN', True)
59 d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages))
60 d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages))
61 d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_packages))
62}
63
64PACKAGESPLITFUNCS_prepend = "llvm_populate_packages "
diff --git a/meta-oe/recipes-core/llvm/llvm2.inc b/meta-oe/recipes-core/llvm/llvm2.inc
index b239d30f4..8765a7606 100644
--- a/meta-oe/recipes-core/llvm/llvm2.inc
+++ b/meta-oe/recipes-core/llvm/llvm2.inc
@@ -53,8 +53,6 @@ EXTRA_OECMAKE = "\
53# We need to reset this to avoid breakage as we build out of tree 53# We need to reset this to avoid breakage as we build out of tree
54TOOLCHAIN_OPTIONS = "" 54TOOLCHAIN_OPTIONS = ""
55 55
56PACKAGES_DYNAMIC = "llvm-*"
57
58# the difference to the non-native build is that we do not need 56# the difference to the non-native build is that we do not need
59# to declare the location of the tblgen executable. 57# to declare the location of the tblgen executable.
60EXTRA_OECMAKE_class-native = "\ 58EXTRA_OECMAKE_class-native = "\
@@ -68,18 +66,6 @@ EXTRA_OECMAKE_class-native = "\
68 -DNM_PATH:FILEPATH=${NM} \ 66 -DNM_PATH:FILEPATH=${NM} \
69" 67"
70 68
71PACKAGES_class-native = ""
72
73PACKAGES_DYNAMIC_class-native = ""
74
75python populate_packages_prepend () {
76 libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d)
77 do_split_packages(d, libllvm_libdir, '^lib(.*)\.so$', 'libllvm-%s', 'Split package for %s', allow_dirs=True)
78}
79
80FILES_${PN} = ""
81ALLOW_EMPTY_${PN} = "1"
82
83base_do_compile_prepend() { 69base_do_compile_prepend() {
84 # Avoid *** No rule to make target `native/bin/tblgen', needed by `include/llvm/Intrinsics.gen.tmp' 70 # Avoid *** No rule to make target `native/bin/tblgen', needed by `include/llvm/Intrinsics.gen.tmp'
85 oe_runmake tblgen 71 oe_runmake tblgen
diff --git a/meta-oe/recipes-core/llvm/llvm3.inc b/meta-oe/recipes-core/llvm/llvm3.inc
index b04fe24fd..798d4a245 100644
--- a/meta-oe/recipes-core/llvm/llvm3.inc
+++ b/meta-oe/recipes-core/llvm/llvm3.inc
@@ -18,10 +18,6 @@ EXTRA_OECONF += "--disable-assertions \
18 --enable-shared \ 18 --enable-shared \
19 --enable-targets=host-only" 19 --enable-targets=host-only"
20EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" 20EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1"
21FILES_${PN} = "${libdir}/lib*.so \
22 ${libdir}/${LLVM_DIR}/*"
23FILES_SOLIBSDEV = ""
24INSANE_SKIP_${PN} = "dev-so"
25 21
26do_configure_prepend() { 22do_configure_prepend() {
27 # Remove RPATHs 23 # Remove RPATHs