summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.rules2
-rw-r--r--Makefile.toolchain4
-rw-r--r--core/host/build.mk4
3 files changed, 7 insertions, 3 deletions
diff --git a/Makefile.rules b/Makefile.rules
index 8cd04edf38..0cdd724c9d 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -64,7 +64,7 @@ export STATIC_VERSION
# a ccache issue.
# commands to build all targets
-cmd_libec = $(LD) -r $^ -o $@.1.o ${silent_err} && \
+cmd_libec = $(LD) -r $(LD_R_FLAGS) $^ -o $@.1.o ${silent_err} && \
$(OBJCOPY) --localize-hidden $@.1.o $@.2.o ${silent_err} && \
$(AR) scr $@ $@.2.o ${silent_err}
cmd_lds = $(CPP) -P -C -MMD -MF $@.d -MT $@ $(CPPFLAGS) $< -o $@
diff --git a/Makefile.toolchain b/Makefile.toolchain
index e39a1c3016..fe7c9be5b9 100644
--- a/Makefile.toolchain
+++ b/Makefile.toolchain
@@ -95,11 +95,13 @@ BUILD_CPPFLAGS=$(CFLAGS_DEFINE) -Icore/host $(CFLAGS_INCLUDE) $(CFLAGS_TEST) \
HOST_CPPFLAGS=$(CFLAGS_DEFINE) $(CFLAGS_INCLUDE) $(CFLAGS_TEST) \
$(EXTRA_CFLAGS) $(CFLAGS_COVERAGE) $(CFLAGS_HOSTTEST) $(LATE_CFLAGS_DEFINE) \
-DSECTION_IS_$(BLD)=$(EMPTY) -DSECTION=$(BLD) $(CPPFLAGS_$(BLD))
+LD_R_FLAGS=
ifneq ($(BOARD),host)
CPPFLAGS+=-ffreestanding -fno-builtin -nostdinc -nostdlib
CPPFLAGS+=-Ibuiltin/
else
CPPFLAGS+=-Og
+LD_R_FLAGS=-m elf_i386
endif
CPPFLAGS+= -DCHROMIUM_EC=$(EMPTY)
CFLAGS=$(CPPFLAGS) $(CFLAGS_CPU) $(CFLAGS_DEBUG) $(COMMON_WARN) $(CFLAGS_y)
@@ -147,7 +149,7 @@ LDFLAGS=-nostdlib -g -Wl,-X -Wl,--gc-sections -Wl,--build-id=none \
BUILD_LDFLAGS=$(LIBFTDIUSB_LDLIBS)
HOST_LDFLAGS=$(LIBFTDIUSB_LDLIBS)
HOST_TEST_LDFLAGS=-Wl,-T core/host/host_exe.lds -lrt -pthread -rdynamic -lm\
- -fuse-ld=bfd \
+ -fuse-ld=bfd -m32 \
$(if $(TEST_COVERAGE), --coverage,) \
$(if $(TEST_ASAN), -fsanitize=address) \
$(if $(TEST_MSAN), -fsanitize=memory) \
diff --git a/core/host/build.mk b/core/host/build.mk
index 503aa5538a..8aaa01eaa2 100644
--- a/core/host/build.mk
+++ b/core/host/build.mk
@@ -6,6 +6,8 @@
# emulator specific files build
#
-CFLAGS_CPU=-fno-builtin
+# Build host board in 32-bit mode for a better chance of catching things like
+# 64-bit write tearing.
+CFLAGS_CPU=-fno-builtin -m32
core-y=main.o task.o timer.o panic.o disabled.o stack_trace.o