[BUG] sandbox: NO_SDL=1 gcc: error: arch/sandbox/cpu/sdl.o: No such file or directory
Milan P. Stanić
mps at arvanta.net
Sun Jan 16 22:14:00 CET 2022
On Sat, 2022-01-15 at 19:47, Heinrich Schuchardt 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 clone https://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.
>
> FROM alpine: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
> USER uboot:uboot
> RUN bash
> WORKDIR /home/uboot
> RUN git clone https://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
More information about the U-Boot
mailing list