]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - stand/mips/uboot/Makefile
Disable PIE for MIPS ubldr
[FreeBSD/FreeBSD.git] / stand / mips / uboot / Makefile
1 # $FreeBSD$
2
3 LOADER_CD9660_SUPPORT?= no
4 LOADER_EXT2FS_SUPPORT?= no
5 LOADER_MSDOS_SUPPORT?=  yes
6 LOADER_UFS_SUPPORT?=    yes
7 LOADER_NET_SUPPORT?=    yes
8 LOADER_NFS_SUPPORT?=    yes
9 LOADER_TFTP_SUPPORT?=   no
10 LOADER_GZIP_SUPPORT?=   no
11 LOADER_BZIP2_SUPPORT?=  no
12
13 .include <bsd.init.mk>
14
15 FILES+=         ubldr
16
17 NEWVERSWHAT=    "U-Boot loader" ${MACHINE_ARCH}
18 INSTALLFLAGS=   -b
19 WARNS?=         1
20 # Address at which ubldr will be loaded.
21 # This varies for different boards and SOCs.
22 .if ${MACHINE_ARCH:Mmips64*}
23 UBLDR_LOADADDR?=        0xffffffff80800000
24 .else
25 UBLDR_LOADADDR?=        0x80800000
26 .endif
27
28 # Architecture-specific loader code
29 SRCS=           start.S conf.c vers.c
30
31 HELP_FILES=     ${.CURDIR}/help.uboot ${BOOTSRC}/fdt/help.fdt
32
33 # Always add MI sources
34 .include        "${BOOTSRC}/loader.mk"
35
36 CFLAGS+=        -g
37
38 LDFLAGS=        -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
39
40 .include        "${BOOTSRC}/uboot.mk"
41
42 DPADD=          ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
43 LDADD=          ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
44
45 OBJS+=  ${SRCS:N*.h:R:S/$/.o/g}
46
47 # ubldr on MIPS is built with '-mno-abicalls' flag,
48 # which is incompatible with PIE
49 MK_PIE=         no
50
51 ldscript.abs:
52         echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET}
53
54 ldscript.pie:
55         echo "UBLDR_LOADADDR = 0;" >${.TARGET}
56
57 ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD}
58         ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \
59             -o ${.TARGET} ${OBJS} ${LDADD}
60         ${OBJCOPY} -S -O binary ubldr ubldr.bin
61
62 CLEANFILES+=    ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin
63
64 .include <bsd.prog.mk>