]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/platform-bionic.git/blobdiff - libc/Android.mk
merge from open-source master
[android-sdk/platform-bionic.git] / libc / Android.mk
index 59a4c6bab67847d7e6fd8ccda8476a0af97f0978..d8cc721ca4a90078d31c96c477a0a5896c4687f2 100644 (file)
@@ -26,6 +26,7 @@ libc_common_src_files := \
        unistd/initgroups.c \
        unistd/isatty.c \
        unistd/issetugid.c \
+       unistd/killpg.c \
        unistd/lseek64.c \
        unistd/mmap.c \
        unistd/nice.c \
@@ -46,12 +47,16 @@ libc_common_src_files := \
        unistd/sbrk.c \
        unistd/send.c \
        unistd/setegid.c \
+       unistd/setuid.c \
        unistd/seteuid.c \
+       unistd/setreuid.c \
+       unistd/setresuid.c \
        unistd/setpgrp.c \
        unistd/sigblock.c \
        unistd/siginterrupt.c \
        unistd/siglist.c \
        unistd/signal.c \
+       unistd/signame.c \
        unistd/sigsetmask.c \
        unistd/sigsuspend.c \
        unistd/sigwait.c \
@@ -170,19 +175,16 @@ libc_common_src_files := \
        stdlib/tolower_.c \
        stdlib/toupper_.c \
        stdlib/wchar.c \
-       string/bcopy.c \
        string/index.c \
        string/memccpy.c \
        string/memchr.c \
        string/memmem.c \
-       string/memmove.c.arm \
        string/memrchr.c \
        string/memswap.c \
        string/strcasecmp.c \
        string/strcasestr.c \
        string/strcat.c \
        string/strchr.c \
-       string/strcmp.c \
        string/strcoll.c \
        string/strcpy.c \
        string/strcspn.c \
@@ -192,7 +194,6 @@ libc_common_src_files := \
        string/strlcat.c \
        string/strlcpy.c \
        string/strncat.c \
-       string/strncmp.c \
        string/strncpy.c \
        string/strndup.c \
        string/strnlen.c \
@@ -218,14 +219,19 @@ libc_common_src_files := \
        bionic/__errno.c \
        bionic/__set_errno.c \
        bionic/_rand48.c \
+       bionic/cpuacct.c \
        bionic/arc4random.c \
        bionic/basename.c \
        bionic/basename_r.c \
+       bionic/clearenv.c \
        bionic/dirname.c \
        bionic/dirname_r.c \
        bionic/drand48.c \
        bionic/erand48.c \
+       bionic/err.c \
+       bionic/fdprintf.c \
        bionic/fork.c \
+       bionic/fts.c \
        bionic/if_nametoindex.c \
        bionic/if_indextoname.c \
        bionic/ioctl.c \
@@ -259,7 +265,7 @@ libc_common_src_files := \
        netbsd/resolv/res_mkquery.c \
        netbsd/resolv/res_query.c \
        netbsd/resolv/res_send.c \
-       netbsd/resolv/res_state.c.arm \
+       netbsd/resolv/res_state.c \
        netbsd/resolv/res_cache.c \
        netbsd/net/nsdispatch.c \
        netbsd/net/getaddrinfo.c \
@@ -273,13 +279,18 @@ libc_common_src_files := \
        netbsd/nameser/ns_ttl.c \
        netbsd/nameser/ns_netint.c \
        netbsd/nameser/ns_print.c \
-       netbsd/nameser/ns_samedomain.c
+       netbsd/nameser/ns_samedomain.c \
+       regex/regcomp.c \
+       regex/regerror.c \
+       regex/regexec.c \
+       regex/regfree.c \
 
 # Architecture specific source files go here
 # =========================================================
 ifeq ($(TARGET_ARCH),arm)
 libc_common_src_files += \
        bionic/eabi.c \
+       bionic/bionic_clone.c \
        arch-arm/bionic/__get_pc.S \
        arch-arm/bionic/__get_sp.S \
        arch-arm/bionic/_exit_with_stack_teardown.S \
@@ -288,6 +299,7 @@ libc_common_src_files += \
        arch-arm/bionic/clone.S \
        arch-arm/bionic/ffs.S \
        arch-arm/bionic/kill.S \
+       arch-arm/bionic/libgcc_compat.c \
        arch-arm/bionic/tkill.S \
        arch-arm/bionic/memcmp.S \
        arch-arm/bionic/memcmp16.S \
@@ -297,6 +309,10 @@ libc_common_src_files += \
        arch-arm/bionic/sigsetjmp.S \
        arch-arm/bionic/strlen.c.arm \
        arch-arm/bionic/syscall.S \
+       string/memmove.c.arm \
+       string/bcopy.c \
+       string/strcmp.c \
+       string/strncmp.c \
        unistd/socketcalls.c
 
 # These files need to be arm so that gdbserver
@@ -327,10 +343,15 @@ libc_common_src_files += \
        arch-x86/bionic/setjmp.S \
        arch-x86/bionic/_setjmp.S \
        arch-x86/bionic/vfork.S \
-       arch-x86/string/bzero.S \
-       arch-x86/string/memset.S \
-       arch-x86/string/memcmp.S \
-       arch-x86/string/memcpy.S \
+       arch-x86/bionic/syscall.S \
+       arch-x86/string/bcopy_wrapper.S \
+       arch-x86/string/memcpy_wrapper.S \
+       arch-x86/string/memmove_wrapper.S \
+       arch-x86/string/bzero_wrapper.S \
+       arch-x86/string/memcmp_wrapper.S \
+       arch-x86/string/memset_wrapper.S \
+       arch-x86/string/strcmp_wrapper.S \
+       arch-x86/string/strncmp_wrapper.S \
        arch-x86/string/strlen.S \
        bionic/pthread.c \
        bionic/pthread-timers.c \
@@ -341,7 +362,41 @@ libc_arch_static_src_files := \
        arch-x86/bionic/dl_iterate_phdr_static.c
 
 libc_arch_dynamic_src_files :=
-endif # x86
+else # !x86
+
+ifeq ($(TARGET_ARCH),sh)
+libc_common_src_files += \
+       arch-sh/bionic/__get_pc.S \
+       arch-sh/bionic/__get_sp.S \
+       arch-sh/bionic/_exit_with_stack_teardown.S \
+       arch-sh/bionic/_setjmp.S \
+       arch-sh/bionic/atomics_sh.c \
+       arch-sh/bionic/atomic_cmpxchg.S \
+       arch-sh/bionic/clone.S \
+       arch-sh/bionic/pipe.S \
+       arch-sh/bionic/memcpy.S \
+       arch-sh/bionic/memset.S \
+       arch-sh/bionic/bzero.S \
+       arch-sh/bionic/setjmp.S \
+       arch-sh/bionic/sigsetjmp.S \
+       arch-sh/bionic/syscall.S \
+       arch-sh/bionic/memmove.S \
+       arch-sh/bionic/__set_tls.c \
+       arch-sh/bionic/__get_tls.c \
+       arch-sh/bionic/ffs.S \
+       string/bcopy.c \
+       string/strcmp.c \
+       string/strncmp.c \
+       string/memcmp.c \
+       string/strlen.c \
+       bionic/eabi.c \
+       bionic/pthread.c \
+       bionic/pthread-timers.c \
+       bionic/ptrace.c \
+       unistd/socketcalls.c
+endif # sh
+
+endif # !x86
 endif # !arm
 
 # Define some common cflags
@@ -357,7 +412,16 @@ libc_common_cflags := \
                -DNEED_PSELECT=1                \
                -DINET6 \
                -I$(LOCAL_PATH)/private \
-               -DUSE_DL_PREFIX
+               -DUSE_DL_PREFIX \
+               -DPOSIX_MISTAKE
+
+# these macro definitions are required to implement the
+# 'timezone' and 'daylight' global variables, as well as
+# properly update the 'tm_gmtoff' field in 'struct tm'.
+#
+libc_common_cflags += \
+    -DTM_GMTOFF=tm_gmtoff \
+    -DUSG_COMPAT=1
 
 ifeq ($(strip $(DEBUG_BIONIC_LIBC)),true)
   libc_common_cflags += -DDEBUG
@@ -366,9 +430,23 @@ endif
 ifeq ($(TARGET_ARCH),arm)
   libc_common_cflags += -fstrict-aliasing
   libc_crt_target_cflags := -mthumb-interwork
+  #
+  # Define HAVE_ARM_TLS_REGISTER macro to indicate to the C library
+  # that it should access the hardware TLS register directly in
+  # private/bionic_tls.h
+  #
+  # The value must match your kernel configuration
+  #
+  ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
+    libc_common_cflags += -DHAVE_ARM_TLS_REGISTER
+  endif
 else # !arm
   ifeq ($(TARGET_ARCH),x86)
     libc_crt_target_cflags := -m32
+
+    # Enable recent IA friendly memory routines (such as for Atom)
+    # These will not work on the earlier x86 machines
+    libc_common_cflags += -mtune=i686 -DUSE_SSSE3 -DUSE_SSE2
   endif # x86
 endif # !arm
 
@@ -477,17 +555,12 @@ include $(CLEAR_VARS)
 LOCAL_SRC_FILES := \
        $(libc_arch_static_src_files) \
        bionic/dlmalloc.c \
+       bionic/malloc_debug_common.c \
        bionic/libc_init_static.c
 
-LOCAL_CFLAGS := $(libc_common_cflags)
-
-ifeq ($(WITH_MALLOC_CHECK_LIBC_A),true)
-  LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK
-  LOCAL_SRC_FILES += bionic/malloc_leak.c.arm
-endif
-
+LOCAL_CFLAGS := $(libc_common_cflags) \
+                -DLIBC_STATIC
 LOCAL_C_INCLUDES := $(libc_common_c_includes)
-
 LOCAL_MODULE := libc
 LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
 LOCAL_SYSTEM_SHARED_LIBRARIES :=
@@ -506,7 +579,7 @@ LOCAL_C_INCLUDES := $(libc_common_c_includes)
 LOCAL_SRC_FILES := \
        $(libc_arch_dynamic_src_files) \
        bionic/dlmalloc.c \
-       bionic/malloc_leak.c.arm \
+       bionic/malloc_debug_common.c \
        bionic/libc_init_dynamic.c
 
 LOCAL_MODULE:= libc
@@ -526,8 +599,16 @@ LOCAL_SYSTEM_SHARED_LIBRARIES :=
 include $(BUILD_SHARED_LIBRARY)
 
 
+# For all builds, except for the -user build we will enable memory
+# allocation checking (including memory leaks, buffer overwrites, etc.)
+# Note that all these checks are also controlled by env. settings
+# that can enable, or disable specific checks. Note also that some of
+# the checks are available only in emulator and are implemeted in
+# libc_malloc_qemu_instrumented.so.
+ifneq ($(TARGET_BUILD_VARIANT),user)
+
 # ========================================================
-# libc_debug.so
+# libc_malloc_debug_leak.so
 # ========================================================
 include $(CLEAR_VARS)
 
@@ -538,30 +619,49 @@ LOCAL_CFLAGS := \
 LOCAL_C_INCLUDES := $(libc_common_c_includes)
 
 LOCAL_SRC_FILES := \
-       $(libc_arch_dynamic_src_files) \
-       bionic/dlmalloc.c \
-       bionic/malloc_leak.c.arm \
-       bionic/libc_init_dynamic.c
+       bionic/malloc_debug_leak.c
 
-LOCAL_MODULE:= libc_debug
+LOCAL_MODULE:= libc_malloc_debug_leak
 
-# WARNING: The only library libc.so should depend on is libdl.so!  If you add other libraries,
-# make sure to add -Wl,--exclude-libs=libgcc.a to the LOCAL_LDFLAGS for those libraries.  This
-# ensures that symbols that are pulled into those new libraries from libgcc.a are not declared
-# external; if that were the case, then libc would not pull those symbols from libgcc.a as it
-# should, instead relying on the external symbols from the dependent libraries.  That would
-# create an "cloaked" dependency on libgcc.a in libc though the libraries, which is not what
-# you wanted!
+LOCAL_SHARED_LIBRARIES := libc
+LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
+LOCAL_SYSTEM_SHARED_LIBRARIES :=
+# Don't prelink
+LOCAL_PRELINK_MODULE := false
+# Don't install on release build
+LOCAL_MODULE_TAGS := eng debug
 
-LOCAL_SHARED_LIBRARIES := libdl
+include $(BUILD_SHARED_LIBRARY)
+
+
+# ========================================================
+# libc_malloc_debug_qemu.so
+# ========================================================
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := \
+       $(libc_common_cflags) \
+       -DMALLOC_QEMU_INSTRUMENT
+
+LOCAL_C_INCLUDES := $(libc_common_c_includes)
+
+LOCAL_SRC_FILES := \
+       bionic/malloc_debug_qemu.c
+
+LOCAL_MODULE:= libc_malloc_debug_qemu
+
+LOCAL_SHARED_LIBRARIES := libc
 LOCAL_WHOLE_STATIC_LIBRARIES := libc_common
 LOCAL_SYSTEM_SHARED_LIBRARIES :=
 # Don't prelink
 LOCAL_PRELINK_MODULE := false
 # Don't install on release build
-LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE_TAGS := eng debug
 
 include $(BUILD_SHARED_LIBRARY)
 
+endif  #!user
+
+
 # ========================================================
 include $(call all-makefiles-under,$(LOCAL_PATH))