freebsd-skq/sys/boot/arm/at91/Makefile.inc
Ruslan Ermilov 042df2e2da Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be
  turned opt-in for stable branches depending on the consensus.  You
  can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
  It is harmless to steal the knob as SSP symbols have been provided
  by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
  (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
  libc will be automatically downgraded to -fstack-protector because it
  breaks rtld otherwise.
- This option is unavailable on ia64.

Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.

Submitted by:	Jeremie Le Hen <jeremie@le-hen.org>
2008-06-25 21:33:28 +00:00

58 lines
1.1 KiB
Makefile

# $FreeBSD$
.if !target(__at91_boot_Makefile.inc__)
.PATH: ${.CURDIR}/../../../../libkern ${.CURDIR}/../../../../libkern/arm
__at91_boot_Makefile.inc__:
# tsc, bwct, kb920x, centipad are the supported flavors
BOOT_FLAVOR?=kb920x
CFLAGS=-Os -mcpu=arm9 -ffreestanding \
-I${.CURDIR}/../libat91 \
-I${.CURDIR}/../../../.. \
-I${.CURDIR}/../../../../arm \
-D_KERNEL \
-Wall -Waggregate-return \
-Wnested-externs \
-Wpointer-arith -Wshadow -Wwrite-strings \
-Werror \
-Wmissing-prototypes \
-Wmissing-declarations
# -Wstrict-prototypes
CFLAGS+=-DBOOT_${BOOT_FLAVOR:U}
LIBAT91=${.OBJDIR}/../libat91/libat91.a
LD ?= ld
OBJCOPY ?= objcopy
.if defined(P)
${P}: ${P}.out
${OBJCOPY} -S -O binary ${P}.out ${.TARGET}
@set -- `ls -l ${.TARGET}`; x=$$((12288-$$5)); \
echo "$$x bytes available"; test $$x -ge 0
${P}.out: ${OBJS}
${LD} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LIBAT91}
CLEANFILES+= ${P} ${P}.out
.endif
.if defined(WITH_TAG_LIST)
MK_TAG_LIST:=yes
.else
MK_TAG_LIST:=no
.endif
.if defined(WITH_FPGA)
MK_FPGA:=yes
.else
MK_FPGA:=no
.endif
.endif
.include "../Makefile.inc"