19e701968f447748be5ce4be26941df7fb94bc10
2 # Makefile for the kernel relocation stub for MIPS devices
4 # Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
5 # Copyright (C) 2015 Felix Fietkau <nbd@openwrt.org>
7 # Some parts of this file was based on the OpenWrt specific lzma-loader
8 # for the BCM47xx and ADM5120 based boards:
9 # Copyright (C) 2004 Manuel Novoa III (mjn3@codepoet.org)
10 # Copyright (C) 2005 Mineharu Takahara <mtakahar@yahoo.com>
11 # Copyright (C) 2005 by Oleg I. Vdovikin <oleg@cs.msu.su>
13 # This program is free software; you can redistribute it and/or modify it
14 # under the terms of the GNU General Public License version 2 as published
15 # by the Free Software Foundation.
19 LZMA_TEXT_START
:= 0x81000000
27 CC
:= $(CROSS_COMPILE
)gcc
28 LD
:= $(CROSS_COMPILE
)ld
29 OBJCOPY
:= $(CROSS_COMPILE
)objcopy
30 OBJDUMP
:= $(CROSS_COMPILE
)objdump
32 BIN_FLAGS
:= -O binary
-R .reginfo
-R .note
-R .comment
-R .mdebug \
35 CFLAGS
= -D__KERNEL__
-Wall
-Wstrict-prototypes
-Wno-trigraphs
-Os \
36 -fno-strict-aliasing
-fno-common
-fomit-frame-pointer
-G
0 \
37 -mno-abicalls
-fno-pic
-ffunction-sections
-pipe
-mlong-calls \
38 -fno-common
-ffreestanding
-fhonour-copts \
39 -mabi
=32 -march
=mips32r2 \
40 -Wa
,-32 -Wa
,-march
=mips32r2
-Wa
,-mips32r2
-Wa
,--trap \
41 -DCONFIG_CACHELINE_SIZE
=$(CACHELINE_SIZE
) \
42 -DKERNEL_ADDR
=$(KERNEL_ADDR
)
44 ASFLAGS
= $(CFLAGS
) -D__ASSEMBLY__
46 LDFLAGS
= -static
--gc-sections
-no-warn-mismatch
47 LDFLAGS
+= -e startup
-T loader.lds
-Ttext
$(LZMA_TEXT_START
)
49 O_FORMAT
= $(shell $(OBJDUMP
) -i | head
-2 | grep elf32
)
53 all: head.o loader.bin
55 # Don't build dependencies, this may die if $(CC) isn't gcc
61 $(CC
) $(CFLAGS
) -c
-o
$@
$<
64 $(CC
) $(ASFLAGS
) -c
-o
$@
$<
67 $(LD
) $(LDFLAGS
) -o
$@
$(OBJECTS
)
70 $(OBJCOPY
) $(BIN_FLAGS
) $< $@
75 rm -f loader
*.elf
*.bin
*.o