]> code.ossystems Code Review - openembedded-core.git/commitdiff
eglibc: Move perl- and bash-using scripts to separate recipes
authorPhil Blundell <philb@gnu.org>
Tue, 25 Sep 2012 12:56:41 +0000 (13:56 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 22 Oct 2012 13:57:26 +0000 (14:57 +0100)
This removes the dependency of eglibc.bb itself on perl and bash
which, in turn, eliminates the need to build those two recipes if the
scripts which need them are not going to be installed.

Also provide dummy do_evacuate_scripts() for all variants of eglibc-initial
otherwise the nativesdk and multilib variants might crash trying to
copy a non-existent mtrace script.

Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/eglibc/eglibc-collateral.inc [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-initial.inc
meta/recipes-core/eglibc/eglibc-locale.inc
meta/recipes-core/eglibc/eglibc-mtrace.inc [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-mtrace_2.16.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-package.inc
meta/recipes-core/eglibc/eglibc-scripts.inc [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc-scripts_2.16.bb [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc_2.16.bb

diff --git a/meta/recipes-core/eglibc/eglibc-collateral.inc b/meta/recipes-core/eglibc/eglibc-collateral.inc
new file mode 100644 (file)
index 0000000..b770bb0
--- /dev/null
@@ -0,0 +1,11 @@
+INHIBIT_DEFAULT_DEPS = "1"
+LICENSE = "GPLv2 & LGPLv2.1"
+
+do_fetch[noexec] = "1"
+do_unpack[noexec] = "1"
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install[depends] += "virtual/${MLPREFIX}libc:do_populate_sysroot"
+
index f44db0c00ed793ecea8f2c03436451393816c411..1520efd7189e70ff4256ffdc7083fcbb455606ae 100644 (file)
@@ -73,3 +73,8 @@ eglibcinitial_sstate_postinst() {
 }
 
 do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_TCBOOTSTRAP}"
+
+# We don't install any scripts so there is nothing to evacuate
+do_evacuate_scripts () {
+       :
+}
index 16ace665022912f52b27d05a6b0285e5c99b16ee..0381e2630aad0e201b5db5385e725d8e2d404ae9 100644 (file)
@@ -1,15 +1,8 @@
-INHIBIT_DEFAULT_DEPS = "1"
-LICENSE = "GPLv2 & LGPLv2.1"
+include eglibc-collateral.inc
 
 BPN = "eglibc"
 LOCALEBASEPN = "eglibc"
 
-do_fetch[noexec] = "1"
-do_unpack[noexec] = "1"
-do_patch[noexec] = "1"
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
 # Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
 # is set. The idea is to avoid running localedef on the target (at first boot)
 # to decrease initial boot time and avoid localedef being killed by the OOM
@@ -90,6 +83,4 @@ do_install () {
 
 inherit libc-package
 
-do_install[depends] += "virtual/${MLPREFIX}libc:do_populate_sysroot"
-
 BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace.inc b/meta/recipes-core/eglibc/eglibc-mtrace.inc
new file mode 100644 (file)
index 0000000..1ec93ac
--- /dev/null
@@ -0,0 +1,14 @@
+include eglibc-collateral.inc
+
+PR = "r1"
+SUMMARY = "mtrace utility provided by eglibc"
+DESCRIPTION = "mtrace utility provided by eglibc"
+RDEPENDS_${PN} = "perl"
+RPROVIDES_${PN} = "libc-mtrace"
+
+SRC = "${STAGING_INCDIR}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}"
+
+do_install() {
+       install -d -m 0755 ${D}${bindir}
+       install -m 0755 ${SRC}/mtrace ${D}${bindir}/
+}
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace_2.16.bb b/meta/recipes-core/eglibc/eglibc-mtrace_2.16.bb
new file mode 100644 (file)
index 0000000..6fa2be9
--- /dev/null
@@ -0,0 +1 @@
+require eglibc-mtrace.inc
index 0059bcfc1c380ea15621f86c9da3514c703c156b..79c43f15becac2534e2bbf5a7b845d6212d0dd0b 100644 (file)
@@ -17,7 +17,7 @@ python __anonymous () {
 # Set this to zero if you don't want ldconfig in the output package
 USE_LDCONFIG ?= "1"
 
-PACKAGES = "${PN}-dbg catchsegv sln nscd ldd ${PN}-mtrace ${PN}-utils eglibc-thread-db ${PN}-pic libcidn libmemusage libsegfault ${PN}-pcprofile libsotruss ${PN} eglibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
+PACKAGES = "${PN}-dbg catchsegv sln nscd ldd ${PN}-utils eglibc-thread-db ${PN}-pic libcidn libmemusage libsegfault ${PN}-pcprofile libsotruss ${PN} eglibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
 
 # The ld.so in this eglibc supports the GNU_HASH
 RPROVIDES_${PN} = "glibc rtld(GNU_HASH)"
@@ -51,8 +51,6 @@ FILES_${PN}-utils = "${bindir}/* ${sbindir}/*"
 FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
 FILES_catchsegv = "${bindir}/catchsegv"
 RDEPENDS_catchsegv = "libsegfault"
-RDEPENDS_${PN}-utils += "bash"
-RDEPENDS_${PN}-mtrace += "perl"
 FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
 FILES_eglibc-thread-db = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
 RPROVIDES_${PN}-dev += "libc-dev"
@@ -65,11 +63,9 @@ DESCRIPTION_nscd = "nscd, name service cache daemon, caches name service lookups
 SUMMARY_eglibc-extra-nss = "hesiod, NIS and NIS+ nss libraries"
 DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search services."
 SUMMARY_ldd = "print shared library dependencies"
-DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line."
+DESCRIPTION_ldd = "${bindir}/ldd prints shared library dependencies for each program or shared library specified on the command line."
 SUMMARY_${PN}-utils = "Miscellaneous utilities provided by eglibc"
 DESCRIPTION_${PN}-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."
-SUMMARY_${PN}-mtrace = "mtrace utility provided by eglibc"
-DESCRIPTION_${PN}-mtrace = "mtrace utility provided by eglibc"
 DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs"
 
 inherit libc-common multilib_header
@@ -111,10 +107,26 @@ do_install_locale () {
 
 addtask do_install_locale after do_install before do_populate_sysroot do_package
 
+bashscripts = "mtrace sotruss xtrace"
+
+do_evacuate_scripts () {
+       target=${D}${includedir}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}
+       mkdir -p $target
+       for i in ${bashscripts}; do
+               cp ${D}${bindir}/$i $target/
+       done
+}
+
+addtask evacuate_scripts after do_install before do_populate_sysroot do_package
+
 PACKAGE_PREPROCESS_FUNCS += "eglibc_package_preprocess"
 
 eglibc_package_preprocess () {
        rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
+       rm -rf ${PKGD}/${includedir}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}
+       for i in ${bashscripts}; do
+           rm -f ${PKGD}${bindir}/$i
+       done
        rm -rf ${PKGD}/${localedir}
        if [ "${libdir}" != "${exec_prefix}/lib" ]; then
                # This dir only exists to hold locales
diff --git a/meta/recipes-core/eglibc/eglibc-scripts.inc b/meta/recipes-core/eglibc/eglibc-scripts.inc
new file mode 100644 (file)
index 0000000..a020961
--- /dev/null
@@ -0,0 +1,17 @@
+include eglibc-collateral.inc
+
+SUMMARY = "utility scripts provided by eglibc"
+DESCRIPTION = "utility scripts provided by eglibc"
+RDEPENDS_${PN} = "bash"
+RDEPENDS_ldd = "bash"
+
+SRC = "${STAGING_INCDIR}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}"
+
+bashscripts = "mtrace sotruss xtrace"
+
+do_install() {
+       install -d -m 0755 ${D}${bindir}
+       for i in ${bashscripts}; do
+               install -m 0755 ${SRC}/$i ${D}${bindir}/
+       done
+}
diff --git a/meta/recipes-core/eglibc/eglibc-scripts_2.16.bb b/meta/recipes-core/eglibc/eglibc-scripts_2.16.bb
new file mode 100644 (file)
index 0000000..3113362
--- /dev/null
@@ -0,0 +1 @@
+require eglibc-scripts.inc
index 78bf9bedaf78eed10a34bd2e4039b284146f4a48..2c1018f21c2fa7d0eb8e40419de4f179390f3a0e 100644 (file)
@@ -3,7 +3,7 @@ require eglibc.inc
 SRCREV = "20393"
 
 DEPENDS += "gperf-native kconfig-frontends-native"
-PR = "r15"
+PR = "r16"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_16"