[PATCH] sandbox: fix build failure with musl and SDL

Milan P. Stanić mps at arvanta.net
Fri Jan 21 21:10:57 CET 2022


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 at arvanta.net>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>

Tested-by: Milan P. Stanić <mps at 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
> 


More information about the U-Boot mailing list