xref: /freebsd/lib/libc/string/Makefile.inc (revision 745c6c0431d01b4fc3247f4eac08a2181d71e008)
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