diff options
author | Evan Green <evgreen@chromium.org> | 2021-07-28 10:10:40 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-08-02 15:43:22 +0000 |
commit | 1821e9423af84c7a126a4a15303c6492dd44e94b (patch) | |
tree | b878e1e54b7497cbd74e57ebbef4c50dcc4ee975 | |
parent | fbdb8051c96eb0ec7f533ef091d4b49a8c98d5b3 (diff) | |
download | chrome-ec-1821e9423af84c7a126a4a15303c6492dd44e94b.tar.gz |
make: Compile host tests in 32-bit mode
Compile the host tests in 32-bit mode instead of 64-bit mode as it's
more likely to match the actual environments our ECs run on. For
instance, in 32-bit mode the tests might actually have a prayer of
finding a torn read or write bug, whereas in 64-bit mode 64-bit integers
are always operated on atomically.
BUG=b:179062230
BRANCH=none
TEST=make -j runhosttests BOARD=host on x86_64 and i686
Signed-off-by: Evan Green <evgreen@chromium.org>
Change-Id: I02517066337ec08c311c1f7daae5d3de84b1f4c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3059231
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
-rw-r--r-- | Makefile.rules | 2 | ||||
-rw-r--r-- | Makefile.toolchain | 4 | ||||
-rw-r--r-- | core/host/build.mk | 4 |
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 |