1# 64-bit arm.
2
3#
4# Generic arm64 optimizations, may be overriden by CPU variants.
5#
6
7libc_bionic_src_files_arm64 += \
8    arch-arm64/generic/bionic/memchr.S \
9    arch-arm64/generic/bionic/memcmp.S \
10    arch-arm64/generic/bionic/memcpy.S \
11    arch-arm64/generic/bionic/memmove.S \
12    arch-arm64/generic/bionic/memset.S \
13    arch-arm64/generic/bionic/stpcpy.S \
14    arch-arm64/generic/bionic/strchr.S \
15    arch-arm64/generic/bionic/strcmp.S \
16    arch-arm64/generic/bionic/strcpy.S \
17    arch-arm64/generic/bionic/strlen.S \
18    arch-arm64/generic/bionic/strncmp.S \
19    arch-arm64/generic/bionic/strnlen.S \
20    arch-arm64/generic/bionic/wmemmove.S \
21
22libc_bionic_src_files_exclude_arm64 += \
23    bionic/__memcpy_chk.cpp \
24    bionic/strchr.cpp \
25    bionic/strnlen.c \
26
27libc_freebsd_src_files_exclude_arm64 += \
28    upstream-freebsd/lib/libc/string/wmemmove.c \
29
30libc_openbsd_src_files_exclude_arm64 += \
31    upstream-openbsd/lib/libc/string/memchr.c \
32    upstream-openbsd/lib/libc/string/memmove.c \
33    upstream-openbsd/lib/libc/string/stpcpy.c \
34    upstream-openbsd/lib/libc/string/strcpy.c \
35    upstream-openbsd/lib/libc/string/strncmp.c \
36
37#
38# Inherently architecture-specific code.
39#
40
41libc_bionic_src_files_arm64 += \
42    arch-arm64/bionic/__bionic_clone.S \
43    arch-arm64/bionic/_exit_with_stack_teardown.S \
44    arch-arm64/bionic/setjmp.S \
45    arch-arm64/bionic/syscall.S \
46    arch-arm64/bionic/vfork.S \
47
48
49libc_crt_target_cflags_arm64 := \
50    -I$(LOCAL_PATH)/arch-arm64/include
51
52libc_crt_target_crtbegin_file_arm64 := \
53    $(LOCAL_PATH)/arch-arm64/bionic/crtbegin.c
54
55libc_crt_target_crtbegin_so_file_arm64 := \
56    $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c
57
58## CPU variant specific source files
59ifeq ($(strip $(TARGET_CPU_VARIANT)),)
60  $(warning TARGET_ARCH is arm64, but TARGET_CPU_VARIANT is not defined)
61endif
62ifneq ($(TARGET_CPU_VARIANT),generic)
63cpu_variant_mk := $(LOCAL_PATH)/arch-arm64/$(TARGET_CPU_VARIANT)/$(TARGET_CPU_VARIANT).mk
64ifeq ($(wildcard $(cpu_variant_mk)),)
65$(error "TARGET_CPU_VARIANT not set or set to an unknown value. Possible values are generic, denver64. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.")
66endif
67include $(cpu_variant_mk)
68libc_common_additional_dependencies += $(cpu_variant_mk)
69
70cpu_variant_mk :=
71endif
72