From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6572049490740510720 X-Received: by 2002:a5d:484a:: with SMTP id n10-v6mr288957wrs.26.1530734168570; Wed, 04 Jul 2018 12:56:08 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:e91a:: with SMTP id q26-v6ls537923wmc.7.canary-gmail; Wed, 04 Jul 2018 12:56:08 -0700 (PDT) X-Google-Smtp-Source: AAOMgpe9mvyE150PtMPX0Sx+tkrtEZQNn/Y68s1mFQMq5FmXSmA5kyi1v3qbx+HeoTvjWr1NFBne X-Received: by 2002:a1c:7411:: with SMTP id p17-v6mr298584wmc.8.1530734168124; Wed, 04 Jul 2018 12:56:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530734168; cv=none; d=google.com; s=arc-20160816; b=hYkytyAcBVVNbi9Yly73QAy0dULbMkBkt5qKmqQkNHjy9mgYQIYX7itlPN8cg3iKdj WYxWtmVhFsrnhA40/mLpRHb1Qbl0DX1QipUAnWgoEowKpkm/M//pIqvX1OjZ3QqSSeJh c6LQn8VxHO1LDJgPUGM445eoyJAqlZ7kia2H99u1YLZAOJ03ustvreSCwW5nVK0WkDYU 8R4Kg44/9PafArVp8pgh+GVLStXVbNj4pQzStoMurmaxr3b835toR5qGs8oJRDe2B1CU OoeoqOl+diySiP5T9mFrkRP53KjJUeuQQ5h5ZyqB9KjcZZxmydxfS/55ni2ZbXzNkv4N Gdpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject :arc-authentication-results; bh=ujfDADYeIr/Gy0zSFqKL4RydefEVTqJ3Ot3tUwVUJcs=; b=s2RCeGcvOIZYOD85sC+jkXekv/jUrGZuL5XhjcjoTYliIDUBYAqvUhwFp8J2ixmPzw HEXh/j+1nGILrRikXT7T8U2cKrirAEYaYmkyClP+Jd/S6RLhGs8WfBrr1EL4RakJXxjd UMDVJ/SoBgGxC6IWrflunBlZcio8mR/WdqiC2JFbyXXBZqHNav/cRBM2bleafoxsrUTN CjCAlwtug+xJJo5L+mwWqX5XN56ZzivGZfH3q1qf8aPa8P5DVZ+b/E7zyfHDddY7BGrx XujURngn+EwH2eiU9bz50NWzXXjmjitDYYKHfy61+JN1ZjDQBDZjWFgf3TifTXf17e4N UR3Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id x21-v6si13060wmh.3.2018.07.04.12.56.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Jul 2018 12:56:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from [10.0.2.15] ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w64Ju5DA013080 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 4 Jul 2018 21:56:06 +0200 Subject: Re: [PATCH v2 05/12] buildchroot-cross: Initial implementation To: Jan Kiszka , isar-users@googlegroups.com References: <20180628082810.3571-1-asmirnov@ilbers.de> <20180628082810.3571-6-asmirnov@ilbers.de> <26683869-a5e4-f5e6-f0d0-afdddd3ff36a@web.de> From: Alexander Smirnov Message-ID: <7113034c-bf3e-a210-e070-b39d8115a576@ilbers.de> Date: Wed, 4 Jul 2018 22:56:00 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <26683869-a5e4-f5e6-f0d0-afdddd3ff36a@web.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: vB3F3xI37m4M On 06/29/2018 08:36 PM, Jan Kiszka wrote: > On 2018-06-28 10:28, Alexander Smirnov wrote: >> Add initial generation of buildchroot for cross-compilation. >> >> Signed-off-by: Alexander Smirnov >> --- >> meta/classes/isar-bootstrap-helper.bbclass | 5 ++ >> meta/conf/isar-bitbake.conf | 1 + >> .../buildchroot/buildchroot-cross.bb | 57 ++++++++++++++++++++++ >> 3 files changed, 63 insertions(+) >> create mode 100644 meta/recipes-devtools/buildchroot/buildchroot-cross.bb >> >> diff --git a/meta/classes/isar-bootstrap-helper.bbclass b/meta/classes/isar-bootstrap-helper.bbclass >> index d4f8d9a..a3ef19d 100644 >> --- a/meta/classes/isar-bootstrap-helper.bbclass >> +++ b/meta/classes/isar-bootstrap-helper.bbclass >> @@ -70,6 +70,11 @@ setup_root_file_system() { >> -o Dir::Etc::sourcelist="sources.list.d/isar-apt.list" \ >> -o Dir::Etc::sourceparts="-" \ >> -o APT::Get::List-Cleanup="0" >> + # Add multiarch for cross-target >> + if [ "${ROOTFS_ARCH}" != "${DISTRO_ARCH}" ]; then >> + sudo -E chroot "$ROOTFSDIR" /usr/bin/dpkg --add-architecture ${DISTRO_ARCH} >> + sudo -E chroot "$ROOTFSDIR" /usr/bin/apt-get update >> + fi >> sudo -E chroot "$ROOTFSDIR" \ >> /usr/bin/apt-get ${APT_ARGS} --download-only $PACKAGES \ >> ${IMAGE_TRANSIENT_PACKAGES} >> diff --git a/meta/conf/isar-bitbake.conf b/meta/conf/isar-bitbake.conf >> index ead7798..1412508 100644 >> --- a/meta/conf/isar-bitbake.conf >> +++ b/meta/conf/isar-bitbake.conf >> @@ -22,6 +22,7 @@ WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PF}" >> DL_DIR = "${TOPDIR}/downloads" >> SSTATE_DIR ?= "${TMPDIR}/sstate-cache" >> BUILDCHROOT_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/buildchroot/rootfs" >> +BUILDCHROOT_CROSS_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/buildchroot-cross/rootfs" >> CACHE = "${TMPDIR}/cache" >> >> OVERRIDES_append = ":${DISTRO}:${DISTRO_ARCH}" >> diff --git a/meta/recipes-devtools/buildchroot/buildchroot-cross.bb b/meta/recipes-devtools/buildchroot/buildchroot-cross.bb >> new file mode 100644 >> index 0000000..bc0bc66 >> --- /dev/null >> +++ b/meta/recipes-devtools/buildchroot/buildchroot-cross.bb >> @@ -0,0 +1,57 @@ >> +# Root filesystem for packages cross-building >> +# >> +# This software is a part of ISAR. >> +# Copyright (C) 2015-2016 ilbers GmbH >> + >> +DESCRIPTION = "Isar development cross-filesystem" >> + >> +LICENSE = "gpl-2.0" >> +LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" >> + >> +FILESPATH_prepend := "${THISDIR}/files:" >> +SRC_URI = "file://configscript.sh \ >> + file://build.sh" >> +PV = "1.0" >> + >> +inherit isar-bootstrap-helper >> + >> +BUILDCHROOT_CROSS_PREINSTALL ?= "make \ >> + debhelper \ >> + autotools-dev \ >> + dpkg \ >> + locales \ >> + docbook-to-man \ >> + apt \ >> + automake \ >> + devscripts \ >> + equivs \ >> + libc6:${DISTRO_ARCH}" >> + >> +# Please note: this works for Stretch distro only. According to the wiki page: >> +# https://wiki.debian.org/CrossToolchains >> +# Jessie doesn't contain toolchain. It should be fetched from the external >> +# repository: >> +# http://emdebian.org/tools/debian/ >> +BUILDCHROOT_CROSS_PREINSTALL_append_armhf += "binutils-arm-linux-gnueabihf \ >> + crossbuild-essential-armhf" >> + >> +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" >> + >> +do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" >> +do_build[root_cleandirs] = "${BUILDCHROOT_CROSS_DIR} \ >> + ${BUILDCHROOT_CROSS_DIR}/isar-apt \ >> + ${BUILDCHROOT_CROSS_DIR}/downloads \ >> + ${BUILDCHROOT_CROSS_DIR}/home/builder" >> +do_build[depends] = "isar-apt:do_cache_config isar-bootstrap-host:do_deploy" >> + >> +do_build() { >> + setup_root_file_system --host-arch "${BUILDCHROOT_CROSS_DIR}" ${BUILDCHROOT_CROSS_PREINSTALL} >> + >> + # Install package builder script >> + sudo chmod -R a+rw "${BUILDCHROOT_CROSS_DIR}/home/builder" >> + sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHROOT_CROSS_DIR}/build.sh >> + >> + # Configure root filesystem >> + sudo install -m 755 ${WORKDIR}/configscript.sh ${BUILDCHROOT_CROSS_DIR} >> + sudo chroot ${BUILDCHROOT_CROSS_DIR} /configscript.sh >> +} >> > > This is almost identical to buildchroot:do_build - except for one > differently named variable, the first line, and missing fix > 39e0c488d8b2. Please avoid those duplications. > Sorry, didn't get this. It's absolutely different logical units: - crossbuildchroot has its own lifecycle including stamps, so it could not be shared with the original buildchroot (only via common include) - crossbuildchroot and buildchroot have different default packages to install and they are incompatible due to possibly different architectures (cross has always host one, bchroot has target one). Could you please clarify what you mean here? Alex