From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6880878174534631424 X-Received: by 2002:a2e:99ca:: with SMTP id l10mr1190160ljj.218.1602079305966; Wed, 07 Oct 2020 07:01:45 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:a556:: with SMTP id e22ls366220ljn.9.gmail; Wed, 07 Oct 2020 07:01:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwul+YtHoiwvjG8N4LKkEE2DkQN5H2IsFw1ZUxXapChDO9JGqTzgUNVGY0A7EGaFU1dbtcL X-Received: by 2002:a2e:b711:: with SMTP id j17mr1331582ljo.20.1602079293019; Wed, 07 Oct 2020 07:01:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602079293; cv=none; d=google.com; s=arc-20160816; b=KrhqwqMvHjLpzcmPRYpsrxTjATSYaY76UCjxGOAVI4itmh1iPTV+UppN7Yd4ckFDfs U7J9ZBTnEQxg5hbjlFlQda0OQtf0ufJB2JblplpZ13MCb3WvDQWI7RiV/URikHwEkFuS y28h8ntk6a+WVrua/l9CC8NdInjJfoPQElw+naoENE1FY6XeC64yNOWfT+HS0Hj8MN9u ac3/jmEH78UPTVkZImm3moZ8NJUo9iysVb10zjloQS3FPDT6lUgNWq/8F/A/5lej5uQk ifsLZr9G6yHZsPV6GB20HPwbukdUBYYDYovnPHoR7g+oy8wkRhzMqYiYRuEh6xZbw+QS dh/g== 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=oqSUBvzoWu1iv2L2wwZ1x/ztcE4H57P7DkFv/I2BY1o=; b=CX5Ua3P0Voc7bcTTb/7r0XEsxkOmbT7P5yktTWBEYPDxh5EB7SRiQ9Sifx/n02Zauo hReJ4anHScVLgv8cldBvfL0L9VVu3SU+UgFZ5IXdOHZr0mptFfI04oHWtGXklsc9ywnq v0GK1r0WS08ricMS6MxhkMQtnNbAcqNsM9h++Hv0q3dHlyshikhGJqxwLJKK61TIoWLB 0iTPQU1YnXO/xvR3BuabDTzijyz9wIV8OIAuv7q/jow2jkmyLtH+6qJ3+msTE2aUS3d0 epPdWyjvWHhd0Na6txIAMpG2eQO1siHJJewsGurOGDyrx6ho3XTrXy31q1hSjvuQLN71 I7Vw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 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 gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id o142si51684lff.6.2020.10.07.07.01.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Oct 2020 07:01:32 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 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 gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 097E1We6023096 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 7 Oct 2020 16:01:32 +0200 Received: from md1f2u6c.ad001.siemens.net ([139.22.113.50]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 097E1Uk6019880 for ; Wed, 7 Oct 2020 16:01:31 +0200 From: Jan Kiszka To: isar-users Subject: [PATCH v4 03/13] sdk: Add script to relocate SDK Date: Wed, 7 Oct 2020 16:01:20 +0200 Message-Id: <5926e0b8f0d2a70c6dd01d3ad217a92468950a7b.1602079290.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: 7RnUEmIcUJJw 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 05320a03..5fba09c3 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" @@ -59,6 +60,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