From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6806948680239677440 X-Received: by 2002:ac2:4987:: with SMTP id f7mr2515462lfl.207.1585394696647; Sat, 28 Mar 2020 04:24:56 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:ac2:58f1:: with SMTP id v17ls2147270lfo.8.gmail; Sat, 28 Mar 2020 04:24:55 -0700 (PDT) X-Google-Smtp-Source: APiQypLPRCPxmzZ368Kv+U5mzIpAvpeTCqQrBgouX9ruDd3F+dAsZsRdfFRr6OZet5591ep1NJ3I X-Received: by 2002:ac2:532f:: with SMTP id f15mr2489268lfh.106.1585394695644; Sat, 28 Mar 2020 04:24:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585394695; cv=none; d=google.com; s=arc-20160816; b=iRZu/YfcQY62HoeEzRkzRJ1gxD2HuG1NH4LkyvD0vJhYHDo+3kN1gDqBuJ6ii/eFHl CmNbzgl64TFXSm+SAoSByxULLb6CPJNTkFBx21b162/O48d87AXHhUdVHzqHcxT4yZTk d+oqt+iGgt1D2XdAL6lb3zGbKAQHxmKRb3wXT3f4zKCrFV4tycf21zlCkLmOZEPiUTht LZEuYSNt9uPnXVKskSasG1KFXapRzE+YnuPzjJQCoPVl1DT0og74/j2pHQo/8+ymqI6z m0o2F73nY8lbFRALPXmdnlawHUVXfLK9alySlHGFddyy2JCxPwRH+KUNKMhyPEUKuRlM KFiw== 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=F0kOXM/s1/rRkFmKcAt9ipkhdsWzpGm4A5po1ktgSos=; b=DdMhzSzM/cuVpfeQ4xZbfcS7SNZuxh6kOP/JdeatOc0hBWXgTtSkuNifd9wAN0MooD /NXfzxg6frvD8a/hVUA+H0tgAm9t/FhTWLn+mSidFJhtguP0t3SY7rs48dxw0PSJEGll ZswhYQo0faJqDzxfVMqeXkvDsF9BK2SYXMAq6i2D2kJyVqUKFUcyI+yZbcycRhl2Esb6 ldhLstbYWv1l9tr7Zin5RdLddNfUmPvIJEy3CFGSMH93aHXs59YuEtYyzauMAdp5f9OC Cj0s6+8neUi4XrWzSnv/etr3nuejXVESOoP1bo0F7fvsUH7Jg3lA3ffggvxW23Z7vJpi XZvA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 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 lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id p5si503456ljj.3.2020.03.28.04.24.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 28 Mar 2020 04:24:55 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 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 lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 02SBOs3D003796 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 28 Mar 2020 12:24:54 +0100 Received: from md1f2u6c.ad001.siemens.net ([167.87.129.190]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 02SBOlvq027066; Sat, 28 Mar 2020 12:24:53 +0100 From: Jan Kiszka To: isar-users Cc: Chao Zeng , Le Jin , Christopher Larson Subject: [PATCH v2 3/6] sdk: Add script to relocate SDK Date: Sat, 28 Mar 2020 12:24:43 +0100 Message-Id: <1560303a740c1dfa2624b92d98e2be35a0e9a597.1585394686.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: kkVpx34ABpta 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.16.4