diff options
author | Elliott Hughes <enh@google.com> | 2013-10-09 15:50:50 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2013-10-09 16:00:17 -0700 |
commit | eb847bc8666842a3cfc9c06e8458ad1abebebaf0 (patch) | |
tree | 15e070fb706ba7599d5f402a8f934a7399541a6a /libc | |
parent | 0c17099a71cb5d1b36b7aab66fd7341b3fc9106d (diff) | |
download | bionic-eb847bc8666842a3cfc9c06e8458ad1abebebaf0.zip bionic-eb847bc8666842a3cfc9c06e8458ad1abebebaf0.tar.gz bionic-eb847bc8666842a3cfc9c06e8458ad1abebebaf0.tar.bz2 |
Fix x86_64 build, clean up intermediate libraries.
The x86_64 build was failing because clone.S had a call to __thread_entry which
was being added to a different intermediate .a on the way to making libc.so,
and the linker couldn't guarantee statically that such a relocation would be
possible.
ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against '__thread_entry' which may overflow at runtime; recompile with -fPIC
This patch addresses that by ensuring that the caller and callee end up in the
same intermediate .a. While I'm here, I've tried to clean up some of the mess
that led to this situation too. In particular, this removes libc/private/ from
the default include path (except for the DNS code), and splits out the DNS
code into its own library (since it's a weird special case of upstream NetBSD
code that's diverged so heavily it's unlikely ever to get back in sync).
There's more cleanup of the DNS situation possible, but this is definitely a
step in the right direction, and it's more than enough to get x86_64 building
cleanly.
Change-Id: I00425a7245b7a2573df16cc38798187d0729e7c4
Diffstat (limited to 'libc')
86 files changed, 229 insertions, 200 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 |