[PATCH v2] core: devres: optionally build devres into the SPL

Angus Ainslie angus at akkea.ca
Sat Mar 19 15:15:28 CET 2022


Hi Simon,

On 2022-03-18 15:41, Simon Glass wrote:
> Hi Angus,
> 
> On Tue, 1 Mar 2022 at 07:58, Simon Glass <sjg at chromium.org> wrote:
>> 
>> On Mon, 28 Feb 2022 at 13:33, Angus Ainslie <angus at akkea.ca> wrote:
>> >
>> > Add a CONFIG_SPL_DEVRES option
>> >
>> > Signed-off-by: Angus Ainslie <angus at akkea.ca>
>> > ---
>> >
>> > Changes since v1:
>> >
>> > Instead of gaurding the source add an SPL_DEVRES option
>> >
>> >  drivers/core/Kconfig  | 13 +++++++++++++
>> >  drivers/core/Makefile |  2 +-
>> >  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> Unfortunately this break the tests, e.g. building sandbox_spl - can
> you please take a look?
> 
> sandbox_spl: +make O=build-sandbox_spl -s sandbox_spl_defconfig
> +make O=build-sandbox_spl -s -j4
> /usr/bin/ld: /tmp/ccsYY64W.ltrans0.ltrans.o: in function 
> `device_unbind':
> build-sandbox_spl/spl/../../drivers/core/device-remove.c:120:
> undefined reference to `devres_release_all'
> /usr/bin/ld: /tmp/ccsYY64W.ltrans0.ltrans.o: in function `device_free':
> build-sandbox_spl/spl/../../drivers/core/device-remove.c:157:
> undefined reference to `devres_release_probe'
> collect2: error: ld returned 1 exit status
> make[3]: *** [../scripts/Makefile.spl:509: spl/u-boot-spl] Error 1
> make[2]: *** [Makefile:2094: spl/u-boot-spl] Error 2
> make[1]: *** [Makefile:177: sub-make] Error 2
> Exit code: 2
> 

So the problem here is that CONFIG_DM_DEVICE_REMOVE can be defined 
without CONFIG_DEVRES being defined.

Is there a way to make DM_DEVICE_REMOVE dependant on DEVRES or do I need 
to add "&& CONFIG_IS_ENABLED(DEVRES)" everywhere that I find 
"CONFIG_IS_ENABLED(DM_DEVICE_REMOVE)" ?

Thanks
Angus

> Regards,
> Simon


More information about the U-Boot mailing list