1f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# arm specific configs
2f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
3f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# These are used by the 32-bit targets, but not the 64-bit ones.
4f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_common_src_files_arm := \
5f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/legacy_32_bit_support.cpp \
6f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/ndk_cruft.cpp \
78d77bce185d04c531bd9bf34d38e5cbbe644d3a3Elliott Hughes    bionic/time64.c \
88e613cf342b369f7985135dbe11ebdbf8c736157Dan Albert    upstream-openbsd/lib/libc/stdio/putw.c \
9f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
10f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# These are shared by all the 32-bit targets, but not the 64-bit ones.
11f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_bionic_src_files_arm := \
12f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/mmap.cpp
13f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
14f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_common_src_files_arm += \
15f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/memchr.c \
16f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/memrchr.c \
17f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/strchr.cpp \
18f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    bionic/strnlen.c \
1953e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    bionic/strrchr.cpp \
20f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscat.c \
21f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcschr.c \
22f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscmp.c \
23f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcscpy.c \
24f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcslen.c \
25f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wcsrchr.c \
26f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    upstream-freebsd/lib/libc/string/wmemcmp.c \
276f2bde344123d8503cd60f3ecd3420f39aa24eb9Bernhard Rosenkraenzer    upstream-freebsd/lib/libc/string/wmemmove.c \
2853e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/bcopy.c \
295a92284167ffba6d45210ef6889fa7d255c15d4fVarvara Rainchik    upstream-openbsd/lib/libc/string/stpcpy.c \
305a92284167ffba6d45210ef6889fa7d255c15d4fVarvara Rainchik    upstream-openbsd/lib/libc/string/stpncpy.c \
3153e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strlcat.c \
3253e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strlcpy.c \
3353e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strncat.c \
3453e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strncmp.c \
3553e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes    upstream-openbsd/lib/libc/string/strncpy.c \
36f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
37f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# The C++ fortify function implementations for which there is an
38f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# arm assembler version.
39f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang#
40f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# Fortify implementations of libc functions.
41f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang# libc_common_src_files_arm +=
42f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang#    bionic/__memcpy_chk.cpp \
43f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang#    bionic/__memset_chk.cpp \
44f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang#    bionic/__strcpy_chk.cpp \
45f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang#    bionic/__strcat_chk.cpp \
46f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
47b8dc9bbd905f762bae9845274b1053da1c084860Elliott Hugheslibc_common_cflags_arm := -DSOFTFLOAT
48f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
49f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang##########################################
50f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang### CPU specific source files
51f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_bionic_src_files_arm += \
5204954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/abort_arm.S \
5304954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/atomics_arm.c \
5436d6188f8cd8b948fb797f11d9620d63d0c2215aElliott Hughes    arch-arm/bionic/__bionic_clone.S \
5504954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/_exit_with_stack_teardown.S \
5604954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/libgcc_compat.c \
5704954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/memcmp.S \
5804954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/_setjmp.S \
5904954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/setjmp.S \
6004954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/sigsetjmp.S \
6104954a43b362b8c817cc5859513efad0c344f412Christopher Ferris    arch-arm/bionic/syscall.S \
6204954a43b362b8c817cc5859513efad0c344f412Christopher Ferris
636e39ba73bfd9504762e8798fd6b293f11d5fdf7eElliott Hugheslibc_arch_static_src_files_arm := arch-arm/bionic/exidx_static.c
646e39ba73bfd9504762e8798fd6b293f11d5fdf7eElliott Hugheslibc_arch_dynamic_src_files_arm := arch-arm/bionic/exidx_dynamic.c
6504954a43b362b8c817cc5859513efad0c344f412Christopher Ferris
66c82c0b7e072491da4818e7de37411fbb2055fce1Dan Albertlibc_netbsd_src_files_arm := \
67c82c0b7e072491da4818e7de37411fbb2055fce1Dan Albert    upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
68c82c0b7e072491da4818e7de37411fbb2055fce1Dan Albert
69f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang## CPU variant specific source files
70f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangifeq ($(strip $(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT)),)
71f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang  $(warning TARGET_$(my_2nd_arch_prefix)ARCH is arm, but TARGET_$(my_2nd_arch_prefix)CPU_VARIANT is not defined)
72f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangendif
73f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangcpu_variant_mk := $(LOCAL_PATH)/arch-arm/$(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT)/$(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT).mk
74f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangifeq ($(wildcard $(cpu_variant_mk)),)
755b5d6e7045dece4e112553e9a2516240ea32f812Shu Zhang$(error "TARGET_$(my_2nd_arch_prefix)CPU_VARIANT not set or set to an unknown value. Possible values are cortex-a7, cortex-a8, cortex-a9, cortex-a15, krait, denver. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.")
76f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangendif
77f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanginclude $(cpu_variant_mk)
78f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_common_additional_dependencies += $(cpu_variant_mk)
7959a13c122ebc4191583b67c846a95d690dcda5cfChristopher Ferris
80f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wangcpu_variant_mk :=
8159a13c122ebc4191583b67c846a95d690dcda5cfChristopher Ferris
826e39ba73bfd9504762e8798fd6b293f11d5fdf7eElliott Hughes
83f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_cflags_arm := \
84f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    -I$(LOCAL_PATH)/arch-arm/include \
85f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    -mthumb-interwork
86f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
87f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_so_cflags_arm :=
88f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang
89f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_file_arm := \
90f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    $(LOCAL_PATH)/arch-common/bionic/crtbegin.c
9104954a43b362b8c817cc5859513efad0c344f412Christopher Ferris
92f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_so_file_arm := \
93f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang    $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c
94