# Programs used
CC := $(CROSS_COMPILE)gcc
+LD := $(CROSS_COMPILE)ld
+OBJCOPY := $(CROSS_COMPILE)objcopy
CPP := $(CC) -E
INSTALL := install
INSTALL_DATA := $(INSTALL) -m 644 -p
INSTALL_DIR := $(INSTALL) -d -p
INSTALL_PROGRAM := $(INSTALL) -p
-# 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 OBJCOPY PYTHON
+export CC LD CPP INSTALL INSTALL_DATA INSTALL_DIR INSTALL_PROGRAM OBJCOPY PYTHON
.PHONY: all
all:
head-$(1) := $(ROOT)/arch/x86/$($(1)_guest)/head-$(1).o
link-$(1) := $(ROOT)/arch/x86/link-$(1).lds
-LDFLAGS_$(1) := -Wl,-T,$$(link-$(1)) -nostdlib $(LDFLAGS-y)
+LDFLAGS_$(1) := -T $$(link-$(1)) -nostdlib $(LDFLAGS-y)
# 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))
- $(CC) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@
+ $(LD) $$(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))
- $(CC) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@.tmp
+ $(LD) $$(LDFLAGS_$(1)) $$(DEPS-$(1)) -o $$@.tmp
$(OBJCOPY) $$@.tmp -O $(hvm64-format) $$@
rm -f $$@.tmp
endif