meta-ti.lists.yoctoproject.org archive mirror
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denis@denix.org>
To: meta-ti@lists.yoctoproject.org
Cc: Denys Dmytriyenko <denys@konsulko.com>
Subject: [master/kirkstone][PATCH] k3r5: ensure separate TMPDIR used for this multiconfig
Date: Sun, 12 Nov 2023 19:07:43 +0000	[thread overview]
Message-ID: <20231112190743.1496752-1-denis@denix.org> (raw)

From: Denys Dmytriyenko <denys@konsulko.com>

This k3r5 multiconfig builds baremetal components (and corresponding native,
nativesdk and cross tools) and sets TCLIBC accordingly to "baremetal". The
expectation is that those components and tools will use a separate TMPDIR
to isolate from the main Linux build that uses "glibc" TCLIBC and to avoid
potential conflicts.

OE-Core "nodistro" default configuration already sets TCLIBCAPPEND facility
to automatically add a suffix to TMPDIR, resulting in "tmp-baremetal" temp
directory for this multiconfig and "tmp-glibc" for the main Linux one. Other
distros like Arago follow this convention and even extend a bit (e.g. Arago
also adds TCMODE suffix to TMPDIR for external toolchain support separation).

But Poky (and derivative distros, like AGL or YoE) disable TCLIBCAPPEND and
result in a combined TMPDIR, leading to potential conflicts, such as:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15273

And that's just the beginning, there were other conflicts observed later in
the build, e.g. during nativesdk builds - that's why we also set a unique
SDKPKGSUFFIX here.

To force a separate TMPDIR for k3r5 multiconfig, we have to directly append
a suffix to it. Multiple other options were tested in hopes of making it
slightly cleaner, but they either didn't work or were dismissed. For example,
trying to override TCLIBCAPPEND getting cleared by a distro would require
using a machine/soc-override, which doesn't have enough scope (nativesdk)
or forcing it with :forcevariable would also change the main Linux TMPDIR
and affect existing CI flows. Also, using TCLIBC itself as a suffix to add
to TMPDIR may result in getting it appended twice (tmp-baremetal-baremetal)
when normal TCLIBCAPPEND facility is used. Hence the least invasive/confusing
option is to always append "-k3r5" suffix to this multiconfig TMPDIR. That
results in "tmp-k3r5" in Poky (leaving main TMPDIR as "tmp"), while OE-Core
"nodistro" and Arago would end up with "tmp-baremetal-k3r5" (and "tmp-glibc"
for the main).

Also note, meta-ti-bsp layer.conf sets up images and sdks to be deployed
into a common location outside of TMPDIRs, but TI_COMMON_DEPLOY variable
that controls it is set weakly, allowing to be modified from a distro
configuration or local.conf. It means that all images and sdks can be
deployed into the main TMPDIR if one's CI flow expects tmp/deploy/ as
the final destination, by using := for immediate variable expansion:
TI_COMMON_DEPLOY := "${TMPDIR}/deploy"

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
 meta-ti-bsp/conf/multiconfig/k3r5.conf | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
index 04b9a746..e36c87ed 100644
--- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
+++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
@@ -4,4 +4,6 @@ DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
 
 MACHINE:append = "-k3r5"
 TCLIBC = "baremetal"
+TMPDIR:append = "-k3r5"
+
 SDKPKGSUFFIX = "k3r5-nativesdk"
-- 
2.25.1



             reply	other threads:[~2023-11-12 19:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-12 19:07 Denys Dmytriyenko [this message]
2023-11-13 13:20 ` [meta-ti] [master/kirkstone][PATCH] k3r5: ensure separate TMPDIR used for this multiconfig Jose Quaresma
2023-11-21 21:48   ` Denys Dmytriyenko
2023-11-22 12:05     ` Jose Quaresma

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=20231112190743.1496752-1-denis@denix.org \
    --to=denis@denix.org \
    --cc=denys@konsulko.com \
    --cc=meta-ti@lists.yoctoproject.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).