summaryrefslogtreecommitdiff
path: root/Makefile.rules
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2022-08-25 09:45:16 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-29 02:19:23 +0000
commit4851d8c8d52ba8376392dc1ffde5da05af938150 (patch)
tree989dd20dfa5e7511d29dddded22c527038b4c144 /Makefile.rules
parent52cd0dcce80561ea74413e3e0a1796b3dcb5e671 (diff)
downloadchrome-ec-4851d8c8d52ba8376392dc1ffde5da05af938150.tar.gz
Makefile: Add option to link with C++
Boards that compile C++ files should link with the C++ compiler so that the C++ standard library is included when linking (-lc++ for clang and -lstdc++ for g++). BRANCH=none BUG=b:234181908 TEST=make buildall Force-Relevant-Builds: all Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I84d7ea44c7f3b3c9f17ca6308521e7041f7e5e8f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3857942 Reviewed-by: Bobby Casey <bobbycasey@google.com> Reviewed-by: Andrea Grandi <agrandi@google.com>
Diffstat (limited to 'Makefile.rules')
-rw-r--r--Makefile.rules6
1 files changed, 3 insertions, 3 deletions
diff --git a/Makefile.rules b/Makefile.rules
index 87d21b6b03..7173cc8aae 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -86,7 +86,7 @@ cmd_elf_to_hex = $(OBJCOPY) -O ihex $< $@
cmd_bin_to_hex = $(OBJCOPY) -I binary -O ihex \
--change-addresses $(_program_memory_base) $^ $@
cmd_smap = $(NM) $< | sort > $@
-cmd_elf = $(CC) $(objs) $(libsharedobjs_elf-y) $(LDFLAGS) \
+cmd_elf = $(COMPILER) $(objs) $(libsharedobjs_elf-y) $(LDFLAGS) \
-o $@ -Wl,-T,$< -Wl,-Map,$(patsubst %.elf,%.map,$@)
ifeq ($(cc-name),gcc)
cmd_elf+= -flto-partition=one
@@ -98,7 +98,7 @@ endif
cmd_fuzz_exe = $(CXX) $^ $(HOST_TEST_LDFLAGS) $(LDFLAGS_EXTRA) -o $@
cmd_run_fuzz = build/host/$*/$*.exe -seed=1 -runs=1 $(silent) \
$(silent_err) || (echo "Test $* failed!" && false)
-cmd_exe = $(CC) $(ro-objs) $(HOST_TEST_LDFLAGS) $(LDFLAGS_EXTRA) -o $@
+cmd_exe = $(COMPILER) $(ro-objs) $(HOST_TEST_LDFLAGS) $(LDFLAGS_EXTRA) -o $@
cmd_c_to_o = $(CC) -std=gnu11 $(C_WARN) $(CFLAGS) -MMD -MP -MF $@.d -c $< \
-MT $(@D)/$(@F) -o $(@D)/$(@F)
cmd_cxx_to_o = $(CXX) -std=gnu++17 $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $@.d -c $< \
@@ -131,7 +131,7 @@ cmd_mv_from_tmp = mv $(out)/$*.bin.tmp $(out)/$*.bin
cmd_extractrw-y = dd if=$(out)/$(PROJECT).bin.tmp of=$(out)/$(PROJECT).RW.bin \
bs=1 count=$(_rw_size) skip=$(_rw_off) $(silent_err)
cmd_copyrw-y = cd $(out) && cp RW/$(PROJECT).RW.flat RW/$(PROJECT).RW.bin
-cmd_sharedlib_elf = $(CC) $(libsharedobjs_deps) \
+cmd_sharedlib_elf = $(COMPILER) $(libsharedobjs_deps) \
-Wl,-T,common/ec.$(SHOBJLIB).ld $(LDFLAGS) \
-o $(out)/$(SHOBJLIB)/$(SHOBJLIB).elf \
-Wl,-Map,$(out)/$(SHOBJLIB)/$(SHOBJLIB).map