1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# (C) Copyright 2000-2010 3*4882a593Smuzhiyun# Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0+ 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunifeq ($(CROSS_COMPILE),) 9*4882a593SmuzhiyunCROSS_COMPILE := ppc_8xx- 10*4882a593Smuzhiyunendif 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunCONFIG_STANDALONE_LOAD_ADDR ?= 0x40000 13*4882a593SmuzhiyunLDFLAGS_FINAL += --gc-sections 14*4882a593SmuzhiyunLDFLAGS_FINAL += --bss-plt 15*4882a593SmuzhiyunPLATFORM_RELFLAGS += -fpic -mrelocatable -ffunction-sections \ 16*4882a593Smuzhiyun-fdata-sections -mcall-linux 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunPF_CPPFLAGS_POWERPC := $(call cc-option,-fno-ira-hoist-pressure,) 19*4882a593SmuzhiyunPLATFORM_CPPFLAGS += -D__powerpc__ -ffixed-r2 -m32 $(PF_CPPFLAGS_POWERPC) 20*4882a593SmuzhiyunPLATFORM_LDFLAGS += -m32 -melf32ppclinux 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun# 23*4882a593Smuzhiyun# When cross-compiling on NetBSD, we have to define __PPC__ or else we 24*4882a593Smuzhiyun# will pick up a va_list declaration that is incompatible with the 25*4882a593Smuzhiyun# actual argument lists emitted by the compiler. 26*4882a593Smuzhiyun# 27*4882a593Smuzhiyun# [Tested on NetBSD/i386 1.5 + cross-powerpc-netbsd-1.3] 28*4882a593Smuzhiyun 29*4882a593Smuzhiyunifeq ($(CROSS_COMPILE),powerpc-netbsd-) 30*4882a593SmuzhiyunPLATFORM_CPPFLAGS+= -D__PPC__ 31*4882a593Smuzhiyunendif 32*4882a593Smuzhiyunifeq ($(CROSS_COMPILE),powerpc-openbsd-) 33*4882a593SmuzhiyunPLATFORM_CPPFLAGS+= -D__PPC__ 34*4882a593Smuzhiyunendif 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun# Only test once 37*4882a593Smuzhiyunifneq ($(CONFIG_SPL_BUILD),y) 38*4882a593Smuzhiyunarchprepare: checkgcc4 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun# GCC 3.x is reported to have problems generating the type of relocation 41*4882a593Smuzhiyun# that U-Boot wants. 42*4882a593Smuzhiyun# See http://lists.denx.de/pipermail/u-boot/2012-September/135156.html 43*4882a593Smuzhiyuncheckgcc4: 44*4882a593Smuzhiyun @if test "$(call cc-name)" = "gcc" -a \ 45*4882a593Smuzhiyun $(call cc-version) -lt 0400; then \ 46*4882a593Smuzhiyun echo -n '*** Your GCC is too old, please upgrade to GCC 4.x or newer'; \ 47*4882a593Smuzhiyun false; \ 48*4882a593Smuzhiyun fi 49*4882a593Smuzhiyunendif 50