merge from open-source master
[android-sdk/platform-bionic.git] / libc / Android.mk
index f6276407530e7abcf759bee6e9531136f96233dc..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,7 +47,10 @@ 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 \
@@ -215,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 \
@@ -270,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 \
@@ -398,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
@@ -532,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 :=
@@ -561,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
@@ -581,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)
 
@@ -593,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))