summaryrefslogtreecommitdiff
path: root/Makefile.toolchain
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2019-02-12 09:49:00 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-28 04:28:20 +0000
commitab71261010629016885601b6f7553c5ba0c08560 (patch)
treefc353b54ac8f5fd61e74427a4cb87c1d10b1802f /Makefile.toolchain
parent476ce6df63da54684da2727b1d1a8ffcc818388e (diff)
downloadchrome-ec-ab71261010629016885601b6f7553c5ba0c08560.tar.gz
fpsensor: Build fpsensor source file with C++
Note that this change also removes abs() since this change makes the fingerprint firmware link against the toolchain's C standard library, which already provides an implementation. abs() is not actually used by the FPC matching algorithm even though it links against it. BRANCH=none BUG=b:236025198, b:234181908 TEST=On dragonclaw v0.2 with servo_micro and J-Trace attached: ./util/flash_jlink.py -b bloonchipper -i ./build/bloonchipper/ec.bin > fpenroll > fpmatch TEST=On dragonclaw v0.2 with servo_micro and J-Trace attached: ./test/run_device_tests.py --board bloonchipper Test "aes": PASSED Test "cec": PASSED Test "cortexm_fpu": PASSED Test "crc": PASSED Test "flash_physical": PASSED Test "flash_write_protect": PASSED Test "fpsensor_hw": PASSED Test "fpsensor_spi_ro": PASSED Test "fpsensor_spi_rw": PASSED Test "fpsensor_uart_ro": PASSED Test "fpsensor_uart_rw": PASSED Test "mpu_ro": PASSED Test "mpu_rw": PASSED Test "mutex": PASSED Test "pingpong": PASSED Test "printf": PASSED Test "queue": PASSED Test "rollback_region0": PASSED Test "rollback_region1": PASSED Test "rollback_entropy": PASSED Test "rtc": PASSED Test "sha256": PASSED Test "sha256_unrolled": PASSED Test "static_if": PASSED Test "stdlib": PASSED Test "system_is_locked_wp_on": PASSED Test "system_is_locked_wp_off": PASSED Test "timer_dos": PASSED Test "utils": PASSED Test "utils_str": PASSED Test "stm32f_rtc": PASSED Test "panic_data_bloonchipper_v2.0.4277": PASSED Test "panic_data_bloonchipper_v2.0.5938": PASSED TEST=On icetower v0.1 with servo_micro and J-Trace attached: ./util/flash_jlink.py -b dartmonkey -i ./build/dartmonkey/ec.bin > fpenroll > fpmatch TEST=On icetower v0.1 with servo_micro and J-Trace attached: ./test/run_device_tests.py --board dartmonkey Test "aes": PASSED Test "cec": PASSED Test "cortexm_fpu": PASSED Test "crc": PASSED Test "flash_physical": PASSED Test "flash_write_protect": PASSED Test "fpsensor_hw": PASSED Test "fpsensor_spi_ro": PASSED Test "fpsensor_spi_rw": PASSED Test "fpsensor_uart_ro": PASSED Test "fpsensor_uart_rw": PASSED Test "mpu_ro": PASSED Test "mpu_rw": PASSED Test "mutex": PASSED Test "pingpong": PASSED Test "printf": PASSED Test "queue": PASSED Test "rollback_region0": PASSED Test "rollback_region1": PASSED Test "rollback_entropy": PASSED Test "rtc": PASSED Test "sha256": PASSED Test "sha256_unrolled": PASSED Test "static_if": PASSED Test "stdlib": PASSED Test "system_is_locked_wp_on": PASSED Test "system_is_locked_wp_off": PASSED Test "timer_dos": PASSED Test "utils": PASSED Test "utils_str": PASSED Test "panic_data_dartmonkey_v2.0.2887": PASSED Test "panic_data_nocturne_fp_v2.2.64": PASSED Test "panic_data_nami_fp_v2.2.144": PASSED LOW_COVERAGE_REASON=legacy code Force-Relevant-Builds: all Cq-Depend: chromium:3894586 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I2c7947d21e7020b51f7b5b3d87ef64545de867c1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3893045 Reviewed-by: Andrea Grandi <agrandi@google.com> Reviewed-by: Bobby Casey <bobbycasey@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Diffstat (limited to 'Makefile.toolchain')
-rw-r--r--Makefile.toolchain20
1 files changed, 20 insertions, 0 deletions
diff --git a/Makefile.toolchain b/Makefile.toolchain
index b960fadb4f..a37e7cc100 100644
--- a/Makefile.toolchain
+++ b/Makefile.toolchain
@@ -29,6 +29,21 @@ endif
# library.
USE_BUILTIN_STDLIB:=1
+# Boards that compile with clang by default.
+# We can't use a config for this since the config generation uses the compiler.
+CLANG_BOARDS:= \
+ bloonchipper \
+ dartmonkey \
+ hatch_fp \
+ nami_fp \
+ nocturne_fp \
+ nucleo-dartmonkey \
+
+ifeq ($(filter $(BOARD), $(CLANG_BOARDS)), $(BOARD))
+CC=clang
+USE_BUILTIN_STDLIB:=0
+endif
+
# Set the prefix for the compiler if specified (e.g., "x86_64-pc-linux-gnu-").
ifeq ($(origin BUILDCC_PREFIX),undefined)
# If building with Portage use the environment variable it provides.
@@ -170,9 +185,14 @@ ifneq ($(cc-name),clang)
CFLAGS+= -ffat-lto-objects
CFLAGS+= -fconserve-stack
endif
+CXXFLAGS=$(CXXFLAGS_WARN)
CXXFLAGS+=-DPROTOBUF_INLINE_NOT_IN_HEADERS=0
ifeq ($(USE_BUILTIN_STDLIB), 1)
CPPFLAGS+=-DUSE_BUILTIN_STDLIB
+else
+# TODO(https://issuetracker.google.com/234507656#comment19): C++ include path
+# should not be necessary.
+CXXFLAGS+=-I/usr/armv7m-cros-eabi/usr/include/c++/v1
endif
ifeq ($(LIBFTDI_NAME),)