[arch][rules] create ARCH_LDFLAGS and clean up all the arch rules files to consistently use ARCH_* vars
This commit is contained in:
committed by
Travis Geiselbrecht
parent
81fb739873
commit
5d43aa25eb
@@ -306,7 +306,7 @@ ARCH_COMPILEFLAGS += $(ARCH_$(ARCH)_COMPILEFLAGS)
|
||||
GLOBAL_COMPILEFLAGS += $(THUMBINTERWORK)
|
||||
|
||||
# set the max page size to something more reasonables (defaults to 64K or above)
|
||||
GLOBAL_LDFLAGS += -z max-page-size=4096
|
||||
ARCH_LDFLAGS += -z max-page-size=4096
|
||||
|
||||
# find the direct path to libgcc.a for our particular multilib variant
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(THUMBCFLAGS) -print-libgcc-file-name)
|
||||
|
||||
@@ -92,9 +92,9 @@ $(info TOOLCHAIN_PREFIX = $(TOOLCHAIN_PREFIX))
|
||||
|
||||
ARCH_COMPILEFLAGS += $(ARCH_$(ARCH)_COMPILEFLAGS)
|
||||
|
||||
GLOBAL_LDFLAGS += -z max-page-size=4096
|
||||
ARCH_LDFLAGS += -z max-page-size=4096
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
|
||||
# make sure some bits were set up
|
||||
MEMVARS_SET := 0
|
||||
|
||||
@@ -29,21 +29,20 @@ WITH_LINKER_GC ?= 0
|
||||
LITTLE_ENDIAN ?= 0
|
||||
|
||||
ifneq ($(LITTLE_ENDIAN),0)
|
||||
GLOBAL_COMPILEFLAGS += -mlittle-endian
|
||||
GLOBAL_LDFLAGS += -EL
|
||||
ARCH_COMPILEFLAGS += -mlittle-endian
|
||||
ARCH_LDFLAGS += -EL
|
||||
GLOBAL_MODULE_LDFLAGS += -EL
|
||||
endif
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
$(info LIBGCC = $(LIBGCC))
|
||||
|
||||
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \
|
||||
then echo "$(2)"; else echo "$(3)"; fi ;)
|
||||
|
||||
ARCH_COMPILEFLAGS :=
|
||||
ARCH_OPTFLAGS := -O2
|
||||
|
||||
GLOBAL_LDFLAGS += -relax
|
||||
ARCH_LDFLAGS += -relax
|
||||
|
||||
KERNEL_BASE ?= $(MEMBASE)
|
||||
KERNEL_LOAD_OFFSET ?= 0
|
||||
|
||||
@@ -30,13 +30,13 @@ WITH_LINKER_GC ?= 0
|
||||
LITTLE_ENDIAN ?= 0
|
||||
|
||||
ifneq ($(LITTLE_ENDIAN),0)
|
||||
GLOBAL_COMPILEFLAGS += -EL
|
||||
GLOBAL_ASFLAGS += -EL
|
||||
GLOBAL_LDFLAGS += -EL
|
||||
ARCH_COMPILEFLAGS += -EL
|
||||
ARCH_ASFLAGS += -EL
|
||||
ARCH_LDFLAGS += -EL
|
||||
GLOBAL_MODULE_LDFLAGS += -EL
|
||||
endif
|
||||
|
||||
ARCH_COMPILEFLAGS := -mno-gpopt
|
||||
ARCH_COMPILEFLAGS += -mno-gpopt
|
||||
ARCH_OPTFLAGS := -O2
|
||||
|
||||
ifeq ($(MIPS_CPU),m14k)
|
||||
@@ -46,7 +46,7 @@ ifeq ($(MIPS_CPU),microaptiv-uc)
|
||||
ARCH_COMPILEFLAGS += -march=m14k
|
||||
endif
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
$(info LIBGCC = $(LIBGCC))
|
||||
|
||||
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \
|
||||
|
||||
@@ -20,15 +20,15 @@ ifndef TOOLCHAIN_PREFIX
|
||||
TOOLCHAIN_PREFIX := or1k-elf-
|
||||
endif
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) -print-libgcc-file-name)
|
||||
$(info LIBGCC = $(LIBGCC))
|
||||
|
||||
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \
|
||||
then echo "$(2)"; else echo "$(3)"; fi ;)
|
||||
|
||||
ARCH_OPTFLAGS := -O2
|
||||
|
||||
GLOBAL_LDFLAGS += -relax
|
||||
ARCH_LDFLAGS += -relax
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
$(info LIBGCC = $(LIBGCC))
|
||||
|
||||
KERNEL_BASE ?= $(MEMBASE)
|
||||
KERNEL_LOAD_OFFSET ?= 0
|
||||
|
||||
@@ -74,28 +74,28 @@ $(warning ARCH_x86_TOOLCHAIN_PREFIX = $(ARCH_x86_TOOLCHAIN_PREFIX))
|
||||
$(warning ARCH_x86_64_TOOLCHAIN_PREFIX = $(ARCH_x86_64_TOOLCHAIN_PREFIX))
|
||||
$(warning TOOLCHAIN_PREFIX = $(TOOLCHAIN_PREFIX))
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) -print-libgcc-file-name)
|
||||
|
||||
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`"; \
|
||||
then echo "$(2)"; else echo "$(3)"; fi ;)
|
||||
|
||||
# disable SSP if the compiler supports it; it will break stuff
|
||||
GLOBAL_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
|
||||
|
||||
GLOBAL_COMPILEFLAGS += -fasynchronous-unwind-tables
|
||||
GLOBAL_COMPILEFLAGS += -gdwarf-2
|
||||
GLOBAL_COMPILEFLAGS += -fno-pic
|
||||
GLOBAL_LDFLAGS += -z max-page-size=4096
|
||||
ARCH_COMPILEFLAGS += -fasynchronous-unwind-tables
|
||||
ARCH_COMPILEFLAGS += -gdwarf-2
|
||||
ARCH_COMPILEFLAGS += -fno-pic
|
||||
ARCH_LDFLAGS += -z max-page-size=4096
|
||||
|
||||
ifeq ($(SUBARCH),x86-64)
|
||||
GLOBAL_COMPILEFLAGS += -fno-stack-protector
|
||||
GLOBAL_COMPILEFLAGS += -mcmodel=kernel
|
||||
GLOBAL_COMPILEFLAGS += -mno-red-zone
|
||||
ARCH_COMPILEFLAGS += -fno-stack-protector
|
||||
ARCH_COMPILEFLAGS += -mcmodel=kernel
|
||||
ARCH_COMPILEFLAGS += -mno-red-zone
|
||||
endif # SUBARCH x86-64
|
||||
|
||||
|
||||
ARCH_OPTFLAGS := -O2
|
||||
|
||||
LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) -print-libgcc-file-name)
|
||||
$(warning LIBGCC = $(LIBGCC))
|
||||
|
||||
LINKER_SCRIPT += $(SUBARCH_BUILDDIR)/kernel.ld
|
||||
|
||||
# potentially generated files that should be cleaned out with clean make rule
|
||||
|
||||
@@ -72,6 +72,7 @@ ARCH_COMPILEFLAGS :=
|
||||
ARCH_CFLAGS :=
|
||||
ARCH_CPPFLAGS :=
|
||||
ARCH_ASMFLAGS :=
|
||||
ARCH_LDFLAGS :=
|
||||
|
||||
# top level rule
|
||||
all:: $(OUTBIN) $(OUTELF).lst $(OUTELF).debug.lst $(OUTELF).sym $(OUTELF).sym.sorted $(OUTELF).size $(OUTELF).dump $(BUILDDIR)/srcfiles.txt $(BUILDDIR)/include_paths.txt
|
||||
@@ -220,6 +221,7 @@ GLOBAL_DEFINES += ARCH_COMPILEFLAGS=\"$(subst $(SPACE),_,$(ARCH_COMPILEFLAGS))\"
|
||||
GLOBAL_DEFINES += ARCH_CFLAGS=\"$(subst $(SPACE),_,$(ARCH_CFLAGS))\"
|
||||
GLOBAL_DEFINES += ARCH_CPPFLAGS=\"$(subst $(SPACE),_,$(ARCH_CPPFLAGS))\"
|
||||
GLOBAL_DEFINES += ARCH_ASMFLAGS=\"$(subst $(SPACE),_,$(ARCH_ASMFLAGS))\"
|
||||
GLOBAL_DEFINES += ARCH_LDFLAGS=\"$(subst $(SPACE),_,$(ARCH_LDFLAGS))\"
|
||||
|
||||
ifneq ($(OBJS),)
|
||||
$(warning OBJS=$(OBJS))
|
||||
|
||||
@@ -22,7 +22,8 @@ $(OUTELF).hex: $(OUTELF)
|
||||
$(OUTELF): $(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LINKER_SCRIPT) $(EXTRA_LINKER_SCRIPTS)
|
||||
@echo linking $@
|
||||
$(NOECHO)$(SIZE) -t --common $(sort $(ALLMODULE_OBJS)) $(EXTRA_OBJS)
|
||||
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -dT $(LINKER_SCRIPT) $(addprefix -T,$(EXTRA_LINKER_SCRIPTS)) \
|
||||
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) $(ARCH_LDFLAGS) -dT $(LINKER_SCRIPT) \
|
||||
$(addprefix -T,$(EXTRA_LINKER_SCRIPTS)) \
|
||||
$(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LIBGCC) -Map=$(OUTELF).map -o $@
|
||||
|
||||
$(OUTELF).sym: $(OUTELF)
|
||||
|
||||
Reference in New Issue
Block a user