1.if ${MK_MACHDEP_OPTIMIZATIONS} != "no" 2.PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/string 3.endif 4.PATH: ${LIBC_SRCTOP}/string 5.PATH: ${SRCTOP}/sys/libkern 6 7CFLAGS+= -I${LIBC_SRCTOP}/locale 8 9# machine-independent string sources 10MISRCS+=bcmp.c \ 11 bcopy.c \ 12 bzero.c \ 13 explicit_bzero.c \ 14 ffs.c \ 15 ffsl.c \ 16 ffsll.c \ 17 fls.c \ 18 flsl.c \ 19 flsll.c \ 20 memccpy.c \ 21 memchr.c \ 22 memrchr.c \ 23 memcmp.c \ 24 memcpy.c \ 25 memmem.c \ 26 memmove.c \ 27 mempcpy.c \ 28 memset.c \ 29 memset_s.c \ 30 memset_explicit.c \ 31 stpcpy.c \ 32 stpncpy.c \ 33 strcasecmp.c \ 34 strcat.c \ 35 strcasestr.c \ 36 strchr.c \ 37 strchrnul.c \ 38 strcmp.c \ 39 strcoll.c \ 40 strcpy.c\ 41 strcspn.c \ 42 strdup.c \ 43 strerror.c \ 44 strlcat.c \ 45 strlcpy.c \ 46 strlen.c \ 47 strmode.c \ 48 strncat.c \ 49 strncmp.c \ 50 strncpy.c \ 51 strndup.c \ 52 strnlen.c \ 53 strnstr.c \ 54 strpbrk.c \ 55 strrchr.c \ 56 strsep.c \ 57 strsignal.c \ 58 strspn.c \ 59 strstr.c \ 60 strtok.c \ 61 strverscmp.c \ 62 strxfrm.c \ 63 swab.c \ 64 timingsafe_bcmp.c \ 65 timingsafe_memcmp.c \ 66 wcpcpy.c \ 67 wcpncpy.c \ 68 wcscasecmp.c \ 69 wcscat.c \ 70 wcschr.c \ 71 wcscmp.c \ 72 wcscoll.c \ 73 wcscpy.c \ 74 wcscspn.c \ 75 wcsdup.c \ 76 wcslcat.c \ 77 wcslcpy.c \ 78 wcslen.c \ 79 wcsncasecmp.c \ 80 wcsncat.c \ 81 wcsncmp.c \ 82 wcsncpy.c \ 83 wcsnlen.c \ 84 wcspbrk.c \ 85 wcsrchr.c \ 86 wcsspn.c \ 87 wcsstr.c \ 88 wcstok.c \ 89 wcswidth.c \ 90 wcsxfrm.c \ 91 wmemchr.c \ 92 wmemcmp.c \ 93 wmemcpy.c \ 94 wmemmove.c \ 95 wmempcpy.c \ 96 wmemset.c 97 98SYM_MAPS+= ${LIBC_SRCTOP}/string/Symbol.map 99 100.if ${MK_ASAN} != "no" 101# These source files deliberately read out of bounds since they assume that 102# out-of-bounds memory accesses that don't cross pages are always legal. 103# Note: While this is fine on x86, it does break when running with CHERI. 104CFLAGS.strlen.c+= -fno-sanitize=address 105CFLAGS.strchrnul.c+= -fno-sanitize=address 106CFLAGS.memchr.c+= -fno-sanitize=address 107.endif 108 109 110.if ${MK_MACHDEP_OPTIMIZATIONS} != "no" 111# machine-dependent string sources 112.sinclude "${LIBC_SRCTOP}/${LIBC_ARCH}/string/Makefile.inc" 113.endif 114 115MAN+= bcmp.3 \ 116 bcopy.3 \ 117 bstring.3 \ 118 bzero.3 \ 119 ffs.3 \ 120 index.3 \ 121 memccpy.3 \ 122 memchr.3 \ 123 memcmp.3 \ 124 memcpy.3 \ 125 memmem.3 \ 126 memmove.3 \ 127 memset.3 \ 128 strcasecmp.3 \ 129 strcat.3 \ 130 strchr.3 \ 131 strcmp.3 \ 132 strcoll.3 \ 133 strcpy.3 \ 134 strdup.3 \ 135 strerror.3 \ 136 string.3 \ 137 strlcpy.3 \ 138 strlen.3 \ 139 strmode.3 \ 140 strpbrk.3 \ 141 strsep.3 \ 142 strspn.3 \ 143 strstr.3 \ 144 strtok.3 \ 145 strverscmp.3 \ 146 strxfrm.3 \ 147 swab.3 \ 148 timingsafe_bcmp.3 \ 149 wcscoll.3 \ 150 wcstok.3 \ 151 wcswidth.3 \ 152 wcsxfrm.3 \ 153 wmemchr.3 154 155MLINKS+=bzero.3 explicit_bzero.3 156MLINKS+=ffs.3 ffsl.3 \ 157 ffs.3 ffsll.3 \ 158 ffs.3 fls.3 \ 159 ffs.3 flsl.3 \ 160 ffs.3 flsll.3 161MLINKS+=index.3 rindex.3 162MLINKS+=memchr.3 memrchr.3 163MLINKS+=memcpy.3 mempcpy.3 164MLINKS+=memset.3 memset_s.3 \ 165 memset.3 memset_explicit.3 166MLINKS+=strcasecmp.3 strncasecmp.3 \ 167 strcasecmp.3 strcasecmp_l.3 \ 168 strcasecmp.3 strncasecmp_l.3 169MLINKS+=strcat.3 strncat.3 170MLINKS+=strchr.3 strrchr.3 \ 171 strchr.3 strchrnul.3 172MLINKS+=strcmp.3 strncmp.3 173MLINKS+=strcoll.3 strcoll_l.3 174MLINKS+=strcpy.3 stpcpy.3 \ 175 strcpy.3 stpncpy.3 \ 176 strcpy.3 strncpy.3 177MLINKS+=strdup.3 strndup.3 \ 178 strdup.3 strdupa.3 \ 179 strdup.3 strndupa.3 180MLINKS+=strerror.3 perror.3 \ 181 strerror.3 strerror_l.3 \ 182 strerror.3 strerror_r.3 \ 183 strerror.3 sys_errlist.3 \ 184 strerror.3 sys_nerr.3 185MLINKS+=strlcpy.3 strlcat.3 186MLINKS+=strlen.3 strnlen.3 187MLINKS+=strspn.3 strcspn.3 188MLINKS+=strstr.3 strcasestr.3 \ 189 strstr.3 strnstr.3 \ 190 strstr.3 strcasestr_l.3 191MLINKS+=strtok.3 strtok_r.3 192MLINKS+=strxfrm.3 strxfrm_l.3 193MLINKS+=timingsafe_bcmp.3 timingsafe_memcmp.3 194MLINKS+=wmemchr.3 wcpcpy.3 \ 195 wmemchr.3 wcpncpy.3 \ 196 wmemchr.3 wcscasecmp.3 \ 197 wmemchr.3 wcscat.3 \ 198 wmemchr.3 wcschr.3 \ 199 wmemchr.3 wcscmp.3 \ 200 wmemchr.3 wcscpy.3 \ 201 wmemchr.3 wcscspn.3 \ 202 wmemchr.3 wcsdup.3 \ 203 wmemchr.3 wcslcat.3 \ 204 wmemchr.3 wcslcpy.3 \ 205 wmemchr.3 wcslen.3 \ 206 wmemchr.3 wcsncasecmp.3 \ 207 wmemchr.3 wcsncat.3 \ 208 wmemchr.3 wcsncmp.3 \ 209 wmemchr.3 wcsncpy.3 \ 210 wmemchr.3 wcsnlen.3 \ 211 wmemchr.3 wcspbrk.3 \ 212 wmemchr.3 wcsrchr.3 \ 213 wmemchr.3 wcsspn.3 \ 214 wmemchr.3 wcsstr.3 \ 215 wmemchr.3 wmemcmp.3 \ 216 wmemchr.3 wmemcpy.3 \ 217 wmemchr.3 wmemmove.3 \ 218 wmemchr.3 wmempcpy.3 \ 219 wmemchr.3 wmemset.3 220