[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