From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6572049490740510720 X-Received: by 2002:a7b:c01a:: with SMTP id c26-v6mr998272wmb.0.1530174516126; Thu, 28 Jun 2018 01:28:36 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:82d4:: with SMTP id e203-v6ls1959553wmd.12.gmail; Thu, 28 Jun 2018 01:28:35 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf8NGnrsaLATcqBG6CQ0Y4h555JEIpKzdDjZYniwlAQYoCBGzPI3vFgliR7Xjz1pV2rBH8O X-Received: by 2002:a1c:588b:: with SMTP id m133-v6mr889979wmb.32.1530174515723; Thu, 28 Jun 2018 01:28:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530174515; cv=none; d=google.com; s=arc-20160816; b=VzBI/F1vaPY226y0re4rNYpXx076udnin69uVoATqOGLt57mKXfL5Aa9ulJMqIgDwP 3iMa1vXTlLXDuJGTQblZ1tYXwPyvHSiIVGbEp+671taMPVbllqzFsg+ODxnzaFwhnANE 0IF1dZncMGJKXbTNxp50zgrQtbPBBoipAurthKywQBZh6J9gFtFMLlTSeB/DjwoR7Qeo eOa6r1bF3eYmgk41bNgm2/Rp7FZ65HEhzg1COO6sl7f6CCSyNNPVK5+3yQFLIrjr/bXj fL3Bnn2bQMKVMnWl12fI3e1drQgS4Z5RjUSihuiUiodcWGpHskvyXdER4Jgv4BDFRycR JKVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=2Z92if307KY/ej1hE+Xl9IRZrlec/9tj5iROdyXQagU=; b=r0fytKmS51NgTKsy3gLxVT8BOmrIo4D92ygp7Ak81xERfnLyrJZj/6JoAcW6Bo+Upz wHy+G2Je9Ks4c0bdqK/GVOjGc4Nr+JY/eCm/u9odKQ1W7BdIwa0xD3R0uCdcpcL9cNf9 URKdtG72tBYiNrkrcbq64NGSZTLtuIyi2D8LnqhSQvSu+hicY6RbGkywd5nby8vNrdVK COtRt97MS01bqF4tNJEbaYUYhg6ltWt/amC7lfvpu9lE18SzDzTqAThUhZi4xAT9N7K5 YWF3pkZrzWzxoNdashpKj3tbcGlO288uORnJSo/rUOPovYyN58QZNrGOxxC1jSYJ8HMU zdaw== 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 d18-v6si213739wrj.3.2018.06.28.01.28.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jun 2018 01:28:35 -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 azat.i.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w5S8SEqB024070 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT); Thu, 28 Jun 2018 10:28:26 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH v2 05/12] buildchroot-cross: Initial implementation Date: Thu, 28 Jun 2018 10:28:03 +0200 Message-Id: <20180628082810.3571-6-asmirnov@ilbers.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180628082810.3571-1-asmirnov@ilbers.de> References: <20180628082810.3571-1-asmirnov@ilbers.de> X-TUID: oGlajxysmATT 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 +} -- 2.1.4