Hi all,

today I wanted to make the generated toolchain free of RPATH and I was a bit
surprised to see that even the target libraries contain the rpath and that it
is not caught by insane.bbclass.

I have added a more strict check to insane.bbclass to uncover the issue and I
am fighting neon and its manual libtool usage right now... it might be just
easier to use chrpath to fix the resulting libraries.

any opinion?
>From 18a9dbf4d6925a789e5ecf2852e094c0b1d851fe Mon Sep 17 00:00:00 2001
From: Holger Hans Peter Freyther <[email protected]>
Date: Sat, 2 Oct 2010 17:14:33 +0800
Subject: [PATCH] insane.bbclass: Check for RPATH to the sysroot and complain

For non-native packages having an rpath to the sysroot is
considered harmful and needs to be fixed. This uncovered
issues in neon and other packages.
---
 classes/insane.bbclass |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 5afa63c..0515158 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -168,10 +168,13 @@ def package_qa_check_rpath(file,name,d, elf):
     if not bad_dir in bb.data.getVar('WORKDIR', d, True):
         bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
 
+    sysroot = bb.data.getVar('STAGING_DIR_HOST', d, True)
+    native = bb.data.inherits_class('native', d)
+
     output = os.popen("%s -B -F%%r#F '%s'" % (scanelf,file))
     txt    = output.readline().split()
     for line in txt:
-        if bad_dir in line:
+        if bad_dir in line or (not native and sysroot in line):
             error_msg = "package %s contains bad RPATH %s in file %s" % (name, line, file)
             sane = package_qa_handle_error(1, error_msg, name, file, d)
 
-- 
1.7.3.1

_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to