platform_bionic/libc/bionic
Elliott Hughes 877ec6d904 Fix pthread_join.
Let the kernel keep pthread_internal_t::tid updated, including
across forks and for the main thread. This then lets us fix
pthread_join to only return after the thread has really exited.

Also fix the thread attributes of the main thread so we don't
unmap the main thread's stack (which is really owned by the
dynamic linker and contains things like environment variables),
which fixes crashes when joining with an exited main thread
and also fixes problems reported publicly with accessing environment
variables after the main thread exits (for which I've added a new
unit test).

In passing I also fixed a bug where if the clone(2) inside
pthread_create(3) fails, we'd unmap the child's stack and TLS (which
contains the mutex) and then try to unlock the mutex. Boom! It wasn't
until after I'd uploaded the fix for this that I came across a new
public bug reporting this exact failure.

Bug: 8206355
Bug: 11693195
Bug: https://code.google.com/p/android/issues/detail?id=57421
Bug: https://code.google.com/p/android/issues/detail?id=62392
Change-Id: I2af9cf6e8ae510a67256ad93cad891794ed0580b
2013-11-18 19:48:11 -08:00
..
__errno.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
__FD_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__fgets_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__memcpy_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__memmove_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__memset_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__read_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__recvfrom_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__set_errno.cpp Unhide __set_errno for backwards compatibility. 2013-03-22 19:12:52 -07:00
__stack_chk_fail.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
__strcat_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strchr_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strcpy_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strlcat_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strlcpy_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strlen_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strncat_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strncpy_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__strrchr_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__umask_chk.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
__vsnprintf_chk.cpp 'Avoid confusing "read prevented write" log messages' 2. 2013-10-15 17:17:05 -07:00
__vsprintf_chk.cpp 'Avoid confusing "read prevented write" log messages' 2. 2013-10-15 17:17:05 -07:00
abort.cpp Clean up abort. 2013-06-12 14:14:53 -07:00
access.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
arc4random.c Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
assert.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
atoi.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
atol.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
atoll.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
bindresvport.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
bionic_clone.c Switch pthread_create over to __bionic_clone. 2013-11-15 14:41:19 -08:00
bionic_time_conversions.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
brk.cpp Remove bogus extra alignment from sbrk. 2013-02-05 16:10:59 -08:00
chmod.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
chown.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
clearenv.c Change-Id: I68cc462aeb2460345a53bdb9941ce4bfc10456fb 2010-06-27 20:53:04 -07:00
crtbrand.c Add a .note.android.ident section to Android ELF binaries. 2012-07-31 16:18:22 +12:00
daemon.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
debug_mapinfo.cpp Don't collect useless stack frames; do demangle C++ symbols. 2013-01-29 09:56:31 -08:00
debug_mapinfo.h Don't collect useless stack frames; do demangle C++ symbols. 2013-01-29 09:56:31 -08:00
debug_stacktrace.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
debug_stacktrace.h Don't collect useless stack frames; do demangle C++ symbols. 2013-01-29 09:56:31 -08:00
dirent.cpp Reimplement scandir(3). 2013-02-25 13:14:31 -08:00
dl_iterate_phdr_static.c Remove 32-bit assumptions from the ELF code. 2013-09-30 18:43:46 -07:00
dlmalloc.c Clean up abort. 2013-06-12 14:14:53 -07:00
dlmalloc.h Restore dlmalloc mmap threshold to 64k 2013-07-23 13:48:39 -07:00
dup2.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
epoll_create.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
epoll_pwait.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
epoll_wait.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
err.c __progname should be const char*, not char*. 2013-02-07 12:06:44 -08:00
ether_aton.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
ether_ntoa.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
eventfd_read.cpp Prevent name conflict for eventfd.cpp and eventfd.s when building libc.a 2013-04-03 11:10:37 -07:00
eventfd_write.cpp Prevent name conflict for eventfd.cpp and eventfd.s when building libc.a 2013-04-03 11:10:37 -07:00
fdprintf.c Add implementation of fdprintf, clearenv, and stubs for ttyname_r, *usershell 2010-01-15 16:52:35 -08:00
ffs.cpp Let the compiler worry about implementing ffs(3). 2013-10-24 16:29:40 -07:00
flockfile.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
fork.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
ftime.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
ftok.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
fts.c Remove compiler warnings when building Bionic. 2010-06-22 17:51:41 -07:00
futimens.cpp Add futimens. 2013-08-08 17:13:33 -07:00
getauxval.cpp Remove 32-bit assumptions from the ELF code. 2013-09-30 18:43:46 -07:00
getcwd.cpp Fix a getcwd(3) bug and make our tests run correctly under valgrind. 2012-10-09 17:17:24 -07:00
getdtablesize.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
gethostname.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
getpgrp.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
getpriority.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
getpt.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
hash.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
if_indextoname.c auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
if_nametoindex.c auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
initgroups.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
inotify_init.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
ioctl.c auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
isatty.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
issetugid.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
lchown.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
ldexp.c auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
legacy_32_bit_support.cpp Clean up the 32-bit kernel support, fix LP64 fcntl declaration. 2013-11-06 16:33:39 -08:00
libc_init_common.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
libc_init_common.h Fix mismatch between declaration and forward declaration 2013-09-18 23:40:19 +02:00
libc_init_dynamic.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
libc_init_static.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
libc_logging.cpp Avoid confusing "read prevented write" log messages. 2013-10-15 16:49:28 -07:00
libgen.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
link.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
lstat.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
malloc_debug_check.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
malloc_debug_common.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
malloc_debug_common.h Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
malloc_debug_leak.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
malloc_debug_qemu.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
md5.c am 08a4ce98: am 0c398985: Merge "[ENDIAN] Build md5 code correctly for bigendian targets" 2011-03-14 11:50:56 -07:00
md5.h auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
memchr.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memcmp.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memcpy.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memmem.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memmove.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memrchr.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memset.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
memswap.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
mkdir.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
mkfifo.cpp Make sure we have a mkfifo symbol. 2013-10-22 12:03:19 -07:00
mknod.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
mmap.cpp Add mmap64() 2013-09-19 14:11:26 -07:00
ndk_cruft.cpp Clean up the 32-bit kernel support, fix LP64 fcntl declaration. 2013-11-06 16:33:39 -08:00
open.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
pathconf.c Remove pathconf's dependencies on non-uapi header files. 2013-11-06 17:21:09 -08:00
pause.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
perror.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
pipe.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
poll.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
pthread_accessor.h Fix raise(3) so it works in signal handlers. 2013-02-21 11:22:23 -08:00
pthread_atfork.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_attr.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_cond.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_create.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
pthread_debug.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
pthread_detach.cpp Handles spurious wake-ups in pthread_join() 2013-06-12 17:30:58 -07:00
pthread_equal.cpp Fix pthreads functions that should return ESRCH. 2013-02-19 12:21:41 -08:00
pthread_exit.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
pthread_getcpuclockid.cpp Fix pthread_getcpuclockid. 2013-08-15 15:34:22 -07:00
pthread_getschedparam.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
pthread_internal.h Fix pthread_join. 2013-11-18 19:48:11 -08:00
pthread_internals.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_join.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
pthread_key.cpp Fix pthread_join. 2013-11-18 19:48:11 -08:00
pthread_kill.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
pthread_mutex.cpp Move the pthread debugging flags to the right place. 2013-10-31 14:09:39 -07:00
pthread_once.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_rwlock.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_self.cpp Fix pthreads functions that should return ESRCH. 2013-02-19 12:21:41 -08:00
pthread_setname_np.cpp Fix pthread_setname_np's behavior on invalid pthread_ts. 2013-03-21 20:02:35 -07:00
pthread_setschedparam.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
pthread_sigmask.cpp Clean up the sigprocmask/pthread_sigmask implementation. 2013-10-15 11:23:57 -07:00
ptrace.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
ptsname.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
ptsname_r.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
pututline.c bionic: ftell() returns a long, not an int 2010-02-05 16:05:52 -02:00
raise.cpp Use pthread_kill() in raise() 2012-12-10 11:20:57 -08:00
readlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
reboot.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
recv.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
rename.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
rmdir.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
sbrk.cpp Remove bogus extra alignment from sbrk. 2013-02-05 16:10:59 -08:00
scandir.cpp Reimplement scandir(3). 2013-02-25 13:14:31 -08:00
sched_cpualloc.c <sched.h>: Add sched_getcpu() and cpu_set_t 2010-12-06 13:42:54 +01:00
sched_cpucount.c <sched.h>: Add sched_getcpu() and cpu_set_t 2010-12-06 13:42:54 +01:00
sched_getaffinity.cpp Fix indentation in sched_getaffinity. 2013-10-15 16:49:49 -07:00
sched_getcpu.c <sched.h>: Add sched_getcpu() and cpu_set_t 2010-12-06 13:42:54 +01:00
semaphore.c Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
send.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
setegid.cpp Clean up the cpuacct cruft. 2013-10-09 17:35:36 -07:00
seteuid.cpp Clean up the cpuacct cruft. 2013-10-09 17:35:36 -07:00
setlocale.cpp Move setlocale(3) and the wchar stubs over to .cpp. 2012-10-22 17:05:27 -07:00
setpgrp.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigaction.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
sigaddset.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
sigblock.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigdelset.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
sigemptyset.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
sigfillset.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
siginterrupt.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigismember.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
siglist.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
signal.cpp Fix sigaction(3) for 64-bit. 2013-10-17 11:36:55 -07:00
signalfd.cpp Fix sigsuspend to use rt_sigsuspend on all platforms. 2013-10-15 18:15:19 -07:00
signame.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigpending.cpp Switch sigpending over to rt_sigpending. 2013-10-16 14:07:01 -07:00
sigprocmask.cpp Clean up the sigprocmask/pthread_sigmask implementation. 2013-10-15 11:23:57 -07:00
sigsetmask.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigsuspend.cpp Fix sigsuspend to use rt_sigsuspend on all platforms. 2013-10-15 18:15:19 -07:00
sigwait.cpp Fix sigsuspend to use rt_sigsuspend on all platforms. 2013-10-15 18:15:19 -07:00
sleep.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
stat.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
statvfs.cpp x86_64: Fix get_tls and statvfs 2013-10-03 17:31:50 -07:00
strchr.cpp Remove _FORTIFY_SOURCE in implementation files. 2013-10-01 15:02:07 -07:00
strerror.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
strerror_r.cpp Revert "Revert "More pthreads cleanup."" 2013-02-12 15:27:18 -08:00
strndup.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
strnlen.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
strntoimax.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
strntoumax.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
strsignal.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
strtotimeval.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
stubs.cpp Start moving 32-bit cruft somewhere it won't pollute 64-bit. 2013-10-24 17:14:55 -07:00
symlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
sysconf.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
system_properties.c Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
system_properties_compat.c bionic: add compatibility mode for properties 2013-06-25 16:52:40 -07:00
tcgetpgrp.c Clean up some comments. 2013-10-01 11:10:21 -07:00
tcsetpgrp.c Clean up some comments. 2013-10-01 11:10:21 -07:00
tdestroy.cpp Upgrade more functions to the current upstream NetBSD copy. 2012-10-23 12:29:53 -07:00
thread_atexit.cpp <pthread.h> fixes and pthread cleanup. 2013-10-31 12:31:16 -07:00
time64.c time64: make helper functions static 2010-10-15 02:16:16 +08:00
time64_config.h <time.h>: Add timegm(), timelocal() and others. 2010-12-06 12:25:52 +01:00
timer.cpp Remove unnecessary #include. 2013-11-05 11:59:06 -08:00
tmpfile.cpp Revert "Revert "More pthreads cleanup."" 2013-02-12 15:27:18 -08:00
umount.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
unlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
unlockpt.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
usleep.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
utimes.cpp Fix utime/utimes when passed a NULL pointer. 2013-10-28 13:21:06 -07:00
utmp.c auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
wait.cpp Start moving 32-bit cruft somewhere it won't pollute 64-bit. 2013-10-24 17:14:55 -07:00
wchar.cpp Move setlocale(3) and the wchar stubs over to .cpp. 2012-10-22 17:05:27 -07:00
wcscoll.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00