mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Merge pull request #8365 from beduino-project/fix-clang-5.0-build
makefiles: always link with GCC even if TOOLCHAIN is set to LLVM
This commit is contained in:
commit
745f1fc38f
@ -313,7 +313,7 @@ LINKFLAGPREFIX ?= -Wl,
|
||||
|
||||
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)
|
||||
link: ..in-docker-container
|
||||
@ -323,7 +323,7 @@ link: ..compiler-check ..build-message $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=$
|
||||
$(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk
|
||||
ifeq (,$(RIOTNOLINK))
|
||||
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
|
||||
$(Q)$(_LINK) -o $(ELFFILE)
|
||||
endif
|
||||
|
@ -8,6 +8,7 @@ export AR = $(PREFIX)ar
|
||||
endif
|
||||
export AS = $(PREFIX)as
|
||||
export LINK = $(PREFIX)gcc
|
||||
export LINKXX = $(PREFIX)g++
|
||||
export SIZE = $(PREFIX)size
|
||||
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
|
||||
ifeq ($(OBJCOPY),)
|
||||
|
@ -9,12 +9,15 @@ endif
|
||||
export CC = clang
|
||||
export CXX = clang++
|
||||
export CCAS ?= $(CC)
|
||||
export LINK = $(CC)
|
||||
export AS = $(LLVMPREFIX)as
|
||||
export AR = $(LLVMPREFIX)ar
|
||||
export NM = $(LLVMPREFIX)nm
|
||||
# There is no LLVM linker yet, use GNU binutils.
|
||||
#export LINKER = $(LLVMPREFIX)ld
|
||||
# LLVM does have a linker, however, it is not entirely
|
||||
# compatible with GCC. For instance spec files as used in
|
||||
# `makefiles/libc/newlib.mk` are not supported. Therefore
|
||||
# we just use GCC for now.
|
||||
export LINK = $(PREFIX)gcc
|
||||
export LINKXX = $(PREFIX)g++
|
||||
# objcopy does not have a clear substitute in LLVM, use GNU binutils
|
||||
#export OBJCOPY = $(LLVMPREFIX)objcopy
|
||||
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
|
||||
@ -52,7 +55,8 @@ ifneq (,$(TARGET_ARCH))
|
||||
# Tell clang to cross compile
|
||||
export CFLAGS += -target $(TARGET_ARCH)
|
||||
export CXXFLAGS += -target $(TARGET_ARCH)
|
||||
export LINKFLAGS += -target $(TARGET_ARCH)
|
||||
# We currently don't use LLVM for linking (see comment above).
|
||||
#export LINKFLAGS += -target $(TARGET_ARCH)
|
||||
|
||||
# Use the wildcard Makefile function to search for existing directories matching
|
||||
# the patterns above. We use the -isystem gcc/clang argument to add the include
|
||||
|
Loading…
Reference in New Issue
Block a user