All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] prelink: Drop support for it
@ 2022-02-03 16:52 Richard Purdie
  2022-02-03 16:52 ` [PATCH 2/2] glibc: Drop prelink patch Richard Purdie
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Purdie @ 2022-02-03 16:52 UTC (permalink / raw)
  To: openembedded-core

Prelink is being dropped by glibc in 2.36. It already causes issues with
binary corruption, has a number of open bugs and is of questionable benefit
without disabling load address randomization and PIE executables.

We disabled it by default a while back but left people able to use it.
We would be unable to maintain it alone without glibc support so remove
the remaining pieces.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/conf/distro/include/maintainers.inc      |   1 -
 meta/lib/oe/package_manager/ipk/rootfs.py     |  37 ----
 meta/lib/oe/utils.py                          |  11 --
 .../0001-Add-MIPS-gnu-hash-support.patch      | 110 -----------
 .../prelink/prelink/macros.prelink            |   5 -
 .../prelink/prelink/prelink.conf              |  18 --
 .../prelink/prelink/prelink.cron.daily        |  40 ----
 .../prelink/prelink/prelink.default           |  22 ---
 meta/recipes-devtools/prelink/prelink_git.bb  | 185 ------------------
 scripts/sstate-sysroot-cruft.sh               |  12 --
 10 files changed, 441 deletions(-)
 delete mode 100644 meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch
 delete mode 100644 meta/recipes-devtools/prelink/prelink/macros.prelink
 delete mode 100644 meta/recipes-devtools/prelink/prelink/prelink.conf
 delete mode 100644 meta/recipes-devtools/prelink/prelink/prelink.cron.daily
 delete mode 100644 meta/recipes-devtools/prelink/prelink/prelink.default
 delete mode 100644 meta/recipes-devtools/prelink/prelink_git.bb

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index cb289a0eee9..32ec391eb9e 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -577,7 +577,6 @@ RECIPE_MAINTAINER:pn-popt = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER:pn-powertop = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-ppp = "Hongxu Jia <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER:pn-ppp-dialin = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER:pn-prelink = "Mark Hatle <mark.hatle@kernel.crashing.org>"
 RECIPE_MAINTAINER:pn-procps = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-pseudo = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-psmisc = "Alexander Kanavin <alex.kanavin@gmail.com>"
diff --git a/meta/lib/oe/package_manager/ipk/rootfs.py b/meta/lib/oe/package_manager/ipk/rootfs.py
index 26dbee6f6ac..10a831994ee 100644
--- a/meta/lib/oe/package_manager/ipk/rootfs.py
+++ b/meta/lib/oe/package_manager/ipk/rootfs.py
@@ -145,51 +145,14 @@ class PkgRootfs(DpkgOpkgRootfs):
             self.pm.recover_packaging_data()
 
         bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
-
-    def _prelink_file(self, root_dir, filename):
-        bb.note('prelink %s in %s' % (filename, root_dir))
-        prelink_cfg = oe.path.join(root_dir,
-                                   self.d.expand('${sysconfdir}/prelink.conf'))
-        if not os.path.exists(prelink_cfg):
-            shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'),
-                        prelink_cfg)
-
-        cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink')
-        self._exec_shell_cmd([cmd_prelink,
-                              '--root',
-                              root_dir,
-                              '-amR',
-                              '-N',
-                              '-c',
-                              self.d.expand('${sysconfdir}/prelink.conf')])
-
     '''
     Compare two files with the same key twice to see if they are equal.
     If they are not equal, it means they are duplicated and come from
     different packages.
-    1st: Comapre them directly;
-    2nd: While incremental image creation is enabled, one of the
-         files could be probaly prelinked in the previous image
-         creation and the file has been changed, so we need to
-         prelink the other one and compare them.
     '''
     def _file_equal(self, key, f1, f2):
-
-        # Both of them are not prelinked
         if filecmp.cmp(f1, f2):
             return True
-
-        if bb.data.inherits_class('image-prelink', self.d):
-            if self.image_rootfs not in f1:
-                self._prelink_file(f1.replace(key, ''), f1)
-
-            if self.image_rootfs not in f2:
-                self._prelink_file(f2.replace(key, ''), f2)
-
-            # Both of them are prelinked
-            if filecmp.cmp(f1, f2):
-                return True
-
         # Not equal
         return False
 
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index 136650e6f74..84790b7dffa 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -537,17 +537,6 @@ class ThreadedPool:
         for worker in self.workers:
             worker.join()
 
-def write_ld_so_conf(d):
-    # Some utils like prelink may not have the correct target library paths
-    # so write an ld.so.conf to help them
-    ldsoconf = d.expand("${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf")
-    if os.path.exists(ldsoconf):
-        bb.utils.remove(ldsoconf)
-    bb.utils.mkdirhier(os.path.dirname(ldsoconf))
-    with open(ldsoconf, "w") as f:
-        f.write(d.getVar("base_libdir") + '\n')
-        f.write(d.getVar("libdir") + '\n')
-
 class ImageQAFailed(Exception):
     def __init__(self, description, name=None, logfile=None):
         self.description = description
diff --git a/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch b/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch
deleted file mode 100644
index da0275bfcdf..00000000000
--- a/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 05240e13668422c4f9118f2cde953ec875d0d68f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 14 Jan 2020 01:37:22 -0800
-Subject: [PATCH] Add MIPS gnu hash support
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/arch-mips.c | 1 +
- src/prelink.c   | 1 +
- src/prelink.h   | 5 +++++
- 3 files changed, 7 insertions(+)
-
---- a/src/arch-mips.c
-+++ b/src/arch-mips.c
-@@ -324,6 +324,7 @@ mips_adjust_dyn (DSO *dso, int n, GElf_D
-     case DT_MIPS_BASE_ADDRESS:
-     case DT_MIPS_RLD_MAP:
-     case DT_MIPS_OPTIONS:
-+    case DT_MIPS_XHASH:
-       if (dyn->d_un.d_ptr >= start)
- 	dyn->d_un.d_ptr += adjust;
-       return 1;
---- a/src/prelink.c
-+++ b/src/prelink.c
-@@ -425,6 +425,7 @@ prelink_prepare (DSO *dso)
- 	  {
- 	  case SHT_HASH:
- 	  case SHT_GNU_HASH:
-+	  case SHT_MIPS_XHASH:
- 	  case SHT_DYNSYM:
- 	  case SHT_REL:
- 	  case SHT_RELA:
---- a/src/prelink.h
-+++ b/src/prelink.h
-@@ -114,6 +114,11 @@ typedef uint8_t Elf64_Byte;
- #define SHT_MIPS_ABIFLAGS       0x7000002a
- #endif
- 
-+#ifndef SHT_MIPS_XHASH
-+#define DT_MIPS_XHASH	    0x70000036
-+#define SHT_MIPS_XHASH       0x7000002b
-+#endif
-+
- #ifndef RSS_UNDEF
- #define RSS_UNDEF              0
- #endif
---- a/src/dso.c
-+++ b/src/dso.c
-@@ -109,6 +109,11 @@ read_dynamic (DSO *dso)
- 		    dso->info_DT_GNU_HASH = dyn.d_un.d_val;
- 		    dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT);
- 		  }
-+		else if (dyn.d_tag == DT_MIPS_XHASH)
-+		  {
-+		    dso->info_DT_GNU_HASH = dyn.d_un.d_val;
-+		    dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT);
-+		  }
- 		else if (dyn.d_tag == DT_TLSDESC_PLT)
- 		  {
- 		    dso->info_DT_TLSDESC_PLT = dyn.d_un.d_val;
-@@ -1463,6 +1468,7 @@ adjust_dso (DSO *dso, GElf_Addr start, G
- 	  break;
- 	case SHT_HASH:
- 	case SHT_GNU_HASH:
-+	case SHT_MIPS_XHASH:
- 	case SHT_NOBITS:
- 	case SHT_STRTAB:
- 	  break;
---- a/src/space.c
-+++ b/src/space.c
-@@ -61,6 +61,7 @@ print_sections (DSO *dso, GElf_Ehdr *ehd
-       { SHT_GNU_versym, "VERSYM" },
-       { SHT_GNU_LIBLIST, "LIBLIST" },
-       { SHT_GNU_HASH, "GNU_HASH" },
-+      { SHT_MIPS_XHASH, "MIPS_XHASH" },
-       { 0, NULL }
-     };
- 
-@@ -183,6 +184,7 @@ readonly_is_movable (DSO *dso, GElf_Ehdr
-     {
-     case SHT_HASH:
-     case SHT_GNU_HASH:
-+    case SHT_MIPS_XHASH:
-     case SHT_DYNSYM:
-     case SHT_REL:
-     case SHT_RELA:
-@@ -558,6 +560,7 @@ find_readonly_space (DSO *dso, GElf_Shdr
- 		    {
- 		    case SHT_HASH:
- 		    case SHT_GNU_HASH:
-+		    case SHT_MIPS_XHASH:
- 		    case SHT_DYNSYM:
- 		    case SHT_STRTAB:
- 		    case SHT_GNU_verdef:
---- a/src/exec.c
-+++ b/src/exec.c
-@@ -65,7 +65,11 @@ update_dynamic_tags (DSO *dso, GElf_Shdr
- 	  || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT)
- 	      && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr
- 	      && old_shdr[j].sh_type == SHT_GNU_HASH
--	      && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1)))
-+	      && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1))
-+	  || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT)
-+	      && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr
-+	      && old_shdr[j].sh_type == SHT_MIPS_XHASH
-+	      && set_dynamic (dso, DT_MIPS_XHASH, shdr[i].sh_addr, 1)))
- 	return 1;
-     }
- 
diff --git a/meta/recipes-devtools/prelink/prelink/macros.prelink b/meta/recipes-devtools/prelink/prelink/macros.prelink
deleted file mode 100644
index cb166958850..00000000000
--- a/meta/recipes-devtools/prelink/prelink/macros.prelink
+++ /dev/null
@@ -1,5 +0,0 @@
-# rpm-4.1 verifies prelinked libraries using a prelink undo helper.
-#       Note: The 2nd token is used as argv[0] and "library" is a
-#       placeholder that will be deleted and replaced with the appropriate
-#       library file path.
-%__prelink_undo_cmd     /usr/sbin/prelink prelink -y library
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.conf b/meta/recipes-devtools/prelink/prelink/prelink.conf
deleted file mode 100644
index 562f23c59d2..00000000000
--- a/meta/recipes-devtools/prelink/prelink/prelink.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-# This config file contains a list of directories both with binaries
-# and libraries prelink should consider by default.
-# If a directory name is prefixed with `-l ', the directory hierarchy
-# will be walked as long as filesystem boundaries are not crossed.
-# If a directory name is prefixed with `-h ', symbolic links in a
-# directory hierarchy are followed.
--l /usr/local/sbin
--l /sbin
--l /usr/sbin
--l /usr/local/bin
--l /bin
--l /usr/bin
--l /usr/X11R6/bin
--l /usr/games
--l /usr/local/lib{,32,64,x32}
--l /lib{,32,64,x32}
--l /usr/lib{,32,64,x32}
--l /usr/X11R6/lib{,32,64,x32}
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.cron.daily b/meta/recipes-devtools/prelink/prelink/prelink.cron.daily
deleted file mode 100644
index 0b3c07322c7..00000000000
--- a/meta/recipes-devtools/prelink/prelink/prelink.cron.daily
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-. /etc/default/prelink
-
-renice +19 -p $$ >/dev/null 2>&1
-
-if [ "$PRELINKING" != yes ]; then
-  if [ -f /etc/prelink.cache ]; then
-    echo /usr/sbin/prelink -uav > /var/log/prelink.log
-    /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1
-    rm -f /etc/prelink.cache
-    # Restart init if needed
-    [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
-  fi
-  exit 0
-fi
-
-if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \
-   || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then
-  # If cache does not exist or is from older prelink versions or
-  # if we were asked to explicitely, force full prelinking
-  rm -f /etc/prelink.cache /var/lib/misc/prelink.force
-  PRELINK_OPTS="$PRELINK_OPTS -f"
-  date > /var/lib/misc/prelink.full
-elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \
-       -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \
-	  = /var/lib/misc/prelink.full ]; then
-  # If prelink without -q has been run in the last
-  # PRELINK_FULL_TIME_INTERVAL days, just use quick mode
-  PRELINK_OPTS="$PRELINK_OPTS -q"
-else
-  date > /var/lib/misc/prelink.full
-fi
-
-echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log
-/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1
-# Restart init if needed
-[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
-
-exit 0
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.default b/meta/recipes-devtools/prelink/prelink/prelink.default
deleted file mode 100644
index d8802f820ae..00000000000
--- a/meta/recipes-devtools/prelink/prelink/prelink.default
+++ /dev/null
@@ -1,22 +0,0 @@
-# Set this to no to disable prelinking altogether
-# or to yes to enable it.
-# (if you change this from yes to no prelink -ua
-# will be run next night to undo prelinking)
-PRELINKING=yes
-
-# Options to pass to prelink
-# -m	Try to conserve virtual memory by allowing overlapping
-#	assigned virtual memory slots for libraries which
-#	never appear together in one binary
-# -R	Randomize virtual memory slot assignments for libraries.
-#	This makes it slightly harder for various buffer overflow
-#	attacks, since library addresses will be different on each
-#	host using -R.
-PRELINK_OPTS=-mR
-
-# How often should full prelink be run (in days)
-# Normally, prelink will be run in quick mode, every
-# $PRELINK_FULL_TIME_INTERVAL days it will be run
-# in normal mode.  Comment this line out if prelink 
-# should be run in normal mode always.
-PRELINK_FULL_TIME_INTERVAL=14
diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
deleted file mode 100644
index 24713b61f84..00000000000
--- a/meta/recipes-devtools/prelink/prelink_git.bb
+++ /dev/null
@@ -1,185 +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 = "f9975537dbfd9ade0fc813bd5cf5fcbe41753a37"
-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_staging \
-           file://0001-Add-MIPS-gnu-hash-support.patch \
-           file://prelink.conf \
-           file://prelink.cron.daily \
-           file://prelink.default \
-           file://macros.prelink \
-           "
-UPSTREAM_CHECK_COMMITS = "1"
-
-# error: error.h: No such file or directory
-COMPATIBLE_HOST:libc-musl = 'null'
-
-TARGET_OS_ORIG := "${TARGET_OS}"
-OVERRIDES:append = ":${TARGET_OS_ORIG}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools 
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECONF = "--with-pkgversion=${PV}-${PR} \
-	--with-bugurl=http://bugzilla.yoctoproject.org/"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
-
-#
-# 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
-}
-
diff --git a/scripts/sstate-sysroot-cruft.sh b/scripts/sstate-sysroot-cruft.sh
index fbf1ca3c431..9c948e932de 100755
--- a/scripts/sstate-sysroot-cruft.sh
+++ b/scripts/sstate-sysroot-cruft.sh
@@ -145,18 +145,6 @@ WHITELIST="${WHITELIST} \
   .*/var/cache/fontconfig/ \
 "
 
-# created by oe.utils.write_ld_so_conf which is used from few bbclasses and recipes:
-# meta/classes/image-prelink.bbclass:    oe.utils.write_ld_so_conf(d)
-# meta/classes/insane.bbclass:                oe.utils.write_ld_so_conf(d)
-# meta/classes/insane.bbclass:                oe.utils.write_ld_so_conf(d)
-# meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb:    oe.utils.write_ld_so_conf(d)
-# meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb:        oe.utils.write_ld_so_conf(d)
-# introduced in oe-core commit 7fd1d7e639c2ed7e0699937a5cb245c187b7c811
-# and more visible since added to gobject-introspection in 10e0c1a3a452baa05d160a92a54b2e33cf0fd061
-WHITELIST="${WHITELIST} \
-  [^/]*/etc/ld.so.conf \
-"
-
 SYSROOTS="`readlink -f ${tmpdir}`/sysroots/"
 
 mkdir ${OUTPUT}
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH 2/2] glibc: Drop prelink patch
  2022-02-03 16:52 [PATCH 1/2] prelink: Drop support for it Richard Purdie
@ 2022-02-03 16:52 ` Richard Purdie
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Purdie @ 2022-02-03 16:52 UTC (permalink / raw)
  To: openembedded-core

With the removal of prelink, we no longer need the glibc patch for it
either.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 ...ke-_dl_build_local_scope-breadth-fir.patch | 53 -------------------
 meta/recipes-core/glibc/glibc_2.34.bb         |  1 -
 2 files changed, 54 deletions(-)
 delete mode 100644 meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch

diff --git a/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch
deleted file mode 100644
index fb0a609dbbd..00000000000
--- a/meta/recipes-core/glibc/glibc/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 50b605dece16606dd9d1c737e579c13725eab11d Mon Sep 17 00:00:00 2001
-From: Mark Hatle <mark.hatle@windriver.com>
-Date: Thu, 18 Aug 2016 14:07:58 -0500
-Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first
-
-According to the ELF specification:
-
-When resolving symbolic references, the dynamic linker examines the symbol
-tables with a breadth-first search.
-
-This function was using a depth first search.  By doing so the conflict
-resolution reported to the prelinker (when LD_TRACE_PRELINKING=1 is set)
-was incorrect.  This caused problems when their were various circular
-dependencies between libraries.  The problem usually manifested itself by
-the wrong IFUNC being executed.
-
-[BZ# 20488]
-
-Upstream-Status: Submitted [libc-alpha]
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
----
- elf/dl-deps.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/elf/dl-deps.c b/elf/dl-deps.c
-index 087a49b212..c09f9334f2 100644
---- a/elf/dl-deps.c
-+++ b/elf/dl-deps.c
-@@ -73,13 +73,19 @@ _dl_build_local_scope (struct link_map **list, struct link_map *map)
- {
-   struct link_map **p = list;
-   struct link_map **q;
-+  struct link_map **r;
- 
-   *p++ = map;
-   map->l_reserved = 1;
--  if (map->l_initfini)
--    for (q = map->l_initfini + 1; *q; ++q)
--      if (! (*q)->l_reserved)
--	p += _dl_build_local_scope (p, *q);
-+
-+  for (r = list; r < p; ++r)
-+    if ((*r)->l_initfini)
-+      for (q = (*r)->l_initfini + 1; *q; ++q)
-+	if (! (*q)->l_reserved)
-+	  {
-+	    *p++ = *q;
-+	    (*q)->l_reserved = 1;
-+	  }
-   return p - list;
- }
- 
diff --git a/meta/recipes-core/glibc/glibc_2.34.bb b/meta/recipes-core/glibc/glibc_2.34.bb
index f67ef7818c4..67464d6ce0c 100644
--- a/meta/recipes-core/glibc/glibc_2.34.bb
+++ b/meta/recipes-core/glibc/glibc_2.34.bb
@@ -42,7 +42,6 @@ SRC_URI =  "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
            file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \
            file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
            file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
-           file://0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \
            file://0026-intl-Emit-no-lines-in-bison-generated-files.patch \
            file://0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
            file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-02-03 16:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-03 16:52 [PATCH 1/2] prelink: Drop support for it Richard Purdie
2022-02-03 16:52 ` [PATCH 2/2] glibc: Drop prelink patch Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.