path: root/meta/lib
diff options
authorRichard Purdie <>2016-03-04 16:27:11 (GMT)
committerRichard Purdie <>2016-03-07 00:11:39 (GMT)
commit0b84897ea813a4f7a8b198efcc7ac335debf19d9 (patch)
treeba827f0c0486936de4616efc8eeb24876e90474f /meta/lib
parent6b564ae35d35693476513141ab9ae49aa734c7eb (diff)
insane/prelink: Handle nonstandard library paths
Prelink contains some hardcoded assumptions about the path layout of the target system. Unfortunately if the system doesn't match, prelink doesn't work. This breaks: a) prelink of those images b) the unsafe-references-in-binaries QA test (which uses prelink-rtld) One way to work around this is to construct an file which lists the library paths in question. We do this in sanity QA check and in the rootfs prelink code, being careful not to trample any existing target There is an additional problem that $LIB references in RPATHs won't be handled correctly, I've not see any system use these in reality though so this change at least improves things. (From OE-Core rev: 7fd1d7e639c2ed7e0699937a5cb245c187b7c811) Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta/lib')
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/lib/oe/ b/meta/lib/oe/
index 9a86410..30d3062 100644
--- a/meta/lib/oe/
+++ b/meta/lib/oe/
@@ -293,3 +293,14 @@ class ThreadedPool:
293 self.tasks.join() 293 self.tasks.join()
294 for worker in self.workers: 294 for worker in self.workers:
295 worker.join() 295 worker.join()
297def write_ld_so_conf(d):
298 # Some utils like prelink may not have the correct target library paths
299 # so write an to help them
300 ldsoconf = d.expand("${STAGING_DIR_TARGET}${sysconfdir}/")
301 if os.path.exists(ldsoconf):
302 bb.utils.remove(ldsoconf)
303 bb.utils.mkdirhier(os.path.dirname(ldsoconf))
304 with open(ldsoconf, "w") as f:
305 f.write(d.getVar("base_libdir", True) + '\n')
306 f.write(d.getVar("libdir", True) + '\n')