Openembedded Core Discussions
 help / color / mirror / Atom feed
From: "Böszörményi Zoltán" <zboszor@gmail.com>
To: Dmitry Baryshkov <dbaryshkov@gmail.com>,
	Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v5 2/3] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
Date: Fri, 12 Jan 2024 11:21:19 +0100	[thread overview]
Message-ID: <9296831d-bc09-4c20-b0c3-e419aef8a232@gmail.com> (raw)
In-Reply-To: <CALT56yNT-OZbXqqAPJXJ79ih1u_F3O40qoZJDwnhywjFQM-8ZQ@mail.gmail.com>

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.

Best regards,
Zoltán Böszörményi



  reply	other threads:[~2024-01-12 10:21 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 [this message]
2024-01-13  6:12                 ` Dmitry Baryshkov
2024-01-15  9:58                   ` Böszörményi Zoltán
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=9296831d-bc09-4c20-b0c3-e419aef8a232@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox