From patchwork Sat Nov 23 11:12:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Morten Svendsen X-Patchwork-Id: 293653 X-Patchwork-Delegate: esben@haabendal.dk Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hugin.dotsrc.org (hugin.dotsrc.org [IPv6:2001:878:346::102]) by ozlabs.org (Postfix) with ESMTP id 76F4A2C00C3 for ; Sat, 23 Nov 2013 22:12:25 +1100 (EST) Received: from hugin.dotsrc.org (localhost [127.0.0.1]) by hugin.dotsrc.org (Postfix) with ESMTP id 783183FEC8 for ; Sat, 23 Nov 2013 12:12:24 +0100 (CET) X-Original-To: dev@oe-lite.org Delivered-To: dev@oe-lite.org Received: from mail02.prevas.se (mail02.prevas.se [62.95.78.10]) by hugin.dotsrc.org (Postfix) with ESMTPS id 3D0843FE8F for ; Sat, 23 Nov 2013 12:12:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=prevas.dk; i=@prevas.dk; l=2207; q=dns/txt; s=ironport2; t=1385205143; x=1416741143; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=XcwrX6GuWn/RwSn12zR/jhNSFd0t0fie7dTwA7wMWxI=; b=qWAg8W19hHr985ql9VIqP3MkpKEsXn2OI9sfzczYvyGsppBh4aEjUuHm Dt3mH18FkvxAU6lKbxN6TAW4j98EAa7mmRl1lGBXp3nZ2FNVh06jrFdlq iGkuK2rDRKLxunQ2n1TLyjqRx7PPp+vu9OJ2M0S4J6WmImmevKo4YnBiG Y=; X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtwGAEyNkFJauXn3/2dsb2JhbABZtBmMFoEwdIImAQVmExBRV4geAcAGF48HBxaEHQOYFIpLh0eDKTs X-IPAS-Result: AtwGAEyNkFJauXn3/2dsb2JhbABZtBmMFoEwdIImAQVmExBRV4geAcAGF48HBxaEHQOYFIpLh0eDKTs X-IronPort-AV: E=Sophos;i="4.93,758,1378850400"; d="scan'208";a="62824" Received: from 0128800289.0.fullrate.dk (HELO moth.P-2812HNU-F1) ([90.185.121.247]) by mail02.prevas.se with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 Nov 2013 12:12:22 +0100 From: Morten Thunberg Svendsen To: dev@oe-lite.org Subject: [PATCH 1/4] classes/rpath: Added rpath class with chrpath_get_cmd() function Date: Sat, 23 Nov 2013 12:12:14 +0100 Message-Id: X-Mailer: git-send-email 1.8.3.2 In-Reply-To: References: Cc: Morten Thunberg Svendsen X-BeenThere: dev@oe-lite.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: OE-lite development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dev-bounces@oe-lite.org Errors-To: dev-bounces@oe-lite.org --- classes/rpath.oeclass | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 classes/rpath.oeclass diff --git a/classes/rpath.oeclass b/classes/rpath.oeclass new file mode 100644 index 0000000..fc49247 --- /dev/null +++ b/classes/rpath.oeclass @@ -0,0 +1,47 @@ +## rpath helper functions +## + +CHRPATH_BUILD ?= "${BUILD_PREFIX}chrpath" +CHRPATH_HOST ?= "${HOST_PREFIX}chrpath" +CHRPATH_TARGET ?= "${TARGET_PREFIX}chrpath" + +CLASS_DEPENDS += "${CHRPATH_DEPENDS}" +CHRPATH_DEPENDS:native = "${CHRPATH_DEPENDS_NATIVE}" +CHRPATH_DEPENDS:cross = "${CHRPATH_DEPENDS_NATIVE} ${CHRPATH_DEPENDS_HOST}" +CHRPATH_DEPENDS:machine = "${CHRPATH_DEPENDS_HOST}" +CHRPATH_DEPENDS:sdk-cross = "${CHRPATH_DEPENDS_NATIVE} ${CHRPATH_DEPENDS_HOST}" +CHRPATH_DEPENDS:sdk = "${CHRPATH_DEPENDS_HOST}" +CHRPATH_DEPENDS:canadian-cross = "${CHRPATH_DEPENDS_NATIVE} ${CHRPATH_DEPENDS_HOST} ${CHRPATH_DEPENDS_TARGET}" +CHRPATH_DEPENDS_NATIVE = "native:chrpath" +CHRPATH_DEPENDS_HOST = "host-cross:chrpath" +CHRPATH_DEPENDS_HOST:HOST_LIBC_mingw = "" +CHRPATH_DEPENDS_TARGET = "target-cross:chrpath" +CHRPATH_DEPENDS_TARGET:TARGET_LIBC_mingw = "" + +def chrpath_get_cmd(d,filetype): + + chrpath_cmd = {} + for elf_type in ("BUILD", "HOST", "TARGET"): + chrpath_cmd[elf_type] = (d.get("%s_ELF"%(elf_type)), + d.get("CHRPATH_%s"%(elf_type))) + if chrpath_cmd["TARGET"][0] == chrpath_cmd["HOST"][0]: + del chrpath_cmd["TARGET"] + if chrpath_cmd["HOST"][0] == chrpath_cmd["BUILD"][0]: + del chrpath_cmd["HOST"] + for elf_type in chrpath_cmd: + if not chrpath_cmd[elf_type][0]: + del chrpath_cmd[elf_type] + else: + chrpath_cmd[elf_type] = (re.compile(chrpath_cmd[elf_type][0]), + chrpath_cmd[elf_type][1]) + + if not "dynamically linked" in filetype: + return None + for elf_type in chrpath_cmd: + if chrpath_cmd[elf_type][0].match(filetype): + return chrpath_cmd[elf_type][1] + return None + +# Local Variables: +# mode: python +# End: