This is a prerequisite for using LTO.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
INSTALL_DATA := $(INSTALL) -m 644 -p
INSTALL_DIR := $(INSTALL) -d -p
INSTALL_PROGRAM := $(INSTALL) -p
-LD := $(CROSS_COMPILE)ld
+# LD := $(CC) # Use $(CC) for linking to support LTO
OBJCOPY := $(CROSS_COMPILE)objcopy
PYTHON := python
-export CC CPP INSTALL INSTALL_DATA INSTALL_DIR INSTALL_PROGRAM LD OBJCOPY PYTHON
+export CC CPP INSTALL INSTALL_DATA INSTALL_DIR INSTALL_PROGRAM OBJCOPY PYTHON
.PHONY: all
all:
link-$(1) := $(ROOT)/arch/x86/link-$(1).lds
-LDFLAGS_$(1) := -T $$(link-$(1))
+LDFLAGS_$(1) := -Wl,-T,$$(link-$(1)) -nostdlib
# Needs to pick up test-provided obj-perenv and obj-perarch
DEPS-$(1) = $(head-$(1)) \
ifneq ($(1),hvm64)
# Generic link line for most environments
test-$(1)-$(NAME): $$(DEPS-$(1)) $$(link-$(1))
- $$(LD) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@
+ $(CC) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@
else
# hvm64 needs linking normally, then converting to elf32-x86-64 or elf32-i386
test-$(1)-$(NAME): $$(DEPS-$(1)) $$(link-$(1))
- $$(LD) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@.tmp
+ $(CC) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@.tmp
$(OBJCOPY) $$@.tmp -O $(hvm64-format) $$@
rm -f $$@.tmp
endif