From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6806948680239677440 X-Received: by 2002:a05:651c:2042:: with SMTP id t2mr9800982ljo.188.1584866244197; Sun, 22 Mar 2020 01:37:24 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:9099:: with SMTP id l25ls64287ljg.7.gmail; Sun, 22 Mar 2020 01:37:23 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtL/Eb8cIDBK6YjBonWTvqyhN1gw0GtRVtvb5QfGQo2SfdjCdrQE59xGCr+CC0lBfl4YDvm X-Received: by 2002:a2e:2ac2:: with SMTP id q185mr4791691ljq.269.1584866243287; Sun, 22 Mar 2020 01:37:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584866243; cv=none; d=google.com; s=arc-20160816; b=KMHBznJ+1Q7fUPWCGFtMLO6l+62FnGhyJEjnudGin9OVyWGC0wJ9RFfTnkghuFYxt1 irKdvV/3IOWwnAnZC6mgEd5+1BJN/TNj9+X9ijVkm/oUQwV25OirHnPj7G51JEZYqh2E aoG77NK4/8fyJAMNg4j99kGqlbF3K4hBpLJ3fuSuEcZRZ+hkbcUeZkhCFZTxe0Uuy3HN DevBRfI3WNcoV6IMI6fW//1/FrgsiswrNpXJlr0bNhnZU/FhVLSwLCP6VivAMM4CVIe+ pySCHnMuiwy2C8nQkeJnIUSUxhWOoM09+WBTMhKUO71wkGt11gwIirrleT6bSRgWuP7o 0WNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:cc:to:from; bh=p8OOzN5AwGwZLm4+PZMe82WBaHa/H9vaGNs7REh6zXs=; b=G81s1X2iFQa6juoII/DEh2/WlH8nFkC9MAW1S0vSlTJJxlXnm44dHth8dUwWu3/gjs kR4qgbrc+F5OWdgbajvDfWHJS3K2z0Sfd4Upvl35OG+ekhH9iSKWdnNXiv+C2da/EqLz Q1AY8cEWDwymoiRfBkaF0NhXQO6JJsOd9XbyEIOaDseg0Pl5xeZHj9eT/XdUEKLz86+k v7uLhlqPjw1U2x3qkT8elBDcEzcHg0LGzXXsqigH5R7UL6b/14oQ2mlXkNnz0vg5k5g/ ywfn6+AdqBQ3dOxu+yl04HXbfK+kz7UB5zPyIGAS8ktkRaP/j9T1CfHuQfvsiQElYp4T Xz0A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id e4si410493ljn.1.2020.03.22.01.37.23 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Mar 2020 01:37:23 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id 02M8bMOw003912 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 22 Mar 2020 09:37:22 +0100 Received: from md1f2u6c.ad001.siemens.net ([167.87.6.154]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 02M8bL9X021520; Sun, 22 Mar 2020 09:37:22 +0100 From: Jan Kiszka To: isar-users Cc: Chao Zeng , Le Jin Subject: [PATCH 3/6] sdk: Add script to relocate SDK Date: Sun, 22 Mar 2020 09:37:18 +0100 Message-Id: X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: H4jYVGer6jRS From: Jan Kiszka When run inside the unpacked SDK, this script tunes interp and rpath entry in relevant binaries so that the cross conpilation tool can be called outside of the chroot, irrespective of the host distribution. Then only "--sysroot /path/to/sdkroot" needs to be passed to the compiler. Signed-off-by: Jan Kiszka --- .../sdkchroot/files/relocate-sdk.sh | 29 ++++++++++++++++++++++ meta/recipes-devtools/sdkchroot/sdkchroot.bb | 2 ++ 2 files changed, 31 insertions(+) create mode 100755 meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh diff --git a/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh b/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh new file mode 100755 index 00000000..98827139 --- /dev/null +++ b/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# This software is a part of ISAR. +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +sdkroot=$(realpath $(dirname $0)) +arch=$(uname -m) + +if [ -z $(which patchelf 2>/dev/null) ]; then + echo "Please install 'patchelf' package first." + exit 1 +fi + +echo -n "Adjusting path of SDK to '${sdkroot}'... " + +for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f); do + interpreter=$(patchelf --print-interpreter ${binary} 2>/dev/null) + oldpath=${interpreter%/lib*/ld-linux*} + interpreter=${interpreter#${oldpath}} + if [ -n "${interpreter}" ]; then + patchelf --set-interpreter ${sdkroot}${interpreter} \ + --set-rpath ${sdkroot}/usr/lib:${sdkroot}/usr/lib/${arch}-linux-gnu \ + $binary 2>/dev/null + fi +done + +echo "done" diff --git a/meta/recipes-devtools/sdkchroot/sdkchroot.bb b/meta/recipes-devtools/sdkchroot/sdkchroot.bb index ab0a66dc..2bc9d291 100644 --- a/meta/recipes-devtools/sdkchroot/sdkchroot.bb +++ b/meta/recipes-devtools/sdkchroot/sdkchroot.bb @@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 SRC_URI = " \ file://configscript.sh \ + file://relocate-sdk.sh \ file://README.sdk" PV = "0.1" @@ -58,6 +59,7 @@ ROOTFS_POSTPROCESS_COMMAND =+ "sdkchroot_install_files" sdkchroot_install_files() { # Configure root filesystem sudo install -m 644 ${WORKDIR}/README.sdk ${S} + sudo install -m 755 ${WORKDIR}/relocate-sdk.sh ${S} sudo install -m 755 ${WORKDIR}/configscript.sh ${S} sudo chroot ${S} /configscript.sh ${DISTRO_ARCH} } -- 2.16.4