[BUG] sandbox: NO_SDL=1 gcc: error: arch/sandbox/cpu/sdl.o: No such file or directory

Heinrich Schuchardt xypron.glpk at gmx.de
Sun Jan 16 23:41:58 CET 2022


On 1/16/22 22:14, Milan P. Stanić wrote:
> wrote:
>> On 1/13/22 14:41, Simon Glass wrote:
>>> Hi Heinrich,
>>>
>>> On Mon, 10 Jan 2022 at 16:22, Heinrich Schuchardt<xypron.glpk at gmx.de>  wrote:
>>>> Hello Simon,
>>>>
>>>> compiling with SDL fails on Alpine Linux:
>>>> https://gitlab.alpinelinux.org/alpine/aports/-/issues/13411
>>>>
>>>> So I tried NO_SDL:
>>>>
>>>> make sandbox_defconfig NO_SDL=1
>>>> make menuconfig # CONFIG_ETH_SANDBOX_RAW=n
>>>> make -j4 NO_SDL=1
>>>>
>>>> But I got an error
>>>> gcc: error: arch/sandbox/cpu/sdl.o: No such file or directory
>>> Do you need mrproper first? I don't hit that problem.
>> Please, build the appended Dockerfile ("sudo docker build -t .").
> I run it on aarch64 (I don't have x86_64 machine for this) and I didn't got error.
>
> here is the output of 'docker build .':
> ---------------------------------------
> Step 12/16 : RUN git clonehttps://source.denx.de/u-boot/u-boot.git
>   ---> Running in 4f89022fad97
> Cloning into 'u-boot'...
> Removing intermediate container 4f89022fad97
>   ---> 8f4a64791065
> Step 13/16 : WORKDIR /home/uboot/u-boot
>   ---> Running in c88471d92078
> Removing intermediate container c88471d92078
>   ---> 361d0979bd27
> Step 14/16 : RUN make sandbox_defconfig NO_SDL=1
>   ---> Running in aad201f298b6
>    HOSTCC  scripts/basic/fixdep
>    HOSTCC  scripts/kconfig/conf.o
>    YACC    scripts/kconfig/zconf.tab.c
>    LEX     scripts/kconfig/zconf.lex.c
>    HOSTCC  scripts/kconfig/zconf.tab.o
>    HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
> Removing intermediate container aad201f298b6
>   ---> bf5a898ae7f6
> Step 15/16 : RUN sed -i 's/CONFIG_ETH_SANDBOX_RAW=y/# CONFIG_ETH_SANDBOX_RAW is not set/g' .config
>   ---> Running in 50eb86bfd2aa
> Removing intermediate container 50eb86bfd2aa
>   ---> 0eb72e2956d1
> Step 16/16 : RUN sed -i 's/CONFIG_VIDEO_SANDBOX_SDL=y/# CONFIG_VIDEO_SANDBOX_SDL is not set/g' .config
>   ---> Running in 18bd37a4251f
> Removing intermediate container 18bd37a4251f
>   ---> 8b391226e895
> Successfully built 8b391226e895
> ---------------------------------------
>
> -- Best regards
>> It gives me:
>>
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o: in function `dm_test_video_bmp8':
>> /home/uboot/u-boot/test/dm/video.c:357: undefined reference to
>> `sandbox_sdl_set_bpp'
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o: in function `dm_test_video_bmp16':
>> /home/uboot/u-boot/test/dm/video.c:378: undefined reference to
>> `sandbox_sdl_set_bpp'
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o: in function `dm_test_video_bmp24':
>> /home/uboot/u-boot/test/dm/video.c:401: undefined reference to
>> `sandbox_sdl_set_bpp'
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o: in function `dm_test_video_bmp24_32':
>> /home/uboot/u-boot/test/dm/video.c:424: undefined reference to
>> `sandbox_sdl_set_bpp'
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o: in function `dm_test_video_bmp32':
>> /home/uboot/u-boot/test/dm/video.c:445: undefined reference to
>> `sandbox_sdl_set_bpp'
>> /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld:
>> /tmp/u-boot.eJeOKe.ltrans36.ltrans.o:/home/uboot/u-boot/test/dm/video.c:479:
>> more undefined references to `sandbox_sdl_set_bpp' follow
>> collect2: error: ld returned 1 exit status
>> make: *** [Makefile:1799: u-boot] Error 1
>>
>> Best regards
>>
>> Heinrich
>>
>>> I see that I broke it...it needs a static inline for
>>> sandbox_sdl_remove_display().
>>>
>>>> Can't we make CONFIG_SANDBOX_SDL a Kconfig symbol to get rid of the
>>>> command line symbol?
>>>>
>>>> We already have CONFIG_SANDBOX_VIDEO_SDL. Do we need two symbols?
>>> You mean, manually change the defconfig file? I suppose we could do
>>> that, but it is harder for people to do.
>>>
>>> In any case, we should add this case to CI.
>>>
>>> Regards,
>>> Simon
>> # SPDX-License-Identifier: GPL-2.0+
>> # This Dockerfile is used to build an image containing basic stuff to be used
>> # to build U-Boot and run our test suites.
>>
>> FROMalpine:3.15.0
>> MAINTAINER Heinrich Schuchardt<xypron.glpk at gmx.de>
>> LABEL Description=" This image is for building U-Boot inside a container"
>>
>> # Install packages
>> RUN apk update
>> RUN apk add \
>> 	alpine-sdk \
>> 	bash \
>> 	bc \
>> 	bison \
>> 	dtc \
>> 	flex \
>> 	git \
>> 	linux-headers \
>> 	ncurses-dev \
>> 	openssl-dev \
>> 	perl \
>> 	python3 \
>> 	py3-setuptools \
>> 	python3-dev \
>> 	sdl2-dev \
>> 	sudo
>>
>> # Create our user/group
>> RUN echo uboot ALL=NOPASSWD: ALL > /etc/sudoers.d/uboot
>> RUN adduser -D uboot
>> RUN addgroup uboot wheel
>> USERuboot:uboot
>> RUN bash
>> WORKDIR /home/uboot
>> RUN git clonehttps://source.denx.de/u-boot/u-boot.git
>> WORKDIR /home/uboot/u-boot
>> RUN make sandbox_defconfig NO_SDL=1
>> RUN sed -i 's/CONFIG_ETH_SANDBOX_RAW=y/# CONFIG_ETH_SANDBOX_RAW is not set/g' .config
>> RUN sed -i 's/CONFIG_VIDEO_SANDBOX_SDL=y/# CONFIG_VIDEO_SANDBOX_SDL is not set/g' .config
>> # RUN make -j$(nproc) NO_SDL=1

Did you uncomment this line? I somehow forgot to remove '# '.

Best regards

Heinrich


More information about the U-Boot mailing list