summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-05-19 18:09:52 -0600
committerTom Rini <[email protected]>2026-06-04 12:27:16 -0600
commit3ab8ea4a444ae798a173a25811081ae06cb358e3 (patch)
tree3f8854701f755d0ca9f6418f4a1ffb82cecb24a9
parent31af00bdc6a3ab5d4ada83e08407f2ce289f0ec6 (diff)
sandbox: Drop special link order treatment of start.o and sdl.o
On hardware architectures, we need to treat start.o (generated from start.S) very special due to the constraints of being a program running on hardware in an unknown state. These objects are treated a little different than the rest by the linker and linker scripts on various architectures. Sandbox is different, and doesn't need to do that. In fact, it can lead to hard to diagnose problems because of just how subtly different the treatment is. For example, the comment about LTO in include/event.h introduced with commit 87a5d1b5d012 ("event: Add basic support for events") was only a sandbox issue because of the event in start.c and in turn linking start.o isn't treated the same way as an archive with all its sections considered. Correct all of this by removing the "head-" lines for cpu.o and sdl.o from arch/sandbox/Makefile (and unused cmd_cc_sdl.o lines) and change arch/sandbox/cpu/Makefile to treating them both with "obj-" and not "extra-". Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
-rw-r--r--arch/sandbox/Makefile9
-rw-r--r--arch/sandbox/cpu/Makefile5
2 files changed, 2 insertions, 12 deletions
diff --git a/arch/sandbox/Makefile b/arch/sandbox/Makefile
index 5bbf9f1f96b..0360d2bd886 100644
--- a/arch/sandbox/Makefile
+++ b/arch/sandbox/Makefile
@@ -1,13 +1,4 @@
# SPDX-License-Identifier: GPL-2.0+
-head-y := arch/sandbox/cpu/start.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))) -fno-lto -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 ee3c04c49e1..eb6bf6302e2 100644
--- a/arch/sandbox/cpu/Makefile
+++ b/arch/sandbox/cpu/Makefile
@@ -5,9 +5,8 @@
# (C) Copyright 2000-2003
# Wolfgang Denk, DENX Software Engineering, [email protected].
-obj-y := cache.o cpu.o state.o initjmp.o os.o
-extra-y := start.o
-extra-$(CONFIG_SANDBOX_SDL) += sdl.o
+obj-y := start.o cache.o cpu.o state.o initjmp.o os.o
+obj-$(CONFIG_SANDBOX_SDL) += sdl.o
obj-$(CONFIG_XPL_BUILD) += spl.o
obj-$(CONFIG_ETH_SANDBOX_RAW) += eth-raw-os.o