From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6875334414772994048 X-Received: by 2002:a5d:6b84:: with SMTP id n4mr6494395wrx.55.1600788539702; Tue, 22 Sep 2020 08:28:59 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:c2c1:: with SMTP id s184ls1745195wmf.2.canary-gmail; Tue, 22 Sep 2020 08:28:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFvx46YZp4jSEI0jTFfmfp7opxtClx6gZwSw0ninrXp+bkOUmhCbtAkpevIY4nLYH/YXLP X-Received: by 2002:a1c:ed09:: with SMTP id l9mr1607591wmh.89.1600788538650; Tue, 22 Sep 2020 08:28:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600788538; cv=none; d=google.com; s=arc-20160816; b=UhlpXXQQFb8yAkv9DZ8f4vZFFMTNQhWHKlJtscfkUKh7os4U9FynFIQqcGKU8fJ10G OCPL9mWyN8pRIFzMEeObxRcesKpnw0fXPFR+5Y07ci/cW2FZLDUacPAJC/3sRGj7AsWT iC9raPsas9IZem2EtBTWeDGuQqpucYC9XfXXTZNorNRMlJk3zIqu3E4qzm4D5SO0IC2O C80ZV6PlX1rjpzVlq4zU1YXAmBmT/aFkna5pquQLEVaA9Cy2SKBe+xcRL8ggdev8FgZK XC88s8gNEVsGG7ArodmqFSX03ejjAeBC4oSj4M5e/A5q4mz6jXjD4eDoESFE1GHbYK7F fo/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=q58MMxBk01Ow2bFJpau7WzmX6HvMorLpcQ8SGnd8i7s=; b=iMuDNlKwaT+bGN23UnKmtV7yMTQeUZt71erXRdsvt14XKXZYg75uB90Q1X10Dyjrft 4TtgAEW2oUJUzyWfZXVo4XvpmbqT9ycnA0RU0XZKGp3cbUh5I4KVBrb3i/+pvvie9njw BznLznG5lhRZ4YlPpMJ1L2ghc/qR0UracfAfWEQO3ts9Q/YPVkl+9gnncDcQAn1QqnB5 U5cipJPx2Anz0AD9B41ZU0rYhSi3smwwHUVks60YgusKVyc9MSZmHJfNY8wQR4BVi8VG 13C1ji9oOEeo5OdWpHb/yRZOgajYo2Wwr4UIG4g7AkkJ7ClrKmX/kLo8tGlAjD4HiAKd bEbg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 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 goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id h2si113690wml.4.2020.09.22.08.28.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Sep 2020 08:28:58 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 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 goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 08MFSvPQ002235 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 22 Sep 2020 17:28:58 +0200 Received: from md1f2u6c.ad001.siemens.net ([139.22.130.132]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 08MFSsVB031723 for ; Tue, 22 Sep 2020 17:28:57 +0200 From: Jan Kiszka To: isar-users Subject: [PATCH v3 08/16] sdk: Add script to relocate SDK Date: Tue, 22 Sep 2020 17:28:46 +0200 Message-Id: <2d6a8a8d664a0c2023da1d7a8520496e0418a173.1600788534.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: 4GePMvcMUANE 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. The script also supports restoring the original chroot-mode when invoked with the --restore-chroot option. Signed-off-by: Jan Kiszka --- .../sdkchroot/files/relocate-sdk.sh | 41 +++++++++++++++++++ meta/recipes-devtools/sdkchroot/sdkchroot.bb | 2 + 2 files changed, 43 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..1c9b02fa --- /dev/null +++ b/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh @@ -0,0 +1,41 @@ +#!/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) + +new_sdkroot=$sdkroot + +case "$1" in +--help|-h) + echo "Usage: $0 [--restore-chroot|-r]" + exit 0 + ;; +--restore-chroot|-r) + new_sdkroot=/ + ;; +esac + +if [ -z $(which patchelf 2>/dev/null) ]; then + echo "Please install 'patchelf' package first." + exit 1 +fi + +echo -n "Adjusting path of SDK to '${new_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 ${new_sdkroot}${interpreter} \ + --set-rpath ${new_sdkroot}/usr/lib:${new_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.26.2