diff options
author | Christopher Ferris <cferris@google.com> | 2013-02-26 01:30:00 -0800 |
---|---|---|
committer | Christopher Ferris <cferris@google.com> | 2013-03-12 14:06:08 -0700 |
commit | 04954a43b362b8c817cc5859513efad0c344f412 (patch) | |
tree | 372c39b6cfec1bc006a1adbdbc191a7c594a136b /libc/Android.mk | |
parent | 6b4c77f854c079138d552608b9df5fa3035f0fcc (diff) | |
download | bionic-04954a43b362b8c817cc5859513efad0c344f412.zip bionic-04954a43b362b8c817cc5859513efad0c344f412.tar.gz bionic-04954a43b362b8c817cc5859513efad0c344f412.tar.bz2 |
Break bionic implementations into arch versions.
Move arch specific code for arm, mips, x86 into separate
makefiles.
In addition, add different arm cpu versions of memcpy/memset.
Bug: 8005082
Merge from internal master (acdde8c1cf8e8beed98c052757d96695b820b50c).
Change-Id: I04f3d0715104fab618e1abf7cf8f7eec9bec79df
Diffstat (limited to 'libc/Android.mk')
-rw-r--r-- | libc/Android.mk | 116 |
1 files changed, 34 insertions, 82 deletions
diff --git a/libc/Android.mk b/libc/Android.mk index b033790..d85f596 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -366,29 +366,6 @@ libc_upstream_netbsd_src_files := \ # ========================================================= ifeq ($(TARGET_ARCH),arm) libc_common_src_files += \ - arch-arm/bionic/abort_arm.S \ - arch-arm/bionic/atomics_arm.c \ - arch-arm/bionic/clone.S \ - arch-arm/bionic/eabi.c \ - arch-arm/bionic/_exit_with_stack_teardown.S \ - arch-arm/bionic/ffs.S \ - arch-arm/bionic/futex_arm.S \ - arch-arm/bionic/__get_sp.S \ - arch-arm/bionic/kill.S \ - arch-arm/bionic/libgcc_compat.c \ - arch-arm/bionic/memcmp16.S \ - arch-arm/bionic/memcmp.S \ - arch-arm/bionic/memcpy.S \ - arch-arm/bionic/memset.S \ - arch-arm/bionic/_setjmp.S \ - arch-arm/bionic/setjmp.S \ - arch-arm/bionic/sigsetjmp.S \ - arch-arm/bionic/strcmp.S \ - arch-arm/bionic/strcpy.S \ - arch-arm/bionic/strlen.c.arm \ - arch-arm/bionic/syscall.S \ - arch-arm/bionic/tgkill.S \ - arch-arm/bionic/tkill.S \ bionic/memmove.c.arm \ bionic/socketcalls.c \ string/bcopy.c \ @@ -408,38 +385,10 @@ libc_static_common_src_files += \ bionic/pthread_create.cpp.arm \ bionic/pthread_key.cpp.arm \ -# these are used by the static and dynamic versions of the libc -# respectively -libc_arch_static_src_files := \ - arch-arm/bionic/exidx_static.c - -libc_arch_dynamic_src_files := \ - arch-arm/bionic/exidx_dynamic.c endif # arm ifeq ($(TARGET_ARCH),x86) libc_common_src_files += \ - arch-x86/bionic/clone.S \ - arch-x86/bionic/_exit_with_stack_teardown.S \ - arch-x86/bionic/futex_x86.S \ - arch-x86/bionic/__get_sp.S \ - arch-x86/bionic/__get_tls.c \ - arch-x86/bionic/_setjmp.S \ - arch-x86/bionic/setjmp.S \ - arch-x86/bionic/__set_tls.c \ - arch-x86/bionic/sigsetjmp.S \ - arch-x86/bionic/syscall.S \ - arch-x86/bionic/vfork.S \ - arch-x86/string/bcopy_wrapper.S \ - arch-x86/string/bzero_wrapper.S \ - arch-x86/string/ffs.S \ - arch-x86/string/memcmp_wrapper.S \ - arch-x86/string/memcpy_wrapper.S \ - arch-x86/string/memmove_wrapper.S \ - arch-x86/string/memset_wrapper.S \ - arch-x86/string/strcmp_wrapper.S \ - arch-x86/string/strlen_wrapper.S \ - arch-x86/string/strncmp_wrapper.S \ bionic/pthread-atfork.c \ bionic/pthread-rwlocks.c \ bionic/pthread-timers.c \ @@ -451,37 +400,10 @@ libc_static_common_src_files += \ bionic/pthread_create.cpp \ bionic/pthread_key.cpp \ -libc_arch_static_src_files := \ - bionic/dl_iterate_phdr_static.c - -libc_arch_dynamic_src_files := endif # x86 ifeq ($(TARGET_ARCH),mips) libc_common_src_files += \ - arch-mips/bionic/__get_sp.S \ - arch-mips/bionic/__get_tls.c \ - arch-mips/bionic/__set_tls.c \ - arch-mips/bionic/_exit_with_stack_teardown.S \ - arch-mips/bionic/_setjmp.S \ - arch-mips/bionic/futex_mips.S \ - arch-mips/bionic/bzero.S \ - arch-mips/bionic/cacheflush.c \ - arch-mips/bionic/clone.S \ - arch-mips/bionic/ffs.S \ - arch-mips/bionic/memcmp16.S \ - arch-mips/bionic/memmove.c \ - arch-mips/bionic/pipe.S \ - arch-mips/bionic/setjmp.S \ - arch-mips/bionic/sigsetjmp.S \ - arch-mips/bionic/vfork.S - -libc_common_src_files += \ - arch-mips/string/memset.S \ - arch-mips/string/memcpy.S \ - arch-mips/string/mips_strlen.c - -libc_common_src_files += \ bionic/memcmp.c \ string/bcopy.c \ string/strcmp.c \ @@ -499,12 +421,42 @@ libc_static_common_src_files += \ bionic/pthread_create.cpp \ bionic/pthread_key.cpp \ -libc_arch_static_src_files := \ - bionic/dl_iterate_phdr_static.c - -libc_arch_dynamic_src_files := endif # mips +ifeq ($(strip $(TARGET_CPU_VARIANT)),) +$(warning TARGET_CPU_VARIANT is not defined) +endif + +########################################################### +## Add cpu specific source files. +## +## This can be called multiple times, but it will only add +## the first source file for each unique $(1). +## $(1): Unique identifier to identify the cpu variant +## implementation. +## $(2): Cpu specific source file. +########################################################### + +define libc-add-cpu-variant-src +$(if $(filter true,$(_LIBC_ARCH_CPU_VARIANT_HAS_$(1))), \ + , \ + $(eval _LIBC_ARCH_CPU_VARIANT_HAS_$(1) := true) \ + $(eval _LIBC_ARCH_CPU_VARIANT_SRC_FILE.$(1) := $(2)) \ + $(eval _LIBC_ARCH_CPU_VARIANT_SRC_FILES += $(2)) \ +) +endef + +_LIBC_ARCH_COMMON_SRC_FILES := +_LIBC_ARCH_CPU_VARIANT_SRC_FILES := +_LIBC_ARCH_STATIC_SRC_FILES := +_LIBC_ARCH_DYNAMIC_SRC_FILES := +include bionic/libc/arch-$(TARGET_ARCH)/$(TARGET_ARCH).mk + +libc_common_src_files += $(_LIBC_ARCH_COMMON_SRC_FILES) +libc_common_src_files += $(_LIBC_ARCH_CPU_VARIANT_SRC_FILES) +libc_arch_static_src_files := $(_LIBC_ARCH_STATIC_SRC_FILES) +libc_arch_dynamic_src_files := $(_LIBC_ARCH_DYNAMIC_SRC_FILES) + # Define some common cflags # ======================================================== libc_common_cflags := \ |