1
2PACKAGE=	clibs
3SHLIBDIR?=	/lib
4SHLIB=		ssp
5SHLIB_MAJOR=	0
6
7SSP_SRCS=	fgets_chk.c memcpy_chk.c memmove_chk.c memset_chk.c \
8		snprintf_chk.c sprintf_chk.c stpcpy_chk.c stpncpy_chk.c \
9		strcat_chk.c strcpy_chk.c strncat_chk.c strncpy_chk.c \
10		vsnprintf_chk.c vsprintf_chk.c
11
12.for i in ${SSP_SRCS}
13SRCS+=${i}
14.endfor
15
16CFLAGS.snprintf_chk.c+=	-Wno-unused-parameter
17CFLAGS.sprintf_chk.c+=	-Wno-unused-parameter
18CFLAGS.vsnprintf_chk.c+=	-Wno-unused-parameter
19CFLAGS.vsprintf_chk.c+=	-Wno-unused-parameter
20
21MAN+=	ssp.3 __builtin_object_size.3
22
23VERSION_DEF=	${.CURDIR}/Versions.def
24SYMBOL_MAPS=	${.CURDIR}/Symbol.map
25
26.PATH: ${SRCTOP}/lib/libc/secure
27CFLAGS+=	-I${SRCTOP}/lib/libc/include
28# _elf_aux_info is exported from libc as elf_aux_info(3), so just that for the
29# libssp build instead.
30CFLAGS+=	-D_elf_aux_info=elf_aux_info
31SRCS+=		stack_protector.c
32
33# Stack protection on libssp symbols should be considered harmful, as we may
34# be talking about, for example, the guard setup constructor.
35SSP_CFLAGS:=
36
37.include <bsd.lib.mk>
38