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