xref: /freebsd/lib/libssp/Makefile (revision e7a629c851d747772cc138efcb0418809ecdea55)
1cd0d51baSKyle EvansPACKAGE=	clibs
2cd0d51baSKyle EvansSHLIBDIR?=	/lib
3cd0d51baSKyle EvansSHLIB=		ssp
4cd0d51baSKyle EvansSHLIB_MAJOR=	0
5cd0d51baSKyle Evans
68b068264SKyle EvansSSP_SRCS=	fgets_chk.c memcpy_chk.c memmove_chk.c memset_chk.c \
7be04fec4SKyle Evans		snprintf_chk.c sprintf_chk.c stpcpy_chk.c stpncpy_chk.c \
8be04fec4SKyle Evans		strcat_chk.c strcpy_chk.c strncat_chk.c strncpy_chk.c \
9be04fec4SKyle Evans		vsnprintf_chk.c vsprintf_chk.c
10be04fec4SKyle Evans
11be04fec4SKyle Evans.for i in ${SSP_SRCS}
12be04fec4SKyle EvansSRCS+=${i}
13be04fec4SKyle Evans.endfor
14be04fec4SKyle Evans
15be04fec4SKyle EvansCFLAGS.snprintf_chk.c+=	-Wno-unused-parameter
16be04fec4SKyle EvansCFLAGS.sprintf_chk.c+=	-Wno-unused-parameter
17be04fec4SKyle EvansCFLAGS.vsnprintf_chk.c+=	-Wno-unused-parameter
18be04fec4SKyle EvansCFLAGS.vsprintf_chk.c+=	-Wno-unused-parameter
19be04fec4SKyle Evans
20be04fec4SKyle EvansMAN+=	ssp.3 __builtin_object_size.3
21be04fec4SKyle Evans
22cd0d51baSKyle EvansVERSION_DEF=	${.CURDIR}/Versions.def
23cd0d51baSKyle EvansSYMBOL_MAPS=	${.CURDIR}/Symbol.map
24cd0d51baSKyle Evans
25cd0d51baSKyle Evans.PATH: ${SRCTOP}/lib/libc/secure
26cd0d51baSKyle EvansCFLAGS+=	-I${SRCTOP}/lib/libc/include
27cd0d51baSKyle Evans# _elf_aux_info is exported from libc as elf_aux_info(3), so just that for the
28cd0d51baSKyle Evans# libssp build instead.
29cd0d51baSKyle EvansCFLAGS+=	-D_elf_aux_info=elf_aux_info
30*e7a629c8SKyle EvansSRCS+=		libc_stack_protector.c
31cd0d51baSKyle Evans
3219fe57fdSKyle Evans# Stack protection on libssp symbols should be considered harmful, as we may
3319fe57fdSKyle Evans# be talking about, for example, the guard setup constructor.
3419fe57fdSKyle EvansSSP_CFLAGS:=
3519fe57fdSKyle Evans
36cd0d51baSKyle Evans.include <bsd.lib.mk>
37