[PATCH 1/1] test: bootflow test depends on CONFIG_VIDEO

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Wed May 31 20:05:18 CEST 2023



On 5/31/23 19:13, Simon Glass wrote:
> Hi Heinrich,
> 
> On Wed, 31 May 2023 at 09:52, Tom Rini <trini at konsulko.com> wrote:
>>
>> On Wed, May 31, 2023 at 04:25:46PM +0200, Heinrich Schuchardt wrote:
>>> Tom Rini <trini at konsulko.com> schrieb am Mi., 31. Mai 2023, 16:02:
>>>
>>>> On Wed, May 31, 2023 at 10:50:52AM +0200, Heinrich Schuchardt wrote:
>>>>
>>>>> qemu_arm64_defconfig with UNIT_TEST=y does not build.
>>>>>
>>>>> CONFIG_EXPO depends on CONFIG_VIDEO. Hence on platforms without video we
>>>>> must not enable unit tests invoking expo functions.
>>>>>
>>>>> Fixes: fb1451bec2a5 ("bootstd: Add tests for bootstd including all
>>>> uclasses")
>>>>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>>>>> ---
>>>>>   test/boot/Makefile | 5 ++++-
>>>>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/test/boot/Makefile b/test/boot/Makefile
>>>>> index 22ed61c8fa..665017ba3d 100644
>>>>> --- a/test/boot/Makefile
>>>>> +++ b/test/boot/Makefile
>>>>> @@ -2,7 +2,10 @@
>>>>>   #
>>>>>   # Copyright 2021 Google LLC
>>>>>
>>>>> -obj-$(CONFIG_BOOTSTD) += bootdev.o bootstd_common.o bootflow.o
>>>> bootmeth.o
>>>>> +ifdef CONFIG_BOOTSTD
>>>>> +obj-y += bootstd_common.o bootmeth.o
>>>>> +obj-$(VIDEO) += bootdev.o bootflow.o
>>>>> +endif
>>>>>   obj-$(CONFIG_FIT) += image.o
>>>>>
>>>>>   obj-$(CONFIG_EXPO) += expo.o
>>>>
>>>> OK, but the functionality itself doesn't depend on video, it looks like
>>>> maybe only the bootflow_menu_theme test itself, so lets try and solve
>>>> this differently.
>>>>
>>>> --
>>>> Tom
>>>>
>>>
>>> Yes I should have used CONFIG_EXPO not CONFIG_VIDEO .
>>
>> Well no, at first glance it's 1 out of 15 tests in that file that depend
>> on CONFIG_EXPO, so we should just ifdef that test.

Yes, there is only one test in bootflow.o depending on EXPO.
There are multiple tests in bootdev.o depending on CONFIG_DM_MMC.

> 
> You could put something like this at the top of bootflow_cmd_menu():
> 
> /* 'bootflow menu' currently requires a video console */
> if (!IS_ENABLED(CONFIG_VIDEO))
>     return -EAGAIN;

With this change I still get:

	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.o: in function 
`bootflow_menu_new':
	boot/bootflow_menu.c:48: undefined reference to `expo_new'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:52: undefined reference 
to `scene_new'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:56: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:59: undefined reference 
to `scene_menu'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:60: undefined reference 
to `scene_obj_set_pos'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:61: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:63: undefined reference 
to `scene_menu_set_title'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:65: undefined reference 
to `video_get_u_boot_logo'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:67: undefined reference 
to `scene_img'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:68: undefined reference 
to `scene_obj_set_pos'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:71: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:73: undefined reference 
to `scene_menu_set_pointer'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:101: undefined reference 
to `expo_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:102: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:104: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:107: undefined reference 
to `scene_txt_str'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:112: undefined reference 
to `scene_img'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:115: undefined reference 
to `scene_menuitem'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.o: in function 
`bootflow_menu_apply_theme':
	boot/bootflow_menu.c:140: undefined reference to `expo_lookup_scene_id'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:162: undefined reference 
to `scene_arrange'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:149: undefined reference 
to `scene_txt_set_font'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:150: undefined reference 
to `scene_txt_set_font'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:152: undefined reference 
to `scene_txt_set_font'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:156: undefined reference 
to `scene_txt_set_font'
	aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.c:157: undefined reference 
to `scene_txt_set_font'
	aarch64-linux-gnu-ld.bfd: test/boot/bootstd_common.o: in function 
`bootstd_test_check_mmc_hunter':
	test/boot/bootstd_common.c:83: undefined reference to 
`_u_boot_list_2_bootdev_hunter_2_mmc_bootdev_hunter'
	aarch64-linux-gnu-ld.bfd: test/boot/bootstd_common.o: relocation 
R_AARCH64_ADR_PREL_PG_HI21 against symbol 
`_u_boot_list_2_bootdev_hunter_2_mmc_bootdev_hunter' which may bind 
externally can not be used when making a shared object; recompile with -fPIC
	test/boot/bootstd_common.c:83:(.text.bootstd_test_check_mmc_hunter+0x5c): dangerous relocation: unsupported relocation
	aarch64-linux-gnu-ld.bfd: test/boot/bootstd_common.c:83: undefined 
reference to `_u_boot_list_2_bootdev_hunter_2_mmc_bootdev_hunter'
	aarch64-linux-gnu-ld.bfd: test/boot/bootflow.o: in function `check_font':
	test/boot/bootflow.c:643: undefined reference to `scene_obj_find'
	aarch64-linux-gnu-ld.bfd: test/boot/bootflow.o: in function 
`bootflow_menu_theme':
	test/boot/bootflow.c:667: undefined reference to `expo_lookup_scene_id'
	aarch64-linux-gnu-ld.bfd: test/boot/bootflow.c:684: undefined reference 
to `expo_destroy'

Best regards

Heinrich


More information about the U-Boot mailing list