1# @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 2# $FreeBSD$ 3 4.if ${MK_MACHDEP_OPTIMIZATIONS} != "no" 5.PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/string 6.endif 7.PATH: ${LIBC_SRCTOP}/string 8.PATH: ${SRCTOP}/sys/libkern 9 10CFLAGS+= -I${LIBC_SRCTOP}/locale 11 12# machine-independent string sources 13MISRCS+=bcmp.c bcopy.c bzero.c explicit_bzero.c \ 14 ffs.c ffsl.c ffsll.c fls.c flsl.c flsll.c \ 15 memccpy.c memchr.c memrchr.c memcmp.c \ 16 memcpy.c memmem.c memmove.c mempcpy.c memset.c memset_s.c \ 17 stpcpy.c stpncpy.c strcasecmp.c \ 18 strcat.c strcasestr.c strchr.c strchrnul.c strcmp.c strcoll.c strcpy.c\ 19 strcspn.c strdup.c strerror.c strlcat.c strlcpy.c strlen.c strmode.c \ 20 strncat.c strncmp.c strncpy.c strndup.c strnlen.c strnstr.c \ 21 strpbrk.c strrchr.c strsep.c strsignal.c strspn.c strstr.c strtok.c \ 22 strverscmp.c strxfrm.c swab.c \ 23 timingsafe_bcmp.c \ 24 timingsafe_memcmp.c \ 25 wcpcpy.c wcpncpy.c wcscasecmp.c wcscat.c \ 26 wcschr.c wcscmp.c wcscoll.c wcscpy.c wcscspn.c wcsdup.c \ 27 wcslcat.c wcslcpy.c wcslen.c wcsncasecmp.c wcsncat.c wcsncmp.c \ 28 wcsncpy.c wcsnlen.c wcspbrk.c \ 29 wcsrchr.c wcsspn.c wcsstr.c wcstok.c wcswidth.c wcsxfrm.c wmemchr.c \ 30 wmemcmp.c \ 31 wmemcpy.c wmemmove.c wmempcpy.c wmemset.c 32 33SYM_MAPS+= ${LIBC_SRCTOP}/string/Symbol.map 34 35.if ${MK_ASAN} != "no" 36# These source files deliberately read out of bounds since they assume that 37# out-of-bounds memory accesses that don't cross pages are always legal. 38# Note: While this is fine on x86, it does break when running with CHERI. 39CFLAGS.strlen.c+= -fno-sanitize=address 40CFLAGS.strchrnul.c+= -fno-sanitize=address 41CFLAGS.memchr.c+= -fno-sanitize=address 42.endif 43 44 45.if ${MK_MACHDEP_OPTIMIZATIONS} != "no" 46# machine-dependent string sources 47.sinclude "${LIBC_SRCTOP}/${LIBC_ARCH}/string/Makefile.inc" 48.endif 49 50MAN+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \ 51 memcmp.3 memcpy.3 memmem.3 memmove.3 memset.3 strcasecmp.3 strcat.3 \ 52 strchr.3 strcmp.3 strcoll.3 strcpy.3 strdup.3 strerror.3 \ 53 string.3 strlcpy.3 strlen.3 strmode.3 strpbrk.3 strsep.3 \ 54 strspn.3 strstr.3 strtok.3 strverscmp.3 strxfrm.3 swab.3 \ 55 timingsafe_bcmp.3 \ 56 wcscoll.3 wcstok.3 \ 57 wcswidth.3 wcsxfrm.3 wmemchr.3 58 59MLINKS+=bzero.3 explicit_bzero.3 60MLINKS+=ffs.3 ffsl.3 \ 61 ffs.3 ffsll.3 \ 62 ffs.3 fls.3 \ 63 ffs.3 flsl.3 \ 64 ffs.3 flsll.3 65MLINKS+=index.3 rindex.3 66MLINKS+=memchr.3 memrchr.3 67MLINKS+=memcpy.3 mempcpy.3 68MLINKS+=memset.3 memset_s.3 69MLINKS+=strcasecmp.3 strncasecmp.3 \ 70 strcasecmp.3 strcasecmp_l.3 \ 71 strcasecmp.3 strncasecmp_l.3 72MLINKS+=strcat.3 strncat.3 73MLINKS+=strchr.3 strrchr.3 \ 74 strchr.3 strchrnul.3 75MLINKS+=strcmp.3 strncmp.3 76MLINKS+=strcoll.3 strcoll_l.3 77MLINKS+=strcpy.3 stpcpy.3 \ 78 strcpy.3 stpncpy.3 \ 79 strcpy.3 strncpy.3 80MLINKS+=strdup.3 strndup.3 81MLINKS+=strerror.3 perror.3 \ 82 strerror.3 strerror_l.3 \ 83 strerror.3 strerror_r.3 \ 84 strerror.3 sys_errlist.3 \ 85 strerror.3 sys_nerr.3 86MLINKS+=strlcpy.3 strlcat.3 87MLINKS+=strlen.3 strnlen.3 88MLINKS+=strspn.3 strcspn.3 89MLINKS+=strstr.3 strcasestr.3 \ 90 strstr.3 strnstr.3 \ 91 strstr.3 strcasestr_l.3 92MLINKS+=strtok.3 strtok_r.3 93MLINKS+=strxfrm.3 strxfrm_l.3 94MLINKS+=timingsafe_bcmp.3 timingsafe_memcmp.3 95MLINKS+=wmemchr.3 wcpcpy.3 \ 96 wmemchr.3 wcpncpy.3 \ 97 wmemchr.3 wcscasecmp.3 \ 98 wmemchr.3 wcscat.3 \ 99 wmemchr.3 wcschr.3 \ 100 wmemchr.3 wcscmp.3 \ 101 wmemchr.3 wcscpy.3 \ 102 wmemchr.3 wcscspn.3 \ 103 wmemchr.3 wcsdup.3 \ 104 wmemchr.3 wcslcat.3 \ 105 wmemchr.3 wcslcpy.3 \ 106 wmemchr.3 wcslen.3 \ 107 wmemchr.3 wcsncasecmp.3 \ 108 wmemchr.3 wcsncat.3 \ 109 wmemchr.3 wcsncmp.3 \ 110 wmemchr.3 wcsncpy.3 \ 111 wmemchr.3 wcsnlen.3 \ 112 wmemchr.3 wcspbrk.3 \ 113 wmemchr.3 wcsrchr.3 \ 114 wmemchr.3 wcsspn.3 \ 115 wmemchr.3 wcsstr.3 \ 116 wmemchr.3 wmemcmp.3 \ 117 wmemchr.3 wmemcpy.3 \ 118 wmemchr.3 wmemmove.3 \ 119 wmemchr.3 wmempcpy.3 \ 120 wmemchr.3 wmemset.3 121