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