summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libc/Android.mk116
-rw-r--r--libc/arch-arm/bionic/atexit_legacy.c3
-rw-r--r--libc/arch-arm/cortex-a15/bionic/__strcat_chk.S2
-rw-r--r--libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S2
-rw-r--r--libc/arch-arm/cortex-a15/bionic/memcpy.S2
-rw-r--r--libc/arch-arm/cortex-a15/bionic/memset.S2
-rw-r--r--libc/arch-arm/cortex-a9/bionic/__strcat_chk.S2
-rw-r--r--libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S2
-rw-r--r--libc/arch-arm/cortex-a9/bionic/memcpy.S2
-rw-r--r--libc/arch-arm/cortex-a9/bionic/memset.S2
-rw-r--r--libc/arch-arm/generic/bionic/memcpy.S2
-rw-r--r--libc/arch-arm/generic/bionic/memset.S2
-rw-r--r--libc/arch-arm/krait/bionic/__strcat_chk.S2
-rw-r--r--libc/arch-arm/krait/bionic/__strcpy_chk.S2
-rw-r--r--libc/arch-arm/krait/bionic/memcpy.S2
-rw-r--r--libc/arch-arm/krait/bionic/memset.S2
-rw-r--r--libc/arch-common/bionic/__dso_handle.h (renamed from libc/private/__dso_handle.h)0
-rw-r--r--libc/arch-common/bionic/__dso_handle_so.h (renamed from libc/private/__dso_handle_so.h)0
-rw-r--r--libc/arch-common/bionic/crtbegin_so.c1
-rw-r--r--libc/arch-mips/bionic/cacheflush.c2
-rw-r--r--libc/arch-mips/bionic/crtbegin.c2
-rw-r--r--libc/arch-mips/bionic/crtbegin_so.c2
-rw-r--r--libc/bionic/__FD_chk.cpp2
-rw-r--r--libc/bionic/__errno.cpp3
-rw-r--r--libc/bionic/__fgets_chk.cpp2
-rw-r--r--libc/bionic/__memcpy_chk.cpp2
-rw-r--r--libc/bionic/__memmove_chk.cpp2
-rw-r--r--libc/bionic/__memset_chk.cpp2
-rw-r--r--libc/bionic/__recvfrom_chk.cpp2
-rw-r--r--libc/bionic/__stack_chk_fail.cpp4
-rw-r--r--libc/bionic/__strcat_chk.cpp2
-rw-r--r--libc/bionic/__strchr_chk.cpp2
-rw-r--r--libc/bionic/__strcpy_chk.cpp2
-rw-r--r--libc/bionic/__strlcat_chk.cpp2
-rw-r--r--libc/bionic/__strlcpy_chk.cpp2
-rw-r--r--libc/bionic/__strlen_chk.cpp2
-rw-r--r--libc/bionic/__strncat_chk.cpp2
-rw-r--r--libc/bionic/__strncpy_chk.cpp2
-rw-r--r--libc/bionic/__strrchr_chk.cpp2
-rw-r--r--libc/bionic/__thread_entry.cpp57
-rw-r--r--libc/bionic/__umask_chk.cpp3
-rw-r--r--libc/bionic/__vsnprintf_chk.cpp2
-rw-r--r--libc/bionic/__vsprintf_chk.cpp2
-rw-r--r--libc/bionic/arc4random.c2
-rw-r--r--libc/bionic/assert.cpp2
-rw-r--r--libc/bionic/cpuacct.h (renamed from libc/private/cpuacct.h)0
-rw-r--r--libc/bionic/debug_stacktrace.cpp2
-rw-r--r--libc/bionic/fork.c3
-rw-r--r--libc/bionic/libc_init_common.cpp5
-rw-r--r--libc/bionic/libc_init_dynamic.cpp5
-rw-r--r--libc/bionic/libc_init_static.cpp5
-rw-r--r--libc/bionic/libc_logging.cpp4
-rw-r--r--libc/bionic/libgen.cpp2
-rw-r--r--libc/bionic/malloc_debug_check.cpp4
-rw-r--r--libc/bionic/malloc_debug_common.cpp4
-rw-r--r--libc/bionic/malloc_debug_common.h2
-rw-r--r--libc/bionic/malloc_debug_leak.cpp5
-rw-r--r--libc/bionic/malloc_debug_qemu.cpp2
-rw-r--r--libc/bionic/open.c2
-rw-r--r--libc/bionic/openat.c2
-rw-r--r--libc/bionic/pthread.c11
-rw-r--r--libc/bionic/pthread_create.cpp28
-rw-r--r--libc/bionic/pthread_debug.cpp5
-rw-r--r--libc/bionic/pthread_getschedparam.cpp2
-rw-r--r--libc/bionic/pthread_internal.h2
-rw-r--r--libc/bionic/pthread_internals.cpp4
-rw-r--r--libc/bionic/pthread_key.cpp2
-rw-r--r--libc/bionic/pthread_kill.cpp2
-rw-r--r--libc/bionic/pthread_setschedparam.cpp2
-rw-r--r--libc/bionic/semaphore.c5
-rw-r--r--libc/bionic/strerror.cpp2
-rw-r--r--libc/bionic/strsignal.cpp2
-rw-r--r--libc/bionic/sysconf.cpp3
-rw-r--r--libc/bionic/system_properties.c3
-rw-r--r--libc/netbsd/resolv/res_cache.c2
-rw-r--r--libc/netbsd/resolv/res_send.c2
-rw-r--r--libc/netbsd/resolv/res_state.c2
-rw-r--r--libc/private/arpa_nameser.h2
-rw-r--r--libc/private/syscommon.h32
-rw-r--r--libc/stdio/findfp.c2
-rw-r--r--libc/stdlib/atexit.c2
-rw-r--r--libc/stdlib/ctype_private.h (renamed from libc/private/ctype_private.h)0
-rw-r--r--libc/stdlib/exit.c2
-rw-r--r--libc/tzcode/strftime.c2
-rw-r--r--libc/upstream-netbsd/port_before.h2
-rw-r--r--libc/upstream-netbsd/rand48.h (renamed from libc/private/rand48.h)0
-rw-r--r--libstdc++/src/one_time_construction.cpp5
-rw-r--r--linker/dlfcn.cpp6
-rw-r--r--linker/linker.cpp6
-rw-r--r--linker/linker_environ.cpp2
90 files changed, 239 insertions, 209 deletions
diff --git a/libc/Android.mk b/libc/Android.mk
index 72a655c..20f190a 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -151,34 +151,38 @@ libc_common_src_files := \
bionic/usleep.c \
bionic/utmp.c \
bionic/wcscoll.c \
- netbsd/gethnamaddr.c \
- netbsd/inet/nsap_addr.c \
- netbsd/resolv/__dn_comp.c \
- netbsd/resolv/__res_close.c \
- netbsd/resolv/__res_send.c \
- netbsd/resolv/herror.c \
- netbsd/resolv/res_comp.c \
- netbsd/resolv/res_data.c \
- netbsd/resolv/res_debug.c \
- netbsd/resolv/res_init.c \
- netbsd/resolv/res_mkquery.c \
- netbsd/resolv/res_query.c \
- netbsd/resolv/res_send.c \
- netbsd/resolv/res_state.c \
- netbsd/resolv/res_cache.c \
- netbsd/net/nsdispatch.c \
- netbsd/net/getaddrinfo.c \
- netbsd/net/getnameinfo.c \
- netbsd/net/getservbyname.c \
- netbsd/net/getservent.c \
- netbsd/net/base64.c \
- netbsd/net/getservbyport.c \
- netbsd/nameser/ns_name.c \
- netbsd/nameser/ns_parse.c \
- netbsd/nameser/ns_ttl.c \
- netbsd/nameser/ns_netint.c \
- netbsd/nameser/ns_print.c \
- netbsd/nameser/ns_samedomain.c \
+
+
+libc_dns_src_files += \
+ netbsd/gethnamaddr.c \
+ netbsd/inet/nsap_addr.c \
+ netbsd/nameser/ns_name.c \
+ netbsd/nameser/ns_netint.c \
+ netbsd/nameser/ns_parse.c \
+ netbsd/nameser/ns_print.c \
+ netbsd/nameser/ns_samedomain.c \
+ netbsd/nameser/ns_ttl.c \
+ netbsd/net/base64.c \
+ netbsd/net/getaddrinfo.c \
+ netbsd/net/getnameinfo.c \
+ netbsd/net/getservbyname.c \
+ netbsd/net/getservbyport.c \
+ netbsd/net/getservent.c \
+ netbsd/net/nsdispatch.c \
+ netbsd/resolv/__dn_comp.c \
+ netbsd/resolv/herror.c \
+ netbsd/resolv/res_cache.c \
+ netbsd/resolv/__res_close.c \
+ netbsd/resolv/res_comp.c \
+ netbsd/resolv/res_data.c \
+ netbsd/resolv/res_debug.c \
+ netbsd/resolv/res_init.c \
+ netbsd/resolv/res_mkquery.c \
+ netbsd/resolv/res_query.c \
+ netbsd/resolv/__res_send.c \
+ netbsd/resolv/res_send.c \
+ netbsd/resolv/res_state.c \
+
# These are shared by all the 32-bit targets, but not the 64-bit ones.
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm mips x86))
@@ -254,6 +258,7 @@ libc_bionic_src_files := \
bionic/stubs.cpp \
bionic/sysconf.cpp \
bionic/tdestroy.cpp \
+ bionic/__thread_entry.cpp \
bionic/tmpfile.cpp \
bionic/wait.cpp \
bionic/wchar.cpp \
@@ -504,10 +509,10 @@ libc_common_src_files += \
upstream-freebsd/lib/libc/string/wmemcmp.c \
libc_common_src_files += \
- bionic/pthread-atfork.c \
- bionic/pthread-rwlocks.c \
- bionic/pthread-timers.c \
- bionic/ptrace.c
+ bionic/pthread-atfork.c \
+ bionic/pthread-rwlocks.c \
+ bionic/pthread-timers.c \
+ bionic/ptrace.c \
libc_static_common_src_files += \
bionic/pthread.c \
@@ -549,8 +554,8 @@ libc_common_additional_dependencies += \
$(LOCAL_PATH)/arch-$(TARGET_ARCH)/$(TARGET_ARCH).mk
include $(LOCAL_PATH)/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_bionic_src_files += $(_LIBC_ARCH_COMMON_SRC_FILES)
+libc_bionic_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)
libc_common_additional_dependencies += $(_LIBC_ARCH_ADDITIONAL_DEPENDENCIES)
@@ -560,9 +565,6 @@ libc_common_additional_dependencies += $(_LIBC_ARCH_ADDITIONAL_DEPENDENCIES)
libc_common_cflags := \
-DANDROID_CHANGES \
-D_LIBC=1 \
- -DINET6 \
- -I$(LOCAL_PATH)/private \
- -DPOSIX_MISTAKE \
-Wall -Wextra \
# Try to catch typical 32-bit assumptions that break with 64-bit pointers.
@@ -616,7 +618,8 @@ endif
# crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
libc_crt_target_cflags += \
-I$(LOCAL_PATH)/include \
- -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
+ -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include \
+ -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) \
# Define some common conlyflags
libc_common_conlyflags := \
@@ -634,12 +637,6 @@ libc_common_c_includes := \
$(LOCAL_PATH)/stdio \
external/safe-iop/include
-# Needed to access private/__dso_handle.h from
-# crtbegin_xxx.S and crtend_xxx.S
-libc_crt_target_cflags += \
- -I$(LOCAL_PATH)/private \
- -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include
-
# Define the libc run-time (crt) support object files that must be built,
# which are needed to build all other objects (shared/static libs and
# executables)
@@ -809,6 +806,29 @@ include $(BUILD_STATIC_LIBRARY)
# ========================================================
+# libc_dns.a - modified NetBSD DNS code
+# ========================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(libc_dns_src_files)
+LOCAL_CFLAGS := \
+ $(libc_common_cflags) \
+ -DINET6 \
+ -I$(LOCAL_PATH)/private \
+ -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for NetBSD private headers
+
+LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
+LOCAL_CPPFLAGS := $(libc_common_cppflags)
+LOCAL_C_INCLUDES := $(libc_common_c_includes)
+LOCAL_MODULE := libc_dns
+LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies)
+LOCAL_SYSTEM_SHARED_LIBRARIES :=
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+# ========================================================
# libc_freebsd.a - upstream FreeBSD C library code
# ========================================================
#
@@ -845,6 +865,7 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
LOCAL_CFLAGS := \
$(libc_common_cflags) \
+ -DPOSIX_MISTAKE \
-I$(LOCAL_PATH)/upstream-netbsd \
-I$(LOCAL_PATH)/upstream-netbsd/libc/include \
-include upstream-netbsd/netbsd-compat.h
@@ -883,8 +904,7 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_common_src_files)
-LOCAL_CFLAGS := $(libc_common_cflags) \
- -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
+LOCAL_CFLAGS := $(libc_common_cflags)
LOCAL_CONLYFLAGS := $(libc_common_conlyflags)
LOCAL_CPPFLAGS := $(libc_common_cppflags)
LOCAL_C_INCLUDES := $(libc_common_c_includes)
@@ -893,9 +913,11 @@ LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies)
LOCAL_WHOLE_STATIC_LIBRARIES := \
libbionic_ssp \
libc_bionic \
+ libc_dns \
libc_freebsd \
libc_netbsd \
- libc_tzcode
+ libc_tzcode \
+
LOCAL_SYSTEM_SHARED_LIBRARIES :=
# TODO: split out the asflags.
diff --git a/libc/arch-arm/bionic/atexit_legacy.c b/libc/arch-arm/bionic/atexit_legacy.c
index f35c68d..2162c37 100644
--- a/libc/arch-arm/bionic/atexit_legacy.c
+++ b/libc/arch-arm/bionic/atexit_legacy.c
@@ -27,9 +27,10 @@
*/
#include <sys/types.h>
-#include <private/libc_logging.h>
#include <stdio.h>
+#include "private/libc_logging.h"
+
/*
* This source file should only be included by libc.so, its purpose is
* to support legacy ARM binaries by exporting a publicly visible
diff --git a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
index efa9595..51f858e 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
diff --git a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
index cd91dfc..782792f 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy.S b/libc/arch-arm/cortex-a15/bionic/memcpy.S
index a1ef6f5..dae39c3 100644
--- a/libc/arch-arm/cortex-a15/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a15/bionic/memcpy.S
@@ -56,7 +56,7 @@
// Prototype: void *memcpy (void *dst, const void *src, size_t count).
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.text
.syntax unified
diff --git a/libc/arch-arm/cortex-a15/bionic/memset.S b/libc/arch-arm/cortex-a15/bionic/memset.S
index 72e83cc..8775ee8 100644
--- a/libc/arch-arm/cortex-a15/bionic/memset.S
+++ b/libc/arch-arm/cortex-a15/bionic/memset.S
@@ -28,7 +28,7 @@
#include <machine/cpu-features.h>
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* Optimized memset() for ARM.
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
index daea34c..d6ae0f3 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
.fpu neon
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
index d4e0c0a..55926c1 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
.fpu neon
diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy.S b/libc/arch-arm/cortex-a9/bionic/memcpy.S
index 9faea96..8904534 100644
--- a/libc/arch-arm/cortex-a9/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a9/bionic/memcpy.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* This code assumes it is running on a processor that supports all arm v7
diff --git a/libc/arch-arm/cortex-a9/bionic/memset.S b/libc/arch-arm/cortex-a9/bionic/memset.S
index 9609db9..6eb2b4a 100644
--- a/libc/arch-arm/cortex-a9/bionic/memset.S
+++ b/libc/arch-arm/cortex-a9/bionic/memset.S
@@ -28,7 +28,7 @@
#include <machine/cpu-features.h>
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* This code assumes it is running on a processor that supports all arm v7
diff --git a/libc/arch-arm/generic/bionic/memcpy.S b/libc/arch-arm/generic/bionic/memcpy.S
index c5168d6..5d55aae 100644
--- a/libc/arch-arm/generic/bionic/memcpy.S
+++ b/libc/arch-arm/generic/bionic/memcpy.S
@@ -28,7 +28,7 @@
#include <machine/cpu-features.h>
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* Optimized memcpy() for ARM.
diff --git a/libc/arch-arm/generic/bionic/memset.S b/libc/arch-arm/generic/bionic/memset.S
index 47dcedd..435d83c 100644
--- a/libc/arch-arm/generic/bionic/memset.S
+++ b/libc/arch-arm/generic/bionic/memset.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* Optimized memset() for ARM.
diff --git a/libc/arch-arm/krait/bionic/__strcat_chk.S b/libc/arch-arm/krait/bionic/__strcat_chk.S
index 00fd01e..7111540 100644
--- a/libc/arch-arm/krait/bionic/__strcat_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcat_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
diff --git a/libc/arch-arm/krait/bionic/__strcpy_chk.S b/libc/arch-arm/krait/bionic/__strcpy_chk.S
index 3c802b5..f02a32d 100644
--- a/libc/arch-arm/krait/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcpy_chk.S
@@ -27,7 +27,7 @@
*/
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
.syntax unified
diff --git a/libc/arch-arm/krait/bionic/memcpy.S b/libc/arch-arm/krait/bionic/memcpy.S
index d3278d2..44cc144 100644
--- a/libc/arch-arm/krait/bionic/memcpy.S
+++ b/libc/arch-arm/krait/bionic/memcpy.S
@@ -29,7 +29,7 @@
/* Assumes neon instructions and a cache line size of 32 bytes. */
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* This code assumes it is running on a processor that supports all arm v7
diff --git a/libc/arch-arm/krait/bionic/memset.S b/libc/arch-arm/krait/bionic/memset.S
index 6595e1f..b5a9d78 100644
--- a/libc/arch-arm/krait/bionic/memset.S
+++ b/libc/arch-arm/krait/bionic/memset.S
@@ -28,7 +28,7 @@
#include <machine/cpu-features.h>
#include <machine/asm.h>
-#include "libc_events.h"
+#include "private/libc_events.h"
/*
* This code assumes it is running on a processor that supports all arm v7
diff --git a/libc/private/__dso_handle.h b/libc/arch-common/bionic/__dso_handle.h
index e67ce7c..e67ce7c 100644
--- a/libc/private/__dso_handle.h
+++ b/libc/arch-common/bionic/__dso_handle.h
diff --git a/libc/private/__dso_handle_so.h b/libc/arch-common/bionic/__dso_handle_so.h
index 732799b..732799b 100644
--- a/libc/private/__dso_handle_so.h
+++ b/libc/arch-common/bionic/__dso_handle_so.h
diff --git a/libc/arch-common/bionic/crtbegin_so.c b/libc/arch-common/bionic/crtbegin_so.c
index bd70edf..641e45a 100644
--- a/libc/arch-common/bionic/crtbegin_so.c
+++ b/libc/arch-common/bionic/crtbegin_so.c
@@ -59,4 +59,3 @@ void __on_dlclose() {
#ifdef __i386__
# include "../../arch-x86/bionic/__stack_chk_fail_local.h"
#endif
-
diff --git a/libc/arch-mips/bionic/cacheflush.c b/libc/arch-mips/bionic/cacheflush.c
index 97e67d4..2b03eee 100644
--- a/libc/arch-mips/bionic/cacheflush.c
+++ b/libc/arch-mips/bionic/cacheflush.c
@@ -29,7 +29,7 @@
#include <sys/cachectl.h>
#ifdef DEBUG
-#include <private/libc_logging.h>
+#include "private/libc_logging.h"
#define XLOG(...) __libc_format_log(ANDROID_LOG_DEBUG,"libc-cacheflush",__VA_ARGS__)
#endif
diff --git a/libc/arch-mips/bionic/crtbegin.c b/libc/arch-mips/bionic/crtbegin.c
index d3a3401..28e8817 100644
--- a/libc/arch-mips/bionic/crtbegin.c
+++ b/libc/arch-mips/bionic/crtbegin.c
@@ -90,5 +90,5 @@ __asm__ (
" .set pop \n"
);
-#include "__dso_handle.h"
+#include "../../arch-common/bionic/__dso_handle.h"
#include "atexit.h"
diff --git a/libc/arch-mips/bionic/crtbegin_so.c b/libc/arch-mips/bionic/crtbegin_so.c
index 925dc8c..d664ce6 100644
--- a/libc/arch-mips/bionic/crtbegin_so.c
+++ b/libc/arch-mips/bionic/crtbegin_so.c
@@ -34,5 +34,5 @@ void __on_dlclose() {
__cxa_finalize(&__dso_handle);
}
-#include "__dso_handle_so.h"
+#include "../../arch-common/bionic/__dso_handle_so.h"
#include "atexit.h"
diff --git a/libc/bionic/__FD_chk.cpp b/libc/bionic/__FD_chk.cpp
index 23d3084..5c2338d 100644
--- a/libc/bionic/__FD_chk.cpp
+++ b/libc/bionic/__FD_chk.cpp
@@ -28,7 +28,7 @@
#undef _FORTIFY_SOURCE
#include <sys/select.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern "C" int __FD_ISSET_chk(int fd, fd_set* set, size_t set_size) {
if (__predict_false(fd < 0)) {
diff --git a/libc/bionic/__errno.cpp b/libc/bionic/__errno.cpp
index 9caa618..c9c1605 100644
--- a/libc/bionic/__errno.cpp
+++ b/libc/bionic/__errno.cpp
@@ -27,9 +27,10 @@
*/
#include <errno.h>
-#include <bionic_tls.h>
#include <stdint.h>
+#include "private/bionic_tls.h"
+
volatile int* __errno() {
return reinterpret_cast<int*>(&(__get_tls()[TLS_SLOT_ERRNO]));
}
diff --git a/libc/bionic/__fgets_chk.cpp b/libc/bionic/__fgets_chk.cpp
index 7f6b067..fc903e4 100644
--- a/libc/bionic/__fgets_chk.cpp
+++ b/libc/bionic/__fgets_chk.cpp
@@ -28,7 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* __fgets_chk. Called in place of fgets() when we know the
diff --git a/libc/bionic/__memcpy_chk.cpp b/libc/bionic/__memcpy_chk.cpp
index 2839795..9416e49 100644
--- a/libc/bionic/__memcpy_chk.cpp
+++ b/libc/bionic/__memcpy_chk.cpp
@@ -29,7 +29,7 @@
#undef _FORTIFY_SOURCE
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __memcpy_chk.
diff --git a/libc/bionic/__memmove_chk.cpp b/libc/bionic/__memmove_chk.cpp
index b653968..b52f7c8 100644
--- a/libc/bionic/__memmove_chk.cpp
+++ b/libc/bionic/__memmove_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____memmove_chk.
diff --git a/libc/bionic/__memset_chk.cpp b/libc/bionic/__memset_chk.cpp
index 49a1548..72551f0 100644
--- a/libc/bionic/__memset_chk.cpp
+++ b/libc/bionic/__memset_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____memset_chk.
diff --git a/libc/bionic/__recvfrom_chk.cpp b/libc/bionic/__recvfrom_chk.cpp
index 0c042cc..00de1d9 100644
--- a/libc/bionic/__recvfrom_chk.cpp
+++ b/libc/bionic/__recvfrom_chk.cpp
@@ -30,7 +30,7 @@
#include <stddef.h>
#include <sys/socket.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern "C"
ssize_t __recvfrom_chk(int socket, void* buf, size_t len, size_t buflen, unsigned int flags,
diff --git a/libc/bionic/__stack_chk_fail.cpp b/libc/bionic/__stack_chk_fail.cpp
index 8b9ed5e..6e052e3 100644
--- a/libc/bionic/__stack_chk_fail.cpp
+++ b/libc/bionic/__stack_chk_fail.cpp
@@ -28,8 +28,8 @@
#include <stdlib.h>
-#include "bionic_ssp.h"
-#include "libc_logging.h"
+#include "private/bionic_ssp.h"
+#include "private/libc_logging.h"
void __stack_chk_fail() {
__libc_fatal("stack corruption detected");
diff --git a/libc/bionic/__strcat_chk.cpp b/libc/bionic/__strcat_chk.cpp
index 3dda43a..f15cb5c 100644
--- a/libc/bionic/__strcat_chk.cpp
+++ b/libc/bionic/__strcat_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____strcat_chk.
diff --git a/libc/bionic/__strchr_chk.cpp b/libc/bionic/__strchr_chk.cpp
index 3982d60..51d35d0 100644
--- a/libc/bionic/__strchr_chk.cpp
+++ b/libc/bionic/__strchr_chk.cpp
@@ -28,7 +28,7 @@
*/
#include <string.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern "C" char* __strchr_chk(const char* p, int ch, size_t s_len) {
for (;; ++p, s_len--) {
diff --git a/libc/bionic/__strcpy_chk.cpp b/libc/bionic/__strcpy_chk.cpp
index 41990f9..9b39627 100644
--- a/libc/bionic/__strcpy_chk.cpp
+++ b/libc/bionic/__strcpy_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____strcpy_chk.
diff --git a/libc/bionic/__strlcat_chk.cpp b/libc/bionic/__strlcat_chk.cpp
index 32573c2..783dd84 100644
--- a/libc/bionic/__strlcat_chk.cpp
+++ b/libc/bionic/__strlcat_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* __strlcat_chk. Called in place of strlcat() when we know the
diff --git a/libc/bionic/__strlcpy_chk.cpp b/libc/bionic/__strlcpy_chk.cpp
index 1e482e1..359e918 100644
--- a/libc/bionic/__strlcpy_chk.cpp
+++ b/libc/bionic/__strlcpy_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* __strlcpy_chk. Called in place of strlcpy() when we know the
diff --git a/libc/bionic/__strlen_chk.cpp b/libc/bionic/__strlen_chk.cpp
index 494f7bf..d4c5e43 100644
--- a/libc/bionic/__strlen_chk.cpp
+++ b/libc/bionic/__strlen_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __strlen_chk.
diff --git a/libc/bionic/__strncat_chk.cpp b/libc/bionic/__strncat_chk.cpp
index 296217e..cdb3c80 100644
--- a/libc/bionic/__strncat_chk.cpp
+++ b/libc/bionic/__strncat_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____strncat_chk.
diff --git a/libc/bionic/__strncpy_chk.cpp b/libc/bionic/__strncpy_chk.cpp
index 5e72c2c..d0e9013 100644
--- a/libc/bionic/__strncpy_chk.cpp
+++ b/libc/bionic/__strncpy_chk.cpp
@@ -28,7 +28,7 @@
#include <string.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____strncpy_chk.
diff --git a/libc/bionic/__strrchr_chk.cpp b/libc/bionic/__strrchr_chk.cpp
index e6daf8f..fe56c9a 100644
--- a/libc/bionic/__strrchr_chk.cpp
+++ b/libc/bionic/__strrchr_chk.cpp
@@ -29,7 +29,7 @@
*/
#include <string.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern "C" char* __strrchr_chk(const char *p, int ch, size_t s_len)
{
diff --git a/libc/bionic/__thread_entry.cpp b/libc/bionic/__thread_entry.cpp
new file mode 100644
index 0000000..8300a64
--- /dev/null
+++ b/libc/bionic/__thread_entry.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <pthread.h>
+
+#include "pthread_internal.h"
+
+#include "private/bionic_tls.h"
+
+// This trampoline is called from the assembly _pthread_clone function.
+// Our 'tls' and __pthread_clone's 'child_stack' are one and the same, just growing in
+// opposite directions.
+extern "C" void __thread_entry(void* (*func)(void*), void* arg, void** tls) {
+ // Wait for our creating thread to release us. This lets it have time to
+ // notify gdb about this thread before we start doing anything.
+ // This also provides the memory barrier needed to ensure that all memory
+ // accesses previously made by the creating thread are visible to us.
+ pthread_mutex_t* start_mutex = (pthread_mutex_t*) &tls[TLS_SLOT_SELF];
+ pthread_mutex_lock(start_mutex);
+ pthread_mutex_destroy(start_mutex);
+
+ pthread_internal_t* thread = (pthread_internal_t*) tls[TLS_SLOT_THREAD_ID];
+ thread->tls = tls;
+ __init_tls(thread);
+
+ if ((thread->internal_flags & PTHREAD_INTERNAL_FLAG_THREAD_INIT_FAILED) != 0) {
+ pthread_exit(NULL);
+ }
+
+ void* result = func(arg);
+ pthread_exit(result);
+}
diff --git a/libc/bionic/__umask_chk.cpp b/libc/bionic/__umask_chk.cpp
index 8fe95a2..7d2a99a 100644
--- a/libc/bionic/__umask_chk.cpp
+++ b/libc/bionic/__umask_chk.cpp
@@ -30,9 +30,10 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include "libc_logging.h"
#include <stdlib.h>
+#include "private/libc_logging.h"
+
/*
* Runtime implementation of __umask_chk.
*
diff --git a/libc/bionic/__vsnprintf_chk.cpp b/libc/bionic/__vsnprintf_chk.cpp
index 257cf5e..a03d12f 100644
--- a/libc/bionic/__vsnprintf_chk.cpp
+++ b/libc/bionic/__vsnprintf_chk.cpp
@@ -29,7 +29,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____vsnprintf_chk.
diff --git a/libc/bionic/__vsprintf_chk.cpp b/libc/bionic/__vsprintf_chk.cpp
index 290de9b..3810694 100644
--- a/libc/bionic/__vsprintf_chk.cpp
+++ b/libc/bionic/__vsprintf_chk.cpp
@@ -29,7 +29,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* Runtime implementation of __builtin____vsprintf_chk.
diff --git a/libc/bionic/arc4random.c b/libc/bionic/arc4random.c
index d70580a..eac4b0c 100644
--- a/libc/bionic/arc4random.c
+++ b/libc/bionic/arc4random.c
@@ -41,7 +41,7 @@
#include <sys/types.h>
#include <sys/param.h>
#include <sys/time.h>
-#include "thread_private.h"
+#include "private/thread_private.h"
/* BIONIC-BEGIN */
/* this lock should protect the global variables in this file */
diff --git a/libc/bionic/assert.cpp b/libc/bionic/assert.cpp
index 84024c7..ba67143 100644
--- a/libc/bionic/assert.cpp
+++ b/libc/bionic/assert.cpp
@@ -30,7 +30,7 @@
#include <assert.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
void __assert(const char* file, int line, const char* failed_expression) {
__libc_fatal("%s:%d: assertion \"%s\" failed", file, line, failed_expression);
diff --git a/libc/private/cpuacct.h b/libc/bionic/cpuacct.h
index 8e24c8c..8e24c8c 100644
--- a/libc/private/cpuacct.h
+++ b/libc/bionic/cpuacct.h
diff --git a/libc/bionic/debug_stacktrace.cpp b/libc/bionic/debug_stacktrace.cpp
index 26d5c6a..5ddc00c 100644
--- a/libc/bionic/debug_stacktrace.cpp
+++ b/libc/bionic/debug_stacktrace.cpp
@@ -35,7 +35,7 @@
#include <sys/types.h>
#include "debug_mapinfo.h"
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/* depends how the system includes define this */
#ifdef HAVE_UNWIND_CONTEXT_STRUCT
diff --git a/libc/bionic/fork.c b/libc/bionic/fork.c
index d83c535..d30b41b 100644
--- a/libc/bionic/fork.c
+++ b/libc/bionic/fork.c
@@ -27,9 +27,10 @@
*/
#include <unistd.h>
#include "pthread_internal.h"
-#include "bionic_pthread.h"
#include "cpuacct.h"
+#include "private/bionic_pthread.h"
+
extern int __fork(void);
int fork(void)
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index 714d0bc..479cadf 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -28,8 +28,6 @@
#include "libc_init_common.h"
-#include <asm/page.h>
-#include <bionic_tls.h>
#include <elf.h>
#include <errno.h>
#include <stddef.h>
@@ -44,6 +42,7 @@
#include "atexit.h"
#include "private/bionic_auxv.h"
#include "private/bionic_ssp.h"
+#include "private/bionic_tls.h"
#include "private/KernelArgumentBlock.h"
#include "pthread_internal.h"
@@ -57,7 +56,7 @@ const char* __progname;
// Declared in <unistd.h>.
char** environ;
-// Declared in <private/bionic_ssp.h>.
+// Declared in "private/bionic_ssp.h".
uintptr_t __stack_chk_guard = 0;
static size_t get_main_thread_stack_size() {
diff --git a/libc/bionic/libc_init_dynamic.cpp b/libc/bionic/libc_init_dynamic.cpp
index 4e1374e..61fb887 100644
--- a/libc/bionic/libc_init_dynamic.cpp
+++ b/libc/bionic/libc_init_dynamic.cpp
@@ -49,9 +49,10 @@
#include <stdint.h>
#include <elf.h>
#include "atexit.h"
-#include "KernelArgumentBlock.h"
#include "libc_init_common.h"
-#include <bionic_tls.h>
+
+#include "private/bionic_tls.h"
+#include "private/KernelArgumentBlock.h"
extern "C" {
extern void pthread_debug_init(void);
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp
index a60e414..1825167 100644
--- a/libc/bionic/libc_init_static.cpp
+++ b/libc/bionic/libc_init_static.cpp
@@ -47,11 +47,12 @@
#include <sys/mman.h>
#include "atexit.h"
-#include "bionic_tls.h"
-#include "KernelArgumentBlock.h"
#include "libc_init_common.h"
#include "pthread_internal.h"
+#include "private/bionic_tls.h"
+#include "private/KernelArgumentBlock.h"
+
// Returns the address of the page containing address 'x'.
#define PAGE_START(x) ((x) & PAGE_MASK)
diff --git a/libc/bionic/libc_logging.cpp b/libc/bionic/libc_logging.cpp
index 635f8d1..c7eca8a 100644
--- a/libc/bionic/libc_logging.cpp
+++ b/libc/bionic/libc_logging.cpp
@@ -26,8 +26,8 @@
* SUCH DAMAGE.
*/
-#include <../private/libc_logging.h> // Relative path so we can #include this .cpp file for testing.
-#include <../private/ScopedPthreadMutexLocker.h>
+#include "../private/libc_logging.h" // Relative path so we can #include this .cpp file for testing.
+#include "../private/ScopedPthreadMutexLocker.h"
#include <assert.h>
#include <errno.h>
diff --git a/libc/bionic/libgen.cpp b/libc/bionic/libgen.cpp
index f7181e7..d8df494 100644
--- a/libc/bionic/libgen.cpp
+++ b/libc/bionic/libgen.cpp
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
#include <sys/param.h>
-#include "ThreadLocalBuffer.h"
+#include "private/ThreadLocalBuffer.h"
GLOBAL_INIT_THREAD_LOCAL_BUFFER(basename);
GLOBAL_INIT_THREAD_LOCAL_BUFFER(dirname);
diff --git a/libc/bionic/malloc_debug_check.cpp b/libc/bionic/malloc_debug_check.cpp
index a5d49cb..7dd8e3c 100644
--- a/libc/bionic/malloc_debug_check.cpp
+++ b/libc/bionic/malloc_debug_check.cpp
@@ -48,9 +48,9 @@
#include "debug_mapinfo.h"
#include "debug_stacktrace.h"
#include "dlmalloc.h"
-#include "libc_logging.h"
+#include "private/libc_logging.h"
#include "malloc_debug_common.h"
-#include "ScopedPthreadMutexLocker.h"
+#include "private/ScopedPthreadMutexLocker.h"
/* libc.debug.malloc.backlog */
extern unsigned int gMallocDebugBacklog;
diff --git a/libc/bionic/malloc_debug_common.cpp b/libc/bionic/malloc_debug_common.cpp
index e33405e..85f7791 100644
--- a/libc/bionic/malloc_debug_common.cpp
+++ b/libc/bionic/malloc_debug_common.cpp
@@ -47,7 +47,7 @@
#include <unistd.h>
#include "dlmalloc.h"
-#include "ScopedPthreadMutexLocker.h"
+#include "private/ScopedPthreadMutexLocker.h"
/*
* In a VM process, this is set to 1 after fork()ing out of zygote.
@@ -250,7 +250,7 @@ extern "C" size_t malloc_usable_size(const void* mem) {
#include <sys/system_properties.h>
#include <dlfcn.h>
#include <stdio.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/* Table for dispatching malloc calls, depending on environment. */
static MallocDebug gMallocUse __attribute__((aligned(32))) = {
diff --git a/libc/bionic/malloc_debug_common.h b/libc/bionic/malloc_debug_common.h
index a3f9909..28be042 100644
--- a/libc/bionic/malloc_debug_common.h
+++ b/libc/bionic/malloc_debug_common.h
@@ -35,7 +35,7 @@
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
#define HASHTABLE_SIZE 1543
#define BACKTRACE_SIZE 32
diff --git a/libc/bionic/malloc_debug_leak.cpp b/libc/bionic/malloc_debug_leak.cpp
index 45b45c2..3397def 100644
--- a/libc/bionic/malloc_debug_leak.cpp
+++ b/libc/bionic/malloc_debug_leak.cpp
@@ -47,9 +47,10 @@
#include "debug_stacktrace.h"
#include "dlmalloc.h"
-#include "libc_logging.h"
#include "malloc_debug_common.h"
-#include "ScopedPthreadMutexLocker.h"
+
+#include "private/libc_logging.h"
+#include "private/ScopedPthreadMutexLocker.h"
// This file should be included into the build only when
// MALLOC_LEAK_CHECK, or MALLOC_QEMU_INSTRUMENT, or both
diff --git a/libc/bionic/malloc_debug_qemu.cpp b/libc/bionic/malloc_debug_qemu.cpp
index 4d00066..5a91daa 100644
--- a/libc/bionic/malloc_debug_qemu.cpp
+++ b/libc/bionic/malloc_debug_qemu.cpp
@@ -51,7 +51,7 @@
#include <unistd.h>
#include <errno.h>
#include "dlmalloc.h"
-#include "libc_logging.h"
+#include "private/libc_logging.h"
#include "malloc_debug_common.h"
/* This file should be included into the build only when
diff --git a/libc/bionic/open.c b/libc/bionic/open.c
index 424573f..cde3029 100644
--- a/libc/bionic/open.c
+++ b/libc/bionic/open.c
@@ -29,7 +29,7 @@
#include <fcntl.h>
#include <stdarg.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern int __open(const char*, int, int);
diff --git a/libc/bionic/openat.c b/libc/bionic/openat.c
index 2d09d17..b8c887e 100644
--- a/libc/bionic/openat.c
+++ b/libc/bionic/openat.c
@@ -29,7 +29,7 @@
#include <fcntl.h>
#include <stdarg.h>
#include <stdlib.h>
-#include "libc_logging.h"
+#include "private/libc_logging.h"
extern int __openat(int, const char*, int, int);
diff --git a/libc/bionic/pthread.c b/libc/bionic/pthread.c
index ab806c0..32812b4 100644
--- a/libc/bionic/pthread.c
+++ b/libc/bionic/pthread.c
@@ -34,12 +34,13 @@
#include <sys/mman.h>
#include <unistd.h>
-#include "bionic_atomic_inline.h"
-#include "bionic_futex.h"
-#include "bionic_pthread.h"
-#include "bionic_tls.h"
#include "pthread_internal.h"
-#include "thread_private.h"
+
+#include "private/bionic_atomic_inline.h"
+#include "private/bionic_futex.h"
+#include "private/bionic_pthread.h"
+#include "private/bionic_tls.h"
+#include "private/thread_private.h"
extern void pthread_debug_mutex_lock_check(pthread_mutex_t *mutex);
extern void pthread_debug_mutex_unlock_check(pthread_mutex_t *mutex);
diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp
index 9e06afc..8338ad5 100644
--- a/libc/bionic/pthread_create.cpp
+++ b/libc/bionic/pthread_create.cpp
@@ -52,8 +52,6 @@ extern "C" void ATTRIBUTES _thread_created_hook(pid_t thread_id);
extern "C" int __set_tls(void* ptr);
-static const int kPthreadInitFailed = 1;
-
static pthread_mutex_t gPthreadStackCreationLock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t gDebuggerNotificationLock = PTHREAD_MUTEX_INITIALIZER;
@@ -84,30 +82,6 @@ void __init_tls(pthread_internal_t* thread) {
}
}
-// This trampoline is called from the assembly _pthread_clone function.
-// Our 'tls' and __pthread_clone's 'child_stack' are one and the same, just growing in
-// opposite directions.
-extern "C" void __thread_entry(void* (*func)(void*), void* arg, void** tls) {
- // Wait for our creating thread to release us. This lets it have time to
- // notify gdb about this thread before we start doing anything.
- // This also provides the memory barrier needed to ensure that all memory
- // accesses previously made by the creating thread are visible to us.
- pthread_mutex_t* start_mutex = (pthread_mutex_t*) &tls[TLS_SLOT_SELF];
- pthread_mutex_lock(start_mutex);
- pthread_mutex_destroy(start_mutex);
-
- pthread_internal_t* thread = (pthread_internal_t*) tls[TLS_SLOT_THREAD_ID];
- thread->tls = tls;
- __init_tls(thread);
-
- if ((thread->internal_flags & kPthreadInitFailed) != 0) {
- pthread_exit(NULL);
- }
-
- void* result = func(arg);
- pthread_exit(result);
-}
-
__LIBC_ABI_PRIVATE__
int _init_thread(pthread_internal_t* thread, bool add_to_thread_list) {
int error = 0;
@@ -240,7 +214,7 @@ int pthread_create(pthread_t* thread_out, pthread_attr_t const* attr,
if (init_errno != 0) {
// Mark the thread detached and let its __thread_entry run to
// completion. (It'll just exit immediately, cleaning up its resources.)
- thread->internal_flags |= kPthreadInitFailed;
+ thread->internal_flags |= PTHREAD_INTERNAL_FLAG_THREAD_INIT_FAILED;
thread->attr.flags |= PTHREAD_ATTR_FLAG_DETACHED;
return init_errno;
}
diff --git a/libc/bionic/pthread_debug.cpp b/libc/bionic/pthread_debug.cpp
index 94c23de..79a193d 100644
--- a/libc/bionic/pthread_debug.cpp
+++ b/libc/bionic/pthread_debug.cpp
@@ -31,7 +31,6 @@
#include <sys/system_properties.h>
#include <sys/mman.h>
-//#include <dlfcn.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
@@ -40,10 +39,10 @@
#include <unwind.h>
#include <unistd.h>
-#include "bionic_tls.h"
+#include "private/bionic_tls.h"
#include "debug_mapinfo.h"
#include "debug_stacktrace.h"
-#include "libc_logging.h"
+#include "private/libc_logging.h"
/*
* ===========================================================================
diff --git a/libc/bionic/pthread_getschedparam.cpp b/libc/bionic/pthread_getschedparam.cpp
index 03fa5f2..2cdc11a 100644
--- a/libc/bionic/pthread_getschedparam.cpp
+++ b/libc/bionic/pthread_getschedparam.cpp
@@ -28,7 +28,7 @@
#include <errno.h>
-#include "ErrnoRestorer.h"
+#include "private/ErrnoRestorer.h"
#include "pthread_accessor.h"
int pthread_getschedparam(pthread_t t, int* policy, sched_param* param) {
diff --git a/libc/bionic/pthread_internal.h b/libc/bionic/pthread_internal.h
index 6fe2a98..6b009d4 100644
--- a/libc/bionic/pthread_internal.h
+++ b/libc/bionic/pthread_internal.h
@@ -77,6 +77,8 @@ __LIBC_HIDDEN__ void _pthread_internal_remove_locked(pthread_internal_t* thread)
/* Has the thread already exited but not been joined? */
#define PTHREAD_ATTR_FLAG_ZOMBIE 0x00000008
+#define PTHREAD_INTERNAL_FLAG_THREAD_INIT_FAILED 1
+
/*
* Traditionally we give threads a 1MiB stack. When we started
* allocating per-thread alternate signal stacks to ease debugging of
diff --git a/libc/bionic/pthread_internals.cpp b/libc/bionic/pthread_internals.cpp
index 59c6e48..01ecd5f 100644
--- a/libc/bionic/pthread_internals.cpp
+++ b/libc/bionic/pthread_internals.cpp
@@ -28,8 +28,8 @@
#include "pthread_internal.h"
-#include "bionic_tls.h"
-#include "ScopedPthreadMutexLocker.h"
+#include "private/bionic_tls.h"
+#include "private/ScopedPthreadMutexLocker.h"
__LIBC_HIDDEN__ pthread_internal_t* gThreadList = NULL;
__LIBC_HIDDEN__ pthread_mutex_t gThreadListLock = PTHREAD_MUTEX_INITIALIZER;
diff --git a/libc/bionic/pthread_key.cpp b/libc/bionic/pthread_key.cpp
index 706758b..440a715 100644
--- a/libc/bionic/pthread_key.cpp
+++ b/libc/bionic/pthread_key.cpp
@@ -28,7 +28,7 @@
#include <pthread.h>
-#include "bionic_tls.h"
+#include "private/bionic_tls.h"
#include "pthread_internal.h"
/* A technical note regarding our thread-local-storage (TLS) implementation:
diff --git a/libc/bionic/pthread_kill.cpp b/libc/bionic/pthread_kill.cpp
index 54f71ee..163317e 100644
--- a/libc/bionic/pthread_kill.cpp
+++ b/libc/bionic/pthread_kill.cpp
@@ -29,7 +29,7 @@
#include <errno.h>
#include <unistd.h>
-#include "ErrnoRestorer.h"
+#include "private/ErrnoRestorer.h"
#include "pthread_accessor.h"
extern "C" int tgkill(int tgid, int tid, int sig);
diff --git a/libc/bionic/pthread_setschedparam.cpp b/libc/bionic/pthread_setschedparam.cpp
index c383cca..55ec791 100644
--- a/libc/bionic/pthread_setschedparam.cpp
+++ b/libc/bionic/pthread_setschedparam.cpp
@@ -28,7 +28,7 @@
#include <errno.h>
-#include "ErrnoRestorer.h"
+#include "private/ErrnoRestorer.h"
#include "pthread_accessor.h"
int pthread_setschedparam(pthread_t t, int policy, struct sched_param const* param) {
diff --git a/libc/bionic/semaphore.c b/libc/bionic/semaphore.c
index 9bc8412..28fcb1b 100644
--- a/libc/bionic/semaphore.c
+++ b/libc/bionic/semaphore.c
@@ -30,10 +30,11 @@
#include <sys/time.h>
#include <sys/atomics.h>
#include <time.h>
-#include <bionic_atomic_inline.h>
-#include <bionic_futex.h>
#include <limits.h>
+#include "private/bionic_atomic_inline.h"
+#include "private/bionic_futex.h"
+
/* In this implementation, a semaphore contains a
* 31-bit signed value and a 1-bit 'shared' flag
* (for process-sharing purpose).
diff --git a/libc/bionic/strerror.cpp b/libc/bionic/strerror.cpp
index a50c99f..d1518ff 100644
--- a/libc/bionic/strerror.cpp
+++ b/libc/bionic/strerror.cpp
@@ -27,7 +27,7 @@
*/
#include <string.h>
-#include "ThreadLocalBuffer.h"
+#include "private/ThreadLocalBuffer.h"
extern "C" const char* __strerror_lookup(int);
diff --git a/libc/bionic/strsignal.cpp b/libc/bionic/strsignal.cpp
index c549e74..9f0193a 100644
--- a/libc/bionic/strsignal.cpp
+++ b/libc/bionic/strsignal.cpp
@@ -27,7 +27,7 @@
*/
#include <string.h>
-#include "ThreadLocalBuffer.h"
+#include "private/ThreadLocalBuffer.h"
extern "C" const char* __strsignal_lookup(int);
extern "C" const char* __strsignal(int, char*, size_t);
diff --git a/libc/bionic/sysconf.cpp b/libc/bionic/sysconf.cpp
index e945fbf..db808c2 100644
--- a/libc/bionic/sysconf.cpp
+++ b/libc/bionic/sysconf.cpp
@@ -26,8 +26,6 @@
* SUCH DAMAGE.
*/
-#include <asm/page.h>
-#include <bionic_tls.h>
#include <ctype.h>
#include <dirent.h>
#include <errno.h>
@@ -40,6 +38,7 @@
#include <time.h>
#include <unistd.h>
+#include "private/bionic_tls.h"
#include "private/ScopedReaddir.h"
/* seems to be the default on Linux, per the GLibc sources and my own digging */
diff --git a/libc/bionic/system_properties.c b/libc/bionic/system_properties.c
index fd56431..9fdb6f5 100644
--- a/libc/bionic/system_properties.c
+++ b/libc/bionic/system_properties.c
@@ -50,7 +50,8 @@
#include <sys/_system_properties.h>
#include <sys/atomics.h>
-#include <bionic_atomic_inline.h>
+
+#include "private/bionic_atomic_inline.h"
#define ALIGN(x, a) (((x) + (a - 1)) & ~(a - 1))
diff --git a/libc/netbsd/resolv/res_cache.c b/libc/netbsd/resolv/res_cache.c
index 7e367ad..1836c80 100644
--- a/libc/netbsd/resolv/res_cache.c
+++ b/libc/netbsd/resolv/res_cache.c
@@ -171,7 +171,7 @@
#undef XLOG
#if DEBUG
-# include "libc_logging.h"
+# include "private/libc_logging.h"
# define XLOG(...) __libc_format_log(ANDROID_LOG_DEBUG,"libc",__VA_ARGS__)
#include <stdio.h>
diff --git a/libc/netbsd/resolv/res_send.c b/libc/netbsd/resolv/res_send.c
index 0bb5b6b..e78a11e 100644
--- a/libc/netbsd/resolv/res_send.c
+++ b/libc/netbsd/resolv/res_send.c
@@ -119,7 +119,7 @@ __RCSID("$NetBSD: res_send.c,v 1.9 2006/01/24 17:41:25 christos Exp $");
# include <resolv_cache.h>
#endif
-#include "libc_logging.h"
+#include "private/libc_logging.h"
#ifndef DE_CONST
#define DE_CONST(c,v) v = ((c) ? \
diff --git a/libc/netbsd/resolv/res_state.c b/libc/netbsd/resolv/res_state.c
index de82e1a..f5d01a1 100644
--- a/libc/netbsd/resolv/res_state.c
+++ b/libc/netbsd/resolv/res_state.c
@@ -42,7 +42,7 @@
#define DEBUG 0
#if DEBUG
-# include "libc_logging.h"
+# include "private/libc_logging.h"
# include <unistd.h> /* for gettid() */
# define D(...) __libc_format_log(ANDROID_LOG_DEBUG,"libc", __VA_ARGS__)
#else
diff --git a/libc/private/arpa_nameser.h b/libc/private/arpa_nameser.h
index 81195b5..421c3ee 100644
--- a/libc/private/arpa_nameser.h
+++ b/libc/private/arpa_nameser.h
@@ -567,7 +567,7 @@ __END_DECLS
#endif
#if 0
-# include "libc_logging.h"
+# include "private/libc_logging.h"
# define XLOG(...) __libc_format_log(ANDROID_LOG_DEBUG,"libc",__VA_ARGS__)
#else
#define XLOG(...) do {} while (0)
diff --git a/libc/private/syscommon.h b/libc/private/syscommon.h
deleted file mode 100644
index 4290252..0000000
--- a/libc/private/syscommon.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * syscommon.h
- *
- * Common header file for system call stubs
- */
-
-#define __IN_SYS_COMMON
-#include <errno.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-#include <poll.h>
-#include <sched.h>
-#include <sys/dirent.h>
-#include <sys/klog.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-#include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/times.h>
-#include <sys/uio.h>
-#include <sys/utime.h>
-#include <sys/utsname.h>
-#include <sys/vfs.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#ifdef __i386__
-# include <sys/vm86.h>
-#endif
diff --git a/libc/stdio/findfp.c b/libc/stdio/findfp.c
index 863235b..943c90a 100644
--- a/libc/stdio/findfp.c
+++ b/libc/stdio/findfp.c
@@ -39,7 +39,7 @@
#include <string.h>
#include "local.h"
#include "glue.h"
-#include "thread_private.h"
+#include "private/thread_private.h"
int __sdidinit;
diff --git a/libc/stdlib/atexit.c b/libc/stdlib/atexit.c
index 8f5bd2d..4e14434 100644
--- a/libc/stdlib/atexit.c
+++ b/libc/stdlib/atexit.c
@@ -35,7 +35,7 @@
#include <string.h>
#include <unistd.h>
#include "atexit.h"
-#include "thread_private.h"
+#include "private/thread_private.h"
int __atexit_invalid = 1;
struct atexit *__atexit;
diff --git a/libc/private/ctype_private.h b/libc/stdlib/ctype_private.h
index 39cc792..39cc792 100644
--- a/libc/private/ctype_private.h
+++ b/libc/stdlib/ctype_private.h
diff --git a/libc/stdlib/exit.c b/libc/stdlib/exit.c
index 83fe3d2..923e42e 100644
--- a/libc/stdlib/exit.c
+++ b/libc/stdlib/exit.c
@@ -33,7 +33,7 @@
#include <stdlib.h>
#include <unistd.h>
#include "atexit.h"
-#include "thread_private.h"
+#include "private/thread_private.h"
/*
* This variable is zero until a process has created a thread.
diff --git a/libc/tzcode/strftime.c b/libc/tzcode/strftime.c
index 1b223e5..1164a13 100644
--- a/libc/tzcode/strftime.c
+++ b/libc/tzcode/strftime.c
@@ -38,7 +38,7 @@ static const char sccsid[] = "@(#)strftime.c 5.4 (Berkeley) 3/14/89";
#include "locale.h"
#include <ctype.h>
#include <time64.h>
-#include <bionic_time.h> /* for strftime_tz */
+#include "private/bionic_time.h" /* for strftime_tz */
/* struct lc_time_T is now defined as strftime_locale
* in <time.h>
diff --git a/libc/upstream-netbsd/port_before.h b/libc/upstream-netbsd/port_before.h
index 9f77f79..5e06e52 100644
--- a/libc/upstream-netbsd/port_before.h
+++ b/libc/upstream-netbsd/port_before.h
@@ -19,7 +19,7 @@
#include "namespace.h"
#include <sys/cdefs.h>
-#include <arpa_nameser.h>
+#include "private/arpa_nameser.h"
#define ISC_FORMAT_PRINTF(a,b) __printflike(a,b)
#define ISC_SOCKLEN_T socklen_t
diff --git a/libc/private/rand48.h b/libc/upstream-netbsd/rand48.h
index 1ad8b0d..1ad8b0d 100644
--- a/libc/private/rand48.h
+++ b/libc/upstream-netbsd/rand48.h
diff --git a/libstdc++/src/one_time_construction.cpp b/libstdc++/src/one_time_construction.cpp
index 8ba18df..5574311 100644
--- a/libstdc++/src/one_time_construction.cpp
+++ b/libstdc++/src/one_time_construction.cpp
@@ -5,8 +5,9 @@
#include <stddef.h>
#include <sys/atomics.h>
#include <endian.h>
-#include <private/bionic_futex.h>
-#include <private/bionic_atomic_inline.h>
+
+#include "private/bionic_atomic_inline.h"
+#include "private/bionic_futex.h"
// This file contains C++ ABI support functions for one time
// constructors as defined in the "Run-time ABI for the ARM Architecture"
diff --git a/linker/dlfcn.cpp b/linker/dlfcn.cpp
index 3553af7..d234787 100644
--- a/linker/dlfcn.cpp
+++ b/linker/dlfcn.cpp
@@ -22,9 +22,9 @@
#include <stdlib.h>
#include <bionic/pthread_internal.h>
-#include <private/bionic_tls.h>
-#include <private/ScopedPthreadMutexLocker.h>
-#include <private/ThreadLocalBuffer.h>
+#include "private/bionic_tls.h"
+#include "private/ScopedPthreadMutexLocker.h"
+#include "private/ThreadLocalBuffer.h"
/* This file hijacks the symbols stubbed out in libdl.so. */
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 8f613b1..cabbb99 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -40,9 +40,9 @@
#include <unistd.h>
// Private C library headers.
-#include <private/bionic_tls.h>
-#include <private/KernelArgumentBlock.h>
-#include <private/ScopedPthreadMutexLocker.h>
+#include "private/bionic_tls.h"
+#include "private/KernelArgumentBlock.h"
+#include "private/ScopedPthreadMutexLocker.h"
#include "linker.h"
#include "linker_debug.h"
diff --git a/linker/linker_environ.cpp b/linker/linker_environ.cpp
index edc659a..846624b 100644
--- a/linker/linker_environ.cpp
+++ b/linker/linker_environ.cpp
@@ -33,7 +33,7 @@
#include <stdlib.h>
#include <unistd.h>
-#include <private/KernelArgumentBlock.h>
+#include "private/KernelArgumentBlock.h"
static char** _envp;
static bool _AT_SECURE_value = true;