diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-03 16:48:56 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-05 12:26:36 +0000 |
commit | a242274d98e6f0f8d2aa21f778df690de7b42144 (patch) | |
tree | ff784d0fb2d5ca91387da92db7379cf18ab54707 /meta/lib | |
parent | c98fc3933142783db2ed735d971a8c5b8408344c (diff) | |
download | poky-a242274d98e6f0f8d2aa21f778df690de7b42144.tar.gz |
prelink: Drop support for it
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.
(From OE-Core rev: 23c0be78106f1d1e2bb9c724174a1bb8c56c2469)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/package_manager/ipk/rootfs.py | 37 | ||||
-rw-r--r-- | meta/lib/oe/utils.py | 11 |
2 files changed, 0 insertions, 48 deletions
diff --git a/meta/lib/oe/package_manager/ipk/rootfs.py b/meta/lib/oe/package_manager/ipk/rootfs.py index 26dbee6f6a..10a831994e 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): | |||
145 | self.pm.recover_packaging_data() | 145 | self.pm.recover_packaging_data() |
146 | 146 | ||
147 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) | 147 | bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) |
148 | |||
149 | def _prelink_file(self, root_dir, filename): | ||
150 | bb.note('prelink %s in %s' % (filename, root_dir)) | ||
151 | prelink_cfg = oe.path.join(root_dir, | ||
152 | self.d.expand('${sysconfdir}/prelink.conf')) | ||
153 | if not os.path.exists(prelink_cfg): | ||
154 | shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'), | ||
155 | prelink_cfg) | ||
156 | |||
157 | cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink') | ||
158 | self._exec_shell_cmd([cmd_prelink, | ||
159 | '--root', | ||
160 | root_dir, | ||
161 | '-amR', | ||
162 | '-N', | ||
163 | '-c', | ||
164 | self.d.expand('${sysconfdir}/prelink.conf')]) | ||
165 | |||
166 | ''' | 148 | ''' |
167 | Compare two files with the same key twice to see if they are equal. | 149 | Compare two files with the same key twice to see if they are equal. |
168 | If they are not equal, it means they are duplicated and come from | 150 | If they are not equal, it means they are duplicated and come from |
169 | different packages. | 151 | different packages. |
170 | 1st: Comapre them directly; | ||
171 | 2nd: While incremental image creation is enabled, one of the | ||
172 | files could be probaly prelinked in the previous image | ||
173 | creation and the file has been changed, so we need to | ||
174 | prelink the other one and compare them. | ||
175 | ''' | 152 | ''' |
176 | def _file_equal(self, key, f1, f2): | 153 | def _file_equal(self, key, f1, f2): |
177 | |||
178 | # Both of them are not prelinked | ||
179 | if filecmp.cmp(f1, f2): | 154 | if filecmp.cmp(f1, f2): |
180 | return True | 155 | return True |
181 | |||
182 | if bb.data.inherits_class('image-prelink', self.d): | ||
183 | if self.image_rootfs not in f1: | ||
184 | self._prelink_file(f1.replace(key, ''), f1) | ||
185 | |||
186 | if self.image_rootfs not in f2: | ||
187 | self._prelink_file(f2.replace(key, ''), f2) | ||
188 | |||
189 | # Both of them are prelinked | ||
190 | if filecmp.cmp(f1, f2): | ||
191 | return True | ||
192 | |||
193 | # Not equal | 156 | # Not equal |
194 | return False | 157 | return False |
195 | 158 | ||
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index 136650e6f7..84790b7dff 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py | |||
@@ -537,17 +537,6 @@ class ThreadedPool: | |||
537 | for worker in self.workers: | 537 | for worker in self.workers: |
538 | worker.join() | 538 | worker.join() |
539 | 539 | ||
540 | def write_ld_so_conf(d): | ||
541 | # Some utils like prelink may not have the correct target library paths | ||
542 | # so write an ld.so.conf to help them | ||
543 | ldsoconf = d.expand("${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf") | ||
544 | if os.path.exists(ldsoconf): | ||
545 | bb.utils.remove(ldsoconf) | ||
546 | bb.utils.mkdirhier(os.path.dirname(ldsoconf)) | ||
547 | with open(ldsoconf, "w") as f: | ||
548 | f.write(d.getVar("base_libdir") + '\n') | ||
549 | f.write(d.getVar("libdir") + '\n') | ||
550 | |||
551 | class ImageQAFailed(Exception): | 540 | class ImageQAFailed(Exception): |
552 | def __init__(self, description, name=None, logfile=None): | 541 | def __init__(self, description, name=None, logfile=None): |
553 | self.description = description | 542 | self.description = description |