From: Tom Rini <trini@konsulko.com>
To: "Milan P. Stanić" <mps@arvanta.net>
Cc: Simon Glass <sjg@chromium.org>,
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>,
U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: [PATCH] sandbox: fix build failure with musl and SDL
Date: Thu, 3 Feb 2022 11:43:03 -0500 [thread overview]
Message-ID: <20220203164303.GU7515@bill-the-cat> (raw)
In-Reply-To: <YfvSd6YcuVhEFmTX@m1>
[-- Attachment #1: Type: text/plain, Size: 4382 bytes --]
On Thu, Feb 03, 2022 at 02:02:47PM +0100, Milan P. Stanić wrote:
> Hi,
>
> On Thu, 2022-01-27 at 14:35, Simon Glass wrote:
> > Hi,
> >
> > On Fri, 21 Jan 2022 at 13:11, Milan P. Stanić <mps@arvanta.net> wrote:
> > >
> > > Hi,
> > >
> > > it works and build pass without error or warning.
> > > Tested on alpine edge aarch64 bare metal.
> > >
> > > Thank you
> > >
> > > On Fri, 2022-01-21 at 18:00, Heinrich Schuchardt wrote:
> > > > sdl.c is compiled against the SDL library.
> > > >
> > > > Trying to redefine wchar_t with -fshort-wchar is not necessary
> > > > and leads to build failures when compiling against musl.
> > > >
> > > > Cc: Milan P. Stanić <mps@arvanta.net>
> > > > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> > >
> > > Tested-by: Milan P. Stanić <mps@arvanta.net>
> > >
> > > > ---
> > > > arch/sandbox/Makefile | 7 +++++++
> > > > arch/sandbox/cpu/Makefile | 11 ++++++++---
> > > > 2 files changed, 15 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/arch/sandbox/Makefile b/arch/sandbox/Makefile
> > > > index f6cf859f24..0bdd322f12 100644
> > > > --- a/arch/sandbox/Makefile
> > > > +++ b/arch/sandbox/Makefile
> > > > @@ -4,3 +4,10 @@ head-y := arch/sandbox/cpu/start.o arch/sandbox/cpu/os.o
> > > > head-$(CONFIG_SANDBOX_SDL) += arch/sandbox/cpu/sdl.o
> > > > libs-y += arch/sandbox/cpu/
> > > > libs-y += arch/sandbox/lib/
> > > > +
> > > > +# sdl.c fails to compile with -fshort-wchar using musl.
> > > > +cmd_cc_sdl.o = $(CC) $(filter-out -nostdinc -fshort-wchar, \
> > > > + $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ $<
> > > > +
> > > > +$(obj)/sdl.o: $(src)/sdl.c FORCE
> > > > + $(call if_changed_dep,cc_sdl.o)
> > > > diff --git a/arch/sandbox/cpu/Makefile b/arch/sandbox/cpu/Makefile
> > > > index de7fe7f391..b74c866e56 100644
> > > > --- a/arch/sandbox/cpu/Makefile
> > > > +++ b/arch/sandbox/cpu/Makefile
> > > > @@ -7,7 +7,7 @@
> > > >
> > > > obj-y := cache.o cpu.o state.o
> > > > extra-y := start.o os.o
> > > > -extra-$(CONFIG_SANDBOX_SDL) += sdl.o
> > > > +extra-$(CONFIG_SANDBOX_SDL) += sdl.o
> > > > obj-$(CONFIG_SPL_BUILD) += spl.o
> > > > obj-$(CONFIG_ETH_SANDBOX_RAW) += eth-raw-os.o
> > > >
> > > > @@ -19,8 +19,6 @@ cmd_cc_os.o = $(CC) $(filter-out -nostdinc, \
> > > >
> > > > $(obj)/os.o: $(src)/os.c FORCE
> > > > $(call if_changed_dep,cc_os.o)
> > > > -$(obj)/sdl.o: $(src)/sdl.c FORCE
> > > > - $(call if_changed_dep,cc_os.o)
> > > >
> > > > # eth-raw-os.c is built in the system env, so needs standard includes
> > > > # CFLAGS_REMOVE_eth-raw-os.o cannot be used to drop header include path
> > > > @@ -30,3 +28,10 @@ cmd_cc_eth-raw-os.o = $(CC) $(filter-out -nostdinc, \
> > > >
> > > > $(obj)/eth-raw-os.o: $(src)/eth-raw-os.c FORCE
> > > > $(call if_changed_dep,cc_eth-raw-os.o)
> > > > +
> > > > +# sdl.c fails to build with -fshort-wchar using musl
> > > > +cmd_cc_sdl.o = $(CC) $(filter-out -nostdinc -fshort-wchar, \
> > > > + $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ $<
> > > > +
> > > > +$(obj)/sdl.o: $(src)/sdl.c FORCE
> > > > + $(call if_changed_dep,cc_sdl.o)
> > > > --
> > > > 2.33.1
> > > >
> >
> > This fails on gitlab.
> >
> > https://source.denx.de/u-boot/custodians/u-boot-dm/-/jobs/382812
> >
> > $ tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
> > --board ${TEST_PY_BD} ${OVERRIDE}
> > Building current source for 1 boards (1 thread, 40 jobs per thread)
> > sandbox: + sandbox
> > +/usr/bin/ld: error: LLVM gold plugin: linking module flags
> > 'wchar_size': IDs have conflicting values in 'arch/sandbox/cpu/sdl.o'
> > and 'ld-temp.o'
> > +clang: error: linker command failed with exit code 1 (use -v to see invocation)
> > +make[1]: *** [Makefile:1799: u-boot] Error 1
> > +make: *** [Makefile:177: sub-make] Error 2
> > 0 0 1 /1 sandbox
> > Completed: 1 total built, duration 0:00:22, rate 0.05
> > Running after_script
> >
> >
> > Please can you take a look?
>
> I tested with clang and lld, and clang ld.gold in lxc and bare metal
> build. didn't had this errors.
>
> Could be that this problem appears on docker only.
Docker is just an Ubuntu/Focal environment, so gcc + ld.gold here.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
next prev parent reply other threads:[~2022-02-03 16:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-21 17:00 [PATCH] sandbox: fix build failure with musl and SDL Heinrich Schuchardt
2022-01-21 20:10 ` Milan P. Stanić
2022-01-27 21:35 ` Simon Glass
2022-02-03 13:02 ` Milan P. Stanić
2022-02-03 16:43 ` Tom Rini [this message]
2022-02-03 16:54 ` Heinrich Schuchardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220203164303.GU7515@bill-the-cat \
--to=trini@konsulko.com \
--cc=heinrich.schuchardt@canonical.com \
--cc=mps@arvanta.net \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox