1f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# arm64 specific configs
2f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
3f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_common_src_files_arm64 := \
453e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    bionic/memrchr.c \
553e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    bionic/strrchr.cpp \
6f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscat.c \
7f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcschr.c \
8f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscmp.c \
9f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscpy.c \
10f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcslen.c \
11f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcsrchr.c \
12f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wmemcmp.c \
135a92284167ffba6d45210ef6889fa7d255c15d4fVarvara Rainchik    upstream-openbsd/lib/libc/string/stpncpy.c \
1453e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strcat.c \
1553e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strlcat.c \
1653e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strlcpy.c \
1753e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strncat.c \
1853e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strncpy.c \
19f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
20f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# Fortify implementations of libc functions.
21f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_common_src_files_arm64 += \
22f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/__memcpy_chk.cpp \
23f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/__memset_chk.cpp \
24f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/__strcpy_chk.cpp \
25f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/__strcat_chk.cpp \
26f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
27f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang##########################################
28f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang### CPU specific source files
29f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_bionic_src_files_arm64 := \
30d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/__bionic_clone.S \
31d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/_exit_with_stack_teardown.S \
32d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/__rt_sigreturn.S \
33d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/_setjmp.S \
34d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/setjmp.S \
35d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/__set_tls.c \
36d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/sigsetjmp.S \
37d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross    arch-arm64/bionic/syscall.S \
385386a741e77bfff4e72ca6861fdd3fe2208452ceDan Albert    arch-arm64/bionic/vfork.S \
39f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
40f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
41f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_cflags_arm64 := \
42f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    -I$(LOCAL_PATH)/arch-arm64/include
43f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
44f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_file_arm64 := \
45f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    $(LOCAL_PATH)/arch-arm64/bionic/crtbegin.c
46f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
47f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_so_file_arm64 := \
48f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c
497e4fa560999d07064d219a16ebb50d3691dd1b63Bernhard Rosenkraenzer
502146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris## CPU variant specific source files
512146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisifeq ($(strip $(TARGET_CPU_VARIANT)),)
522146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris  $(warning TARGET_ARCH is arm64, but TARGET_CPU_VARIANT is not defined)
532146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisendif
542146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferriscpu_variant_mk := $(LOCAL_PATH)/arch-arm64/$(TARGET_CPU_VARIANT)/$(TARGET_CPU_VARIANT).mk
552146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisifeq ($(wildcard $(cpu_variant_mk)),)
560ef7a8fd31a7ee9571c54c17e1f42cba4cfb44ecShu Zhang$(error "TARGET_CPU_VARIANT not set or set to an unknown value. Possible values are generic, generic-neon, denver64. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.")
572146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisendif
582146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisinclude $(cpu_variant_mk)
592146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrislibc_common_additional_dependencies += $(cpu_variank_mk)
602146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris
612146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferriscpu_variant_mk :=
62