platform_bionic/libc/bionic
Evgenii Stepanov d13e9a603f Align-up and randomize shared libraries.
This change implements the following property:
  Any 2**N aligned memory region on size 2**N contains no more than one DSO.

The value N can be configured, with 16 or 18 looking like a good choice.
Additionally, DSOs are loaded at random page-aligned address inside these large
regions.

This change has dual purpose:
1. Larger values of N allow a lot more compact CFI shadow implementation.
   See change I14dfea630de468eb5620e7f55f92b1397ba06217.
   For example, CFI shadow for the system_server process has the following size (RSS, KB):
   152 for N = 12, 32 for N = 16, 16 for N = 18.
2. Extra randomization is good for security.

This change does not result in extra RAM usage, because everything is still page-aligned.
It does result in a bit more VM fragmentation because of the gaps between shared libraries.
As it turns out, this fragmentation is barely noticeable because the kernel creates new mapping
at the highest possible address, and we do enough small mappings to almost completely fill the
gaps (ex. in the Zygote the gaps are filled with .ttf file mappings and thread stacks).

I've measured VM fragmentation as the sum of all VM gaps (unmapped regions) that are larger
than 1MB according to /proc/$PID/maps. On aosp_angler-userdebug, the numbers are (in GB):

                |   N = 12  |  N = 18
system_server   |   521.9   |  521.1
zygote64        |   522.1   |  521.3
zygote32        |   2.55    |  2.55
mediaserver     |   4.00    |  4.00

Change-Id: Ia6df840dd409c82837efd1f263be420d9723c84a
2016-07-19 18:18:22 -07:00
..
__cmsg_nxthdr.cpp Move __cmsg_nxthdr to its proper file. 2014-07-10 12:47:13 +01:00
__cxa_guard.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
__cxa_pure_virtual.cpp Move libstdc++ into libc. 2014-05-14 18:18:55 -07:00
__cxa_thread_atexit_impl.cpp Defend against -fstack-protector in libc startup. 2016-01-06 20:06:08 -08:00
__errno.cpp Fix x86_64 build, clean up intermediate libraries. 2013-10-09 16:00:17 -07:00
__gnu_basename.cpp Implement the GNU basename(3) in addition to the POSIX one. 2014-08-19 14:30:30 -07:00
__libc_current_sigrtmax.cpp Make SIGRTMIN hide the real-time signals we use internally. 2014-04-30 10:06:09 -07:00
__libc_current_sigrtmin.cpp Make SIGRTMIN hide the real-time signals we use internally. 2014-04-30 10:06:09 -07:00
__libc_init_main_thread.cpp libc: implement kernel vdso syscalls for i386 2016-03-25 14:10:05 -07:00
__memcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__set_errno.cpp Move __set_errno to ndk_cruft.cpp. 2015-10-29 18:11:32 -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 Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__strcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
abort.cpp Upstream atexit 2014-07-14 12:05:16 -07:00
accept.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
accept4.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
access.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
arpa_inet.cpp Fix inet_aton on LP32. 2015-10-09 17:36:05 -07:00
assert.cpp Rewrite and hide longjmperror. 2014-06-06 16:49:39 -07:00
atof.cpp Ensure we always have symbols for atof, strtof, strtold. 2014-03-12 16:12:57 -07:00
bionic_netlink.cpp Implement if_nameindex(3)/if_freenameindex(3). 2016-01-18 12:07:38 -08:00
bionic_netlink.h Remove obsolete GCC workaround. 2016-06-10 12:49:04 -07:00
bionic_systrace.cpp Do not set properties in bionic_systrace 2015-12-10 13:33:37 -08:00
bionic_time_conversions.cpp Make it harder to use a broken legacy function by accident. 2016-04-04 16:15:37 -07:00
brk.cpp Remove declaration for __brk. 2016-06-01 18:21:06 -07:00
c16rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
c32rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
chmod.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
chown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
clearenv.cpp Switch to the upstream OpenBSD getenv/putenv/setenv implementation. 2014-04-22 17:41:00 -07:00
clock.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
clock_getcpuclockid.cpp Minor clock_getcpuclockid optimization. 2016-03-07 11:54:02 -08:00
clock_nanosleep.cpp clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case 2016-03-28 10:29:16 -07:00
clone.cpp Generalize the clone function slightly. 2016-05-06 16:37:00 -07:00
close.cpp Simplify close(2) EINTR handling. 2015-04-23 08:41:45 -07:00
connect.cpp Cosmetic changes to netd client files. 2014-05-18 15:18:36 -07:00
ctype.cpp Remove isascii_l(3). 2014-07-14 15:48:02 -07:00
dirent.cpp Reorder DIR structure due to bad apps. 2015-06-04 14:04:16 -07:00
dl_iterate_phdr_static.cpp Fix signal trampolines. 2014-09-15 15:04:14 -07:00
dup2.cpp Fix dup2 in the case where the two fds are equal. 2015-02-23 21:52:56 -08:00
epoll_create.cpp epoll_create: reject size <= 0 2016-03-24 16:37:20 -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
error.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
ether_aton.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
ether_ntoa.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -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
faccessat.cpp Fix "faccessat ignores flags" 2015-02-24 13:40:43 -08:00
fchmod.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
fchmodat.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
ffs.cpp Let the compiler worry about implementing ffs(3). 2013-10-24 16:29:40 -07:00
fgetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
flistxattr.cpp Add O_PATH support for flistxattr() 2015-06-06 11:25:41 -07:00
flockfile.cpp Revert "Revert "Remove __sinit and __sdidinit."" 2015-12-05 07:30:59 -08:00
fork.cpp Generalize the clone function slightly. 2016-05-06 16:37:00 -07:00
fortify.cpp Improve diagnostics from the assembler __strcpy_chk routines. 2016-05-26 16:38:34 -07:00
fpclassify.cpp Move the IEEE fp header out of the public headers. 2016-05-02 12:44:41 -07:00
fsetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
ftruncate.cpp Cleanup ftruncate negative test. 2015-06-01 13:22:57 -07:00
fts.c Sync with upstream OpenBSD fts.c. 2014-11-21 19:27:28 -08:00
ftw.cpp Fix ftw/nftw to only report unreadable directories once. 2016-04-18 12:05:18 -07:00
futimens.cpp Add futimens. 2013-08-08 17:52:06 -07:00
getauxval.cpp set errno to ENOENT in getauxval per glibc 2.19 2015-03-17 19:50:55 -04:00
getcwd.cpp add a fortified implementation of getcwd 2015-08-01 00:42:30 -04:00
getdomainname.cpp Add {get,set}domainname(2) 2016-03-25 14:16:58 -07:00
getentropy_linux.c Use upstream OpenBSD's arc4random. 2014-07-21 14:38:16 -07:00
gethostname.cpp gethostname.c: change to report ENAMETOOLONG error when buflen is less 2014-11-12 12:07:33 -08:00
getpagesize.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
getpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
getpid.cpp Make getpid work before the main thread is initialized. 2016-06-28 15:52:59 -07:00
getpriority.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
gettid.cpp Avoid a system call in 'gettid'. 2014-06-02 10:32:55 -07:00
grp_pwd.cpp bionic: Implement getpwent and getgrent 2016-04-22 10:44:19 -07:00
ifaddrs.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07: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.cpp fix the mremap signature 2015-11-06 13:14:43 -08:00
isatty.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
jemalloc.h Export malloc_iterate and friends 2016-02-18 15:05:38 -08:00
jemalloc_wrapper.cpp Slim down static binaries by avoiding stdio. 2014-07-10 12:34:23 -07:00
lchown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
legacy_32_bit_support.cpp Add prlimit to LP32. 2015-10-28 20:04:59 -07:00
lfs64_support.cpp CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps. 2014-09-23 18:21:52 -07:00
libc_init_common.cpp Defer registration of the arc4random fork-detect handler. 2016-06-28 15:52:59 -07:00
libc_init_common.h Move VDSO pointers to a shared globals struct. 2015-10-09 15:59:04 -07:00
libc_init_dynamic.cpp Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."" 2016-01-25 17:39:18 -08:00
libc_init_static.cpp Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."" 2016-01-25 17:39:18 -08:00
libc_logging.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
libgen.cpp Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC. 2015-10-23 12:32:52 -07:00
link.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
locale.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
lockf.cpp Fix lockf for LP32. 2016-01-26 14:32:55 -08:00
lstat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
malloc_common.cpp Init functions after debug malloc succeeds. 2016-03-11 12:27:02 -08:00
malloc_info.cpp Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
malloc_info.h Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
mblen.cpp Implement mblen(3). 2016-04-28 16:41:29 -07:00
mbrtoc16.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbrtoc32.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbstate.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
memmem.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
mempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00
mkdir.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
mkfifo.cpp Add mkfifoat(3). 2014-10-23 19:10:54 -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 mmap: fix calculation of is_private_anonymous variable 2015-11-20 09:16:59 -08:00
mntent.cpp Add hasmntopt(3) 2016-03-25 14:16:58 -07:00
mremap.cpp extend the PTRDIFF_MAX size check to mremap 2015-11-19 08:57:47 -05:00
ndk_cruft.cpp Align-up and randomize shared libraries. 2016-07-19 18:18:22 -07:00
net_if.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
netdb.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
NetdClient.cpp RTLD_LAZY is not supported, use RTLD_NOW instead. 2015-03-23 14:58:45 -07:00
NetdClientDispatch.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
netinet_in.cpp Add in6addr_any and in6addr_loopback symbols. 2016-02-03 14:13:52 -08:00
new.cpp Remove libstdc++ include files. 2016-05-27 15:49:31 -07:00
nl_types.cpp Add trivial no-op <nl_types.h>. 2016-04-06 17:22:44 -07:00
open.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
pathconf.cpp Increase support of pathconf options. 2014-11-14 23:45:24 +00:00
pause.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls. 2013-10-24 15:48:32 -07:00
pipe.cpp Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls. 2013-10-23 09:48:29 -07:00
poll.cpp Fix clang build. 2015-02-02 10:21:39 -08:00
posix_fadvise.cpp Add posix_fadvise(3). 2014-09-11 08:45:46 -07:00
posix_fallocate.cpp Add fallocate/fallocate64/posix_fallocate/posix_fallocate64. 2014-02-03 16:20:46 -08:00
posix_madvise.cpp implement posix_madvise 2014-12-04 11:01:28 -08:00
posix_timers.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
pthread_atfork.cpp constexpr constructor for atfork_list_t 2015-12-08 11:40:51 -08:00
pthread_attr.cpp Fix the way to get main thread stack start address. 2015-09-16 11:45:13 -07:00
pthread_barrier.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_cond.cpp Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC. 2016-07-13 16:08:48 -07:00
pthread_create.cpp Set x86 TLS limit to 0xfffff, not PAGE_SIZE. 2016-02-09 22:44:16 -08:00
pthread_detach.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_equal.cpp Fix pthreads functions that should return ESRCH. 2013-02-19 12:21:41 -08:00
pthread_exit.cpp If you're going to use memset... 2016-02-25 22:05:28 -08:00
pthread_getcpuclockid.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_getschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_gettid_np.cpp Remove "private/bionic_pthread.h". 2014-09-12 11:35:05 -07:00
pthread_internal.cpp Add check for pthread_self() when looking up a thread 2016-02-04 16:48:47 -08:00
pthread_internal.h Format code to calculate thread stack and signal stack. 2016-04-04 16:19:39 -07:00
pthread_join.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_key.cpp Prevent using static-allocated pthread keys before creation. 2015-04-14 13:32:09 -07:00
pthread_kill.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_mutex.cpp Use clang's nullability instead of nonnull. 2016-05-05 17:11:54 -07:00
pthread_once.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_rwlock.cpp sem_timedwait with a null timeout doesn't mean "forever". 2015-12-16 15:15:58 -08:00
pthread_self.cpp Fix pthreads functions that should return ESRCH. 2013-02-19 12:21:41 -08:00
pthread_setname_np.cpp Add pthread_getname_np. 2016-03-23 17:40:25 -07:00
pthread_setschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_sigmask.cpp Clean up the sigprocmask/pthread_sigmask implementation. 2013-10-15 11:23:57 -07:00
pthread_spinlock.cpp Implement pthread spin. 2015-11-18 17:51:21 -08:00
ptrace.cpp ptrace(3) should be varargs. 2014-07-16 16:07:10 -07:00
pty.cpp forkpty: set the output fd to -1 on the slave side. 2016-03-04 18:04:41 -08:00
pututline.c libc should use O_CLOEXEC when opening files for its own use. 2014-08-26 15:56:54 -07:00
raise.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
rand.cpp Implement rand/srand in terms of random/srandom. 2014-07-14 12:02:22 -07:00
readlink.cpp add fortified readlink/readlinkat implementations 2015-04-17 18:49:12 -04:00
reboot.cpp Clean up various warnings in bionic. 2014-02-18 12:04:54 -08:00
recv.cpp Fix recv.cpp so it can build with clang. 2014-07-02 16:46:34 -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
scandir.cpp Implement scandirat and scandirat64. 2015-10-27 13:47:36 -07:00
sched_cpualloc.c <sched.h>: Add sched_getcpu() and cpu_set_t 2010-12-06 13:42:54 +01:00
sched_cpucount.c Fix cpu_set_t 2014-04-30 14:30:15 +01:00
sched_getaffinity.cpp Fix indentation in sched_getaffinity. 2013-10-15 16:49:49 -07:00
sched_getcpu.cpp Clean up <sched.h>. 2014-01-02 12:05:50 -08:00
semaphore.cpp Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."" 2016-01-25 17:39:18 -08:00
send.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -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
setjmp_cookie.cpp Add a checksum to jmp_buf on ARM. 2016-03-03 12:45:08 -08:00
setpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
sigaction.cpp Use the kernel's sa_restorer for aarch64. 2014-09-16 15:49:50 -07:00
sigaddset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigblock.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigdelset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigemptyset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sigfillset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sighold.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigignore.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
siginterrupt.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
sigismember.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
signal.cpp Make _signal hidden in all cases. 2015-10-30 17:10:47 -07:00
signalfd.cpp Hide __signalfd4, used to implement signalfd(3). 2014-05-16 15:47:29 -07:00
sigpause.cpp Add SysV signal handling 2016-04-04 16:33:29 -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
sigqueue.cpp Hide rt_sigqueueinfo. 2015-05-18 11:29:20 -07:00
sigrelse.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigset.cpp Add SysV signal handling 2016-04-04 16:33:29 -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
sigtimedwait.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
sigwait.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
sigwaitinfo.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
socket.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
stat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
statvfs.cpp Hide statfs/fstatfs' ST_VALID flag from userspace. 2015-03-18 15:46:48 -07:00
strchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strchrnul.cpp Add strchrnul. 2015-08-26 09:59:29 -07:00
strerror.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strerror_r.cpp Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
strnlen.c Move non-upstream code into the libc/bionic directory. 2012-10-01 17:35:49 -07:00
strrchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strsignal.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strtold.cpp Use FLT_ROUNDS in LP64 strtold. 2014-04-16 16:09:41 -07:00
symlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
sync_file_range.cpp Add sync_file_range to <fcntl.h>. 2016-04-05 12:17:22 -07:00
sys_siglist.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_signame.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_time.cpp Add futimes, futimesat, and lutimes. 2016-06-08 19:51:20 -07:00
sysconf.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
sysinfo.cpp Fix the way to count online cpus. 2015-09-29 17:49:37 -07:00
syslog.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
system_properties.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
system_properties_compat.c Hide most of the private futex functions. 2014-05-21 18:30:00 -07:00
tdestroy.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
termios.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
thread_private.cpp Sync to current upstream arc4random. 2014-06-24 14:13:48 -07:00
time64.c Use snprintf instead of sprintf. 2014-10-07 11:28:47 -07:00
time64_config.h <time.h>: Add timegm(), timelocal() and others. 2010-12-06 12:25:52 +01:00
tmpfile.cpp Add fopen64/freopen64/tmpfile64 aliases. 2016-02-03 11:24:28 -08:00
umount.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
unlink.cpp Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. 2013-10-22 16:31:01 -07:00
vdso.cpp Support 32-bit ARM vdso. 2016-07-12 13:55:51 -07:00
wait.cpp Removes wait3(2) from LP64. 2014-06-13 16:04:41 -07:00
wchar.cpp Fix incorrect parameter types for locale funcs. 2014-09-23 15:32:24 -07:00
wctype.cpp Fix <wctype.h>. 2016-04-28 18:22:06 -07:00
wmempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00