From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6880878174534631424 X-Received: by 2002:ac2:4355:: with SMTP id o21mr1059865lfl.210.1602079297772; Wed, 07 Oct 2020 07:01:37 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:7c08:: with SMTP id x8ls368701ljc.6.gmail; Wed, 07 Oct 2020 07:01:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWrAEdBLvVzVyMe/6ffNbazCRjY2TfVt8tkdKbGf+r7IU5GyBqSvHw6FnAEQYjqPNFYHHZ X-Received: by 2002:a2e:9242:: with SMTP id v2mr1335645ljg.25.1602079293351; 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=DhtUxtpxXmiTT5dGS2KzlscPVVuLUlcCKFUhZBuGkvS/+RYdczXv2Jlufq6rx8r5qb euqmJSO0SPVejo5sbPropm5TjiWxIx3CfG+d39VuMoghMYUc00UJxBiDvYXIF8L7aXW3 cMAME+SH9nrYFPvsGA7NcQgdD398iehnhWADtZXwTpW4AbhuENy2V0cBl500JL8O5NJl Wm7ZW4KdNlJtfLyCYHRzQk/6v4/bTytgMAow2SUoPLrlNWA9D35AmjiRyFDpy49kSUim FzDGiYlE8R7JREJpZ5/7jaTIg04UgEMyT9w+IML2Ke9/vIj0kwxg20lTz58E8MIH0P/A wRQg== 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=KsNa4RGX01RDKZXqJATBvziWWVXya+REzt5KUhrtV3A=; b=nwQOPYWouerGm8H4d1bLnEkQC2ndLS8veY/1PbdCxK66j19N1TzOqMi3pBfLvyfWGk Jwh04Vnshk6/lcgwDpc5shMAzkcdINuq6ZyQYEangII3cZOMNe9MYQ6XOZPw0sL3rWDS Dm2Nx4hIScRdo7eR6Gc0lNLRfoXfugGSbza+cyFESJ8TN3dN+KimcwHFTfWneLkI2EwU L15feIVi/j34/9g1jhBFTq+SjyJpQOjYc98Np9jobYrE7rMPUEinmC617qjG42C7xS0C 2WgwpTklz8CdM015vfC90y7drU8iUW2dkReXrvUnyLLEFQHjjlK1cfE/beDucpl0LLWZ i8MA== 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 e15si54327lfq.1.2020.10.07.07.01.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Oct 2020 07:01:33 -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 097E1WXR001395 (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 097E1Uk8019880 for ; Wed, 7 Oct 2020 16:01:32 +0200 From: Jan Kiszka To: isar-users Subject: [PATCH v4 05/13] sdk: Inject sysroot path when calling relocated toolchain Date: Wed, 7 Oct 2020 16:01:22 +0200 Message-Id: <11bafacf5b5e406fa6ca026151cf56fe3931f516.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: hPPJzfSfRGtz From: Jan Kiszka This removes the need to specify --sysroot=/path/to/sdkroot when calling gcc or ld from the SDK. Signed-off-by: Jan Kiszka --- meta/classes/image-sdk-extension.bbclass | 8 ++++++++ .../sdkchroot/files/gcc-sysroot-wrapper.sh | 16 ++++++++++++++++ .../sdkchroot/files/relocate-sdk.sh | 3 +++ meta/recipes-devtools/sdkchroot/sdkchroot.bb | 2 ++ 4 files changed, 29 insertions(+) create mode 100755 meta/recipes-devtools/sdkchroot/files/gcc-sysroot-wrapper.sh diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass index cb4fb55d..a8c708a8 100644 --- a/meta/classes/image-sdk-extension.bbclass +++ b/meta/classes/image-sdk-extension.bbclass @@ -40,6 +40,14 @@ do_populate_sdk() { fi done + # Set up sysroot wrapper + for tool_pattern in "gcc-[0-9]*" "g++-[0-9]*" "cpp-[0-9]*" "ld.bfd" "ld.gold"; do + for tool in $(find ${SDKCHROOT_DIR}/usr/bin -type f -name "*-linux-gnu*-${tool_pattern}"); do + sudo mv "${tool}" "${tool}.bin" + sudo ln -sf gcc-sysroot-wrapper.sh ${tool} + done + done + # Copy mount_chroot.sh for convenience sudo cp ${SCRIPTSDIR}/mount_chroot.sh ${SDKCHROOT_DIR} diff --git a/meta/recipes-devtools/sdkchroot/files/gcc-sysroot-wrapper.sh b/meta/recipes-devtools/sdkchroot/files/gcc-sysroot-wrapper.sh new file mode 100755 index 00000000..feead1a1 --- /dev/null +++ b/meta/recipes-devtools/sdkchroot/files/gcc-sysroot-wrapper.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# +# This software is a part of ISAR. +# Copyright (c) Siemens AG, 2020 +# +# SPDX-License-Identifier: MIT + +GCC_SYSROOT= + +NEXT_TARGET=$0 +until [ "${NEXT_TARGET##*/}" = "gcc-sysroot-wrapper.sh" ]; do + TARGET=${NEXT_TARGET} + NEXT_TARGET=$(dirname ${TARGET})/$(readlink ${TARGET}) +done + +${TARGET}.bin --sysroot=${GCC_SYSROOT} "$@" diff --git a/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh b/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh index 1c9b02fa..0d1c6330 100755 --- a/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh +++ b/meta/recipes-devtools/sdkchroot/files/relocate-sdk.sh @@ -38,4 +38,7 @@ for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/g fi done +sed -i 's|^GCC_SYSROOT=.*|GCC_SYSROOT="'"${new_sdkroot}"'"|' \ + ${sdkroot}/usr/bin/gcc-sysroot-wrapper.sh + echo "done" diff --git a/meta/recipes-devtools/sdkchroot/sdkchroot.bb b/meta/recipes-devtools/sdkchroot/sdkchroot.bb index 06f8a6e0..c96cc772 100644 --- a/meta/recipes-devtools/sdkchroot/sdkchroot.bb +++ b/meta/recipes-devtools/sdkchroot/sdkchroot.bb @@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 SRC_URI = " \ file://configscript.sh \ file://relocate-sdk.sh \ + file://gcc-sysroot-wrapper.sh \ file://README.sdk" PV = "0.1" @@ -63,6 +64,7 @@ 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}/gcc-sysroot-wrapper.sh ${S}/usr/bin sudo install -m 755 ${WORKDIR}/configscript.sh ${S} sudo chroot ${S} /configscript.sh ${DISTRO_ARCH} } -- 2.26.2