History log of /bionic/libc/arch-x86/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d11eac3455a059a092ceee92eda9905e1d661e94 07-Oct-2014 Christopher Ferris <cferris@google.com> Force export symbols on all x86 variants in libc.

For silvermont, the __popcountsi2 symbol does not get exported by libc.
But for atom, this symbol is exported. Since we already exported this symbol
for previous releases, it's better to just follow through and force
the export, but only for 32 bit. x86 64 bit will not export this symbol.

Bug: 17681440
Change-Id: I6c62245f0960910f64baaaf6d9d090bf3ea5f435
ionic/libgcc_compat.c
86.mk
00008263782e484020420c606f7d145fe7d0a4d8 11-Sep-2014 Elliott Hughes <enh@google.com> Add posix_fadvise(3).

Bug: 12449798
Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
yscalls/__fadvise64.S
7efad83d430f4d824f2aaa75edea5106f6ff8aae 09-Sep-2014 Elliott Hughes <enh@google.com> Ensure __set_errno is still visible on LP32.

The use of the .hidden directive to avoid going via the PLT for
__set_errno had the side-effect of actually making __set_errno
hidden (which is odd because assembler directives don't usually
affect symbols defined in a different file --- you can't even
create a weak reference to a symbol that's defined in a different
file).

This change switches the system call stubs over to a new always-hidden
__set_errno_internal and has a visible __set_errno on LP32 just for
binary compatibility with old NDK apps.

Bug: 17423135
Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
ionic/__bionic_clone.S
ionic/syscall.S
ionic/vfork.S
yscalls/__accept4.S
yscalls/__brk.S
yscalls/__connect.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getdents64.S
yscalls/__getpid.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__set_tid_address.S
yscalls/__sigaction.S
yscalls/__signalfd4.S
yscalls/__socket.S
yscalls/__statfs64.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fallocate64.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat64.S
yscalls/fstatat64.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/prlimit64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmmsg.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmmsg.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setfsgid.S
yscalls/setfsuid.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setns.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/socketpair.S
yscalls/splice.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tee.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/vmsplice.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
642182341018b282148280a7bdb771493e15bd7d 26-Aug-2014 Elliott Hughes <enh@google.com> Fix pthread_getattr_np for the main thread.

On most architectures the kernel subtracts a random offset to the stack
pointer in create_elf_tables by calling arch_align_stack before writing
the auxval table and so on. On all but x86 this doesn't cause a problem
because the random offset is less than a page, but on x86 it's up to two
pages. This means that our old technique of rounding the stack pointer
doesn't work. (Our old implementation of that technique was wrong too.)

It's also incorrect to assume that the main thread's stack base and size
are constant. Likewise to assume that the main thread has a guard page.
The main thread is not like other threads.

This patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)
whenever we're asked.

Bug: 17111575
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>

(cherry picked from commit 57b7a6110e7e8b446fc23cce4765ff625ee0a105)

Change-Id: I87e679ee1c0db8092f2d1221c8e7c1461545c5a4
ionic/__get_sp.S
86.mk
72d7e667c7e926cb120c4edb53cbf74c652ab915 10-Aug-2014 Elliott Hughes <enh@google.com> Fix our x86 PIC_PROLOGUE.

The old definition only worked for functions that didn't use numbered
local labels. Upstream uses '666' not only as some kind of BSD in-joke,
but also because there's little likelihood of any function having
labels that high.

There's a wider question about whether we actually want to go via the
PLT at all in this code, but that's a question for another day.

Bug: 16906712
Change-Id: I3cd8ecc448b33f942bb6e783931808ef39091489
nclude/machine/asm.h
e35fd48a832cddbedcf84773fd1922f735ae7829 09-Aug-2014 Dan Albert <danalbert@google.com> Make __set_errno hidden in asm.

This fixes the build after the -Bsymbolic change.

Bug: 16853291
Change-Id: I989c9fec3c32e0289ea257a3bd2b7fd2709b6ce2
(cherry picked from commit bc9f9f25bf1247a6a638a2a2df8441bdd9fabad7)
yscalls/__accept4.S
yscalls/__brk.S
yscalls/__connect.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getdents64.S
yscalls/__getpid.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__set_tid_address.S
yscalls/__sigaction.S
yscalls/__signalfd4.S
yscalls/__socket.S
yscalls/__statfs64.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fallocate64.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat64.S
yscalls/fstatat64.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/prlimit64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmmsg.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmmsg.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setfsgid.S
yscalls/setfsuid.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setns.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/socketpair.S
yscalls/splice.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tee.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/vmsplice.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
43227c0b400a33dc9722269beda26313c391fb1e 07-Aug-2014 Elliott Hughes <enh@google.com> Android is all-PIC/PIE.

Clean up the x86/x86_64 assembler. The motivator (other than reducing
confusion) was that asm.h incorrectly checked PIC rather than __PIC__.

Bug: 16823325

(cherry picked from commit 6b6364a7fc7c3ba37ee907776a29bdc8c9793db9)

Change-Id: I89ca57fa0eb34a36de6cb11ea85f71054fce709d
ionic/__stack_chk_fail_local.h
ionic/setjmp.S
ionic/sigsetjmp.S
nclude/machine/asm.h
5386a741e77bfff4e72ca6861fdd3fe2208452ce 05-Aug-2014 Dan Albert <danalbert@google.com> Revert "Replaces vfork() implementation with fork()"

We're getting cold feet on this one... let's put it back.

This reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.

Change-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269
(cherry picked from commit 6a918870bab1a55a5f57dd7954abd9a8a27c1bc2)
ionic/vfork.S
86.mk
4f76469e88e255bab1f8264e9ff8b95bff84365f 31-Jul-2014 Elliott Hughes <enh@google.com> Implement <sys/fsuid.h>.

(cherry picked from commit 79310994d2b3826a10598f7e7795acb5edb42a20)

Change-Id: I47688273691e5c95e5e9302eba254ccaaaad40ca
yscalls/setfsgid.S
yscalls/setfsuid.S
3ff6d95a9b26154c94b5cf130649cf99eb6a4010 23-Jul-2014 Elliott Hughes <enh@google.com> Remove the unused swab.S.

(cherry picked from commit ca70453e84a88405d30f64d603f9a9b5f53f1243)

Change-Id: I4dc13de0bdeb7abb3bd47b0397546ad7d1f11d49
eneric/string/swab.S
15581383153c5da29befb7f5cdc30bc21e9da54b 08-Jul-2014 Elliott Hughes <enh@google.com> Regenerate the bionic NOTICE files.

Also fix a few formatting issues in copyright headers that were confusing
the script (though obviously it would be better if the script were smarter).

Change-Id: I7f561bef4f84fdcbd84f375ee226bd65db0e507b
ilvermont/string/sse4-memcmp-slm.S
3f525d41c2acde2ae3309cf839d83d7f41ab2fe6 25-Jun-2014 Elliott Hughes <enh@google.com> Add splice, tee, and vmsplice.

Change-Id: I5f43380b88d776a8bb607b47dbbc5db5a2fe6163
yscalls/splice.S
yscalls/tee.S
yscalls/vmsplice.S
0d7415fb225573c37ff9e880957cd2044dd658ce 21-Jun-2014 Dan Albert <danalbert@google.com> Merge "Remove SHA1 from LP64 in favor of libcrypto."
7086ad6919feb2415c6027163f5c63323bcca27c 20-Jun-2014 Elliott Hughes <enh@google.com> Cache getpid.

In practice, with this implementation we never need to make a system call.
We get the main thread's tid (which is the same as our pid) back from
the set_tid_address system call we have to make during initialization.
A new pthread will have the same pid as its parent, and a fork child's
main (and only) thread will have a pid equal to its tid, which we get for
free from the kernel before clone returns.

The only time we'd actually have to make a getpid system call now is if
we take a signal during fork and the signal handler calls getpid. (That,
or we call getpid in the dynamic linker while it's still dealing with its
own relocations and hasn't even set up the main thread yet.)

Bug: 15387103
Change-Id: I6d4718ed0a5c912fc75b5f738c49a023dbed5189
yscalls/__getpid.S
yscalls/getpid.S
c82c0b7e072491da4818e7de37411fbb2055fce1 17-Jun-2014 Dan Albert <danalbert@google.com> Remove SHA1 from LP64 in favor of libcrypto.

Keep the symbols around on LP32 for binary compatibility.

Bug: 11156955
Change-Id: I379a7e0fa3092e9a70daeafcbcb2aacfc314031a
86.mk
891dedb935b50f1abb39eedfe33049a1e49283cb 13-Jun-2014 David 'Digit' Turner <digit@google.com> libc: Fix 'index' symbol export.

The C library didn't export the 'index' symbol, but its C++ name-mangling
instead, which broke the ABI and prevented some applications from loading
properly.

The main reason was that the implementation under bionic/index.cpp relied
on the declaration to specify that the function has C linkage.

However, the declaration for index() was removed from both <string.h>
and <strings.h> in a recent patch, which made the compiler think it was
ok to compile the function with C++ linkage instead!

This patch does the following:

- Move index() definition to bionic/ndk_cruft.cpp and ensure it uses
C linkage.

Note that this removes index() from the 64-bit library entirely, this
is intentional and will break source compatibility. Simply replacing
an index() call with the equivalent strchr() should be enough to fix
this in third-party code.

- Remove bionic/index.cpp from the tree and build files.

- Remove x86 assembly implementation from arch-x86/ to avoid conflict
with the one in ndk_cruft.cpp

BUG=15606653

Change-Id: I816b589f69c8f8a6511f6be6195d20cf1c4e8123
tom/atom.mk
tom/string/sse2-index-atom.S
eneric/generic.mk
ilvermont/silvermont.mk
f87ac523a1aa02490d67330e74180c8ac2d78420 13-Jun-2014 Dan Albert <danalbert@google.com> Merge "Remove ioprio_get(2) and ioprio_set(2) from LP64."
607341e226912d95d03216483bdcef6f8d96f8b4 13-Jun-2014 Dan Albert <danalbert@google.com> Remove ioprio_get(2) and ioprio_set(2) from LP64.

Bug: 11156955
Change-Id: I07b596d85e4bd6347d488d1a92c8d0a00b5ef3b3
yscalls/ioprio_get.S
yscalls/ioprio_set.S
24614b4729a4c8665193f5793b93019b37f779b1 13-Jun-2014 Elliott Hughes <enh@google.com> Remove __memcmp16 from bionic.

Change-Id: I2486d667d96c8900dd368d855f37c1327161efb7
tom/atom.mk
tom/string/ssse3-memcmp16-atom.S
eneric/generic.mk
ilvermont/silvermont.mk
8e613cf342b369f7985135dbe11ebdbf8c736157 11-Jun-2014 Dan Albert <danalbert@google.com> Remove declaration for putw(3)/getw(3).

These were both removed from POSIX 2004, and we don't define an
implementation for getw(3). Keep the definition of put(3) on LP32 for
binary compatibility.

Bug: 13935372
Change-Id: Iba384b45093ac6d2d7c2d81f7980cd7701dd6f56
86.mk
440bd6bcc308f78b32fcbc4a3ba312dd1343559b 11-Jun-2014 Dan Albert <danalbert@google.com> Merge "Replaces vfork() implementation with fork()"
210331d9762037afb9b5ed8413079c6f65872df9 06-Jun-2014 Dan Albert <danalbert@google.com> Replaces vfork() implementation with fork()

vfork() was removed from POSIX 2008, so this replaces its implementation
with a call to fork().

Bug: 13935372
Change-Id: I6d99ac9e52a2efc5ee9bda1cab908774b830cedc
ionic/vfork.S
86.mk
1c60f8080acaf0f1794689886e94e54d15d43a7b 07-Jun-2014 Elliott Hughes <enh@google.com> Merge "Rename __bionic_clone_entry to __start_thread."
ebc8cd117a562f387c52ed4e1aeba0fb21f33194 07-Jun-2014 Elliott Hughes <enh@google.com> Rename __bionic_clone_entry to __start_thread.

This seems a bit less obscure.

Change-Id: I7dc528c253b73c861694f67556ad8f919bf92136
ionic/__bionic_clone.S
3d5cb30d23cfc6a72f01c00246e69a2c614c8228 06-Jun-2014 Elliott Hughes <enh@google.com> Remove getdents from bionic.

Bug: 11156955
Change-Id: I6c306989801be552d85fba8a50dcdc79282fb9d2
yscalls/__getdents64.S
yscalls/getdents.S
15a0456d0b7618554ed3d49287e77b6d43a2812a 06-Jun-2014 Elliott Hughes <enh@google.com> Remove unnecessary instructions from x86/x86_64 syscalls.

__set_errno returns -1 exactly so that callers don't need to bother.
The other architectures were already taking advantage of this, but
no one had ever fixed x86 and x86_64.

Change-Id: Ie131494be664f6c4a1bbf8c61bbbed58eac56122
ionic/__bionic_clone.S
ionic/syscall.S
ionic/vfork.S
yscalls/__accept4.S
yscalls/__brk.S
yscalls/__connect.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__set_tid_address.S
yscalls/__sigaction.S
yscalls/__signalfd4.S
yscalls/__socket.S
yscalls/__statfs64.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fallocate64.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat64.S
yscalls/fstatat64.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/prlimit64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmmsg.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmmsg.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setns.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/socketpair.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
50b79530c6fea6d47d54edf6f351dcbd7d87ab6a 06-Jun-2014 Elliott Hughes <enh@google.com> Merge "Fix unwinding through x86-64 __bionic_clone."
aeb3016f8132689d1b49d30056005b667e3d2d0e 05-Jun-2014 Elliott Hughes <enh@google.com> Fix unwinding through x86-64 __bionic_clone.

x86-64 needs these CFI directives to stop unwinding here.
I've also cleaned up the assembler a little, and made x86 and x86-64
a little more alike.

Bug: 15195760
Change-Id: I40f92c007843c29c933bb6876fe2b4611e1b946b
ionic/__bionic_clone.S
fce861498c8c4720c6ad2475a73bb4c3e55d6948 26-May-2014 Varvara Rainchik <varvara.rainchik@intel.com> Fix for slm-tuned memmove (both 32- and 64-bit).

Introduce a test for memmove that catches a fault.
Fix both 32- and 64-bit versions of slm-tuned memmove.

Change-Id: Ib416def2610a0972e32c3b9b6055b54967643dc3
Signed-off-by: Varvara Rainchik <varvara.rainchik@intel.com>
ilvermont/string/sse2-memmove-slm.S
5d9a7ba0dc9c24ed4e4efa9cac0e796fd524b308 31-May-2014 Elliott Hughes <enh@google.com> Avoid a system call in 'gettid'.

System calls can be pretty slow. This is mako, which has one of our
lowest latencies:

iterations ns/op
BM_unistd_getpid 10000000 209
BM_unistd_gettid 200000000 8

Bug: 15297299 (kernel panic from too many gettid calls)
Bug: 15315766 (excessive gettid overhead in liblogd)
Change-Id: I49656c0fc5b5d092390264a59e4f2c0d8a8b1aeb
yscalls/gettid.S
ee9d5bdd950bb05549bddc614c3c5ce9d10a5b08 30-May-2014 Elliott Hughes <enh@google.com> x86: stop unwinding past __bionic_clone.

The apparent "previous" frame is on another thread's stack.

Bug: 14270816
Bug: 15195760
Change-Id: I884f370e116203c5fa3b05a75fb8f356537261c4
ionic/__bionic_clone.S
15b91e92a0bb4a15b4f2258bea332f4a67fa94d7 30-May-2014 Christopher Ferris <cferris@google.com> Fix x86 cfi directives for syscalls.

The syscall generation always used 4 bytes for each push cfi directive.
However, the first push should always use an offset of 8 bytes, each
subsequent push after that is only 4 bytes though.

Change-Id: Ibaabd107f399ef67010b9a08213783957c2f74a9
yscalls/__accept4.S
yscalls/__brk.S
yscalls/__connect.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__set_tid_address.S
yscalls/__sigaction.S
yscalls/__signalfd4.S
yscalls/__socket.S
yscalls/__statfs64.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fallocate64.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat64.S
yscalls/fstatat64.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/getdents.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettimeofday.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/prlimit64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmmsg.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmmsg.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setns.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/socketpair.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
fae42a837ae7f880de9561c7b3c2b18e4a531e90 29-May-2014 Elliott Hughes <enh@google.com> Merge "Revert "Revert "Lose the hand-written futex assembler."""
b30aff405a220495941f1673b0a5e66c4fa8b84c 28-May-2014 Elliott Hughes <enh@google.com> Revert "Revert "Lose the hand-written futex assembler.""

The problem with the original patch was that using syscall(3) means that
errno can be set, but pthread_create(3) was abusing the TLS errno slot as
a pthread_mutex_t for the thread startup handshake.

There was also a mistake in the check for syscall failures --- it should
have checked against -1 instead of 0 (not just because that's the default
idiom, but also here because futex(2) can legitimately return values > 0).

This patch stops abusing the TLS errno slot and adds a pthread_mutex_t to
pthread_internal_t instead. (Note that for LP64 sizeof(pthread_mutex_t) >
sizeof(uintptr_t), so we could potentially clobber other TLS slots too.)

I've also rewritten the LP32 compatibility stubs to directly reuse the
code from the .h file.

This reverts commit 75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4.

Bug: 15195455
Change-Id: I6ffb13e5cf6a35d8f59f692d94192aae9ab4593d
ionic/futex_x86.S
yscalls/futex.S
86.mk
8a405b027a9c8b3a614016f4824a03fa252e9e1e 28-May-2014 Christopher Ferris <cferris@google.com> Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4 28-May-2014 Narayan Kamath <narayan@google.com> Revert "Lose the hand-written futex assembler."

This reverts commit ced906c849704f379d7191822f6d74993d4fa296.

Causes issues on art / dalvik due to a broken return value
check and other undiagnosed issues.

bug: 15195455

Change-Id: I5d6bbb389ecefb0e33a5237421a9d56d32a9317c
ionic/futex_x86.S
yscalls/futex.S
86.mk
6f2bde344123d8503cd60f3ecd3420f39aa24eb9 23-May-2014 Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> Add optimized AArch64 versions of bcopy and wmemmove based on memmove

Add optimized versions of bcopy and wmemmove for AArch64 based on the
memmove implementation

Change-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
86.mk
fd0ce866ce46ed62aa17dc2959a085cb3bf5755d 24-May-2014 Christopher Ferris <cferris@google.com> Revert "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"

This reverts commit 8167dd7cb98e87ffe9b40e4993c330b244ca2234.

For some reason I thought the bcopy change was bzero. The bcopy code doesn't pass our tests, so reverting until I can figure out what's wrong.

Change-Id: Id89fe959ea5105cd58dff6bba8d91a30cc4bcb07
86.mk
8167dd7cb98e87ffe9b40e4993c330b244ca2234 23-May-2014 Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> Add optimized AArch64 versions of bcopy and wmemmove based on memmove

Add optimized versions of bcopy and wmemmove for AArch64 based on the
memmove implementation

Change-Id: Ie43d0ff4f8ec4edba5b4fb5ccacd941f81ac6557
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
86.mk
ced906c849704f379d7191822f6d74993d4fa296 23-May-2014 Elliott Hughes <enh@google.com> Lose the hand-written futex assembler.

Also stop exporting 'futex'.

Bug: 12250341
Change-Id: Icc4fa4296cd04dfe0d1061822c69e2eb40c3433a
ionic/futex_x86.S
yscalls/futex.S
86.mk
6e599a904b1f033cfaf79febff686f6296089a7d 22-May-2014 Elliott Hughes <enh@google.com> Remove the tkill(2) stub.

glibc doesn't have tkill or tgkill and says "use syscall(3) instead".
I've left tgkill since it's quite widely used, but there's no reason
to have tkill as well.

Bug: 11156955
Change-Id: Ifc0af750320086f829bc9914551c172b501f3b60
yscalls/tkill.S
d5ed63a6a8290de88802172ce178656fbafe70c6 22-May-2014 Elliott Hughes <enh@google.com> Hide most of the private futex functions.

Also hide part of the system properties compatibility code, since
we needed to touch that to keep it building.

I'll remove __futex_syscall4 and futex in a later patch.

Bug: 11156955
Change-Id: Ibbf42414c5bb07fb9f1c4a169922844778e4eeae
ionic/futex_x86.S
c1b7f44c13fbcbab3faaa8e11d3a459ebc11bfe5 21-May-2014 Elliott Hughes <enh@google.com> Merge "Remove __syslog; we have the public klogctl API."
9f0a52e4e5afc20a61230e6cbfe735606bff7e0c 21-May-2014 Elliott Hughes <enh@google.com> Merge "Hide __get_sp."
7471a3700348df588d4da35a41b38f6a88b505fd 21-May-2014 Elliott Hughes <enh@google.com> Merge "Hide __set_tls."
46a55a4478db9e335bdc7f73ee2cf3a66fe673fd 21-May-2014 Elliott Hughes <enh@google.com> Remove __syslog; we have the public klogctl API.

Bug: 11156955
Change-Id: I5c2cc02f39f76dd32984135f5c12c10bf2853796
yscalls/__syslog.S
a75869f0b2528079503d2e4dd2174142ab1df904 21-May-2014 Elliott Hughes <enh@google.com> Hide __set_tls.

Bug: 11156955
Change-Id: If82c10ae412651361d09591017d1c3a411bd6f0b
ionic/__set_tls.c
c3705f641507eafc170cd7a3fe98759e781e4594 21-May-2014 Elliott Hughes <enh@google.com> Hide __get_sp.

Bug: 11156955
Change-Id: I55d8d320521e80c2085af28933a18b00cf5c714e
ionic/__get_sp.S
4e631ba5688db2fae7bbc476982055a376102146 21-May-2014 Elliott Hughes <enh@google.com> Remove perf_event_open.

This was accidentally added at a time when you couldn't add a constant
to <syscall.h> without generating an assembly stub! (You no longer need
to add the constants at all.)

Bug: 11156955
Change-Id: I053c17879138787976c744a5ecf7d30ee51dc48f
yscalls/perf_event_open.S
903b78873a744d3fba187e4bd22008ba21162e51 19-May-2014 Sreeram Ramachandran <sreeram@google.com> Mark sockets on creation (socket()) and accept4().

Remove the separate syscall for accept() and implement it as accept4(..., 0).

Change-Id: Ib0b8f5d7c5013b91eae6bbc3847852eb355c7714
yscalls/__accept.S
yscalls/__accept4.S
yscalls/__socket.S
yscalls/accept4.S
yscalls/socket.S
31d0398de65becc83168fa931cbd3345bbc346bd 17-May-2014 Elliott Hughes <enh@google.com> Hide _exit_with_stack_teardown.

Bug: 11156955
Change-Id: Ida3020343c9975177dc324918cd1f10c455eb173
ionic/_exit_with_stack_teardown.S
7222b1b594a8fab4b9e744d764b70e4c17767794 17-May-2014 Elliott Hughes <enh@google.com> Hide __signalfd4, used to implement signalfd(3).

Bug: 11156955
Change-Id: I50842279cb5b32ec8bd45193435574e415cd806e
yscalls/__signalfd4.S
yscalls/signalfd4.S
8f0cd8aa22906c3e678738eeba20fc1a5c399b6c 14-May-2014 Sreeram Ramachandran <sreeram@google.com> Mark sockets on accept().

(cherry picked from commit 58b1f3f6a30a660ad81637c2b50382c3d279243b)

Change-Id: I5d09be413cf720fbed905f96313b007997ada76c
yscalls/__accept.S
yscalls/accept.S
ceb5bd787c8ce281e5f4343c5d4f77b41c3e2919 12-May-2014 Sreeram Ramachandran <sreeram@google.com> Introduce netd_client, a dynamic library that talks to netd.

The library exists outside bionic. It is dynamically loaded, to replace selected
standard socket syscalls with versions that talk to netd.

Change connect() to use the library if available.

(cherry picked from commit 3a6b627a14df8111b03e452f2df4b5f4938e0e49)

Change-Id: Ib6198e19dbc306521a26fcecfdf6e8424d163fc9
yscalls/__connect.S
yscalls/connect.S
5a92284167ffba6d45210ef6889fa7d255c15d4f 24-Apr-2014 Varvara Rainchik <varvara.rainchik@intel.com> Add 32-bit Silvermont-optimized string/memory functions.

Add following functions:
bcopy, memcpy, memmove, memset, bzero, memcmp, wmemcmp, strlen,
strcpy, strncpy, stpcpy, stpncpy.
Create new directories inside arch-x86 to specify architecture: atom,
silvermont and generic (non atom or silvermont architectures are treated like generic).
Due to introducing optimized versions of stpcpy and stpncpy,
c-implementations of these functions are moved from
common for architectures makefile to arm and mips specific makefiles.

Change-Id: I990f8061c3e9bca1f154119303da9e781c5d086e
Signed-off-by: Varvara Rainchik <varvara.rainchik@intel.com>
tom/atom.mk
tom/string/cache.h
tom/string/sse2-bzero-atom.S
tom/string/sse2-index-atom.S
tom/string/sse2-memchr-atom.S
tom/string/sse2-memrchr-atom.S
tom/string/sse2-memset-atom.S
tom/string/sse2-strchr-atom.S
tom/string/sse2-strlen-atom.S
tom/string/sse2-strnlen-atom.S
tom/string/sse2-strrchr-atom.S
tom/string/sse2-wcschr-atom.S
tom/string/sse2-wcscmp-atom.S
tom/string/sse2-wcslen-atom.S
tom/string/sse2-wcsrchr-atom.S
tom/string/ssse3-bcopy-atom.S
tom/string/ssse3-memcmp-atom.S
tom/string/ssse3-memcmp16-atom.S
tom/string/ssse3-memcpy-atom.S
tom/string/ssse3-memmove-atom.S
tom/string/ssse3-strcat-atom.S
tom/string/ssse3-strcmp-atom.S
tom/string/ssse3-strcpy-atom.S
tom/string/ssse3-strlcat-atom.S
tom/string/ssse3-strlcpy-atom.S
tom/string/ssse3-strncat-atom.S
tom/string/ssse3-strncmp-atom.S
tom/string/ssse3-strncpy-atom.S
tom/string/ssse3-wcscat-atom.S
tom/string/ssse3-wcscpy-atom.S
tom/string/ssse3-wmemcmp-atom.S
eneric/generic.mk
eneric/string/bcopy.S
eneric/string/memcmp.S
eneric/string/memcpy.S
eneric/string/memmove.S
eneric/string/strcat.S
eneric/string/strcmp.S
eneric/string/strncmp.S
eneric/string/swab.S
ilvermont/silvermont.mk
ilvermont/string/cache.h
ilvermont/string/sse2-bcopy-slm.S
ilvermont/string/sse2-bzero-slm.S
ilvermont/string/sse2-memcpy-slm.S
ilvermont/string/sse2-memmove-slm.S
ilvermont/string/sse2-memset-slm.S
ilvermont/string/sse2-stpcpy-slm.S
ilvermont/string/sse2-stpncpy-slm.S
ilvermont/string/sse2-strcpy-slm.S
ilvermont/string/sse2-strlen-slm.S
ilvermont/string/sse2-strncpy-slm.S
ilvermont/string/sse4-memcmp-slm.S
ilvermont/string/sse4-wmemcmp-slm.S
tring/bcopy.S
tring/cache.h
tring/memcmp.S
tring/memcpy.S
tring/memmove.S
tring/sse2-bzero-atom.S
tring/sse2-index-atom.S
tring/sse2-memchr-atom.S
tring/sse2-memrchr-atom.S
tring/sse2-memset-atom.S
tring/sse2-strchr-atom.S
tring/sse2-strlen-atom.S
tring/sse2-strnlen-atom.S
tring/sse2-strrchr-atom.S
tring/sse2-wcschr-atom.S
tring/sse2-wcscmp-atom.S
tring/sse2-wcslen-atom.S
tring/sse2-wcsrchr-atom.S
tring/ssse3-bcopy-atom.S
tring/ssse3-memcmp-atom.S
tring/ssse3-memcmp16-atom.S
tring/ssse3-memcpy-atom.S
tring/ssse3-memmove-atom.S
tring/ssse3-strcat-atom.S
tring/ssse3-strcmp-atom.S
tring/ssse3-strcpy-atom.S
tring/ssse3-strlcat-atom.S
tring/ssse3-strlcpy-atom.S
tring/ssse3-strncat-atom.S
tring/ssse3-strncmp-atom.S
tring/ssse3-strncpy-atom.S
tring/ssse3-wcscat-atom.S
tring/ssse3-wcscpy-atom.S
tring/ssse3-wmemcmp-atom.S
tring/strcat.S
tring/strcmp.S
tring/strncmp.S
tring/swab.S
86.mk
0d236aa3f1e6d31b0c729448ae9d3ed1cad23fb4 09-May-2014 Elliott Hughes <enh@google.com> Align the child stack in clone(2).

Also let clone(2) set the TLS for x86.

Also ensure we initialize the TLS before we clone(2) for all architectures.

Change-Id: Ie5fa4466e1c9ee116a281dfedef574c5ba60c0b5
ionic/__bionic_clone.S
ionic/__set_tls.c
fff3c0fdcf2a6f4301a238628fbf8182780a1612 09-May-2014 Elliott Hughes <enh@google.com> Align arm64 stacks to 16 bytes in __bionic_clone.

Also ensure that arm64/x86-64/x86 assembler uses local labels.
(There are are so many non-local labels in arm that fixing them
seems out of scope.)

Also synchronize the __bionic_clone.S comments.

Change-Id: I03b4f84780d996b54d6637a074638196bbb01cd4
ionic/__bionic_clone.S
954cf0d4e2669f91194b45f484152e47efa4f6c7 09-May-2014 Elliott Hughes <enh@google.com> Hide the __bionic_clone and __bionic_clone_entry implementation details.

clone(2) is the public symbol.

Also switch a test from __bionic_clone to clone; testing public API
means the test now works on glibc too.

Change-Id: If59def26a00c3afadb8a6cf9442094c35a59ffde
ionic/__bionic_clone.S
8d77bce185d04c531bd9bf34d38e5cbbe644d3a3 22-Apr-2014 Elliott Hughes <enh@google.com> LP64 shouldn't include the non-standard <time64.h> cruft.

This patch includes just enough to keep external/chromium_org building
until they switch 64-bit Android over to using the regular non-Android code.

Change-Id: Iecaf274efa46ae18a42d5e3439c5aa4f909177c1
86.mk
cb65cc3fb4a8d7dfbbcbdfdb9140ab59baada28e 17-Apr-2014 Elliott Hughes <enh@google.com> Clean up <machine/ieee.h>.

The upstream intention was for this to be architecture-dependent, but it's a
lot clearer if we just have one copy.

Change-Id: I4e8310496145f9f411cd2e847c8cd023b1d758e9
nclude/machine/ieee.h
02c78a386739a8a2b3007efeb00a9ca04132100a 12-Apr-2014 Elliott Hughes <enh@google.com> Reimplement isinf/isnan/fpclassify.

Also move isinf and isnan into libc like everyone else.

Also move fpclassify to libc like the BSDs (but unlike glibc). We need
this to be able to upgrade our float/double/long double parsing to gdtoa.

Also add some missing aliases. We now have all of:

isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl,
isinf, __isinf, isinff, __isinff, isinfl, __isinfl,
__fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl.

Bug: 13469877
Change-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d
nclude/machine/ieee.h
9f525644df99cb2f7f81a23ca23840f0a8f82275 09-Apr-2014 Elliott Hughes <enh@google.com> Implement _Exit(3).

Change-Id: Ida6ac844cc87d38c9645b197dd8188bb73e27dbe
yscalls/_exit.S
1b0dc40980c259aa0d9a416cd1ccf497e6efe138 02-Apr-2014 Elliott Hughes <enh@google.com> Remove <machine/limits.h>.

Change-Id: I7f9e9538517f726d4f08bf1f4b8d57c54d3f1676
nclude/machine/limits.h
f1bfc8781e17fb851de23dce4332c0cb5ccb8749 02-Apr-2014 Elliott Hughes <enh@google.com> Merge "Remove SIZE_MAX definition in limits.h"
3bfa0fd32f07fab81f178a58eee4d0738b6d0db6 08-Jan-2014 Henrik Smiding <henrik.smiding@intel.com> Add Silvermont architecture cache sizes

Adds Silvermont specific cache sizes for bionic optimizations.

Change-Id: Ib992f530b8c485121b2874470fd6bed2212adb0f
Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
tring/cache.h
ac3fc00ca2c157387164c7daaf9e10799c5ac8dc 11-Mar-2014 Russell Webb <russell.webb@intel.com> Remove SIZE_MAX definition in limits.h

the POSIX standard is that SIZE_MAX is defined
in stdint.h, not limits.h.

Change-Id: Iafd8ec71d1840541feaca4f53b2926b398293fac
Signed-off-by: Webb, Russell <russell.webb@intel.com>
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
Reviewed-by: Ross, Andrew J <andrew.j.ross@intel.com>
Reviewed-by: Boie, Andrew P <andrew.p.boie@intel.com>
Reviewed-by: Gumbel, Matthew K <matthew.k.gumbel@intel.com>
Tested-by: Gumbel, Matthew K <matthew.k.gumbel@intel.com>
nclude/machine/limits.h
8f2a30a92ab6981cccbc1a9e17b738f7542ae33f 26-Mar-2014 Andrei Emeltchenko <andrei.emeltchenko@intel.com> Add accept4() syscall

Add accept4() using SYSCALLS.TXT and gensyscall

Change-Id: I6f19f29144186d15d46423e10f2cc4b4223719c6
yscalls/accept4.S
6ff0c75c838e73d2aeccc0102ab58a7b865172ca 10-Feb-2014 Guillaume Ranquet <guillaumex.ranquet@intel.com> Add recvmmsg and sendmmsg syscalls.

Also add the corresponding constant, struct, and function declarations
to <sys/socket.h>, and perfunctory tests so we know that the symbols
actually exist.

Signed-off-by: Guillaume Ranquet <guillaumex.ranquet@intel.com>
Change-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7
yscalls/recvmmsg.S
yscalls/sendmmsg.S
53e43292aac91bf62995788cd5ca2ceb7caea283 25-Feb-2014 Elliott Hughes <enh@google.com> More OpenBSD cleanup (primarily string).

This patch removes the string/ and wchar/ directories.

Change-Id: Ia489904bc67047e4bc79acb1f3eec21aa3fe5f0d
86.mk
851e68a2402fa414544e66650e09dfdaac813e51 20-Feb-2014 Elliott Hughes <enh@google.com> Unify our assembler macros.

Our <machine/asm.h> files were modified from upstream, to the extent
that no architecture was actually using the upstream ENTRY or END macros,
assuming that architecture even had such a macro upstream. This patch moves
everyone to the same macros, with just a few tweaks remaining in the
<machine/asm.h> files, which no one should now use directly.

I've removed most of the unused cruft from the <machine/asm.h> files, though
there's still rather a lot in the mips/mips64 ones.

Bug: 12229603
Change-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d
ionic/__bionic_clone.S
ionic/__get_sp.S
ionic/_setjmp.S
ionic/setjmp.S
ionic/sigsetjmp.S
nclude/machine/asm.h
tring/bcopy.S
tring/memcmp.S
tring/strcat.S
tring/strcmp.S
tring/strncmp.S
tring/swab.S
09289d92f920f307fc50dd64e9970c36c30b58e4 20-Feb-2014 Elliott Hughes <enh@google.com> Remove useless _C_LABEL from our assembler source.

Change-Id: I41a9181537c70ecc69ef8035132c9a83811a40d0
ionic/setjmp.S
ionic/sigsetjmp.S
6e39ba73bfd9504762e8798fd6b293f11d5fdf7e 20-Feb-2014 Elliott Hughes <enh@google.com> Stop advertising an arm32-specific hack like it's a build system feature.

Change-Id: I3a830b4a3516b6eb8e4f8e6e6b122a22a2e341df
86.mk
986f9067103e41296898a7c0e89f5ed84420fb5b 19-Feb-2014 Elliott Hughes <enh@google.com> Fix build by avoiding the _C_LABEL macro.

Change-Id: Ide367c2b65071388bd95fbc81a4ed6ae94aec4e4
yscalls/fstat64.S
yscalls/fstatat64.S
db1ea3474899ebbd783aba872d3005f95a816d0f 18-Jan-2014 Elliott Hughes <enh@google.com> Implement some of the missing LFS64 support.

This gives us:

* <dirent.h>
struct dirent64
readdir64, readdir64_r, alphasort64, scandir64

* <fcntl.h>
creat64, openat64, open64.

* <sys/stat.h>
struct stat64
fstat64, fstatat64, lstat64, stat64.

* <sys/statvfs.h>
struct statvfs64
statvfs64, fstatvfs64.

* <sys/vfs.h>
struct statfs64
statfs64, fstatfs64.

This also removes some of the incorrect #define hacks we've had in the
past (for stat64, for example, which we promised to clean up way back
in bug 8472078).

Bug: 11865851
Bug: 8472078
Change-Id: Ia46443521918519f2dfa64d4621027dfd13ac566
yscalls/fstat.S
yscalls/fstat64.S
yscalls/fstatat.S
yscalls/fstatat64.S
f25d677147ae55a1f3b6ef7fa3ee27921792813f 24-Jan-2014 Ying Wang <wangying@google.com> Reconfig libc's Android.mk to build for multilib

1. Moved arch-specific setup to their own files:
- <arch>/<arch>.mk, arch-specific configs. Variables in those config
end with the arch name.
- removed the extra complexity introduced by function libc-add-cpu-variant-src,
which seems to be not very useful these days.
2. Separated out the crt object files generation rules and set up the
rules for both TARGET_ARCH and TARGET_2ND_ARCH.
3. Build all the libraries for both TARGET_ARCH and TARGET_2ND_ARCH,
with the arch-specific LOCAL_ variables.

Bug: 11654773
Change-Id: I9c2d85db0affa49199d182236d2210060a321421
86.mk
b3a23bd0178c8edbb34e310be08e6fb73ac6ba09 11-Feb-2014 Elliott Hughes <enh@google.com> Build syscall stubs in their own library.

This lets us lose the auto-generated makefiles.

Change-Id: I2de0c71b3b9c08f9cce8f4ff7fd7254dda008c86
yscalls.mk
0266ae5f884d72da58f33a072e865ba131234a5e 11-Feb-2014 Elliott Hughes <enh@google.com> Switch <elf.h> over to linux uapi under the covers.

Remove the linker's reliance on BSD cruft and use the glibc-style
ElfW macro. (Other code too, but the linker contains the majority
of the code that needs to work for Elf32 and Elf64.)

All platforms need dl_iterate_phdr_static, so it doesn't make sense
to have that part of the per-architecture configuration.

Bug: 12476126
Change-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487
86.mk
9afe2884c7fe11f862982fd550a2ead688f2044d 05-Feb-2014 Elliott Hughes <enh@google.com> Kill <machine/_types.h>.

Most of <machine/_types.h> was either unused, wrong, or identical across
all 32-/64-bit architectures.

I'm not a huge fan of <sys/_types.h> either, but moving the bits we need
up into there is a step forward.

Bug: 12213562
Change-Id: Id13551c78966e324beee2dd90c5575e37d2a71e6
nclude/machine/_types.h
f64b8ea09db3bdd84eed59f7721301743332b3fe 04-Feb-2014 Elliott Hughes <enh@google.com> Add fallocate/fallocate64/posix_fallocate/posix_fallocate64.

Bug: 5287571
Bug: 12612860
Change-Id: I4501b9c6cdf9a830336ce0b3afc4ea716b6a0f6f
yscalls.mk
yscalls/fallocate64.S
0f461e35f63200641fc53bba222845a84589c024 09-Jan-2014 Elliott Hughes <enh@google.com> Fix <sys/resource.h>.

The situation here is a bit confusing. On 64-bit, rlimit and rlimit64 are
the same, and so getrlimit/getrlimit64, setrlimit/setrlimit64,
and prlimit/prlimit64 are all the same. On 32-bit, rlimit and rlimit64 are
different. 32-bit architectures other than MIPS go one step further by having
an even more limited getrlimit system call, so arm and x86 need to use
ugetrlimit instead of getrlimit. Worse, the 32-bit architectures don't have
64-bit getrlimit- and setrlimit-equivalent system calls, and you have to use
prlimit64 instead. There's no 32-bit prlimit system call, so there's no
easy implementation of that --- what should we do if the result of prlimit64
won't fit in a struct rlimit? Since 32-bit survived without prlimit/prlimit64
for this long, I'm not going to bother implementing prlimit for 32-bit.

We need the rlimit64 functions to be able to build strace 4.8 out of the box.

Change-Id: I1903d913b23016a2fc3b9f452885ac730d71e001
yscalls.mk
yscalls/prlimit64.S
e4bc7561219ddb7cfb7b33f731caa92a7766b9ca 07-Jan-2014 Christopher Ferris <cferris@google.com> Add cfi directives to x86 syscalls.

Modify the syscalls script to generate the cfi directives for x86
syscalls.

Update the x86 syscalls.

Change-Id: Ia1993dc714a7e79f917087fff8200e9a02c52603
yscalls/__brk.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__set_tid_address.S
yscalls/__sigaction.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/accept.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettimeofday.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setns.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
a85aaf11fafd52b1304cc288d0699411ae510cc8 03-Jan-2014 Elliott Hughes <enh@google.com> Use the MAX_ERRNO constant.

If you're going to hardcode a constant, you could at least try to
get the constant right...

Change-Id: I886a2593357d1c4dfd6c42649c63e8a35c15a441
ionic/syscall.S
ionic/vfork.S
887e1140fe7596fa1239a0bc802d2cdb51c57d3c 02-Jan-2014 Elliott Hughes <enh@google.com> Clean up <sched.h>.

This patch switches to using the uapi constants. It also adds the missing
setns system call, fixes sched_getcpu's error behavior, and fixes the
gensyscalls script now ARM is uapi-only too.

Change-Id: I8e16b1693d6d32cd9b8499e46b5d8b0a50bc4f1d
yscalls.mk
yscalls/setns.S
2aace21a19b6be8f6a427fc664d4175f0bf832c9 22-Dec-2013 Elliott Hughes <enh@google.com> Remove the bogus exit status from _exit_with_stack_teardown.

It should always be 0, and there's no reason to pass a constant in as
an argument.

Change-Id: I92ac59b718a18e298bd7c52821af447f9181ca2a
ionic/_exit_with_stack_teardown.S
5eccb9646dd94438911706d3ebf52775caa7f41e 21-Dec-2013 Elliott Hughes <enh@google.com> Fix aarch64 futex assembly routines.

Also make the other architectures more similar to one another,
use NULL instead of 0 in calling code, and remove an unused #define.

Change-Id: I52b874afb6a351c802f201a0625e484df6d093bb
ionic/futex_x86.S
2b333ea31ec5b5b4627f14b22253b017b346638a 18-Dec-2013 Elliott Hughes <enh@google.com> Remove <machine/kernel.h>.

Bug: 12175484
Change-Id: I127f7f91f36bd879109d653e0c56ec56e2529d4d
nclude/machine/kernel.h
c13fb75ceabb47f8292be206db80b93889fccf66 18-Dec-2013 Elliott Hughes <enh@google.com> Move bionic over to GCC's 'warning' attribute.

This is a better solution than the old __warn_references because it's
a compile-time rather than link-time warning, it doesn't rely on something
that doesn't appear to be supported by gold (which is why you only used
to see these warnings on mips builds), and the errors refer to the exact
call site(s) rather than just telling you which object file contains a
reference to the bad function.

This is primarily so we can build bionic for aarch64; building libc.so
caused these warnings to fire (because link time is the wrong time) and
warnings are errors.

Change-Id: I5df9281b2a9d98b164a9b11807ea9472c6faa9e3
nclude/machine/cdefs.h
99c393dff33e0a5d3838c16dc7878f32ac3da971 27-Nov-2013 Elliott Hughes <enh@google.com> Fix the order of arguments to sys_clone for x86.

Unlike x86-64, x86's arguments are just like every other
architecture's.

Change-Id: Ic6da23f2a70599683b68e7e12ab9ba061e0b349c
ionic/__bionic_clone.S
9dec707bd6fa59849c205db6f878f1b2cc2de536 26-Nov-2013 Elliott Hughes <enh@google.com> Fix _exit_with_stack_teardown for x86.

Change-Id: Ife8f9c538c86f7c0017143015d5ee849a99b625b
ionic/_exit_with_stack_teardown.S
507cfe2e10a6c4ad61b9638820ba10bfe881a18c 19-Nov-2013 Christopher Ferris <cferris@google.com> Add .cfi_startproc/.cfi_endproc to ENTRY/END.

Bug: 10414953
Change-Id: I711718098b9f3cc0ba8277778df64557e9c7b2a0
nclude/machine/asm.h
tring/bcopy.S
36d6188f8cd8b948fb797f11d9620d63d0c2215a 19-Nov-2013 Elliott Hughes <enh@google.com> Clean up forking and cloning.

The kernel now maintains the pthread_internal_t::tid field for us,
and __clone was only used in one place so let's inline it so we don't
have to leave such a dangerous function lying around. Also rename
files to match their content and remove some useless #includes.

Change-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9
ionic/__bionic_clone.S
ionic/clone.S
yscalls.mk
yscalls/__clone.S
86.mk
877ec6d90418ff1d6597147d355a2229fdffae7e 16-Nov-2013 Elliott Hughes <enh@google.com> 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
yscalls.mk
yscalls/__set_tid_address.S
70b24b1cc2a1a4436b1fea3f8b76616fdcb27224 15-Nov-2013 Elliott Hughes <enh@google.com> Switch pthread_create over to __bionic_clone.

Bug: 8206355
Bug: 11693195
Change-Id: I04aadbc36c87e1b7e33324b9a930a1e441fbfed6
ionic/_exit_with_stack_teardown.S
ionic/clone.S
ed74484dcbc2e156a6e5fa861a62425b12e55128 07-Nov-2013 Elliott Hughes <enh@google.com> Stop using the non-uapi <linux/err.h> header file.

We only need it for MAX_ERRNO, and it's time we had somewhere to put
the little assembler utility macros we've been putting off writing.

Change-Id: I9354d2e0dc47c689296a34b5b229fc9ba75f1a83
yscalls/__brk.S
yscalls/__clone.S
yscalls/__epoll_pwait.S
yscalls/__exit.S
yscalls/__fcntl64.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__openat.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__sigaction.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/accept.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup3.S
yscalls/epoll_create1.S
yscalls/epoll_ctl.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init1.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lgetxattr.S
yscalls/linkat.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdirat.S
yscalls/mknodat.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe2.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlinkat.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/renameat.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlinkat.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
062092543fdbd6fa2676e4f5b37a15f7bba94332 07-Nov-2013 Elliott Hughes <enh@google.com> Clean up the 32-bit kernel support, fix LP64 fcntl declaration.

In practice, thanks to all the registers the stubs don't actually change,
but it's confusing to have an incorrect declaration.

I suspect that fcntl remains broken for aarch64; it happens to work for
x86_64 because the first vararg argument gets placed in the right register
anyway, but I have no reason to believe that's true for aarch64.

This patch adds a unit test, though, so we'll be able to tell when we get
as far as running the unit tests.

Change-Id: I58dd0054fe99d7d51d04c22781d8965dff1afbf3
yscalls.mk
yscalls/__fcntl.S
6b53c2349a5a3fc70a475de6a66131b615e88e48 25-Oct-2013 Elliott Hughes <enh@google.com> Fix the exit syscall stub's name.

I've left the exit_group syscall as _exit because otherwise we'd have to
convince the compiler that our _exit (which just calls __exit_group) is
actually "noreturn", and it seems like that would be less clean than just
cutting out the middleman.

We'll just have to trust ourselves not to add anything to SYSCALLS.TXT
that ought to be private but that only has a single leading underscore.
Hopefully we can manage that.

Change-Id: Iac47faea9f516186e1774381846c54cafabc4354
yscalls.mk
yscalls/__exit.S
yscalls/_exit_thread.S
bf425680e484486803bf21e4c4cd1e3f36614a3c 25-Oct-2013 Elliott Hughes <enh@google.com> Let the compiler worry about implementing ffs(3).

It does at least as good a job as our old hand-written assembly anyway.

Change-Id: If7c4a1ac508bace0b71ee7b67808caa6eabf11d2
tring/ffs.S
86.mk
11952073af22568bba0b661f7a9d4402c443a888 25-Oct-2013 Elliott Hughes <enh@google.com> Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.

(aarch64 kernels don't have these system calls.)

Change-Id: I6f64075aa412f71520f2df71c3d69b647f91c1ca
yscalls.mk
yscalls/__clone.S
yscalls/__epoll_pwait.S
yscalls/__fork.S
yscalls/__open.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__sys_clone.S
yscalls/_waitpid.S
yscalls/epoll_wait.S
yscalls/pause.S
yscalls/poll.S
yscalls/select.S
cac7b9d6ec1a09814bc028e2f768db732f018891 23-Oct-2013 Elliott Hughes <enh@google.com> Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls.

(aarch64 kernels only have the newer system calls.)

Also expose the new functionality that's exposed by glibc in our header files.

Change-Id: I45d2d168a03f88723d1f7fbf634701006a4843c5
yscalls.mk
yscalls/dup2.S
yscalls/dup3.S
yscalls/epoll_create.S
yscalls/epoll_create1.S
yscalls/inotify_init.S
yscalls/inotify_init1.S
yscalls/pipe.S
f8fcfbc85a3ce3e195626b90736d3a484331494b 22-Oct-2013 Elliott Hughes <enh@google.com> Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls.

Modern architectures only get the *at(2) system calls. For example,
aarch64 doesn't have open(2), and expects userspace to use openat(2)
instead.

Change-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5
yscalls.mk
yscalls/access.S
yscalls/chmod.S
yscalls/chown.S
yscalls/lchown.S
yscalls/link.S
yscalls/linkat.S
yscalls/lstat.S
yscalls/mkdir.S
yscalls/mknod.S
yscalls/mknodat.S
yscalls/readlink.S
yscalls/readlinkat.S
yscalls/rename.S
yscalls/rmdir.S
yscalls/stat.S
yscalls/symlink.S
yscalls/symlinkat.S
yscalls/unlink.S
yscalls/utimes.S
7f70c9b64eec4a4a86a3948966187ff8ee9fa720 13-Oct-2013 Serban Constantinescu <serban.constantinescu@arm.com> AArch64: Fix uses of stack size for 32/64bit libc builds

This patch fixes stack size uses to size_t.

Change-Id: I0671c85ddb1c1aceaf9440a7c73c21fe528653fa
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
ionic/_exit_with_stack_teardown.S
c7e9b2331771e5e87c34a8ee3dc6cc41d35b02fe 17-Oct-2013 Elliott Hughes <enh@google.com> Fix sigaction(3) for 64-bit.

Also clean up <signal.h> and revert the hacks that were necessary
for 64-bit in linker/debugger.cpp until now.

Change-Id: I3b0554ca8a49ee1c97cda086ce2c1954ebc11892
yscalls.mk
yscalls/__sigaction.S
yscalls/sigaction.S
103ccde8fe2f2c8abde914a8ba736b2e9cb8d20b 16-Oct-2013 Elliott Hughes <enh@google.com> Sort the syscalls.mk files, give all generated files the same header.

No non-comment changes to the .S files.

Change-Id: Iafcfd004c3ea92b64268f80ab16df615b97cefac
yscalls.mk
yscalls/__brk.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigpending.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigsuspend.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__statfs64.S
yscalls/__sys_clone.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/lgetxattr.S
yscalls/link.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlink.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
40d105ccb3e6283566ce54b693b3088f31aa4f26 16-Oct-2013 Elliott Hughes <enh@google.com> Switch sigpending over to rt_sigpending.

Change-Id: I7b28984796b5fb343cfbcc47e0afc3a84293d417
yscalls.mk
yscalls/__rt_sigpending.S
yscalls/sigpending.S
1f5af926fa626734981d6b4dcc0ab54e520032a9 16-Oct-2013 Elliott Hughes <enh@google.com> Fix sigsuspend to use rt_sigsuspend on all platforms.

Change-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b
yscalls.mk
yscalls/__rt_sigsuspend.S
yscalls/__sigsuspend.S
19e62325c268a668692e2b65fde2284079f369aa 15-Oct-2013 Elliott Hughes <enh@google.com> Clean up the sigprocmask/pthread_sigmask implementation.

Let's have both use rt_sigprocmask, like in glibc. The 64-bit ABIs
can share the same code as the 32-bit ABIs.

Also, let's test the return side of these calls, not just the
setting.

Bug: 11069919
Change-Id: I11da99f85b5b481870943c520d05ec929b15eddb
yscalls.mk
yscalls/sigprocmask.S
232163cf70712fe00436b70dd495f4cf405e9eab 10-Oct-2013 Elliott Hughes <enh@google.com> Clean up the cpuacct cruft.

Change-Id: I6ed63af8dfc2368e211420389fa8af4d5dc0908f
yscalls.mk
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setuid.S
2a0b873065edb304fa2d1c54f8de663ea638b8ab 09-Oct-2013 Elliott Hughes <enh@google.com> Fix __errno for LP64 and clean up __get_tls.

If __get_tls has the right type, a lot of confusing casting can disappear.

It was probably a mistake that __get_tls was exposed as a function for mips
and x86 (but not arm), so let's (a) ensure that the __get_tls function
always matches the macro, (b) that we have the function for arm too, and
(c) that we don't have the function for any 64-bit architecture.

Change-Id: Ie9cb989b66e2006524ad7733eb6e1a65055463be
ionic/__get_tls.c
86.mk
c4c6e192ac045c06f4aad3afc8e437baf67227b7 08-Oct-2013 Elliott Hughes <enh@google.com> pthread_exit should call __NR_exit with status 0.

We shouldn't have been passing the bottom 32 bits of the address used
for pthread_join to the kernel.

Change-Id: I487e5002d60c27adba51173719213abbee0f183f
ionic/_exit_with_stack_teardown.S
a97cc5b458048ddaa034489e4a4e55e9064aca2f 07-Oct-2013 Elliott Hughes <enh@google.com> Clean up the x86 and x86_64 _exit_with_stack_teardown implementations.

Change-Id: I4bcbbc53893612bd94643ef07722becb00f91792
ionic/_exit_with_stack_teardown.S
72645164b6840806d1681f48565bb3b54efc4628 05-Oct-2013 Elliott Hughes <enh@google.com> Add arch-x86_64/include/machine.

This is basically the other half of I5de76f6c46ac87779f207d568a86bb453e2414de
from Pavel Chupin <pavel.v.chupin@intel.com>, but taking the exact upstream
_types.h instead of the modified version. (I was confused when I suggested
otherwise.)

I've also cleaned up the internal_types.h situation; we weren't gaining
anything from these empty files, and there is no upstream internal_types.h
for x86_64.

Change-Id: I802a9a6a8df1c979e820659212c75a47c2ef392e
nclude/machine/internal_types.h
7e841ed688947855a3bd20d2b23a44599257038a 04-Oct-2013 Elliott Hughes <enh@google.com> Remove useless x86 fallbacks.

The NDK ABI requires that you support SSE2, and the build system won't let you
build with ARCH_X86_HAVE_SSE2 set to false. So let's stop pretending this
constant is actually a variable, and let's remove the corresponding dead code.

Also, the USE_SSE2 and USE_SSE3 macros are unused, so let's not bother
setting them.

Change-Id: I40b501d998530d22518ce1c4d14575513a8125bb
tring/bzero.S
tring/memset.S
tring/strlen.S
86.mk
b49c17c2bf1232e29bc390e58d6fa43688929aa5 02-Oct-2013 Pavel Chupin <pavel.v.chupin@intel.com> Move common arch-* code to arch-common directory

Will be helpful on adding x86_64

Change-Id: I96cf6fc7912c02f289c75f07ae0079c32d69173f
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
ionic/crtbegin.c
ionic/crtbegin_so.c
ionic/crtend.S
ionic/crtend_so.S
e4ffd9f2341f42c9281b4a93df76768580535edd 01-Oct-2013 Elliott Hughes <enh@google.com> Regenerate the system call stubs (to get x86_64).

This touches the x86 stubs too because arm, x86, and x86_64 now
all share the same header (at a source level), which causes a
reordering of the #include lines.

Change-Id: If9a1e2b2718bd41d8399fea748bce672c513ef84
yscalls/__brk.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__sys_clone.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/lgetxattr.S
yscalls/link.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendfile64.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/swapoff.S
yscalls/swapon.S
yscalls/symlink.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/truncate64.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
c0af6954262675856d6833ce7c256f0838326fd0 01-Oct-2013 Elliott Hughes <enh@google.com> Clean up some comments.

Copyright headers shouldn't contain the filename (and especially
shouldn't contain a different file's filename).

Change-Id: I82690a3bf371265402bc16f5d2fbb9299c3a1926
nclude/machine/kernel.h
d612165c6705379aa50144afc35aa40c16793728 26-Sep-2013 Elliott Hughes <enh@google.com> Make it easier to add syscalls for another architecture.

Much of the per-architecture duplication can be removed, so let's do so
before we add the 64-bit architectures.

Change-Id: Ieb796503c8e5353ea38c3bab768bb9a690c9a767
yscalls.mk
b4f7616fd618875768b8fffc122b58bdb84a9969 20-Sep-2013 Elliott Hughes <enh@google.com> Ensure we have the off64_t variant of every function that takes an off_t.

Change-Id: Ib2eee0cf13162be3b62559b84e90c6dcf5aab1c3
yscalls.mk
yscalls/sendfile64.S
yscalls/truncate64.S
3c4b50fd8cce143d9ba8f03a93f0fccba4e54d14 26-Jul-2013 Pavel Chupin <pavel.v.chupin@intel.com> Fix strchr for basic non-sse case on x86

Fix source location. Move declaration of __strchr_chk out of
ifdef __BIONIC_FORTIFY which should be available for strchr.cpp
compilation when __BIONIC_FORTIFY is not defined.

Change-Id: I552a6e16656e59b276b322886cfbf57bbfb2e6a7
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
86.mk
baa91f4f8974b6e9a81fa3aa49f051b3bf823653 26-Jun-2013 Alexander Ivchenko <alexander.ivchenko@intel.com> Add ssse3 implementation of __memcmp16.

__memcmp16 was missing in x86. Also added C-version for backward
compatibility. Added bionic test for __memcmp16 and for wmemcmp.

Change-Id: I33718441e7ee343cdb021d91dbeaf9ce2d4d7eb4
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
tring/ssse3-memcmp-atom.S
tring/ssse3-memcmp16-atom.S
tring/ssse3-wmemcmp-atom.S
86.mk
995f17e6a9a9903f03f542192da9a83b1cabc684 26-Jun-2013 Rom Lemarchand <romlem@google.com> Merge "libc: add swapon and swapoff syscalls"
64a4f6adf7c3f191cc819b5baa83dcb474aea2db 19-Apr-2013 Pavel Chupin <pavel.v.chupin@intel.com> Update x86 machine/endian.h from upstream

After download new version from upstream (OpenBSD 1.17) did the
following:
* changed all u_int* types to uint*
* add #include <sys/types.h>

All these changes are Android-specific and had been done before for
previous version (1.14).

Bug: http://code.google.com/p/android/issues/detail?id=54465
Change-Id: Ieb44e7fce4e794d997bb00ee0dd417fb61521720
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
nclude/machine/endian.h
d206b560e72e791b5dfeb339b5f7c18354bf95fd 06-Jun-2013 Rom Lemarchand <romlem@google.com> libc: add swapon and swapoff syscalls

Change-Id: Ie79dc8e3f2ff1cd427dd6d95e3850920c4b407b0
Signed-off-by: Rom Lemarchand <romlem@google.com>
yscalls.mk
yscalls/swapoff.S
yscalls/swapon.S
0a490665a3a287cd3aee1e7327f2381222c387c4 16-Jan-2012 Liubov Dmitrieva <liubov.dmitrieva@intel.com> bionic/x86: Optimization for string routines

Optimized strcpy, strcat,
strncpy, strncat, strlcpy, strlcat,
memchr, memrchr, strchr, strrchr, index,
strnlen, strlen, wcslen, wmemcmp, wcscmp,
wcschr, wcsrchr, wcscpy, wcscat

Change-Id: I82b29132edf9a2e144e0bb3ee4ff5217df8d2a6d
Signed-off-by: Liubov Dmitrieva <liubov.dmitrieva@intel.com>
tring/bcopy_wrapper.S
tring/bzero_wrapper.S
tring/cache.h
tring/cache_wrapper.S
tring/memcmp_wrapper.S
tring/memcpy_wrapper.S
tring/memmove_wrapper.S
tring/memset_wrapper.S
tring/sse2-bzero-atom.S
tring/sse2-index-atom.S
tring/sse2-memchr-atom.S
tring/sse2-memrchr-atom.S
tring/sse2-memset-atom.S
tring/sse2-memset5-atom.S
tring/sse2-strchr-atom.S
tring/sse2-strlen-atom.S
tring/sse2-strnlen-atom.S
tring/sse2-strrchr-atom.S
tring/sse2-wcschr-atom.S
tring/sse2-wcscmp-atom.S
tring/sse2-wcslen-atom.S
tring/sse2-wcsrchr-atom.S
tring/ssse3-bcopy-atom.S
tring/ssse3-memcmp-atom.S
tring/ssse3-memcmp3-new.S
tring/ssse3-memcpy-atom.S
tring/ssse3-memcpy5.S
tring/ssse3-memmove-atom.S
tring/ssse3-strcat-atom.S
tring/ssse3-strcmp-atom.S
tring/ssse3-strcmp-latest.S
tring/ssse3-strcpy-atom.S
tring/ssse3-strlcat-atom.S
tring/ssse3-strlcpy-atom.S
tring/ssse3-strncat-atom.S
tring/ssse3-strncmp-atom.S
tring/ssse3-strncpy-atom.S
tring/ssse3-wcscat-atom.S
tring/ssse3-wcscpy-atom.S
tring/ssse3-wmemcmp-atom.S
tring/strcmp_wrapper.S
tring/strlen_wrapper.S
tring/strncmp_wrapper.S
86.mk
e4c4ada5804beb689905286b9bbe6521a186d302 24-May-2013 Nick Kralevich <nnk@google.com> libc x86: Remove index.S, strcpy.S, strchr.S

These files are never used.

Change-Id: Iab8474bdff3bd4d225597c62b3c0f0849f808818
tring/index.S
tring/strchr.S
tring/strcpy.S
615684c2562ac663ad1849b7772e921b0ff724c3 24-May-2013 Nick Kralevich <nnk@google.com> libc: delete x86 memchr.S

This file is never used.

Change-Id: Ief08ad176713b5194048852609613801969e1364
tring/memchr.S
4200e6203aaa67c37874ad2b2271bff920297c7f 09-May-2013 Todd Poynor <toddpoynor@google.com> libc: add timerfd calls

(cherry-pick of 04c0ac14a49e0969333008a9522b64046d58fbdc.)

Change-Id: I06d0b6c2a8781602362b81f48faf1cca76b9ec05
yscalls.mk
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
4cdde5f12364079a2b55fa4fc4ed53364cb8465d 22-Mar-2013 Elliott Hughes <enh@google.com> Replace unnecessary x86 uses of <sys/linux-syscalls.h> with <asm/unistd.h>.

Change-Id: I9d016ee8e8329cccf244d27c336d9524348af996
ionic/_exit_with_stack_teardown.S
ionic/clone.S
ionic/futex_x86.S
ionic/syscall.S
5c2772f59d3b6f564897187324d8606f54423207 22-Mar-2013 Elliott Hughes <enh@google.com> The SYS_ constants should cover all __NR_ values.

<sys/linux-syscalls.h> only contains constants for the syscalls
we're generating stubs for. We want all the syscalls available
on the architecture in question.

Keep using <sys/linux-syscalls.h> on ARM for now because the
__NR_ARM_set_tls and __NR_ARM_cacheflush values aren't in <asm/unistd.h>.

Change-Id: I66683950d87d9b18d6107d0acc0ed238a4496f44
ionic/vfork.S
yscalls/__brk.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__sys_clone.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/lgetxattr.S
yscalls/link.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
8f7120bbacb0bb7a8aca1102f76f64a462f40231 22-Mar-2013 Kito Cheng <kito@0xlab.org> Drop unnecessary execution permission for .cpp/.c/.h

Change-Id: I9ac2b9d8f6bdb4fab8962210c5ec8f9c3e8c0ebf
ionic/__get_tls.c
ionic/__set_tls.c
ionic/__stack_chk_fail_local.h
ionic/crtbegin.c
ionic/crtbegin_so.c
17a8b0db63d54e9d79bf11112ace0c4fe9606289 21-Mar-2013 Elliott Hughes <enh@google.com> Expose wait4 as wait4 rather than __wait4.

This helps strace(1) compile with one fewer hack.

Change-Id: I5296d0cfec5546709cda990abd705ad33d7c4626
yscalls.mk
yscalls/__wait4.S
yscalls/wait4.S
ec706c24acb4d1db6a583a57b76adfb9250d39eb 13-Mar-2013 Elliott Hughes <enh@google.com> Merge "Use the kernel's MAX_ERRNO in the syscall stubs."
9aceab50155b17741faded1fb22e2daa51a07fb1 12-Mar-2013 Elliott Hughes <enh@google.com> Use the kernel's MAX_ERRNO in the syscall stubs.

Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Iaabf7025b153e96dc5eca231a33a32d4cb7d8116
yscalls/__brk.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__sys_clone.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__wait4.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/lgetxattr.S
yscalls/link.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/write.S
yscalls/writev.S
04954a43b362b8c817cc5859513efad0c344f412 26-Feb-2013 Christopher Ferris <cferris@google.com> Break bionic implementations into arch versions.

Move arch specific code for arm, mips, x86 into separate
makefiles.
In addition, add different arm cpu versions of memcpy/memset.

Bug: 8005082

Merge from internal master (acdde8c1cf8e8beed98c052757d96695b820b50c).

Change-Id: I04f3d0715104fab618e1abf7cf8f7eec9bec79df
86.mk
538f6fc202b07219ce78de54c0e05ab81e937154 22-Feb-2013 Elliott Hughes <enh@google.com> Stop advertising rindex(3), which is both deprecated and unimplemented.

Change-Id: I3c775d9974e49c3f76a53e46e022659657b89034
tring/rindex.S
tring/strrchr.S
11ebbc8437af208f64861b7531502ff0eeb30e03 22-Feb-2013 Nick Kralevich <nnk@google.com> libc: remove bcmp prototype

AFAIK, bionic only ever provided an implementation of bcmp
for x86, and even then, the code was never actually compiled.
Remove the prototype.

bcmp() has been obsoleted and replaced by memcmp()

Change-Id: I549d02ab6a9241a9acbbbfade0d98a9a02c2eaee
tring/bcmp.S
40eabe24e4e3ae8ebe437f1f4e43cf39cbba2e9e 15-Feb-2013 Elliott Hughes <enh@google.com> Fix the pthread_setname_np test.

Fix the pthread_setname_np test to take into account that emulator kernels are
so old that they don't support setting the name of other threads.

The CLONE_DETACHED thread is obsolete since 2.5 kernels.

Rename kernel_id to tid.

Fix the signature of __pthread_clone.

Clean up the clone and pthread_setname_np implementations slightly.

Change-Id: I16c2ff8845b67530544bbda9aa6618058603066d
ionic/clone.S
d2547040a13fe1bce31a60df35d4953c596a3db0 14-Feb-2013 Elliott Hughes <enh@google.com> ffs was not being built for x86.

Change-Id: I53e92273664a4d0a13536c2fa1aeb87e1f3cf4e8
tring/ffs.S
tring/fss.S
6719500dbd9330d7539d2db3dcf3e8ad1858c7aa 14-Feb-2013 Elliott Hughes <enh@google.com> Add a bunch more missing ENDs to assembler routines.

This isn't everything; I've missed out those x86 files that are

Change-Id: Idb7bb1a68796d6c0b70ea2b5c3300e49da6c62d2
ionic/_setjmp.S
ionic/futex_x86.S
ionic/setjmp.S
ionic/sigsetjmp.S
tring/bcmp.S
tring/bzero.S
tring/fss.S
tring/memchr.S
tring/memcmp.S
tring/memset.S
tring/strcat.S
tring/strcmp.S
tring/strcpy.S
tring/strlen.S
tring/strncmp.S
tring/swab.S
b6032515a058fb02c8c4152c9f055bb3bd462ae2 13-Feb-2013 Elliott Hughes <enh@google.com> Fix __pthread_clone and __bionic_clone error handling on x86.

Bug: 3461078
Change-Id: I93c151e27411211dd32717f206745c62c08c21ee
ionic/clone.S
bdff26df2749d8d66e5d4eb5a2ecf4a9ff50fad2 12-Feb-2013 Elliott Hughes <enh@google.com> Use ENTRY/END in custom x86 assembler too.

Change-Id: Ic2e482e5daff29c65d3b2ab0b2111c996bbc6226
ionic/__get_sp.S
ionic/_exit_with_stack_teardown.S
ionic/clone.S
ionic/futex_x86.S
ionic/syscall.S
ionic/vfork.S
5e3fc43ddeada547a155c6f561a12ff0b16e02d3 12-Feb-2013 Elliott Hughes <enh@google.com> Fix __pthread_clone on ARM to set errno on failure.

MIPS and x86 appear to have been correct already.

(Also fix unit tests that ASSERT_EQ with errno so that the
arguments are in the retarded junit order.)

Bug: 3461078
Change-Id: I2418ea98927b56e15b4ba9cfec97f5e7094c6291
ionic/clone.S
646e058136d59671d5d32d93bedbb71004a9ce73 07-Feb-2013 Elliott Hughes <enh@google.com> Fix x86 build, remove void* arithmetic.

Change-Id: Idc7f14af2e094ac33de315e808176237af063bb8
ionic/crtbegin.c
2f41531ff9f48dbdaf2ba711e14c669031728e99 07-Feb-2013 Elliott Hughes <enh@google.com> Merge "Clean up the argc/argv/envp/auxv handling."
42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6 07-Feb-2013 Elliott Hughes <enh@google.com> Clean up the argc/argv/envp/auxv handling.

There's now only one place where we deal with this stuff, it only needs to
be parsed once by the dynamic linker (rather than by each recipient), and it's
now easier for us to get hold of auxv data early on.

Change-Id: I6314224257c736547aac2e2a650e66f2ea53bef5
ionic/crtbegin.c
7582a9c119a4e4d0c306996b2513205889a9fb6c 07-Feb-2013 Elliott Hughes <enh@google.com> Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.

Also update the x86 asm.h to support this; we need it for libm assembler
anyway.

Also clean up the _FBSDID hack in <sys/cdefs.h>.

Change-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c
nclude/machine/asm.h
yscalls/__brk.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__fstatfs64.S
yscalls/__getcpu.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__sched_getaffinity.S
yscalls/__set_thread_area.S
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__sys_clone.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__wait4.S
yscalls/__waitid.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/eventfd.S
yscalls/execve.S
yscalls/faccessat.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/ftruncate64.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsid.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/getxattr.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/ioprio_get.S
yscalls/ioprio_set.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/lgetxattr.S
yscalls/link.S
yscalls/listen.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lseek.S
yscalls/lsetxattr.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munlockall.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/perf_event_open.S
yscalls/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/read.S
yscalls/readahead.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/removexattr.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setaffinity.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setxattr.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.S
yscalls/signalfd4.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/sysinfo.S
yscalls/tgkill.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/write.S
yscalls/writev.S
a0ee07829a9ba7e99ef68e8c12551301cc797f0f 31-Jan-2013 Elliott Hughes <enh@google.com> Upgrade libm.

This brings us up to date with FreeBSD HEAD, fixes various bugs, unifies
the set of functions we support on ARM, MIPS, and x86, fixes "long double",
adds ISO C99 support, and adds basic unit tests.

It turns out that our "long double" functions have always been broken
for non-normal numbers. This patch fixes that by not using the upstream
implementations and just forwarding to the regular "double" implementation
instead (since "long double" on Android is just "double" anyway, which is
what BSD doesn't support).

All the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.

Bug: 3169850
Bug: 8012787
Bug: https://code.google.com/p/android/issues/detail?id=6697
Change-Id: If0c343030959c24bfc50d4d21c9530052c581837
nclude/machine/_types.h
a6a3ac59243d8c95c94c3069e9332051f785c05f 30-Jan-2013 Elliott Hughes <enh@google.com> Use the NetBSD <sys/exec_elf.h>.

Replace a kernel header file dependency with files from NetBSD.
They're more complete, and ELF is ELF, whether you're on Linux or a BSD.

Bug: 7973611
Change-Id: I83ee719e7efdf432ec2ddbe8be271d05b2f558d7
nclude/machine/elf_machdep.h
a4b2dc016fa62bd172a73c3f8971c805700ffb0f 10-Jan-2013 Rom Lemarchand <romlem@google.com> Add signalfd call to bionic

Add signalfd() call to bionic.

Adding the signalfd call was done in 3 steps:
- add signalfd4 system call (function name and syscall
number) to libc/SYSCALLS.TXT
- generate all necessary headers by calling
libc/tools/gensyscalls.py. This patch is adding
the generated files since the build system
does not call gensyscalls.py.
- create the signalfd wrapper in signalfd.cpp and add
the function prototype to sys/signalfd.h

(cherry-pick of 0c11611c11f4dc1b6d43587b72c3ccbe8c51a51c, modified to
work with older versions of GCC still in use on some branches.)

Change-Id: I4c6c3f12199559af8be63f93a5336851b7e63355
yscalls.mk
yscalls/signalfd4.S
4fa35d8ae80c175425e9525831d7b6a71a3ada60 12-Dec-2012 Elliott Hughes <enh@google.com> Fix <endian.h> and <sys/endian.h>.

Previously we'd been relying on getting the machine-specific <endian.h>
instead of the top-level <endian.h>, and <sys/endian.h> was basically broken.
Now, with this patch and the previous patch we should have <endian.h>
and <sys/endian.h> behaving the same. This is basically how NetBSD's endian.h
works, and was probably how ours was originally intended to work.

Bug: http://code.google.com/p/android/issues/detail?id=39824
Change-Id: I71de5a507e633de166013a658b5764df9e1aa09c
nclude/endian.h
nclude/machine/endian.h
97b70b2bda47af46adf58dfde61050357114aa1f 30-Nov-2012 Elliott Hughes <enh@google.com> Merge "Replace .S version of x86 crtfiles with .c version"
20c4a3a8eee5ca8c87ae377732f541baffce1fda 28-Nov-2012 Pavel Chupin <pavel.v.chupin@intel.com> Replace .S version of x86 crtfiles with .c version

This patch replaces .S versions of x86 crtfiles with .c which are much
easier to support. Some of the files are matching .c version of Arm
crtfiles. x86 files required some cleanup anyway and this cleanup actually
led to matching Arm files.

I didn't change anything to share the same crt*.c between x86 and Arm. I
prefer to keep them separate for a while in case any change is required
for one of the arch, but it's good thing to do in the following patches.

Change-Id: Ibcf033f8d15aa5b10c05c879fd4b79a64dfc70f3
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
ionic/__dso_handle.S
ionic/__dso_handle_so.S
ionic/__stack_chk_fail_local.S
ionic/__stack_chk_fail_local.h
ionic/atexit.S
ionic/atexit.h
ionic/crtbegin.S
ionic/crtbegin.c
ionic/crtbegin_so.S
ionic/crtbegin_so.c
3975cec694a0c9b42e3f7e671fcd678da92836c3 30-Nov-2012 Elliott Hughes <enh@google.com> Remove (near-)duplicate definitions of size_t and ssize_t.

The near duplicates upset fussier compilers that insist that
typedefs be exactly the same, but the fix isn't to make all
copies identical...

Change-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9
nclude/machine/_types.h
b15c58bb0fe55f076751acd7a5d00ded0ec33963 27-Nov-2012 Elliott Hughes <enh@google.com> Clean up _BYTE_ORDER definitions for better x86 portability.

We'd manually hacked _BYTE_ORDER into the arm and mips "_types.h" headers,
but not into the x86 one. Judging by upstream, _BYTE_ORDER should be in
the "endian.h" headers instead, so let's uniformly do that.

I've also ironed out some of the other differences between the different
architectures' header files too.

Bug: http://code.google.com/p/android/issues/detail?id=39824
Change-Id: I19d3af7ffd74e1c02b1b6886aec0f0d11f44ab8d
nclude/endian.h
c1b44ecc5385e68e81667068e03b32c2084a85b1 17-Oct-2012 David 'Digit' Turner <digit@android.com> Revert "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>"

This creates build issues in the internal Android tree.
Will investigate later.

Original patch: https://android-review.googlesource.com/#/c/38875/

Change-Id: I12c5995ebf172890051af42a5d3b31014c9c5117
nclude/machine/signal.h
nclude/machine/ucontext.h
c124baaf29a948fd8b93e7f1fefc20b659271026 12-Jul-2012 David 'Digit' Turner <digit@android.com> libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>

This patch updates the C library headers to provide ucontext_t
definitions for three architectures.

+ Fix <signal.h> to always define 'struct sigcontext'.

The new declarations are announced with new macros defined in
<sys/cdefs.h> in order to make it easier to adapt client code
that already defines its own, incompatible, versions of the
structures seen here.

http://code.google.com/p/android/issues/detail?id=34784

Change-Id: Ie78c48690a4ce61c50593f6c39639be7fead3596
nclude/machine/signal.h
nclude/machine/ucontext.h
1ad05db9cef23c1ca28ffd51852fa2a0b0c9b4b7 06-Sep-2012 Elliott Hughes <enh@google.com> Add mlockall and munlockall for Google TV.

Change-Id: I10e961d701e74aab07211ec7975f61167e387853
yscalls.mk
yscalls/mlockall.S
yscalls/munlockall.S
1ad10a566e042676c95a0bdbf3cbc48e99ddafb2 29-Aug-2012 Irina Tirdea <irina.tirdea@intel.com> Add getsid system call to bionic

Add getsid() system call to bionic for
all architectures. This is needed for various tools
(e.g. perf).

Adding the getsid system call was done in 3 steps:
() add getsid system call (function name and syscall
number) to libc/SYSCALLS.TXT
() generate all necessary headers by calling
libc/tools/gensyscalls.py. This patch is adding
the generated files since the build system
does not call gensyscalls.py.
() add the system call signature to libc/include/unistd.h

Change-Id: Id69a257e13ec02e1a44085a6b217a3f19ab025b1
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
yscalls.mk
yscalls/getsid.S
c0b4d18d7d23981c1afa6a98ded011849a3c2fe2 29-Jun-2012 Kevin Schoedel <kevin.p.schoedel@intel.com> Use unambiguous mnemonics

Change-Id: I8da0af54cc3cbf69d9e485eb71bc44a6976b1adc
Author: Kevin P Schoedel <kevin.p.schoedel@intel.com>
Reviewed-by: Edwin Vane <edwin.vane@intel.com>
tring/ssse3-strcmp-latest.S
22d366cc09383956dc264ed4641572e609392eee 08-Aug-2012 Jin Wei <wei.a.jin@intel.com> enable clone system call for x86

Add __bionic_clone function for x86, which will be
used for clone system call.

Change-Id: I889dc9bf4b7ebb4358476e17e6f3233e26491f4d
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com>
Signed-off-by: Beare, Bruce J <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 51414
ionic/clone.S
e36c826f7a6580227e9e70f6ec70aa88ba0f577e 10-Aug-2012 Jeff Sharkey <jsharkey@android.com> Add unshare() syscall.

(cherry-pick of 5467f25f82934d611c60f8bc57a05114f3c1bea0.)

Bug: 6925012
Change-Id: Ic5ea2fbd606311087de05d7a3594df2fa9b2fef9
yscalls.mk
yscalls/unshare.S
7c92b6ca409f514e7ff67ac8c10d73ce92ff38d2 06-Aug-2012 Elliott Hughes <enh@google.com> Merge "Remove an awkward #include that is no longer upstream."
c164f2a9694fa8c373ec72d237ee16b412aa5c53 12-Apr-2012 Jin Wei <wei.a.jin@intel.com> bionic: modify syscall to use 6 registers to pass parameter.

Kernel allows to use 6 registers(exclude eax) to pass parameter.
But in syscall's implementation, it only uses five registers.
It will lead to error when 6 parameters passed.

Change-Id: I92d663194e6334c3847f0c0c257ca3b9dee0edef
Author: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com>
Signed-off-by: Beare, Bruce J <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 30838
ionic/syscall.S
bdcc14d721ddff57f9f71086a998feda05376b61 03-Aug-2012 Elliott Hughes <enh@google.com> Remove an awkward #include that is no longer upstream.

This was causing trouble in https://android-review.googlesource.com/#/c/37590/.

Change-Id: Ib7cb4fbaef6e9c1470c59f67d24bd24c7ce90bcc
nclude/machine/_types.h
405b8029a6888f386adf3512113a33546141d1c8 26-Jul-2012 Raghu Gandham <raghu@mips.com> MIPS support for libc.

Change-Id: I2864dea04b3faf2d919165dcaa600af5b16c41c8
Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Raghu Gandham <raghu@mips.com>
ionic/dl_iterate_phdr_static.c
9d40326830c2bd407427889c554adeb915ee6b4a 31-May-2012 Nick Kralevich <nnk@google.com> arm: rewrite crtbegin* as C files.

Rewrite
crtbegin.S -> crtbegin.c
crtbegin_so.S -> crtbegin_so.c

This change allows us to generate PIC code without relying
on text relocations.

As a consequence of this rewrite, also rewrite
__dso_handle.S -> __dso_handle.c
__dso_handle_so.S -> __dso_handle_so.c
atexit.S -> atexit.c

In crtbegin.c _start, place the __PREINIT_ARRAY__, __INIT_ARRAY__,
__FINI_ARRAY__, and __CTOR_LIST__ variables onto the stack, instead of
passing a pointer to the text section of the binary.

This change appears sorta wonky, as I attempted to preserve,
as much as possible, the structure of the original assembly.
As a result, you have C files including other C files, and other
programming uglyness.

Result: This change reduces the number of files with text-relocations
from 315 to 19 on my Android build.

Before:
$ scanelf -aR $OUT/system | grep TEXTREL | wc -l
315

After:
$ scanelf -aR $OUT/system | grep TEXTREL | wc -l
19

Change-Id: Ib9f98107c0eeabcb606e1ddc7ed7fc4eba01c9c4
ionic/__dso_handle.S
ionic/__dso_handle_so.S
83a73d1afe972014f6c8ff2520fe6d3357421f87 30-May-2012 Nick Kralevich <nnk@google.com> crtbegin: eliminate duplicate code

crtbegin_dynamic and crtbegin_static are essentially identical,
minus a few trivial differences (comments and whitespace).

Eliminate duplicates.

Change-Id: Ic9fae6bc9695004974493b53bfc07cd3bb904480
ionic/crtbegin.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
f2f7bf76dfd1d6014ed3baa1e27b221388e70a09 11-May-2012 Elliott Hughes <enh@google.com> am 4f05d1c7: Merge "bionic/x86: Optimization for memcpy"

* commit '4f05d1c758ba141c617f25251a661ecb66627e9e':
bionic/x86: Optimization for memcpy
c47703a521abab120100673d5281f71bc8ba9a49 13-Feb-2012 Jack Ren <jack.ren@intel.com> bionic/x86: Optimization for memcpy

Signed-off-by: Liubov Dmitrieva <liubov.dmitrieva@intel.com>
Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Wei A Jin <wei.a.jin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>

Conflicts:

libc/arch-x86/string/ssse3-memcpy5.S

Change-Id: I41e70d1d19d5457e65c89b64da452fbdaf3a00a7
tring/ssse3-memcpy5.S
5982e33aca9dde3ba7b2487c4866e52c667485fa 12-Nov-2011 Nick Kralevich <nnk@google.com> Cherry-pick "generate PIC code".

Change-Id: I7d5f2e5663df263493f65e364c959e663fc4d13a
tring/sse2-memset5-atom.S
tring/ssse3-memcpy5.S
f848321c4feb0a8b194a2148c3a9d6d65280f924 16-Apr-2012 Elliott Hughes <enh@google.com> resolved conflicts for merge of ef987656 to master

Change-Id: I3854de8f4cddaf344444efa6f9da027642a237d9
8ecb4770a0a046e753e16d51d31371b827d20cf1 16-Apr-2012 Elliott Hughes <enh@google.com> resolved conflicts for merge of 6b8fd054 to master

Change-Id: Ifc5a10d9c2f7764ad80d64cc552aad81d5fbf5eb
4994deaef51d5fa1ac12e6160b47d9cbe3b2bc43 16-Apr-2012 Elliott Hughes <enh@google.com> Merge "Bionic: Fix wrong prototype of system call clock_nanosleep"
d515ce465be909d830a39462c3f196b5d7f35c66 17-Apr-2012 Jack Ren <jack.ren@intel.com> Bionic: Fix wrong prototype of system call clock_nanosleep

In bionic/libc/SYSCALLS.TXT, the prototype of system call
clock_nanosleep is incorrect.

According to man page:
int clock_nanosleep(clockid_t clock_id, int flags,
const struct timespec *request,
struct timespec *remain);

Change-Id: Ic44c6db3d632293aa17998035554eacd664c2d57
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
yscalls/clock_nanosleep.S
41070dd15f2c5916dfc96da4c256dd04d7f9c837 17-Apr-2012 Jack Ren <jack.ren@intel.com> bionic: Fix wrong prototype of system call getresuid/getresgid

In bionic/libc/SYSCALLS.TXT, the prototypes of system call
getresuid/getresgid are incorrect.

According to man page, they should be:
int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);

Change-Id: I676098868bb05a9e1fe45419b234cf397626fdad
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
yscalls/getresgid.S
yscalls/getresuid.S
f0ec06ba609a15cf9343aabd5b2486f9a8af9adb 13-Apr-2012 Kenny Root <kroot@google.com> Add faccessat to syscall list

Change-Id: I427a18811089cb280769ac8da3ed8adc00a65a10
yscalls.mk
yscalls/faccessat.S
4e362f230b36596650feaa305bdf5f6af7b634f8 31-Mar-2012 Elliott Hughes <enh@google.com> am cd834618: am 63b14755: Merge "libc/x86: ensure the stack 16-byte aligned when tasks created"

* commit 'cd834618c4752b61d54ff4005a8baa8219b822e4':
libc/x86: ensure the stack 16-byte aligned when tasks created
63b14755512d515762cbe3ad8544c561a576f32e 30-Mar-2012 Elliott Hughes <enh@google.com> Merge "libc/x86: ensure the stack 16-byte aligned when tasks created"
cb08204053a285951b1907ef14a832f16a1a4679 21-Mar-2012 Jack Ren <jack.ren@intel.com> libc/x86: ensure the stack 16-byte aligned when tasks created

Currently Renderscript sample code RsBalls crashed on x86 when SSE2
enabled. The root cause is that the stack was not 16-byte aligned
from the beginning when the processes/threads were created, so the
RsBalls crashed when SSE2 instructions tried to access the variables
on the stack.

- For the thread created by fork():
Its stack alignment is determined by crtbegin_{dynamic, static}.S

- For the thread created by pthread_create():
Its stack alignment is determined by clone.S. __thread_entry( ) is
a standard C function. In order to have its stack be aligned with
16 byte properly, __thread_entry() needs the stack with following
layout when it is called:
layout #1 (correct)
--------------
| |
-------------- <--ESP (ECX - 20)
| ret EIP |
-------------- <--ECX - 16
| arg0 |
-------------- <--ECX - 12
| arg1 |
-------------- <--ECX - 8
| arg2 |
-------------- <--ECX - 4
| unused |
-------------- <--ECX (16-byte boundary)

But it has following layout for now:
layout #2: (incorrect)
--------------
| |
-------------- <--ESP (ECX - 16)
| unused |
-------------- <--ECX - 12
| arg0 |
-------------- <--ECX - 8
| arg1 |
-------------- <--ECX - 4
| arg2 |
-------------- <--ECX (16-byte boundary)

Fixed in this patch.

Change-Id: Ibe01f64db14be14033c505d854c73033556ddaa8
Signed-off-by: Michael Liao <michael.liao@intel.com>
Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
1a823691a21519014daf252691a314f0726d7c3a 13-Mar-2012 Ben Cheng <bccheng@google.com> Update kernel headers and add syscall "perf_event_open"

Change-Id: I43f12b727881df002a8524f2738586c043833bae
yscalls.mk
yscalls/perf_event_open.S
7dbbfac0fc7bbca072885185bf9bbee9e2e40e63 23-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am 5d8fd2a0: am a71aefc6: am d041bf20: Merge "bionic/x86: fix one potential deadlock in __set_tls()"

* commit '5d8fd2a0bc059cd07405a372c98617829f8ac378':
bionic/x86: fix one potential deadlock in __set_tls()
a71aefc66f6d4bf1302e0ce5c321aff1a2c769d1 23-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am d041bf20: Merge "bionic/x86: fix one potential deadlock in __set_tls()"

* commit 'd041bf2095f5f133c87f7ba632a8dfb39537a437':
bionic/x86: fix one potential deadlock in __set_tls()
c5393b23f6b7837d3b775e447573180fac4923fc 15-Dec-2011 Jin Wei <wei.a.jin@intel.com> bionic/x86: fix one potential deadlock in __set_tls()

Fix bug:
Currently the mutex lock _tls_desc_lock is not released
when __set_thread_area() fails. That will leads to the deadlock
when __set_tls( ) is called later on.

Change-Id: Iea3267cb0659971cba7766cbc3346f6924274f86
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/__set_tls.c
d6b58b03b8e046e0bd46d6d7e57290dcabe48860 13-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am 09049311: am cfff36df: am a60ff6c5: Merge "libc: Define new symbol visibility macros"

* commit '09049311a229c427f73e3e0ac873bf344b45aaf2':
libc: Define new symbol visibility macros
cfff36df2bebd95f2663b7b053c6308593c343dd 13-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am a60ff6c5: Merge "libc: Define new symbol visibility macros"

* commit 'a60ff6c5b2ca76181b387d8c10aee22a2cbcf840':
libc: Define new symbol visibility macros
5fbf2e09921723cfdea75e83c1fac2080f0ad564 23-Jan-2012 David 'Digit' Turner <digit@android.com> libc: Define new symbol visibility macros

This patch defines a few new macros that can be used to control the
visibility of symbols exported by the C library:

- ENTRY_PRIVATE() can be used in assembly sources to indicate
that an assembler function should have "hidden" visibility, i.e.
will never be exported by the C library's shared library.

This is the equivalent of using __LIBC_HIDDEN__ for a C function,
but ENTRY_PRIVATE() works like ENTRY(), and must be used with
END() to tag the end of the function.

- __LIBC_ABI_PUBLIC__ can be used to tag a C functions as being
part of the C library's public ABI. This is important for a
few functions that must be exposed by the NDK to maintain
binary compatibility.

Once a symbol has been tagged with this macro, it shall
*never* be removed from the library, even if it becomes
directly unused due to implementation changes
(e.g. __is_threaded).

- __LIBC_ABI_PRIVATE__ can be used for C functions that should
always be exported by the C library because they are used by
other libraries in the platform, but should not be exposed
by the NDK. It is possible to remove such symbols from the
implementation if all callers are also modified.

+ Add missing END() assembly macro for x86

Change-Id: Ia96236ea0dbec41d57bea634b39d246b30e5e234
nclude/machine/asm.h
73fa5fdaf9ec27741a17b0b793ff6890e6dcecd5 21-Jan-2012 Jean-Baptiste Queru <jbq@google.com> Merge 2f80f07d

Change-Id: Iff51b8530dbee01499ba4af0ecd6ab837c8c94fb
2f80f07d8106782ac94b05f529c8cbb1fd1c6f64 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am 23f56bbb: Merge "Add extended attribute (xattr) system call wrappers to bionic."

* commit '23f56bbb6ae053996dd821f29379aea0c7166055':
Add extended attribute (xattr) system call wrappers to bionic.
5eb686d105ebd7cea332fd1ef0bb3af9386e19f7 13-Jan-2012 Stephen Smalley <sds@tycho.nsa.gov> Add extended attribute (xattr) system call wrappers to bionic.

The xattr system calls are required for the SE Android userspace in
order to get and set file security contexts. In particular, libselinux
requires these calls.

Change-Id: I78f5eb3d8f3384aed0a5e7c6a6f001781d982017
yscalls.mk
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/fremovexattr.S
yscalls/fsetxattr.S
yscalls/getxattr.S
yscalls/lgetxattr.S
yscalls/listxattr.S
yscalls/llistxattr.S
yscalls/lremovexattr.S
yscalls/lsetxattr.S
yscalls/removexattr.S
yscalls/setxattr.S
023e5409df07a5d5ead6efb1825f6df92bcf50da 17-Jan-2012 Nick Kralevich <nnk@google.com> am 06f51ba1: am f44de270: add personality() system call.

* commit '06f51ba1af2fafeec7fdfcba5d635bd001a31b3e':
add personality() system call.
06f51ba1af2fafeec7fdfcba5d635bd001a31b3e 17-Jan-2012 Nick Kralevich <nnk@google.com> am f44de270: add personality() system call.

* commit 'f44de270bba32c9b1b5eff8a34be07b10ddff238':
add personality() system call.
f44de270bba32c9b1b5eff8a34be07b10ddff238 13-Jan-2012 Nick Kralevich <nnk@google.com> add personality() system call.

Change-Id: Ie899def8ea1d705930ed83adae1343c1353e7c57
yscalls.mk
yscalls/personality.S
6519c8124ee9f2b1ed341cc683b78cf26809678d 04-Jan-2012 Bruce Beare <bruce.j.beare@intel.com> am e30e9093: sreadahead: adding readahead system call into bionic libc

* commit 'e30e909363c5c706f394050d9cd00ce222caadbf':
sreadahead: adding readahead system call into bionic libc
e30e909363c5c706f394050d9cd00ce222caadbf 13-Jul-2011 Bruce Beare <bruce.j.beare@intel.com> sreadahead: adding readahead system call into bionic libc

Add bionic libc to support readahead system call.
This is needed to enable sreadahead to work.

Change-Id: I3856e1a3833db82e6cf42fd34af7631bd40cc723
Author: Winson Yung <winson.w.yung@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
yscalls.mk
yscalls/readahead.S
bec5dec947b1ad097c200888365a3ec61f9e7a28 30-Nov-2011 Jack Ren <jack.ren@intel.com> am 0c3d21e6: am e480fc83: bionic: fix pthread_{create, exit}/signal race condition

* commit '0c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb':
bionic: fix pthread_{create, exit}/signal race condition
338a06f4bcb12c4418e66a6c3210a236259c1bf8 30-Nov-2011 Jack Ren <jack.ren@intel.com> am 621df526: am 31e72bc3: bionic: fix __get_tls( ) crash issue

* commit '621df52644cc19001688c0964ad425c5ed6c8990':
bionic: fix __get_tls( ) crash issue
e480fc83b2887388d469eb3bf58c86c610f5b082 21-Sep-2011 Jack Ren <jack.ren@intel.com> bionic: fix pthread_{create, exit}/signal race condition

(1) in pthread_create:
If the one signal is received before esp is subtracted by 16 and
__thread_entry( ) is called, the stack will be cleared by kernel
when it tries to contruct the signal stack frame. That will cause
that __thread_entry will get a wrong tls pointer from the stack
which leads to the segment fault when trying to access tls content.

(2) in pthread_exit
After pthread_exit called system call unmap(), its stack will be
freed. If one signal is received at that time, there is no stack
available for it.

Fixed by subtracting the child's esp by 16 before the clone system
call and by blocking signal handling before pthread_exit is started.

Author: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/clone.S
31e72bc3289acdd85b0b745fbf64c5949ca33432 01-Aug-2011 Jack Ren <jack.ren@intel.com> bionic: fix __get_tls( ) crash issue

When running the stress test of pthread create/destroy, a crash may
oocur in __get_tls(). That is caused by the race condition with __set_tls( ):

Author: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/__set_tls.c
de44d0b2bd32a2c2cc5e2ffb64f8356efd893bca 22-Nov-2011 David 'Digit' Turner <digit@google.com> Merge "libc: provide atomic operations will full barriers for NDK apps."
10c8ce59a40a1d8ae8f49145eca365b364aabe58 19-Nov-2011 Jeff Brown <jeffbrown@google.com> Add tgkill syscall.

Use tgkill instead of tkill to implement pthread_kill.
This is safer in the event that the thread has already terminated
and its id has been reused by a different process.

Change-Id: Ied715e11d7eadeceead79f33db5e2b5722954ac9
yscalls.mk
yscalls/tgkill.S
0fec6b9d88ee5a9e359b2208038f9806c0804538 16-Nov-2011 David 'Digit' Turner <digit@google.com> libc: provide atomic operations will full barriers for NDK apps.

__atomic_cmpxchg and other related atomic operations did not
provide memory barriers, which can be a problem for non-platform
code that links against them when it runs on multi-core devices.

This patch does two things to fix this:

- It modifies the existing implementation of the functions
that are exported by the C library to always provide
full memory barriers. We need to keep them exported by
the C library to prevent breaking existing application
machine code.

- It also modifies <sys/atomics.h> to only export
always-inlined versions of the functions, to ensure that
any application code compiled against the new header will
not rely on the platform version of the functions.

This ensure that said machine code will run properly on
all multi-core devices.

This is based on the GCC built-in sync primitives.

The end result should be only slightly slower than the
previous implementation.

Note that the platform code does not use these functions
at all. A previous patch completely removed their usage in
the pthread and libstdc++ code.

+ rename arch-arm/bionic/atomics_arm.S to futex_arm.S
+ rename arch-x86/bionic/atomics_x86.S to futex_x86.S
+ remove arch-x86/include/sys/atomics.h which already
provided inlined functions to the x86 platform.

Change-Id: I752a594475090cf37fa926bb38209c2175dda539
ionic/atomics_x86.S
ionic/futex_x86.S
nclude/sys/atomics.h
0aa8289c6fddda6502fa97c8789341f1462c4224 12-Nov-2011 Nick Kralevich <nnk@google.com> generate PIC code.

Change-Id: I6740c30e2782ae203aa7ddaeaf3b233e90de9c4d
tring/sse2-memset5-atom.S
tring/ssse3-memcpy5.S
3dc94305e4eb243747248b43954c499ddc96638d 05-Aug-2011 David Turner <digit@android.com> am 17a40ffb: am c57fd963: Merge "NDK: x86 header file has incorrect definition for ptrdiff_t"

* commit '17a40ffbf0e12ee44a024a9bb37434388478b478':
NDK: x86 header file has incorrect definition for ptrdiff_t
c57fd963817afa8894af49d6c98a80d8f9100937 05-Aug-2011 David Turner <digit@android.com> Merge "NDK: x86 header file has incorrect definition for ptrdiff_t"
c3c0e88beda2abee4380237bbc7aa95da588c00d 05-Aug-2011 Mark D Horn <mark.d.horn@intel.com> NDK: x86 header file has incorrect definition for ptrdiff_t

See Bug http://code.google.com/p/android/issues/detail?id=19042

Change-Id: I8e975930e7f8c3c437ecdffbc6f6bc5028937829
Signed-off-by: Mark D Horn <mark.d.horn@intel.com>
nclude/machine/_types.h
951e8381916464243c7601fdb41e941811aa3773 05-Aug-2011 David Turner <digit@android.com> am 3906a9c1: am f5aa1382: Merge "x86 libc: Fix the range to check the error"

* commit '3906a9c16b971c2689e1b8ae5455feec8cf7353c':
x86 libc: Fix the range to check the error
f5aa1382ec7592c58827ed0822c77cb5bf8df165 05-Aug-2011 David Turner <digit@android.com> Merge "x86 libc: Fix the range to check the error"
a64990f3f25c45fcfe79b9b71cf54d7045af0e4f 04-Aug-2011 David 'Digit' Turner <digit@android.com> am f03fb955: am 023c4988: Merge "libc: x86: Fixed size_t definition."

* commit 'f03fb955a92bdcc341aaa1b4a6eb2d81bc844e06':
libc: x86: Fixed size_t definition.
d265046dcc4e081bd5fc9e6eb3f38c42ab07920e 04-Aug-2011 David 'Digit' Turner <digit@android.com> libc: x86: Fixed size_t definition.

This patch changes the declaration of size_t on x86 targets
to test for the __ANDROID__ macro, instead of ANDROID

__ANDROID__ should be a builting toolchain macro, while ANDROID
is usually added manually during the build.

Testing against __ANDROID__ allows us to use the header when
using the NDK's standalone x86 toolchain.

This is related to http://code.google.com/p/android/issues/detail?id=19011
The bug was already fixed in the NDK platform headers, this simply updates
the C library one accordingly.

Change-Id: Ie038c4c8b37b7d24e2e4ae4d7a63371b69c9a51e
nclude/machine/_types.h
b489666086265eb756f11fd224137c7e3a03a707 23-Jun-2011 David Turner <digit@android.com> am 1c0a0381: Merge "Enable functional DSO object destruction"

* commit '1c0a0381dfb3648ffadef9537ec9383d63d62473':
Enable functional DSO object destruction
39640842823ba4cd42bd11514c0da39aa939519f 20-Jun-2011 Bruce Beare <bruce.j.beare@intel.com> Enable functional DSO object destruction

Unfortunately, legacy .so files for ARM don't have a correct crtbegin file.
Consequently, we have to grandfather the old __dso_handle behaviour.
Add some ifdefs for ARM to allow it to use the old code until we can work
out a transition.

Change-Id: I6a28f368267d792c94e1d985d8344023bc632f6f
Author: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/atexit.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
5288fee835a6e52d7870b3ee3320a5a3ddb96f34 17-Jun-2011 Jun Nakajima <jun.nakajima@intel.com> x86 libc: Fix the range to check the error

The spec says "A value in the range between -4095 to -1 indicates an error" (not -129).
This was pointed out in the comment in 22039.

Change-Id: I11b7c45015a9e4ccf09aed5364a889437eab6ab8
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
ionic/syscall.S
204d1f65dbfc6d5a14a90627d9d1efcfce8261ee 06-Jun-2011 David Turner <digit@android.com> am b2c7e0c1: Merge "x86: Enable -fstack-protector"

* commit 'b2c7e0c18b7ab04cfe306277c79165de0612a2d1':
x86: Enable -fstack-protector
a57270b6ab2978764920ade17448f94875249001 06-Jun-2011 David Turner <digit@android.com> am 56baceca: Merge "Update X86 Bionic CRT files for unwind/exceptions"

* commit '56baceca024f1cc2a5e8ef8c5e7ba7ea463d1ae2':
Update X86 Bionic CRT files for unwind/exceptions
e0b4844a20ffd022a568abb4203b3f7c759c7ff5 04-May-2011 Bruce Beare <bruce.j.beare@intel.com> x86: Enable -fstack-protector

Change-Id: Ib69514c3afcb4c1f5e5f3f8cd91acfd145a0866c
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/__stack_chk_fail_local.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
dc3bc87b43d0d73d89cca59692b80de878e11a5d 26-Apr-2011 Mark D Horn <mark.d.horn@intel.com> Update X86 Bionic CRT files for unwind/exceptions

Several updates to Bionic crt*.o files to implement Linux/x86
stack unwind/exception handling.
Mark __dso_handle as hidden.
Note: Requires complete rebuild due to CRT changes. Google will
need to regenerate and check-in all the prebuilt x86 CRT object
files and libraries which link to them.

Change-Id: I191ce1afb0dee7bbc28dcd9694e5919226dbd070
Signed-off-by: Bruce J Beare <bruce.j.beare@intel.com>
Signed-off-by: Mark D Horn <mark.d.horn@intel.com>
Author: Lu, Hongjiu <hongjiu.lu@intel.com>
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/crtend_so.S
2b434862fdc595f1488f2ab3b13ed40f2aed6edb 11-Apr-2011 David Turner <digit@android.com> am 2b10d912: am fcee105b: Merge "x86 libc: fix the wrong return value of syscall"

* commit '2b10d912cc5a566818ff68f9af192033d8f8b2a9':
x86 libc: fix the wrong return value of syscall
8488efaa0913f8484cbfdb61180e47bc19fff5d8 28-Mar-2011 Kan-Ru Chen <kanru@0xlab.org> x86 libc: fix the wrong return value of syscall

According to Intel ABI spec, there is no need to save %eax, %ecx, %edx
on the stack. Worse, popping %eax will wipe out the return value.

Change-Id: Ida536c3b98174b8deef88f8f3b9352eaaeb7c0c0
ionic/syscall.S
b130f00493f6ae3b2343e1caac002de528a45e41 25-Mar-2011 Ken Sumrall <ksumrall@android.com> am ae2d5ba3: Add support for the utimensat(2) syscall to bionic.

* commit 'ae2d5ba31412c4f382ef405000baa866f35dd736':
Add support for the utimensat(2) syscall to bionic.
ae2d5ba31412c4f382ef405000baa866f35dd736 18-Mar-2011 Ken Sumrall <ksumrall@android.com> Add support for the utimensat(2) syscall to bionic.

The kernel has supported this syscall for quite some time now,
but bionic did not. Now that there is a need for it, let's
add it to bionic.

Change-Id: Ifcef3e46f1438d79435b600c4e6063857ab16903
yscalls.mk
yscalls/utimensat.S
48e1feaa9d7d7f36b5eba25baccd99a56adf9b64 27-Jan-2011 Bruce Beare <bruce.j.beare@intel.com> Updated gcc 4.4.3 IA toolchain doesn't require the .ctors list

Change-Id: Ia840a19a45257128eccdcf25d105f500f2d90741
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/crtend_so.S
f4680b57eda711058e7d68b3075c78b9be8dcaf0 27-Jan-2011 Bruce Beare <bruce.j.beare@intel.com> Remove an extra register move.

Change-Id: I63c217b73203b44b1a2e74950b58f2ec12989cab
Author: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/clone.S
0f2001b1478ae1e10be4418e96aa20874eda3af2 27-Jan-2011 Bruce Beare <bruce.j.beare@intel.com> Replace __atomic_XXX with GCC __sync_XXX intrinsics.

Change-Id: I14f275392fcd70cc15e307470e0a099777c7c09e
Author: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ionic/atomics_x86.S
nclude/sys/atomics.h
3c56ce497d1ea3baa6406c49be82c1245fda2443 26-Dec-2010 Bruce Beare <bruce.j.beare@intel.com> use consistent guards for off_t and size_t defines for IA

Change-Id: Ie92b7597883c99e7f4101f4cf5e0ad267b4ee706
nclude/machine/_types.h
ce6c1d6184b76bbaee65d91dd715c771fd1a4652 26-Dec-2010 Bruce Beare <bruce.j.beare@intel.com> Simplify variable typing for IA builds

Change-Id: I065e5176b3a15bd74ba832f8827b4a4e4837b0f7
nclude/endian.h
53c3e86fae4be95499f9f9340a26a462212bffad 29-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am 3d302be4: Merge "android-x86: add sigsetjmp.S"

* commit '3d302be485bc2f62a889fac85e386c9b8775eb59':
android-x86: add sigsetjmp.S
18635d9c173120f6f97dd9b035b6f9a1ebfcd1a3 14-Dec-2010 Chih-Wei Huang <cwhuang@linux.org.tw> android-x86: add sigsetjmp.S

It adds two functions sigsetjmp and siglongjmp
that fix compiling errors in bluetooth and mksh.

Copy directly from sigsetjmp.S of OpenBSD.

Change-Id: I4696f82ee6f85d1c93cbdd3c9e40f4917d50f3a6
ionic/sigsetjmp.S
95d751feacdb58d3fbc36f3f21a895a3ec2f065b 16-Dec-2010 David 'Digit' Turner <digit@google.com> libc: Add ftruncate64 and improve 64-bit parameter syscall handling.

This patch improves the handling of 64-bit parameters in syscalls on ARM.
The ARM EABI mandates that 64-bit quantities be passed in even/odd register
pairs, which requires special treatment.

This allows us to simplify our implementations of pread() and pwrite()
and remove the C stubs for pread64() and pwrite64().

Also add ftruncate64() to <unistd.h>

Change-Id: I407e2fd223ba0093dd2d0b04c6152fadfc9ce3ef

Bug 3107933
yscalls.mk
yscalls/__pread64.S
yscalls/__pwrite64.S
yscalls/ftruncate64.S
yscalls/pread64.S
yscalls/pwrite64.S
72e6fd42421dca80fb2776a9185c186d4a04e5f7 03-Dec-2010 David 'Digit' Turner <digit@google.com> <sched.h>: Add sched_getcpu() and cpu_set_t

This adds the cpu_set_t type definition and related functions
and macros used to handle CPU thread affinity.

sched_getcpu()
sched_setaffinity()
sched_getaffinity()

Change-Id: If382ecafde8926341a88478062b275553645065b
yscalls.mk
yscalls/__getcpu.S
yscalls/__sched_getaffinity.S
yscalls/sched_setaffinity.S
82775ae0acf7cac647c057c80fbcc7f13d0554d3 15-Oct-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 347db52a to gingerbread-plus-aosp

Change-Id: I706a5158e781cbbc00344a72badca1543bcbca15
124a542aa4d78040176f65b28f4958540b5d89aa 11-Oct-2010 Bruce Beare <brucex.j.beare@intel.com> Update ATOM string routines to latest

Change-Id: I22a600e7f172681cfd38ff73a64e3fd07b284959
Signed-off-by: Lu, Hongjiu <hongjiu.lu@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
tring/memcmp_wrapper.S
tring/sse2-memset5-atom.S
tring/sse2-strlen-atom.S
tring/ssse3-memcmp3-new.S
tring/ssse3-memcmp3.S
tring/ssse3-memcpy5.S
tring/ssse3-strcmp-latest.S
tring/ssse3-strcmp.S
tring/strcmp_wrapper.S
tring/strlen_wrapper.S
tring/strncmp_wrapper.S
686af0b3a5978356be3b1a97187c765d63f11623 28-Sep-2010 repo sync <digit@google.com> resolved conflicts for merge of defd1622 to gingerbread-plus-aosp

Conflicts:
libc/arch-arm/syscalls/eventfd.S
libc/include/sys/eventfd.h
libc/include/sys/linux-syscalls.h

Change-Id: I02f6e9536aa5478322240c199ff4c2f4367922d0
a511f245614d8e6c7700df624e13a41a084ad7e4 28-Sep-2010 David 'Digit' Turner <digit@google.com> am 9973a564: libc: Add missing waitid() implementation.

Merge commit '9973a564222b842eb7497fd6e659fe8c8c49e2b3' into gingerbread-plus-aosp

* commit '9973a564222b842eb7497fd6e659fe8c8c49e2b3':
libc: Add missing waitid() implementation.
defd162212de3789d2268a1f3339c2a6097fa825 26-Sep-2010 David 'Digit' Turner <digit@google.com> libc: add <sys/eventfd.h> and corresponding implementations.

Change-Id: Ide040884c456190226e580513099fdb8377e015b
yscalls.mk
yscalls/eventfd.S
052fbd88080c88b7f568612dcac7579092c2e3d9 28-Sep-2010 David 'Digit' Turner <digit@google.com> am a3ae60d3: libc: Add missing fdatasync() implementation

Merge commit 'a3ae60d343661784e3f6f4566b276d8e6b8a06a7' into gingerbread-plus-aosp

* commit 'a3ae60d343661784e3f6f4566b276d8e6b8a06a7':
libc: Add missing fdatasync() implementation
9973a564222b842eb7497fd6e659fe8c8c49e2b3 27-Sep-2010 David 'Digit' Turner <digit@google.com> libc: Add missing waitid() implementation.

Change-Id: I312ee608dbf9249e4886a10d45d13e3cda8a9042
yscalls.mk
yscalls/__waitid.S
yscalls/waitid.S
a3ae60d343661784e3f6f4566b276d8e6b8a06a7 27-Sep-2010 David 'Digit' Turner <digit@google.com> libc: Add missing fdatasync() implementation

Change-Id: I04bb655d77e414021e1f2a973329167ad76ca1c4
yscalls.mk
yscalls/fdatasync.S
914528cdc90dced0c07055d4d986e68adc8da60c 28-Sep-2010 David 'Digit' Turner <digit@google.com> am 223ddfcf: Merge "libc: Add missing pipe2() declaration and implementation." into gingerbread

Merge commit '223ddfcfc4cb354641e70da31a60556248db5036' into gingerbread-plus-aosp

* commit '223ddfcfc4cb354641e70da31a60556248db5036':
libc: Add missing pipe2() declaration and implementation.
275cd48511daabe4591caa49c3ad0df34a6889ff 27-Sep-2010 David 'Digit' Turner <digit@google.com> libc: Add missing pipe2() declaration and implementation.

Change-Id: Iacb914bd6ac5adc60c5671e6fef680ede21f9b0c
yscalls.mk
yscalls/pipe2.S
611793d6abcf504544d6ebccb8c46da06464b701 09-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Ia22080192681c2ac596582d6cfdac732b1ff4c9f
ab8b54101eed0a4b92ebf8fa6994cd1b4f22d8f4 09-Jul-2010 David 'Digit' Turner <digit@google.com> libc: fix fstatfs() implementation.

The syscall expects the size of the buffer as the second argument.

Change-Id: I99ede2fec7fcd385ca03ff022c2cffa4297bea8d
yscalls.mk
yscalls/__fstatfs64.S
yscalls/fstatfs.S
16984423bc67cd334d74b585bac2c01e44583624 25-Jun-2010 Bruce Beare <brucex.j.beare@intel.com> Fix missing NL

Change-Id: Ic210fe9f740b9a8235a66d479ad4eddc869998bb
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
ionic/clone.S
3b43f87d2949a340e2c19cb735af7727157d8274 02-Jul-2010 David 'Digit' Turner <digit@android.com> Allow dlclose() to properly call static C++ destructors.

With this patch _and_ an upcoming build/ patch, the destruction
of static C++ objects contained in shared libraries will happen
properly when dlclose() is called.

Note that this change introduces crtbegin_so.S and crtend_so.S which
are currently ignored by the build system.

+ move definition of __dso_handle to the right place
(before that, all shared libraries used the __dso_handle
global variable from the C library).

Note that we keep a 'weak' __dso_handle in aeabi.c to avoid
breaking the build until the next patch to build/core/combo/
appears. We will be able to remove that later.

+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)

NOTE: The NDK will need to be modified to enable this feature in
the shared libraries that are generated through it.

Change-Id: I99cd801375bbaef0581175893d1aa0943211b9bc
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
6a9b888d7c4b246f6f66360789c72b754ff85021 18-Jun-2010 David 'Digit' Turner <digit@google.com> Allow static C++ destructors to be properly called on dlclose().

With this patch, _and_ an upcoming build/ patch, the destruction
of static C++ objects contained in shared libraries will happen
properly when dlclose() is called.

Note that this change introduces crtbegin_so.S and crtend_so.S which
are currently ignored by the build system.

+ move definition of __dso_handle to the right place
(before that, all shared libraries used the __dso_handle
global variable from the C library).

Note that we keep a 'weak' __dso_handle in aeabi.c to avoid
breaking the build until the next patch to build/core/combo/
appears. We will be able to remove that later.

+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)

Change-Id: Ie771aa204e3acbdf02fd30ebd4150373a1398f39
NOTE: The NDK will need to be modified to enable this feature in
the shared libraries that are generated through it.
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
aa4b1d042927872224e4bf5d22e4db5367e389fa 20-May-2010 David 'Digit' Turner <digit@google.com> Add missing sysinfo() implementation (already declared in <sys/sysinfo.h>) - DO NOT MERGE

Change-Id: Iac4eb5911ffe4a7ab72b84df44e907685ac816af
yscalls.mk
yscalls/sysinfo.S
5ffedb22c856ae5731324b43832ab3f5309683f2 31-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I076e0df8656fdf58c229cc9a168cd6d8e16b6d8e
87ae0da81716d61f556b1ee456a6764a1f635e55 29-Mar-2010 David Turner <digit@android.com> Merge "Atom optimized string and memory routines"
62ac0dc457bddf7472f7be1e9895b1aee20f35cf 29-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I96d2cd063f084fd17116bf7ee08fa7109a3c1ceb
8ff1a2759a6389bed30d7862d0beb76077032c99 04-Mar-2010 Bruce Beare <brucex.j.beare@intel.com> Atom optimized string and memory routines

Change-Id: I27b68bb28551c75c9ac84bb9730e2cd8254d8991
tring/bcopy_wrapper.S
tring/bzero_wrapper.S
tring/cache_wrapper.S
tring/memcmp_wrapper.S
tring/memcpy_wrapper.S
tring/memmove_wrapper.S
tring/memset_wrapper.S
tring/sse2-memset5-atom.S
tring/ssse3-memcmp3.S
tring/ssse3-memcpy5.S
tring/ssse3-strcmp.S
tring/strcmp_wrapper.S
tring/strncmp_wrapper.S
58f0326362ca0f5fc17cbc19fd9217cabf0d93dd 11-Mar-2010 Bruce Beare <brucex.j.beare@intel.com> Android hack for size_t

Change-Id: I3c967fca60f542459dc17be84da47b3b6a26242b
nclude/machine/_types.h
377d4c979dee3dcb5929e8f7a68a53c2407259ab 22-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I70266ee8c520b216773f267e46c8273d2334c31d
88f06cd84a70f8a5212cb03272ec2c7cf0017afa 19-Mar-2010 David 'Digit' Turner <digit@google.com> Use private futexes for pthread_mutex_t.

This does not change the implementation of conditional variables
since we're waiting for other system components to properly use
pthread_condattr_init/setpshared before that.

Also remove an obsolete x86 source file.

Change-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7
ionic/atomics_x86.S
ionic/atomics_x86.c
8641833b62e3b319796dc80ea16eb1592c05edf6 11-Mar-2010 Fabrice Di Meglio <fdimeglio@google.com> Revert "bionic: pthread: use private futexes by default for mutexes and condvars"

This reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.
ionic/atomics_x86.c
ba9c6f0989ae94778ba2b9f597adc827c9dc81e8 11-Mar-2010 David 'Digit' Turner <digit@google.com> bionic: pthread: use private futexes by default for mutexes and condvars

Private futexes are a recent kernel addition: faster futexes that cannot be
shared between processes. This patch uses them by default, unless the PROCESS_SHARED
attribute flag is used when creating a mutex and/or conditional variable.

Also introduces pthread_condattr_init/destroy/setpshared/getpshared.

Change-Id: I3a0e2116f467072b046524cb5babc00e41057a53
ionic/atomics_x86.c
3c543e1da9a2780a70b25299f39734bf0a18c4a0 04-Mar-2010 Bruce Beare <brucex.j.beare@intel.com> x86 syscall system call implementation
ionic/syscall.S
9f6915631b918a56e0e6be958fb14d274cbab322 02-Mar-2010 Mike Chan <mike@android.com> bonic: libc: cpuacct support for setuid functions

Any of the setuid functions now updates /acct/uid/ with its own tid
before changing users. This is so we can properly account for cpu time
per uid.

Change-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4
Signed-off-by: Mike Chan <mike@android.com>
yscalls.mk
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setuid.S
eb9d5ed3477ef8cd9ccfa424ea585541ea3af84a 25-Feb-2010 Andrei Popescu <andreip@google.com> add sigaltstack syscall
yscalls.mk
yscalls/sigaltstack.S
75c5e25ae3615c34f4bcc7dcbe9b29e548e26b9c 24-Feb-2010 San Mehat <san@google.com> bionic: syscalls: Add ioprio_set/ioprio_get syscall wrappers

Signed-off-by: San Mehat <san@google.com>
yscalls.mk
yscalls/ioprio_get.S
yscalls/ioprio_set.S
97cf7f3394780d524038fc083e2c134031b54728 23-Jan-2010 David 'Digit' Turner <digit@google.com> Implement clone() C library function properly.

Only provide an implementation for ARM at the moment, since
it requires specific assembly fragments (the standard syscall
stubs cannot be used because the child returns in a different
stack).
ionic/clone.S
yscalls.mk
yscalls/__clone.S
yscalls/__sys_clone.S
3a654b1e04d4275ae315cfe1b196998acf10052c 03-Jun-2009 David 'Digit' Turner <digit@google.com> Revert "Fix the C library initialization to avoid calling static C++ constructors twice."

This reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
03eabfe65e1e2c36f4d26c78a730fa19a3bdada3 28-May-2009 David 'Digit' Turner <digit@google.com> Fix the C library initialization to avoid calling static C++ constructors twice.

The problem was due to the fact that, in the case of dynamic executables,
the dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY
constructors when loading shared libraries and dynamic executables,
*before* calling the executable's entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c)
which in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c

The latter did call these constructors array again, mistakenly.

The patch also updates the documentation of many related functions.

Also adds a new section to linker/README.TXT explaining restrictions on
C library usage.

The patch has been tested on a Dream for stability issues with
proprietary blobs:

- H264 decoding works
- Camera + Video recording works
- GPS works
- Sensors work

The tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been
run and shows the static C++ constructor being called only once.
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ionic/__get_sp.S
ionic/__get_tls.c
ionic/__set_tls.c
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_x86.S
ionic/atomics_x86.c
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/crtend_so.S
ionic/dl_iterate_phdr_static.c
ionic/setjmp.S
ionic/vfork.S
nclude/endian.h
nclude/machine/_types.h
nclude/machine/asm.h
nclude/machine/cdefs.h
nclude/machine/exec.h
nclude/machine/ieee.h
nclude/machine/internal_types.h
nclude/machine/kernel.h
nclude/machine/limits.h
nclude/machine/setjmp.h
tring/bcmp.S
tring/bcopy.S
tring/bzero.S
tring/fss.S
tring/index.S
tring/memchr.S
tring/memcmp.S
tring/memcpy.S
tring/memmove.S
tring/memset.S
tring/rindex.S
tring/strcat.S
tring/strchr.S
tring/strcmp.S
tring/strcpy.S
tring/strlen.S
tring/strncmp.S
tring/strrchr.S
tring/swab.S
yscalls.mk
yscalls/__brk.S
yscalls/__clone.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__pread64.S
yscalls/__ptrace.S
yscalls/__pwrite64.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__set_thread_area.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__wait4.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/execve.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/flock.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fstatfs.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/link.S
yscalls/listen.S
yscalls/lseek.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/pipe.S
yscalls/poll.S
yscalls/prctl.S
yscalls/read.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/utimes.S
yscalls/waitid.S
yscalls/write.S
yscalls/writev.S
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ionic/__get_sp.S
ionic/__get_tls.c
ionic/__set_tls.c
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_x86.S
ionic/atomics_x86.c
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/crtend_so.S
ionic/dl_iterate_phdr_static.c
ionic/setjmp.S
ionic/vfork.S
nclude/endian.h
nclude/machine/_types.h
nclude/machine/asm.h
nclude/machine/cdefs.h
nclude/machine/exec.h
nclude/machine/ieee.h
nclude/machine/internal_types.h
nclude/machine/kernel.h
nclude/machine/limits.h
nclude/machine/setjmp.h
tring/bcmp.S
tring/bcopy.S
tring/bzero.S
tring/fss.S
tring/index.S
tring/memchr.S
tring/memcmp.S
tring/memcpy.S
tring/memmove.S
tring/memset.S
tring/rindex.S
tring/strcat.S
tring/strchr.S
tring/strcmp.S
tring/strcpy.S
tring/strlen.S
tring/strncmp.S
tring/strrchr.S
tring/swab.S
yscalls.mk
yscalls/__brk.S
yscalls/__clone.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__fork.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__pread64.S
yscalls/__ptrace.S
yscalls/__pwrite64.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__set_thread_area.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/__wait4.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/connect.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/execve.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/flock.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fstatfs.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/link.S
yscalls/listen.S
yscalls/lseek.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/pipe.S
yscalls/poll.S
yscalls/prctl.S
yscalls/read.S
yscalls/readlink.S
yscalls/readv.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/setsockopt.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/shutdown.S
yscalls/sigaction.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/utimes.S
yscalls/waitid.S
yscalls/write.S
yscalls/writev.S
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ionic/__get_tls.c
ionic/__set_tls.c
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_x86.S
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_so.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/crtend_so.S
ionic/dl_iterate_phdr_static.c
ionic/setjmp.S
ionic/vfork.S
nclude/machine/asm.h
nclude/machine/kernel.h
yscalls.mk
yscalls/__fork.S
yscalls/__pread64.S
yscalls/__pwrite64.S
yscalls/__timer_create.S
yscalls/__timer_delete.S
yscalls/__timer_getoverrun.S
yscalls/__timer_gettime.S
yscalls/__timer_settime.S
yscalls/accept.S
yscalls/bind.S
yscalls/connect.S
yscalls/fork.S
yscalls/getitimer.S
yscalls/getpeername.S
yscalls/getsockname.S
yscalls/getsockopt.S
yscalls/listen.S
yscalls/recvfrom.S
yscalls/recvmsg.S
yscalls/sendmsg.S
yscalls/sendto.S
yscalls/setsockopt.S
yscalls/shutdown.S
yscalls/socket.S
yscalls/socketpair.S
yscalls/timer_create.S
yscalls/timer_delete.S
yscalls/timer_getoverrun.S
yscalls/timer_gettime.S
yscalls/timer_settime.S
yscalls/vfork.S
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ionic/__get_sp.S
ionic/__get_tls.c
ionic/__set_tls.c
ionic/atomics_x86.c
nclude/endian.h
nclude/machine/_types.h
nclude/machine/asm.h
nclude/machine/cdefs.h
nclude/machine/exec.h
nclude/machine/ieee.h
nclude/machine/internal_types.h
nclude/machine/limits.h
nclude/machine/setjmp.h
tring/bcmp.S
tring/bcopy.S
tring/bzero.S
tring/fss.S
tring/index.S
tring/memchr.S
tring/memcmp.S
tring/memcpy.S
tring/memmove.S
tring/memset.S
tring/rindex.S
tring/strcat.S
tring/strchr.S
tring/strcmp.S
tring/strcpy.S
tring/strlen.S
tring/strncmp.S
tring/strrchr.S
tring/swab.S
yscalls/__brk.S
yscalls/__clone.S
yscalls/__fcntl.S
yscalls/__fcntl64.S
yscalls/__getcwd.S
yscalls/__getpriority.S
yscalls/__ioctl.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__open.S
yscalls/__openat.S
yscalls/__ptrace.S
yscalls/__reboot.S
yscalls/__rt_sigaction.S
yscalls/__rt_sigprocmask.S
yscalls/__rt_sigtimedwait.S
yscalls/__set_thread_area.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__wait4.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/_waitpid.S
yscalls/access.S
yscalls/acct.S
yscalls/capget.S
yscalls/capset.S
yscalls/chdir.S
yscalls/chmod.S
yscalls/chown.S
yscalls/chroot.S
yscalls/clock_getres.S
yscalls/clock_gettime.S
yscalls/clock_nanosleep.S
yscalls/clock_settime.S
yscalls/close.S
yscalls/delete_module.S
yscalls/dup.S
yscalls/dup2.S
yscalls/epoll_create.S
yscalls/epoll_ctl.S
yscalls/epoll_wait.S
yscalls/execve.S
yscalls/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/flock.S
yscalls/fork.S
yscalls/fstat.S
yscalls/fstatat.S
yscalls/fstatfs.S
yscalls/fsync.S
yscalls/ftruncate.S
yscalls/futex.S
yscalls/getdents.S
yscalls/getegid.S
yscalls/geteuid.S
yscalls/getgid.S
yscalls/getgroups.S
yscalls/getpgid.S
yscalls/getpid.S
yscalls/getppid.S
yscalls/getresgid.S
yscalls/getresuid.S
yscalls/getrlimit.S
yscalls/getrusage.S
yscalls/gettid.S
yscalls/gettimeofday.S
yscalls/getuid.S
yscalls/init_module.S
yscalls/inotify_add_watch.S
yscalls/inotify_init.S
yscalls/inotify_rm_watch.S
yscalls/kill.S
yscalls/klogctl.S
yscalls/lchown.S
yscalls/link.S
yscalls/lseek.S
yscalls/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mount.S
yscalls/mprotect.S
yscalls/mremap.S
yscalls/msync.S
yscalls/munlock.S
yscalls/munmap.S
yscalls/nanosleep.S
yscalls/pause.S
yscalls/pipe.S
yscalls/poll.S
yscalls/prctl.S
yscalls/read.S
yscalls/readlink.S
yscalls/readv.S
yscalls/rename.S
yscalls/renameat.S
yscalls/rmdir.S
yscalls/sched_get_priority_max.S
yscalls/sched_get_priority_min.S
yscalls/sched_getparam.S
yscalls/sched_getscheduler.S
yscalls/sched_rr_get_interval.S
yscalls/sched_setparam.S
yscalls/sched_setscheduler.S
yscalls/sched_yield.S
yscalls/select.S
yscalls/sendfile.S
yscalls/setgid.S
yscalls/setgroups.S
yscalls/setitimer.S
yscalls/setpgid.S
yscalls/setpriority.S
yscalls/setregid.S
yscalls/setresgid.S
yscalls/setresuid.S
yscalls/setreuid.S
yscalls/setrlimit.S
yscalls/setsid.S
yscalls/settimeofday.S
yscalls/setuid.S
yscalls/sigaction.S
yscalls/sigpending.S
yscalls/sigprocmask.S
yscalls/stat.S
yscalls/symlink.S
yscalls/sync.S
yscalls/timer_create.S
yscalls/timer_delete.S
yscalls/timer_getoverrun.S
yscalls/timer_gettime.S
yscalls/timer_settime.S
yscalls/times.S
yscalls/tkill.S
yscalls/truncate.S
yscalls/umask.S
yscalls/umount2.S
yscalls/uname.S
yscalls/unlink.S
yscalls/unlinkat.S
yscalls/utimes.S
yscalls/vfork.S
yscalls/waitid.S
yscalls/write.S
yscalls/writev.S