17c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# 64-bit arm. 2f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 37c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# 47c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# Default implementations of functions that are commonly optimized. 57c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# 67c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes 77c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hugheslibc_bionic_src_files_arm64 += \ 87c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes bionic/__memset_chk.cpp \ 97c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes bionic/__strcpy_chk.cpp \ 107c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes bionic/__strcat_chk.cpp \ 1153e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes bionic/strrchr.cpp \ 127c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes 137c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hugheslibc_freebsd_src_files_arm64 += \ 14f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcscat.c \ 15f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcschr.c \ 16f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcscmp.c \ 17f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcscpy.c \ 18f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcslen.c \ 19f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wcsrchr.c \ 20f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang upstream-freebsd/lib/libc/string/wmemcmp.c \ 217c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes 227c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hugheslibc_openbsd_src_files_arm64 += \ 2341ef902379ba24bd8a3ca6d7733b8376efb55ebdElliott Hughes upstream-openbsd/lib/libc/string/memrchr.c \ 245a92284167ffba6d45210ef6889fa7d255c15d4fVarvara Rainchik upstream-openbsd/lib/libc/string/stpncpy.c \ 2553e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes upstream-openbsd/lib/libc/string/strcat.c \ 2653e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes upstream-openbsd/lib/libc/string/strlcat.c \ 2753e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes upstream-openbsd/lib/libc/string/strlcpy.c \ 2853e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes upstream-openbsd/lib/libc/string/strncat.c \ 2953e43292aac91bf62995788cd5ca2ceb7caea283Elliott Hughes upstream-openbsd/lib/libc/string/strncpy.c \ 30f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 317c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# 327c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# Inherently architecture-specific code. 337c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hughes# 34f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 357c02d9428ca18ac600f7ba7d51bb24ca71e733f6Elliott Hugheslibc_bionic_src_files_arm64 += \ 36d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross arch-arm64/bionic/__bionic_clone.S \ 37d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross arch-arm64/bionic/_exit_with_stack_teardown.S \ 38d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross arch-arm64/bionic/setjmp.S \ 39d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross arch-arm64/bionic/__set_tls.c \ 40d1973ca51325393f304e82a4d79874f33e54ac16Colin Cross arch-arm64/bionic/syscall.S \ 416a918870bab1a55a5f57dd7954abd9a8a27c1bc2Dan Albert arch-arm64/bionic/vfork.S \ 42f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 43f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 44f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_cflags_arm64 := \ 45f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang -I$(LOCAL_PATH)/arch-arm64/include 46f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 47f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_file_arm64 := \ 48f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang $(LOCAL_PATH)/arch-arm64/bionic/crtbegin.c 49f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang 50f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wanglibc_crt_target_crtbegin_so_file_arm64 := \ 51f25d677147ae55a1f3b6ef7fa3ee27921792813fYing Wang $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c 527e4fa560999d07064d219a16ebb50d3691dd1b63Bernhard Rosenkraenzer 532146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris## CPU variant specific source files 542146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisifeq ($(strip $(TARGET_CPU_VARIANT)),) 552146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris $(warning TARGET_ARCH is arm64, but TARGET_CPU_VARIANT is not defined) 562146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisendif 572146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferriscpu_variant_mk := $(LOCAL_PATH)/arch-arm64/$(TARGET_CPU_VARIANT)/$(TARGET_CPU_VARIANT).mk 582146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisifeq ($(wildcard $(cpu_variant_mk)),) 592169e17482da91865e412e55b52b88d7c8db47f6Christopher Ferris$(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.") 602146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisendif 612146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferrisinclude $(cpu_variant_mk) 62a6b6ed5fe9dd247684de5f35a0367be65876339eColin Crosslibc_common_additional_dependencies += $(cpu_variant_mk) 632146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferris 642146d142b23b830ad94f8479ce5abeaa15820e7dChristopher Ferriscpu_variant_mk := 65