From: "Böszörményi Zoltán" <zboszor@gmail.com>
To: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>,
openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v5 2/3] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
Date: Mon, 15 Jan 2024 10:58:45 +0100 [thread overview]
Message-ID: <7ac96de5-c250-4422-bf3a-d2addf9b79a3@gmail.com> (raw)
In-Reply-To: <CALT56yN=sT14RdiyHJy2ctcosY_pSG0KdN8vJV25TvwsPOifnQ@mail.gmail.com>
2024. 01. 13. 7:12 keltezéssel, Dmitry Baryshkov írta:
> On Fri, 12 Jan 2024 at 12:21, Böszörményi Zoltán <zboszor@gmail.com> wrote:
>> 2024. 01. 02. 23:57 keltezéssel, Dmitry Baryshkov írta:
>>> On Tue, 2 Jan 2024 at 17:30, Richard Purdie
>>> <richard.purdie@linuxfoundation.org> wrote:
>>>> On Tue, 2024-01-02 at 17:25 +0200, Dmitry Baryshkov wrote:
>>>>> On Tue, 2 Jan 2024 at 13:40, Richard Purdie
>>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>>> On Tue, 2024-01-02 at 12:32 +0200, Dmitry Baryshkov wrote:
>>>>>>> On Sat, 30 Dec 2023 at 23:02, Richard Purdie
>>>>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>>>>> On Sat, 2023-12-30 at 21:14 +0200, Dmitry Baryshkov wrote:
>>>>>>>>> From: Zoltán Böszörményi <zboszor@gmail.com>
>>>>>>>>>
>>>>>>>>> Mesa now has two OpenCL implementations: Clover (older one) and RustiCL
>>>>>>>>> (newer one). Extend the "opencl" package config to include both
>>>>>>>>> implementations into the libopencl-mesa (-dev) packages. As the Clover
>>>>>>>>> implementation is in maintenance mode and is expected to be removed at
>>>>>>>>> some point, it doesn't make sense to split the packages or to provide
>>>>>>>>> two config options.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
>>>>>>>>> [DB: reworked rust class inheritance]
>>>>>>>>> [DB: merged "rusticl" and "clover" back to "opencl"]
>>>>>>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>>>>>>>> ---
>>>>>>>>> meta/recipes-graphics/mesa/mesa.inc | 21 ++++++++++++++++-----
>>>>>>>>> 1 file changed, 16 insertions(+), 5 deletions(-)
>>>>>>>>>
>>>>>>>>> diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
>>>>>>>>> index efbce5caade5..a192562a7935 100644
>>>>>>>>> --- a/meta/recipes-graphics/mesa/mesa.inc
>>>>>>>>> +++ b/meta/recipes-graphics/mesa/mesa.inc
>>>>>>>>> @@ -48,6 +48,12 @@ PROVIDES = " \
>>>>>>>>>
>>>>>>>>> inherit meson pkgconfig python3native gettext features_check
>>>>>>>>>
>>>>>>>>> +# We can not include rust conditionally, otherwise it can not be overriden by
>>>>>>>>> +# the bbappends. Instead always include it, but remove the dependencies by
>>>>>>>>> +# default.
>>>>>>>>> +inherit rust
>>>>>>>>> +INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}"
>>>>>>>>> +
>>>>>>>> I'd really prefer not to have the rust inherit unconditionally. I have
>>>>>>>> some ideas about how we could fix this in bitbake so we may need to
>>>>>>>> wait for that if we can't avoid the PACKAGECONFIG issue from appends...
>>>>>>> Well, it's not just appends. Extending PACKAGECONFIG from local.conf
>>>>>>> also doesn't work. In fact even adding "opencl" to the default
>>>>>>> PACKAGECONFIG doesn't work unless I move `inherit
>>>>>>> @{bb.utils.contains....` after the PACKAGECONFIG definition. Using
>>>>>>> `INHIBIT_DEFAULT_RUST_DEPS` works around that issue, but yes, it has a
>>>>>>> drawback of including rust unconditionally.
>>>>>> PACKAGECONFIG:append:pn-mesa = " opencl"
>>>>> Yes, I tried that. I got an error about rust tools not being defined.
>>>>> I think the :append: and overrides are handled after the inherit
>>>>> argument is handled. So it is either PACKAGECONFIG being fully defined
>>>>> before inherit (literally before), or inherit ends up with an empty
>>>>> argument.
>>>> The append and overrides would be expanded at the time the expression
>>>> in the inherit statement is evaluated so if that didn't work there is
>>>> something else at play...
>>> I did not attempt debugging the bitbake itself. However I can see that
>>> with this line in local.conf, PACKAGECONFIG is updated, but the RUSTC
>>> is not defined (which means that rust.bbclass was not inherited). Then
>>> I tried adding opencl to the default PACKAGECONFIG in mesa.inc. If
>>> inherit comes before PACKAGECONFIG being set, it is not honoured. If
>>> inherit comes after PACKAGECONFIG, it works as expected (and RUSTC
>>> gets defined).
>> Something like this should work:
>>
>> inherit ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'rust', '', d)}
>>
>> E.g. the libxml2 recipe does it, although for a different bbclass.
> This way enabling opencl in .bbappend is not honoured.
Yes, I remember now, that's what I was fighting with, too. Pity.
I wonder why, though. Isn't the .bb and all .bbappend files
loaded, merged then parsed as a whole entity with the variable
dependency graph used for the inherit lines?
next prev parent reply other threads:[~2024-01-15 9:58 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-30 19:14 [PATCH v5 0/3] mesa: RustiCL support Dmitry Baryshkov
2023-12-30 19:14 ` [PATCH v5 1/3] mesa: drop -Dopencl-native=true Dmitry Baryshkov
2023-12-30 19:14 ` [PATCH v5 2/3] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
2023-12-30 21:02 ` [OE-core] " Richard Purdie
2024-01-02 10:32 ` Dmitry Baryshkov
2024-01-02 11:40 ` Richard Purdie
2024-01-02 15:25 ` Dmitry Baryshkov
2024-01-02 15:29 ` Richard Purdie
2024-01-02 22:57 ` Dmitry Baryshkov
2024-01-12 10:21 ` Böszörményi Zoltán
2024-01-13 6:12 ` Dmitry Baryshkov
2024-01-15 9:58 ` Böszörményi Zoltán [this message]
2024-01-23 14:34 ` Antoine Coutant
2023-12-30 19:14 ` [PATCH v5 3/3] mesa: fix building of RustiCL + nouveau Dmitry Baryshkov
2024-01-23 14:34 ` Antoine Coutant
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=7ac96de5-c250-4422-bf3a-d2addf9b79a3@gmail.com \
--to=zboszor@gmail.com \
--cc=dbaryshkov@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.