From 25f69764533e0cc8aca59eea0807cf05c03a50fa Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Mon, 10 Apr 2017 16:19:06 +0200 Subject: [PATCH] Fix and cleanup config.mk, use -mtune=34kc by default --- u-boot/config.mk | 206 +++++++++++--------------------------- u-boot/cpu/mips/config.mk | 28 +----- 2 files changed, 66 insertions(+), 168 deletions(-) diff --git a/u-boot/config.mk b/u-boot/config.mk index 69ffca4..2199e1a 100644 --- a/u-boot/config.mk +++ b/u-boot/config.mk @@ -26,198 +26,114 @@ # clean the slate ... PLATFORM_RELFLAGS = PLATFORM_CPPFLAGS = -PLATFORM_LDFLAGS = +PLATFORM_LDFLAGS = -# -# When cross-compiling on NetBSD, we have to define __PPC__ or else we -# will pick up a va_list declaration that is incompatible with the -# actual argument lists emitted by the compiler. -# -# [Tested on NetBSD/i386 1.5 + cross-powerpc-netbsd-1.3] - -ifeq ($(ARCH),ppc) -ifeq ($(CROSS_COMPILE),powerpc-netbsd-) -PLATFORM_CPPFLAGS+= -D__PPC__ -endif -ifeq ($(CROSS_COMPILE),powerpc-openbsd-) -PLATFORM_CPPFLAGS+= -D__PPC__ -endif +# include architecture dependend rules +ifdef ARCH + sinclude $(TOPDIR)/$(ARCH)_config.mk endif -ifeq ($(ARCH),arm) -ifeq ($(CROSS_COMPILE),powerpc-netbsd-) -PLATFORM_CPPFLAGS+= -D__ARM__ -endif -ifeq ($(CROSS_COMPILE),powerpc-openbsd-) -PLATFORM_CPPFLAGS+= -D__ARM__ -endif +# include CPU specific rules +ifdef CPU + sinclude $(TOPDIR)/cpu/$(CPU)/config.mk endif -ifeq ($(ARCH),blackfin) -PLATFORM_CPPFLAGS+= -D__BLACKFIN__ -mno-underscore +# include SoC specific rules +ifdef SOC + sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk endif -ifdef ARCH -sinclude $(TOPDIR)/$(ARCH)_config.mk # include architecture dependend rules -endif -ifdef CPU -sinclude $(TOPDIR)/cpu/$(CPU)/config.mk # include CPU specific rules -endif -ifdef SOC -sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk # include SoC specific rules -endif -ifdef VENDOR -BOARDDIR = $(VENDOR)/$(BOARD) +# include vendor/board specific rules +ifdef VENDOR + BOARDDIR = $(VENDOR)/$(BOARD) else -BOARDDIR = $(BOARD) + BOARDDIR = $(BOARD) endif -ifdef BOARD -sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules + +ifdef BOARD + sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk endif ######################################################################### -CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ - else if [ -x /bin/bash ]; then echo /bin/bash; \ - else echo sh; fi ; fi) +CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ + else if [ -x /bin/bash ]; then echo /bin/bash; \ + else echo sh; fi; fi) ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc) -HOSTCC = cc + HOSTCC = cc else -HOSTCC = gcc + HOSTCC = gcc endif -HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -HOSTSTRIP = strip -COMPRESS = lzma +HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer +HOSTSTRIP = strip + ######################################################################### -# -# Option checker (courtesy linux kernel) to ensure -# only supported compiler options are used -# -cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ - > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) -# # Include the make variables (CC, etc...) -# -AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CC) -E -AR = $(CROSS_COMPILE)ar -NM = $(CROSS_COMPILE)nm -STRIP = $(CROSS_COMPILE)strip +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump -RANLIB = $(CROSS_COMPILE)RANLIB +RANLIB = $(CROSS_COMPILE)RANLIB .depend : CC = @$(CROSS_COMPILE)gcc -RELFLAGS= $(PLATFORM_RELFLAGS) -OPTFLAGS= -O +RELFLAGS = $(PLATFORM_RELFLAGS) +OPTFLAGS = -O + ifndef LDSCRIPT -LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds + LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds endif -OBJCFLAGS += --gap-fill=0xff +LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) -LDSCRIPT_BOOTSTRAP := $(TOPDIR)/board/$(BOARDDIR)/u-boot-bootstrap.lds +ifdef COMPRESSED_UBOOT + ifndef LDSCRIPT_BOOTSTRAP + LDSCRIPT_BOOTSTRAP := $(TOPDIR)/board/$(BOARDDIR)/u-boot-bootstrap.lds + endif + LDFLAGS_BOOTSTRAP := -Bstatic -T $(LDSCRIPT_BOOTSTRAP) + LDFLAGS_BOOTSTRAP += -Ttext $(BOOTSTRAP_TEXT_BASE) $(PLATFORM_LDFLAGS) +endif + +OBJCFLAGS += --gap-fill=0xff gccincdir := $(shell $(CC) -print-file-name=include) -CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ - -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ - -I$(TOPDIR)/include \ - -fno-builtin -ffreestanding -nostdinc -isystem \ - $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) +CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \ + -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \ + -I$(TOPDIR)/include \ + -fno-builtin -ffreestanding -nostdinc -isystem \ + $(gccincdir) -pipe $(PLATFORM_CPPFLAGS) -ifdef BUILD_TAG -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \ - -DBUILD_TAG='"$(BUILD_TAG)"' -else CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes + ifdef COMPRESSED_UBOOT -CFLAGS += -DCOMPRESSED_UBOOT=1 + CFLAGS += -DCOMPRESSED_UBOOT=1 endif ifeq ($(BUILD_OPTIMIZED),y) -CFLAGS += -Os -funit-at-a-time -mips32r2 -mtune=mips32r2 -endif + CFLAGS += -Os -fno-reorder-functions + CPPFLAGS += -Os -fno-reorder-functions endif -ifeq ($(BUILD_TYPE),jffs2) -CFLAGS += -DROOTFS=1 -else -ifeq ($(BUILD_TYPE),squashfs) -CFLAGS += -DROOTFS=2 -endif -endif - -# avoid trigraph warnings while parsing pci.h (produced by NIOS gcc-2.9) -# this option have to be placed behind -Wall -- that's why it is here -ifeq ($(ARCH),nios) -ifeq ($(findstring 2.9,$(shell $(CC) --version)),2.9) -CFLAGS := $(CPPFLAGS) -Wall -Wno-trigraphs -endif -endif - -ifeq ($(BUILD_TYPE),jffs2) -CFLAGS += -DROOTFS=1 -else -ifeq ($(BUILD_TYPE),squashfs) -CFLAGS += -DROOTFS=2 -endif -endif - -AFLAGS_DEBUG := -Wa,-gstabs - +AFLAGS_DEBUG := AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS) -ifdef COMPRESSED_UBOOT -AFLAGS += -DCOMPRESSED_UBOOT=1 -endif - -LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) ifdef COMPRESSED_UBOOT -LDFLAGS_BOOTSTRAP += -Bstatic -T $(LDSCRIPT_BOOTSTRAP) -Ttext $(BOOTSTRAP_TEXT_BASE) $(PLATFORM_LDFLAGS) + AFLAGS += -DCOMPRESSED_UBOOT=1 endif -# Location of a usable BFD library, where we define "usable" as -# "built for ${HOST}, supports ${TARGET}". Sensible values are -# - When cross-compiling: the root of the cross-environment -# - Linux/ppc (native): /usr -# - NetBSD/ppc (native): you lose ... (must extract these from the -# binutils build directory, plus the native and U-Boot include -# files don't like each other) -# -# So far, this is used only by tools/gdb/Makefile. - -ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc) -BFD_ROOT_DIR = /usr/local/tools -else -ifeq ($(HOSTARCH),$(ARCH)) -# native -BFD_ROOT_DIR = /usr -else -#BFD_ROOT_DIR = /LinuxPPC/CDK # Linux/i386 -#BFD_ROOT_DIR = /usr/pkg/cross # NetBSD/i386 -BFD_ROOT_DIR = /opt/powerpc -endif -endif - -ifeq ($(PCI_CLOCK),PCI_66M) -CFLAGS := $(CFLAGS) -DPCI_66M -endif - -#CFLAGS += $(UBOOT_GCC_4_3_3_EXTRA_CFLAGS) -g -CFLAGS += $(UBOOT_GCC_4_3_3_EXTRA_CFLAGS) - ######################################################################### -export CONFIG_SHELL HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE \ - AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP \ - MAKE -export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS +export AFLAGS AR AS CC CFLAGS CONFIG_SHELL CPP CPPFLAGS CROSS_COMPILE HOSTCC \ + HOSTCFLAGS HPATH LD MAKE NM OBJCOPY OBJDUMP PLATFORM_CPPFLAGS \ + PLATFORM_RELFLAGS STRIP TEXT_BASE ifeq ($(V),1) Q = diff --git a/u-boot/cpu/mips/config.mk b/u-boot/cpu/mips/config.mk index 21728ca..e9b86b4 100644 --- a/u-boot/cpu/mips/config.mk +++ b/u-boot/cpu/mips/config.mk @@ -20,29 +20,11 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # -#v=$(shell \ -mips-openwrt-linux-uclibc-as --version|grep "GNU assembler"|awk '{print $$3}'|awk -F . '{print $$2}') -v=22 -MIPSFLAGS=$(shell \ -if [ "$v" -lt "14" ]; then \ - echo "-mcpu=mips32"; \ -else \ - echo "-mips32 -march=mips32 -mtune=mips32"; \ -fi) - -ifndef ENDIANNESS -ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) -ENDIANNESS = -EL -else -ENDIANNESS = -EB -endif -endif - -#PLATFORM_CPPFLAGS += -G 0 -mabicalls -fpic -g -PLATFORM_CPPFLAGS += -G 0 -mabicalls -fpic -PLATFORM_CPPFLAGS += -msoft-float -PLATFORM_LDFLAGS += -G 0 -static -n -nostdlib -MIPSFLAGS += $(ENDIANNESS) -fno-schedule-insns -fno-schedule-insns2 +MIPSFLAGS := -fno-schedule-insns -fno-schedule-insns2 +MIPSFLAGS += -mips32r2 -march=mips32r2 -mtune=34kc +PLATFORM_CPPFLAGS += -G 0 -mabicalls -fpic -msoft-float PLATFORM_CPPFLAGS += $(MIPSFLAGS) + +PLATFORM_LDFLAGS += -G 0 -static -n -nostdlib -- 2.25.1