Skip to content
Snippets Groups Projects
Commit 55b026b3 authored by Sören Tempel's avatar Sören Tempel
Browse files

Makefile.include: Introduce LINKXX variable

This variable can be used to specify the linker which should be used to
link C++ object files. This is needed in order to use g++ for linking
with TOOLCHAIN=llvm.
parent 18f99ef7
No related branches found
No related tags found
No related merge requests found
...@@ -310,7 +310,7 @@ LINKFLAGPREFIX ?= -Wl, ...@@ -310,7 +310,7 @@ LINKFLAGPREFIX ?= -Wl,
DIRS += $(EXTERNAL_MODULE_DIRS) DIRS += $(EXTERNAL_MODULE_DIRS)
_LINK = $(if $(CPPMIX),$(CXX),$(LINK)) $(UNDEF) $(LINKFLAGPREFIX)--start-group $(BASELIBS) -lm $(LINKFLAGPREFIX)--end-group $(LINKFLAGPREFIX)-Map=$(BINDIR)/$(APPLICATION).map $(LINKFLAGS) _LINK = $(if $(CPPMIX),$(LINKXX),$(LINK)) $(UNDEF) $(LINKFLAGPREFIX)--start-group $(BASELIBS) -lm $(LINKFLAGPREFIX)--end-group $(LINKFLAGPREFIX)-Map=$(BINDIR)/$(APPLICATION).map $(LINKFLAGS)
ifeq ($(BUILD_IN_DOCKER),1) ifeq ($(BUILD_IN_DOCKER),1)
link: ..in-docker-container link: ..in-docker-container
...@@ -320,7 +320,7 @@ link: ..compiler-check ..build-message $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=$ ...@@ -320,7 +320,7 @@ link: ..compiler-check ..build-message $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=$
$(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk $(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk
ifeq (,$(RIOTNOLINK)) ifeq (,$(RIOTNOLINK))
ifeq ($(BUILDOSXNATIVE),1) ifeq ($(BUILDOSXNATIVE),1)
$(Q)$(if $(CPPMIX),$(CXX),$(LINK)) $(UNDEF) -o $(ELFFILE) $$(find $(BASELIBS) -size +8c) $(LINKFLAGS) $(LINKFLAGPREFIX)-no_pie $(Q)$(if $(CPPMIX),$(LINKXX),$(LINK)) $(UNDEF) -o $(ELFFILE) $$(find $(BASELIBS) -size +8c) $(LINKFLAGS) $(LINKFLAGPREFIX)-no_pie
else else
$(Q)$(_LINK) -o $(ELFFILE) $(Q)$(_LINK) -o $(ELFFILE)
endif endif
......
...@@ -8,6 +8,7 @@ export AR = $(PREFIX)ar ...@@ -8,6 +8,7 @@ export AR = $(PREFIX)ar
endif endif
export AS = $(PREFIX)as export AS = $(PREFIX)as
export LINK = $(PREFIX)gcc export LINK = $(PREFIX)gcc
export LINKXX = $(PREFIX)g++
export SIZE = $(PREFIX)size export SIZE = $(PREFIX)size
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1) export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
ifeq ($(OBJCOPY),) ifeq ($(OBJCOPY),)
......
...@@ -17,6 +17,7 @@ export NM = $(LLVMPREFIX)nm ...@@ -17,6 +17,7 @@ export NM = $(LLVMPREFIX)nm
# `makefiles/libc/newlib.mk` are not supported. Therefore # `makefiles/libc/newlib.mk` are not supported. Therefore
# we just use GCC for now. # we just use GCC for now.
export LINK = $(PREFIX)gcc export LINK = $(PREFIX)gcc
export LINKXX = $(PREFIX)g++
# objcopy does not have a clear substitute in LLVM, use GNU binutils # objcopy does not have a clear substitute in LLVM, use GNU binutils
#export OBJCOPY = $(LLVMPREFIX)objcopy #export OBJCOPY = $(LLVMPREFIX)objcopy
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1) export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment