1LOCAL_SRCS += \
2    $(GET_LOCAL_DIR)/bcmp.c \
3    $(GET_LOCAL_DIR)/bcopy.c \
4    $(GET_LOCAL_DIR)/bzero.c \
5    $(GET_LOCAL_DIR)/index.c \
6    $(GET_LOCAL_DIR)/memccpy.c \
7    $(GET_LOCAL_DIR)/memmem.c \
8    $(GET_LOCAL_DIR)/memrchr.c \
9    $(GET_LOCAL_DIR)/rindex.c \
10    $(GET_LOCAL_DIR)/stpcpy.c \
11    $(GET_LOCAL_DIR)/stpncpy.c \
12    $(GET_LOCAL_DIR)/strcasecmp.c \
13    $(GET_LOCAL_DIR)/strcasestr.c \
14    $(GET_LOCAL_DIR)/strcat.c \
15    $(GET_LOCAL_DIR)/strcspn.c \
16    $(GET_LOCAL_DIR)/strdup.c \
17    $(GET_LOCAL_DIR)/strerror_r.c \
18    $(GET_LOCAL_DIR)/strlcat.c \
19    $(GET_LOCAL_DIR)/strlcpy.c \
20    $(GET_LOCAL_DIR)/strncasecmp.c \
21    $(GET_LOCAL_DIR)/strncat.c \
22    $(GET_LOCAL_DIR)/strncpy.c \
23    $(GET_LOCAL_DIR)/strndup.c \
24    $(GET_LOCAL_DIR)/strpbrk.c \
25    $(GET_LOCAL_DIR)/strrchr.c \
26    $(GET_LOCAL_DIR)/strsep.c \
27    $(GET_LOCAL_DIR)/strsignal.c \
28    $(GET_LOCAL_DIR)/strspn.c \
29    $(GET_LOCAL_DIR)/strstr.c \
30    $(GET_LOCAL_DIR)/strtok.c \
31    $(GET_LOCAL_DIR)/strtok_r.c \
32    $(GET_LOCAL_DIR)/strverscmp.c \
33    $(GET_LOCAL_DIR)/swab.c \
34    $(GET_LOCAL_DIR)/wcpcpy.c \
35    $(GET_LOCAL_DIR)/wcpncpy.c \
36    $(GET_LOCAL_DIR)/wcscasecmp.c \
37    $(GET_LOCAL_DIR)/wcscat.c \
38    $(GET_LOCAL_DIR)/wcschr.c \
39    $(GET_LOCAL_DIR)/wcscmp.c \
40    $(GET_LOCAL_DIR)/wcscpy.c \
41    $(GET_LOCAL_DIR)/wcscspn.c \
42    $(GET_LOCAL_DIR)/wcsdup.c \
43    $(GET_LOCAL_DIR)/wcslen.c \
44    $(GET_LOCAL_DIR)/wcsncasecmp.c \
45    $(GET_LOCAL_DIR)/wcsncat.c \
46    $(GET_LOCAL_DIR)/wcsncmp.c \
47    $(GET_LOCAL_DIR)/wcsncpy.c \
48    $(GET_LOCAL_DIR)/wcsnlen.c \
49    $(GET_LOCAL_DIR)/wcspbrk.c \
50    $(GET_LOCAL_DIR)/wcsrchr.c \
51    $(GET_LOCAL_DIR)/wcsspn.c \
52    $(GET_LOCAL_DIR)/wcsstr.c \
53    $(GET_LOCAL_DIR)/wcstok.c \
54    $(GET_LOCAL_DIR)/wcswcs.c \
55    $(GET_LOCAL_DIR)/wmemchr.c \
56    $(GET_LOCAL_DIR)/wmemcmp.c \
57    $(GET_LOCAL_DIR)/wmemcpy.c \
58    $(GET_LOCAL_DIR)/wmemmove.c \
59    $(GET_LOCAL_DIR)/wmemset.c \
60
61ifeq ($(ARCH),arm64)
62
63# These files do '#include "third_party/lib/cortex-strings/src/aarch64/..."'
64LOCAL_COMPILEFLAGS += -I.
65
66LOCAL_SRCS += \
67    $(GET_LOCAL_DIR)/aarch64/memcpy.S \
68    $(GET_LOCAL_DIR)/aarch64/memmove.S \
69    $(GET_LOCAL_DIR)/aarch64/memset.S \
70
71else ifeq ($(ARCH),x86)
72
73LOCAL_SRCS += \
74    $(GET_LOCAL_DIR)/x86_64/memcpy.S \
75    $(GET_LOCAL_DIR)/x86_64/memmove.S \
76    $(GET_LOCAL_DIR)/x86_64/memset.S \
77
78else
79
80LOCAL_SRCS += \
81    $(GET_LOCAL_DIR)/memcpy.c \
82    $(GET_LOCAL_DIR)/memmove.c \
83    $(GET_LOCAL_DIR)/memset.c \
84
85endif
86
87# Only use the assembly version if x86-64 and not ASan.
88ifeq ($(ARCH):$(call TOBOOL,$(USE_ASAN)),x86:false)
89LOCAL_SRCS += $(GET_LOCAL_DIR)/x86_64/mempcpy.S
90else
91LOCAL_SRCS += $(GET_LOCAL_DIR)/mempcpy.c
92endif
93
94ifeq ($(ARCH),arm64)
95
96LOCAL_SRCS += \
97    third_party/lib/cortex-strings/src/aarch64/memchr.S \
98    third_party/lib/cortex-strings/src/aarch64/memcmp.S \
99    third_party/lib/cortex-strings/src/aarch64/strchr.S \
100    $(GET_LOCAL_DIR)/aarch64/strchrnul.S \
101    third_party/lib/cortex-strings/src/aarch64/strcmp.S \
102    third_party/lib/cortex-strings/src/aarch64/strcpy.S \
103    third_party/lib/cortex-strings/src/aarch64/strlen.S \
104    third_party/lib/cortex-strings/src/aarch64/strncmp.S \
105    third_party/lib/cortex-strings/src/aarch64/strnlen.S \
106
107else
108
109LOCAL_SRCS += \
110    $(GET_LOCAL_DIR)/memchr.c \
111    $(GET_LOCAL_DIR)/memcmp.c \
112    $(GET_LOCAL_DIR)/strchr.c \
113    $(GET_LOCAL_DIR)/strchrnul.c \
114    $(GET_LOCAL_DIR)/strcmp.c \
115    $(GET_LOCAL_DIR)/strcpy.c \
116    $(GET_LOCAL_DIR)/strlen.c \
117    $(GET_LOCAL_DIR)/strncmp.c \
118    $(GET_LOCAL_DIR)/strnlen.c \
119
120endif
121