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