diff options
| author | Martin Jansa <Martin.Jansa@gmail.com> | 2013-07-06 17:13:11 +0200 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2013-07-12 12:06:01 +0200 |
| commit | b95f9d5f5821162cf40e915a0e35a94a605b744e (patch) | |
| tree | 0e1e7def676a967d12f9d7a60b692b0df0b10867 /meta-oe/recipes-core | |
| parent | fc7eda558f058317789680d13149af63d86e372d (diff) | |
| download | meta-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/recipes-core')
| -rw-r--r-- | meta-oe/recipes-core/llvm/llvm.inc | 30 | ||||
| -rw-r--r-- | meta-oe/recipes-core/llvm/llvm2.inc | 14 | ||||
| -rw-r--r-- | meta-oe/recipes-core/llvm/llvm3.inc | 4 |
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 20588f3f3f..c0d6b6ef10 100644 --- a/meta-oe/recipes-core/llvm/llvm.inc +++ b/meta-oe/recipes-core/llvm/llvm.inc | |||
| @@ -32,11 +32,33 @@ inherit perlnative pythonnative | |||
| 32 | LLVM_RELEASE = "${PV}" | 32 | LLVM_RELEASE = "${PV}" |
| 33 | LLVM_DIR = "llvm${LLVM_RELEASE}" | 33 | LLVM_DIR = "llvm${LLVM_RELEASE}" |
| 34 | 34 | ||
| 35 | FILES_${PN}-dbg += "${bindir}/${LLVM_DIR}/.debug \ | 35 | ALLOW_EMPTY_${PN} = "1" |
| 36 | ${libdir}/${LLVM_DIR}/.debug \ | 36 | ALLOW_EMPTY_${PN}-staticdev = "1" |
| 37 | FILES_${PN} = "" | ||
| 38 | FILES_${PN}-staticdev = "" | ||
| 39 | DOTDEBUG-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 | " |
| 38 | FILES_${PN}-dev += "${bindir} \ | 44 | |
| 45 | FILES_${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 | " |
| 42 | FILES_${PN}-staticdev = "${libdir}/${LLVM_DIR}/*.a" | 49 | |
| 50 | PACKAGES_DYNAMIC = "^libllvm-.*$" | ||
| 51 | |||
| 52 | python 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 | |||
| 64 | PACKAGESPLITFUNCS_prepend = "llvm_populate_packages " | ||
diff --git a/meta-oe/recipes-core/llvm/llvm2.inc b/meta-oe/recipes-core/llvm/llvm2.inc index b239d30f44..8765a7606e 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 |
| 54 | TOOLCHAIN_OPTIONS = "" | 54 | TOOLCHAIN_OPTIONS = "" |
| 55 | 55 | ||
| 56 | PACKAGES_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. |
| 60 | EXTRA_OECMAKE_class-native = "\ | 58 | EXTRA_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 | ||
| 71 | PACKAGES_class-native = "" | ||
| 72 | |||
| 73 | PACKAGES_DYNAMIC_class-native = "" | ||
| 74 | |||
| 75 | python 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 | |||
| 80 | FILES_${PN} = "" | ||
| 81 | ALLOW_EMPTY_${PN} = "1" | ||
| 82 | |||
| 83 | base_do_compile_prepend() { | 69 | base_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 b04fe24fd5..798d4a2458 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" |
| 20 | EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" | 20 | EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" |
| 21 | FILES_${PN} = "${libdir}/lib*.so \ | ||
| 22 | ${libdir}/${LLVM_DIR}/*" | ||
| 23 | FILES_SOLIBSDEV = "" | ||
| 24 | INSANE_SKIP_${PN} = "dev-so" | ||
| 25 | 21 | ||
| 26 | do_configure_prepend() { | 22 | do_configure_prepend() { |
| 27 | # Remove RPATHs | 23 | # Remove RPATHs |
