diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb')
-rw-r--r-- | import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb deleted file mode 100644 index 0f6d16e00..000000000 --- a/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb +++ /dev/null @@ -1,178 +0,0 @@ -SECTION = "devel" -# Need binutils for libiberty.a -# Would need transfig-native for documentation if it wasn't disabled -DEPENDS = "elfutils binutils" -SUMMARY = "An ELF prelinking utility" -HOMEPAGE = "http://git.yoctoproject.org/cgit.cgi/prelink-cross/about/" -DESCRIPTION = "The prelink package contains a utility which modifies ELF shared libraries \ -and executables, so that far fewer relocations need to be resolved at \ -runtime and thus programs come up faster." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" -SRCREV = "05aeafd053e56356ec8c62f4bb8f7b95bae192f3" -PV = "1.0+git${SRCPV}" - -# -# The cron script attempts to re-prelink the system daily -- on -# systems where users are adding applications, this might be reasonable -# but for embedded, we should be re-running prelink -a after an update. -# -# Default is prelinking is enabled. -# -SUMMARY_${PN}-cron = "Cron scripts to control automatic prelinking" -DESCRIPTION_${PN}-cron = "Cron scripts to control automatic prelinking. \ -See: ${sysconfdir}/cron.daily/prelink for configuration information." - -FILES_${PN}-cron = "${sysconfdir}/cron.daily ${sysconfdir}/default" - -PACKAGES =+ "${PN}-cron" - -SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink \ - file://prelink.conf \ - file://prelink.cron.daily \ - file://prelink.default \ - file://macros.prelink" -UPSTREAM_CHECK_COMMITS = "1" - -TARGET_OS_ORIG := "${TARGET_OS}" -OVERRIDES_append = ":${TARGET_OS_ORIG}" - -S = "${WORKDIR}/git" - -inherit autotools - -BBCLASSEXTEND = "native" - -EXTRA_OECONF = "--disable-selinux --with-pkgversion=${PV}-${PR} \ - --with-bugurl=http://bugzilla.yoctoproject.org/" - - -# -# For target prelink we need to ensure paths match the lib path layout -# including for any configured multilibs -# -python do_linkerpaths () { - values = all_multilib_tune_list(["TUNE_ARCH", "baselib", "ABIEXTENSION"], d) - - arches = values["TUNE_ARCH"] - baselibs = values["baselib"] - abis = values["ABIEXTENSION"] - - def replace_lines(f, search, replacement, d, firstonly = False, secondonly = False): - f = d.expand(f) - if search == replacement: - return - bb.debug(2, "Replacing %s with %s in %s" % (search, replacement, f)) - with open(f, "r") as data: - lines = data.readlines() - with open(f, "w") as data: - for line in lines: - if not secondonly and not firstonly: - line = line.replace(search, replacement) - elif secondonly and search in line: - secondonly = False - elif firstonly and search and search in line: - line = line.replace(search, replacement) - search = None - data.write(line) - - def replace_lines_rtld(f, search, replacement, section, d): - f = d.expand(f) - bb.debug(2, "Replacing %s with %s in %s" % (search, replacement, f)) - with open(f, "r") as data: - lines = data.readlines() - found = False - found2 = False - with open(f, "w") as data: - for line in lines: - if section in line: - if section == "else" and "if" in line: - found = False - else: - found = True - if found and "dst_LIB =" in line: - found2 = True - elif "}" in line: - found = False - found2 = False - if found2: - line = line.replace(search, replacement) - data.write(line) - - for i, arch in enumerate(arches): - tune_baselib = baselibs[i] - abi = abis[i] - - bits = 32 - if arch == "powerpc": - replace_lines("${S}/src/arch-ppc.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d) - elif arch == "powerpc64": - replace_lines("${S}/src/arch-ppc64.c", "/lib64/ld64.so.1", "/" + tune_baselib + "/ld64.so.1", d) - bits = 64 - elif arch == "x86_64": - if abi == "x32": - replace_lines("${S}/src/arch-x86_64.c", "/libx32/ld-linux-x32.so.2", "/" + tune_baselib + "/ld-linux-x32.so.2", d) - else: - replace_lines("${S}/src/arch-x86_64.c", "/lib64/ld-linux-x86-64.so.2", "/" + tune_baselib + "/ld-linux-x86-64.so.2", d) - bits = 64 - elif arch == "arm": - replace_lines("${S}/src/arch-arm.c", "/lib/ld-linux.so.3", "/" + tune_baselib + "/ld-linux.so.3", d) - replace_lines("${S}/src/arch-arm.c", "/lib/ld-linux-armhf.so.3", "/" + tune_baselib + "/ld-linux-armhf.so.3", d) - elif arch == "mips" or arch == "mipsel": - replace_lines("${S}/src/arch-mips.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d, firstonly=True) - replace_lines("${S}/src/arch-mips.c", "/lib32/ld.so.1", "/" + tune_baselib + "/ld.so.1", d) - elif arch == "mips64" or arch == "mips64el": - replace_lines("${S}/src/arch-mips.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d, secondonly=True) - replace_lines("${S}/src/arch-mips.c", "/lib64/ld.so.1", "/" + tune_baselib + "/ld.so.1", d) - bits = 64 - elif arch.endswith("86"): - replace_lines("${S}/src/arch-i386.c", "/lib/ld-linux.so.2", "/" + tune_baselib + "/ld-linux.so.2", d) - if bits == 32 and tune_baselib != "lib": - replace_lines_rtld("${S}/src/rtld/rtld.c", "lib", tune_baselib, "else", d) - if bits == 64 and tune_baselib != "lib64": - replace_lines_rtld("${S}/src/rtld/rtld.c", "lib64", tune_baselib, "use_64bit", d) -} - -python () { - overrides = d.getVar("OVERRIDES").split(":") - if "class-target" in overrides: - bb.build.addtask('do_linkerpaths', 'do_configure', 'do_patch', d) -} - -do_configure_prepend () { - # Disable documentation! - echo "all:" > ${S}/doc/Makefile.am -} - -do_install_append () { - install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default ${D}${sysconfdir}/rpm - install -m 0644 ${WORKDIR}/prelink.conf ${D}${sysconfdir}/prelink.conf - install -m 0644 ${WORKDIR}/prelink.cron.daily ${D}${sysconfdir}/cron.daily/prelink - install -m 0644 ${WORKDIR}/prelink.default ${D}${sysconfdir}/default/prelink - install -m 0644 ${WORKDIR}/macros.prelink ${D}${sysconfdir}/rpm/macros.prelink -} - -# If we ae doing a cross install, we want to avoid prelinking. -# Prelinking during a cross install should be handled by the image-prelink -# bbclass. If the user desires this to run on the target at first boot -# they will need to create a custom boot script. -pkg_postinst_prelink() { -#!/bin/sh - -if [ "x$D" != "x" ]; then - exit 0 -fi - -prelink -a -} - -pkg_prerm_prelink() { -#!/bin/sh - -if [ "x$D" != "x" ]; then - exit 1 -fi - -prelink -au -} - |