mirror of
https://github.com/opnsense/src.git
synced 2026-02-28 12:20:54 -05:00
Since the make variable STRIP is already used for other purposes, this uses STRIPBIN (which is also used for the same purpose by install(1). This allows using LLVM objcopy to strip binaries instead of the in-tree elftoolchain objcopy. We make use of this in CheriBSD since passing binaries generated by our toolchain to elftoolchain strip sometimes results in assertion failures. This allows working around https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248516 by specifying STRIPBIN=/path/to/llvm-strip Obtained from: CheriBSD Reviewed By: emaste, brooks Differential Revision: https://reviews.freebsd.org/D25988
88 lines
2 KiB
Makefile
88 lines
2 KiB
Makefile
# $FreeBSD$
|
|
|
|
HAVE_ZFS= ${MK_LOADER_ZFS}
|
|
|
|
LOADER_NET_SUPPORT?= yes
|
|
LOADER_NFS_SUPPORT?= yes
|
|
LOADER_TFTP_SUPPORT?= yes
|
|
LOADER_CD9660_SUPPORT?= yes
|
|
LOADER_EXT2FS_SUPPORT?= yes
|
|
LOADER_MSDOS_SUPPORT?= yes
|
|
LOADER_UFS_SUPPORT?= yes
|
|
LOADER_GZIP_SUPPORT?= yes
|
|
LOADER_BZIP2_SUPPORT?= yes
|
|
|
|
.include <bsd.init.mk>
|
|
|
|
LOADER?= loader_${LOADER_INTERP}
|
|
PROG= ${LOADER}.sym
|
|
INTERNALPROG=
|
|
NEWVERSWHAT?= "bootstrap loader" x86
|
|
VERSION_FILE= ${.CURDIR}/../loader/version
|
|
|
|
.PATH: ${BOOTSRC}/i386/loader
|
|
|
|
# architecture-specific loader code
|
|
SRCS= main.c conf.c vers.c chain.c
|
|
|
|
# Include bcache code.
|
|
HAVE_BCACHE= yes
|
|
|
|
# Enable PnP and ISA-PnP code.
|
|
HAVE_PNP= yes
|
|
HAVE_ISABUS= yes
|
|
|
|
.if ${MK_LOADER_FIREWIRE} == "yes"
|
|
CFLAGS+= -DLOADER_FIREWIRE_SUPPORT
|
|
LIBFIREWIRE= ${BOOTOBJ}/i386/libfirewire/libfirewire.a
|
|
.endif
|
|
|
|
.if exists(${.CURDIR}/help.i386)
|
|
HELP_FILES= ${.CURDIR}/help.i386
|
|
.endif
|
|
|
|
# Always add MI sources
|
|
.include "${BOOTSRC}/loader.mk"
|
|
|
|
CLEANFILES+= ${LOADER} ${LOADER}.bin
|
|
|
|
ORG= 0x0
|
|
|
|
CFLAGS+= -Wall
|
|
LDFLAGS+= -static ${LDFLAGS_ORG} -Wl,--gc-sections
|
|
|
|
# i386 standalone support library
|
|
LIBI386= ${BOOTOBJ}/i386/libi386/libi386.a
|
|
CFLAGS+= -I${BOOTSRC}/i386
|
|
|
|
# Debug me!
|
|
#CFLAGS+= -g
|
|
#LDFLAGS+= -g
|
|
|
|
${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
|
|
btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
|
|
-b ${BTXKERN} ${LOADER}.bin
|
|
|
|
${LOADER}.bin: ${LOADER}.sym
|
|
${STRIPBIN} -R .comment -R .note -o ${.TARGET} ${.ALLSRC}
|
|
|
|
.if ${MK_LOADER_ZFS} == "yes" && ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
|
|
LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/zfsloader
|
|
.endif
|
|
.if ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
|
|
LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/loader
|
|
.endif
|
|
FILES+= ${LOADER}
|
|
FILESMODE_${LOADER}= ${BINMODE} -b
|
|
|
|
# XXX crt0.o needs to be first for pxeboot(8) to work
|
|
OBJS= ${BTXCRT}
|
|
|
|
DPADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32}
|
|
LDADD= ${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32}
|
|
|
|
.if ${MACHINE_CPUARCH} == "amd64"
|
|
CFLAGS+= -DLOADER_PREFER_AMD64
|
|
.endif
|
|
|
|
.include <bsd.prog.mk>
|