From: Jan Kiszka <jan.kiszka@siemens.com>
To: Henning Schild <henning.schild@siemens.com>
Cc: isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH 2/2] ci: Add compat arch support
Date: Thu, 10 Sep 2020 08:51:31 +0200 [thread overview]
Message-ID: <141bba40-5a5e-dda8-87b1-979a735b9d5d@siemens.com> (raw)
In-Reply-To: <20200909154442.1241936f@md1za8fc.ad001.siemens.net>
On 09.09.20 15:44, Henning Schild wrote:
> On Tue, 8 Sep 2020 10:53:58 +0200
> "[ext] Jan Kiszka" <jan.kiszka@siemens.com> wrote:
>
>> On 04.09.20 14:47, [ext] Jan Kiszka wrote:
>>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>>
>>> Build hello-isar and libisar for the compat arch if that is enabled.
>>> Set ISAR_ENABLE_COMPAT_ARCH for all supported combinations in CI.
>>>
>>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>>> ---
>>> meta-isar/recipes-app/hello-isar/hello-isar.bb | 3 +++
>>> meta-isar/recipes-app/libhello/libhello.bb | 3 +++
>>> scripts/ci_build.sh | 6 ++++++
>>> 3 files changed, 12 insertions(+)
>>>
>>> diff --git a/meta-isar/recipes-app/hello-isar/hello-isar.bb
>>> b/meta-isar/recipes-app/hello-isar/hello-isar.bb index
>>> 144a433e..8c3ba8b2 100644 ---
>>> a/meta-isar/recipes-app/hello-isar/hello-isar.bb +++
>>> b/meta-isar/recipes-app/hello-isar/hello-isar.bb @@ -20,4 +20,7 @@
>>> SRC_URI = " \ file://yet-another-change.txt;apply=yes;striplevel=0"
>>> SRCREV = "a18c14cc11ce6b003f3469e89223cffb4016861d"
>>>
>>> +# NOTE: This is just to test 32-bit building on 64-bit archs.
>>> +PACKAGE_ARCH_compat-arch = "${COMPAT_DISTRO_ARCH}"
>>> +
>>> inherit dpkg
>>> diff --git a/meta-isar/recipes-app/libhello/libhello.bb
>>> b/meta-isar/recipes-app/libhello/libhello.bb index
>>> ab271b58..5c44de50 100644 ---
>>> a/meta-isar/recipes-app/libhello/libhello.bb +++
>>> b/meta-isar/recipes-app/libhello/libhello.bb @@ -13,4 +13,7 @@ PV =
>>> "0.1-98f2e41" SRC_URI =
>>> "git://github.com/ilbers/libhello.git;protocol=https;destsuffix=${P}"
>>> SRCREV = "98f2e41e7d05ab8d19b0c5d160b104b725c8fd93"
>>> +# NOTE: This is just to test 32-bit building on 64-bit archs.
>>> +PACKAGE_ARCH_compat-arch = "${COMPAT_DISTRO_ARCH}"
>>> +
>>> inherit dpkg
>>> diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh
>>> index d2c707b8..461fd5cc 100755
>>> --- a/scripts/ci_build.sh
>>> +++ b/scripts/ci_build.sh
>>> @@ -139,6 +139,12 @@ if [ ! -d "$BUILD_DIR" ]; then
>>> fi
>>> source isar-init-build-env "$BUILD_DIR"
>>>
>>> +cat >>conf/local.conf <<EOF
>>> +ISAR_ENABLE_COMPAT_ARCH_amd64 = "1"
>>> +ISAR_ENABLE_COMPAT_ARCH_arm64 = "1"
>>> +ISAR_ENABLE_COMPAT_ARCH_debian-stretch_amd64 = "0"
>>> +EOF
>>> +
>>> if [ -n "$CROSS_BUILD" ]; then
>>> sed -i -e 's/ISAR_CROSS_COMPILE ?= "0"/ISAR_CROSS_COMPILE ?=
>>> "1"/g' conf/local.conf fi
>>>
>>
>> This triggers a problem:
>>
>> In a multiconfig setup like our CI, building the 32-bit package from
>> both the native 32-bit arch as well as the 64-bit arch now races. If
>> the 64-bit arch tries to install its self-built compat package, that
>> may just be under re-deployment by the 32-bit arch, and the build
>> fails.
>>
>> Options:
>> - somehow express that both archs provide the same package (though
>> that may defeat the purpose of testing the compat build)
>
> The purpose is that people want to use compat because they have just
> one image.
Well, one could imagine building a legacy application for both an old
ARMv7 device as well as for a new ARMv8 design. All that in one build
run (mc:...). Then the user would have to express that
my_beloved_legacy_app is actually a dependency that only needs to be
built once, and it would not matter if that is done by the armhf
buildchroot or via compat by the arm64 one.
>
>> - split isar-apt per arch, not just per distro
>
> But would the compat not need to include both now, and the mc enemy
> would still mess with one of them?
We would have isar-apt/apt/debian-buster-armhf, debian-buster-arm64
etc., but all of them able to carry packages for any arch.
>
> - better/more locking around isar-apt readers and writers
>
Nope, that would only paper over the fact that a package is built twice
and the one to be used would be chosen by chance. Bad for reliable testing.
Jan
>> Suggestions?
>
> Well one thing ... but i do not want to repeat myself ...
>
> Henning
>
>> Jan
>>
>
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2020-09-10 6:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-04 12:47 [PATCH 0/2] 32-bit " Jan Kiszka
2020-09-04 12:47 ` [PATCH 1/2] Add compat architecture support via multiarch Jan Kiszka
2020-09-04 12:47 ` [PATCH 2/2] ci: Add compat arch support Jan Kiszka
2020-09-08 8:53 ` Jan Kiszka
2020-09-09 13:44 ` Henning Schild
2020-09-10 6:51 ` Jan Kiszka [this message]
2020-09-10 6:54 ` Jan Kiszka
2020-09-10 10:34 ` Henning Schild
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=141bba40-5a5e-dda8-87b1-979a735b9d5d@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=henning.schild@siemens.com \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox