00008263782e484020420c606f7d145fe7d0a4d8 |
11-Sep-2014 |
Elliott Hughes <enh@google.com> |
Add posix_fadvise(3). Bug: 12449798 Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
yscalls/__arm_fadvise64_64.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
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_tid_address.S
yscalls/__set_tls.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/cacheflush.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/vfork.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
rm.mk
ionic/__get_sp.S
|
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_tid_address.S
yscalls/__set_tls.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/cacheflush.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/vfork.S
yscalls/vmsplice.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
|
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)
yscalls/vfork.S
|
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
|
c999f76977d2389a3e2dcbdd98f20d93c3193727 |
11-Jul-2014 |
Elliott Hughes <enh@google.com> |
Enable building libc with clang. Bug: 16218205 Change-Id: I024de2044fe016412c7bead22c264e96be4cb39c
rm.mk
ionic/__aeabi.c
ionic/eabi.c
|
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
rm.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
rm.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
rm.mk
ionic/memcmp16.S
|
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
rm.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
yscalls/vfork.S
|
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
|
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
|
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
rm.mk
ionic/futex_arm.S
yscalls/futex.S
|
8a405b027a9c8b3a614016f4824a03fa252e9e1e |
28-May-2014 |
Christopher Ferris <cferris@google.com> |
Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
|
52f74322b1d72d57146107f32ee2c76c421bf4b1 |
28-May-2014 |
Narayan Kamath <narayan@google.com> |
Merge "Revert "Lose the hand-written futex assembler.""
|
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
rm.mk
ionic/futex_arm.S
yscalls/futex.S
|
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>
rm.mk
|
1c4d83012fea4e6d011215bef1665cf68d2ac47c |
24-May-2014 |
Christopher Ferris <cferris@google.com> |
Merge "Revert "Add optimized AArch64 versions of bcopy and wmemmove based on memmove""
|
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
rm.mk
|
78c3e11e78e7d2643ec25e2be1cfc258aeb6d9d7 |
24-May-2014 |
Christopher Ferris <cferris@google.com> |
Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
|
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>
rm.mk
|
8df0fe0c74b7af819f36e37ec9b924fdd22c8ba4 |
24-May-2014 |
Ben Cheng <bccheng@google.com> |
Clear link register in __bionic_clone. Since __bionic_clone uses tail-call to invoke __bionic_clone_entry, at runtime the unwinder will reach the stack of the clone() function, which belongs to the parent thread, if the link register is not cleared. BUG: 14270816 Change-Id: Ia3711c87f8b619debe73748c28b9fb8691ea698e
ionic/__bionic_clone.S
|
ced906c849704f379d7191822f6d74993d4fa296 |
23-May-2014 |
Elliott Hughes <enh@google.com> |
Lose the hand-written futex assembler. Also stop exporting 'futex'. Bug: 12250341 Change-Id: Icc4fa4296cd04dfe0d1061822c69e2eb40c3433a
rm.mk
ionic/futex_arm.S
yscalls/futex.S
|
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_arm.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."
|
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
|
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
|
afb89c2a01089bb247456634a15a58f111bb55a6 |
20-May-2014 |
Christopher Ferris <cferris@google.com> |
Merge "denver: optimize memmove"
|
6c80ccdeed9d9b30e961f68229fe8171d79c5d14 |
12-May-2014 |
Shu Zhang <chazhang@nvidia.com> |
denver: optimize memmove Optimize 32-bit denver memmove with reversal memcpy. Change-Id: Iaad0a9475248cdd7e4f50d58bea9db1b767abc88
rm.mk
ortex-a15/cortex-a15.mk
ortex-a9/cortex-a9.mk
enver/bionic/memmove.S
enver/denver.mk
eneric/generic.mk
rait/krait.mk
|
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>
rm.mk
|
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
rm.mk
|
6a45fe98727f9ee39386d39fa18eea69c706bc9e |
19-Apr-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Fix for libgcc compat generation script. Taking into account possibility that external symbol could have been an OBJECT instead of function. b/14090368 Change-Id: Iac173d2dd1309ed53024306578137c26b1dbbf15
ionic/libgcc_compat.c
|
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
|
4bd97cee28dd815fff54fc97560be60d566c1fa5 |
11-Apr-2014 |
Elliott Hughes <enh@google.com> |
Switch to gdtoa. This gives us a real strtold for LP64 and fixes various LP64 bugs. Bug: 13563801 Change-Id: I277858d718ee746e136b6b6308a495ba50dfa488
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
|
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
|
d8fe15fdb6581b6920a4be75731337edbac64b11 |
31-Mar-2014 |
Christopher Ferris <cferris@google.com> |
Merge "add 32-bit bionic implementation for denver arch"
|
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
|
5b5d6e7045dece4e112553e9a2516240ea32f812 |
12-Mar-2014 |
Shu Zhang <chazhang@nvidia.com> |
add 32-bit bionic implementation for denver arch Add 32-bit bionic implementation for denver. Use denver version of memcpy/ memset. Use Cortex-A15 version of strlen/strcat/strcpy/strcmp. Change-Id: I4c6b675f20cf41a29cadf70a11d1635d7df5b30a
rm.mk
enver/bionic/__strcat_chk.S
enver/bionic/__strcpy_chk.S
enver/bionic/memcpy.S
enver/bionic/memcpy_base.S
enver/bionic/memset.S
enver/denver.mk
|
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
rm.mk
eneric/generic.mk
|
b8dc9bbd905f762bae9845274b1053da1c084860 |
20-Feb-2014 |
Elliott Hughes <enh@google.com> |
Stop asking GCC to cause trouble. Why do we see so many bogus strict-aliasing warnings? Because we asked GCC to cause trouble on arm and mips. Change-Id: I25d7fd036b6afff7ccfa799abe0dc1579ead2847
rm.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/__get_sp.S
ionic/_setjmp.S
ionic/abort_arm.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/memcpy.a9.S
ionic/setjmp.S
ionic/sigsetjmp.S
ionic/strcmp.S
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a15/bionic/strcat.S
ortex-a15/bionic/strcmp.S
ortex-a15/bionic/strcpy.S
ortex-a15/bionic/strlen.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcat.S
ortex-a9/bionic/strcmp.S
ortex-a9/bionic/strcpy.S
ortex-a9/bionic/strlen.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
eneric/bionic/strcmp.S
eneric/bionic/strcpy.S
nclude/machine/asm.h
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
rait/bionic/strcmp.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/abort_arm.S
ionic/setjmp.S
ionic/sigsetjmp.S
|
bfa2b6fc6a09df9815773890db94d6a126565289 |
20-Feb-2014 |
Elliott Hughes <enh@google.com> |
Merge "Stop advertising an arm32-specific hack like it's a build system feature."
|
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
rm.mk
|
adab51aefdd00b65d631f64e6e313713d7dd9564 |
20-Feb-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Added script generating additions to libgcc_compat.c from linker errors bug: 12234455 Change-Id: Icac35237f06e75745da5a91d9c4c941d7df4f84d
ionic/libgcc_compat.c
|
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
rm.mk
ortex-a15/cortex-a15.mk
ortex-a9/cortex-a9.mk
eneric/generic.mk
rait/krait.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
rm.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
|
62ffe14a7e6b30c2740ed695f64aee73c57f9962 |
25-Jan-2014 |
Ben Cheng <bccheng@google.com> |
Add all implicitly loaded symbols from libgcc.a into libgcc_compat.c. Change-Id: I0e66a73e849a01817d016a688d7291c2fb604e48
ionic/libgcc_compat.c
|
f38fb19d9d2b1aa5b4f22f772c81efacb990c94b |
24-Jan-2014 |
Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> |
Re-export libgcc's __aeabi_uidivmod and __popcount_tab This is required to make the Nexus 10 graphics driver work on a system compiled with gcc 4.9. Change-Id: If3f3d488652a736d9ea3e583548d74fae3ffa902 Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
ionic/libgcc_compat.c
|
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
|
54a7494f17f80d6c548a58434bcb5579a26cc125 |
04-Jan-2014 |
Elliott Hughes <enh@google.com> |
Regenerate the NOTICE files. Also standardize the orthography in a few places to reduce near-duplicates in the NOTICE files. Change-Id: I347c75e817be61ec1b9c5b4b96226feedc8d09ab
ionic/atexit_legacy.c
|
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_arm.S
|
e3fb66dd0161902099af0fd381d14cda03368800 |
20-Dec-2013 |
Ben Cheng <bccheng@google.com> |
Add __popcountsi2 to the function compat list. This is needed if we use Clang to compile Bionic, which won't include __popcountsi2 anymore as Clang generates inline instructions. However prebuilt binary blobs still depend on libc.so to resolve __popcountsi2. Change-Id: I9001a3884c4be250c0ceebcd79922783fae1a0b7
ionic/libgcc_compat.c
|
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
|
c54ca40aef48009e7b0e5b2b3069aad62ffd3453 |
13-Dec-2013 |
Elliott Hughes <enh@google.com> |
Clean up some ARMv4/ARMv5 cruft. Change-Id: I29e836fea4b53901e29f96c6888869c35f6726be
ionic/memcmp16.S
ionic/memcpy.S
ionic/strcmp.S
eneric/bionic/memcpy.S
eneric/bionic/strcmp.S
eneric/bionic/strcpy.S
eneric/bionic/strlen.c
nclude/machine/cpu-features.h
nclude/machine/endian.h
|
ed45970ac5a182e512669cfa5c15b9f4fa783ad7 |
03-Dec-2013 |
Christopher Ferris <cferris@google.com> |
Add cfi directives to all arm assembly. Since the ENTRY/END macros now have .cfi_startproc/.cfi_endproc, most of the custom arm assembly has no unwind information. Adding the proper cfi directives for these and removing the arm directives. Update the gensyscalls.py script to add these cfi directives for the generated assembly. Also fix the references to non-uapi headers to the proper uapi header. In addition, remove the kill.S, tkill.S, tgkill.S for arm since they are not needed at all. The unwinder (libunwind) is able to properly unwind using the normal abort. After this change, I can unwind through the system calls again. Bug: 11559337 Bug: 11825869 Bug: 11321283 Change-Id: I18b48089ef2d000a67913ce6febc6544bbe934a3
rm.mk
ionic/__bionic_clone.S
ionic/abort_arm.S
ionic/kill.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/setjmp.S
ionic/syscall.S
ionic/tgkill.S
ionic/tkill.S
yscalls.mk
yscalls/__epoll_pwait.S
yscalls/__llseek.S
yscalls/__mmap2.S
yscalls/__ppoll.S
yscalls/__pselect6.S
yscalls/__waitid.S
yscalls/fchownat.S
yscalls/fsetxattr.S
yscalls/futex.S
yscalls/getsockopt.S
yscalls/kill.S
yscalls/linkat.S
yscalls/lsetxattr.S
yscalls/mount.S
yscalls/perf_event_open.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.S
yscalls/readahead.S
yscalls/recvfrom.S
yscalls/sendto.S
yscalls/setsockopt.S
yscalls/setxattr.S
yscalls/tgkill.S
yscalls/tkill.S
|
f00c938c7f5887981d724bf2dd9989ee0af08332 |
22-Nov-2013 |
The Android Open Source Project <initial-contribution@android.com> |
Merge commit '811b0cdb2d6e4a697dbc63a678712759dd0db242' into HEAD Change-Id: I786944f80fb1a2d502fed51dc2c391ed5db66761
|
507cfe2e10a6c4ad61b9638820ba10bfe881a18c |
19-Nov-2013 |
Christopher Ferris <cferris@google.com> |
Add .cfi_startproc/.cfi_endproc to ENTRY/END. Bug: 10414953 Change-Id: I711718098b9f3cc0ba8277778df64557e9c7b2a0
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a15/bionic/memset.S
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcmp.S
nclude/machine/asm.h
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
rait/bionic/memset.S
rait/bionic/strcmp.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
rm.mk
ionic/__bionic_clone.S
ionic/clone.S
yscalls.mk
yscalls/__clone.S
|
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
ionic/clone.S
ionic/kill.S
ionic/syscall.S
ionic/tgkill.S
ionic/tkill.S
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_tls.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/cacheflush.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/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/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/vfork.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
rm.mk
ionic/ffs.S
|
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/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
|
b2386fed555d63417af9a4db5c4d9d8f3f22441e |
17-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 4346bd9f: am bffe261a: Merge "Sort the syscalls.mk files, give all generated files the same header." * commit '4346bd9fbcfe4144df7ac0e920bdda274d523fc4': Sort the syscalls.mk files, give all generated files the same header.
|
6b9321b85875dd8938d0a5064ea3e9fdebe5c623 |
17-Oct-2013 |
Elliott Hughes <enh@google.com> |
am d6e117b6: am 1f29c2f5: Merge "Switch sigpending over to rt_sigpending." * commit 'd6e117b64bdfbf8d793eb59ea9604b806608ec75': Switch sigpending over to rt_sigpending.
|
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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/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/unlink.S
yscalls/unlinkat.S
yscalls/unshare.S
yscalls/utimensat.S
yscalls/utimes.S
yscalls/vfork.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
|
afaebc3fefe93cbfbaead60212dab7b99bae9d7a |
16-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 87fc78de: am 608c65f6: Merge "Fix sigsuspend to use rt_sigsuspend on all platforms." * commit '87fc78de6c869d0403ccdd2e756ec1f5d456f3d3': Fix sigsuspend to use rt_sigsuspend on all platforms.
|
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
|
f2a760dca7e728bd6f7942dece1bb6aefe4821ed |
16-Oct-2013 |
Elliott Hughes <enh@google.com> |
am a85606e1: am c100a100: Merge "\'Avoid confusing "read prevented write" log messages\' 2." * commit 'a85606e1563c2153bea3c73dfe4ca1588e778f22': 'Avoid confusing "read prevented write" log messages' 2.
|
68b67113a44311b3568027af5893e316f63ec556 |
16-Oct-2013 |
Elliott Hughes <enh@google.com> |
'Avoid confusing "read prevented write" log messages' 2. This time it's assembler. Change-Id: Iae6369833b8046b8eda70238bb4ed0cae64269ea
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
|
289c460c55fdf50c03e8711de077d2db67346d9b |
16-Oct-2013 |
Christopher Ferris <cferris@google.com> |
am ac6bc319: Remove new aligned memcpy path for cortex-a15. * commit 'ac6bc31942e58c8893c0695d9766d0f3e39335fe': Remove new aligned memcpy path for cortex-a15.
|
ac6bc31942e58c8893c0695d9766d0f3e39335fe |
15-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Remove new aligned memcpy path for cortex-a15. For some reason the new cortex-a15 memcpy code from ARM is really bad for really large copies. This change forces us to go down the old path for all copies. All of my benchmarks show the new version is faster for large copies, but something is going on that I don't understand. Bug: 10838353 Change-Id: I01c16d4a2575e76f4c69862c6f78fd9024eb3fb8
ortex-a15/bionic/memcpy_base.S
|
d77ff4f423c5b8235914d67af5b5ff450f8a2f95 |
15-Oct-2013 |
Christopher Ferris <cferris@google.com> |
am 76d78dc0: am dc9d8d05: Merge "Modify prefetch for krait memcpy." * commit '76d78dc0441ba982438ef613a8d6f2f65c6834e0': Modify prefetch for krait memcpy.
|
4681f8244ee6fd3aec5a5c62e604e2a429d0d00f |
15-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 5b3f1d8b: am 22b83da4: Merge "Clean up the sigprocmask/pthread_sigmask implementation." * commit '5b3f1d8b3a6a1caf059dc376e4967a27ddd57dac': Clean up the sigprocmask/pthread_sigmask implementation.
|
dc9d8d050a43e1cd32f1337e79187124bb15d938 |
15-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Merge "Modify prefetch for krait memcpy."
|
c3c58fb560fcf1225d4bfb533ba41add8de910e4 |
15-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Modify prefetch for krait memcpy. I originally modified the krait mainloop prefetch from cacheline * 8 to * 2. This causes a perf degradation for copies bigger than will fit in the cache. Fixing this back to the original * 8. I tried other multiples, but * 8 is th sweet spot on krait. Bug: 11221806 Change-Id: I1f75fad6440f7417e664795a6e7b5616f6a29c45
rait/bionic/memcpy_base.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
|
2d38f0c1c7ccb123a9a71dcabeb3650d8f5832b7 |
10-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 21d70d5f: am 39385aa7: Merge "Clean up the cpuacct cruft." * commit '21d70d5fd8ff2823a6879d59c7d5a8d6c3e0ce8b': Clean up the cpuacct cruft.
|
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
|
1cdc9fe6d58b477385de0f60725a355de2151706 |
10-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 8826ba8a: am bc545e8a: Merge "Fix x86_64 build, clean up intermediate libraries." * commit '8826ba8ab6922927bdac2466d2903916d5806a06': Fix x86_64 build, clean up intermediate libraries.
|
eb847bc8666842a3cfc9c06e8458ad1abebebaf0 |
10-Oct-2013 |
Elliott Hughes <enh@google.com> |
Fix x86_64 build, clean up intermediate libraries. The x86_64 build was failing because clone.S had a call to __thread_entry which was being added to a different intermediate .a on the way to making libc.so, and the linker couldn't guarantee statically that such a relocation would be possible. ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against '__thread_entry' which may overflow at runtime; recompile with -fPIC This patch addresses that by ensuring that the caller and callee end up in the same intermediate .a. While I'm here, I've tried to clean up some of the mess that led to this situation too. In particular, this removes libc/private/ from the default include path (except for the DNS code), and splits out the DNS code into its own library (since it's a weird special case of upstream NetBSD code that's diverged so heavily it's unlikely ever to get back in sync). There's more cleanup of the DNS situation possible, but this is definitely a step in the right direction, and it's more than enough to get x86_64 building cleanly. Change-Id: I00425a7245b7a2573df16cc38798187d0729e7c4
ionic/atexit_legacy.c
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
|
42b618cffef4b91bd11633c3ee95659d4fc41943 |
09-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 58b8f225: am 5cf1f229: Merge "pthread_exit should call __NR_exit with status 0." * commit '58b8f2256637c5b1e24b568b699fb3aa6cf0ca96': pthread_exit should call __NR_exit with status 0.
|
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
|
9258c7b23edbc761bf4a5cec2f57f83574d6aec6 |
05-Oct-2013 |
Elliott Hughes <enh@google.com> |
am b7d77a9e: am 56777421: Merge "Add arch-x86_64/include/machine." * commit 'b7d77a9eb1effd5f0472dff14a8fe77d9da2c7a2': Add arch-x86_64/include/machine.
|
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
|
7909bd19ab471a087fc802a15ac11cc4e3bdc68e |
04-Oct-2013 |
Nick Kralevich <nnk@google.com> |
am 9da8b682: am c417d0a5: Merge "Make error messages even better!" * commit '9da8b6829cb8febb70af46761b7f2ca19e6498ce': Make error messages even better!
|
6861c6f85e6563695c4763e56756398c9d5f6e14 |
04-Oct-2013 |
Nick Kralevich <nnk@google.com> |
Make error messages even better! Change-Id: I72bd1eb1d526dc59833e5bc3c636171f7f9545af
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
|
be7b6408b383f4d2ba5a696a3fc64275d11b1c14 |
04-Oct-2013 |
Elliott Hughes <enh@google.com> |
am 6d923d49: am 14102932: Merge "Move common arch-* code to arch-common directory" * commit '6d923d497373c160f6fdddd42f5ed56e7bf0923a': Move common arch-* code to arch-common directory
|
141029327cdc62629e248b3be1d7a58d4e9e5ba8 |
04-Oct-2013 |
Elliott Hughes <enh@google.com> |
Merge "Move common arch-* code to arch-common directory"
|
1a086a52d30930893bfc6b2826127120f6482bec |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
am 270c52da: am 1fe477fc: Merge "Add dependencies on included makefiles." * commit '270c52da0db68c6961eb576b67adc0c41c418763': Add dependencies on included makefiles.
|
d7a632948d5b3128cc536a2c4db3124b4fa57a80 |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Add dependencies on included makefiles. Bug: 11050594 Merge from internal master. (cherry-picked from f389284e86bbcbdb257d7388a17fde007113b0d6) Change-Id: I2b3e38329a09d26c16870906f9ed1257e2a9dbc8
rm.mk
|
bdc610aba53feafe130b749c3cbffc36d6a70d1b |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
am dc7f8ddc: am 6088047a: Merge "Remove dead files." * commit 'dc7f8ddc227e833b889eb1eedc16b9b5827fc127': Remove dead files.
|
fc4d70fe54b8199560ce1426fff697a7234bf2d9 |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Remove dead files. memcpy.a15.S/strcmp.a15.S files were submitted by ARM for use as the basis for the memcpy/strcmp implementations in cortex-a15. memset.S was moved in to the generic directory. NOTE: memcpy.a9.S was submitted by Linaro to be the basis for the memcpy for cortex-a9/cortex-a15 but has not been incorporated yet. Bug: 10971279 Merge from internal master. (cherry-picked from 48fc3e8b9fe7241ecf8ad61248247986742f05b6) Change-Id: I8f9297578990d517f004e4e8840e2b2cbd5a47d8
ionic/memcpy.a15.S
ionic/memset.S
ionic/strcmp.a15.S
|
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/atexit.h
ionic/crtbegin.c
ionic/crtbegin_so.c
ionic/crtend.S
ionic/crtend_so.S
|
de7ed18df0f22e1b91bc16072956af8a0d9abaa3 |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
am 0292c1c8: am 3901b1bd: Merge "Remove the __ARM_FEATURE_DSP check." * commit '0292c1c81dfed23a32d46fb0b089b7eccb87e21e': Remove the __ARM_FEATURE_DSP check.
|
aec1b3540aa74128af8e2162db79334c7f8ce888 |
03-Oct-2013 |
Christopher Ferris <cferris@google.com> |
Remove the __ARM_FEATURE_DSP check. The check for __ARM_FEATURE_DSP being defined is pointless since it is always defined. Bug: 10971279 Merge from internal master. (cherry-picked from d2642fa70cfbd77286514e1123fcd280d7f7047f) Change-Id: If23ab3271f4da0c38cd531ffdc9a7e5eed6ec5dc
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/strcmp.S
rait/bionic/strcmp.S
|
670f372470cc6f885fd035495b14b8890763f665 |
03-Oct-2013 |
Nick Kralevich <nnk@google.com> |
am b6201932: am 2c701a1b: Merge "libc: don\'t export unnecessary symbols" * commit 'b6201932838c46a567e3411047719fd5c2797e96': libc: don't export unnecessary symbols
|
32bbf8a63bb43a540cc0f1dd5037736d10b70e0b |
03-Oct-2013 |
Nick Kralevich <nnk@google.com> |
libc: don't export unnecessary symbols Symbols associated with the internal implementation of memcpy like routines should be private. Change-Id: I2b1d1f59006395c29d518c153928437b08f93d16
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
|
5825f979b726ea18b98994561280b5cbb8426b51 |
26-Sep-2013 |
Elliott Hughes <enh@google.com> |
am 88f29444: am 7b538021: Merge "Make it easier to add syscalls for another architecture." * commit '88f2944421839b725e02e97c62d119c9e608ec58': Make it easier to add syscalls for another architecture.
|
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
|
16e185c9081530859c17270fbaf5798f0ea871f8 |
11-Sep-2013 |
Christopher Ferris <cferris@google.com> |
__memcpy_chk: Fix signed cmp of unsigned values. I accidentally did a signed comparison of the size_t values passed in for three of the _chk functions. Changing them to unsigned compares. Add three new tests to verify this failure is fixed. Bug: 10691831 Merge from internal master. (cherry-picked from 883ef2499c2ff76605f73b1240f719ca6282e554) Change-Id: Id9a96b549435f5d9b61dc132cf1082e0e30889f5
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
|
a57c9c084bc686a35f4f494ce23cf2a9bb3d5d00 |
21-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Fix all debug directives. The backtrace when a fortify check failed was not correct. This change adds all of the necessary directives to get a correct backtrace. Fix the strcmp directives and change all labels to local labels. Testing: - Verify that the runtime can decode the stack for __memcpy_chk, __memset_chk, __strcpy_chk, __strcat_chk fortify failures. - Verify that gdb can decode the stack properly when hitting a fortify check. - Verify that the runtime can decode the stack for a seg fault for all of the _chk functions and for memcpy/memset. - Verify that gdb can decode the stack for a seg fault for all of the _chk functions and for memcpy/memset. - Verify that the runtime can decode the stack for a seg fault for strcmp. - Verify that gdb can decode the stack for a seg fault in strcmp. Bug: 10342460 Bug: 10345269 Merge from internal master. (cherry-picked from 05332f2ce7e542d32ff4d5cd9f60248ad71fbf0d) Change-Id: Ibc919b117cfe72b9ae97e35bd48185477177c5ca
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcmp.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
rait/bionic/strcmp.S
|
bd7fe1d3c4c8877ac53839169851621249289bd7 |
20-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Update all debug directives. The libcorkscrew stack unwinder does not understand cfi directives, so add .save directives so that it can function properly. Also add the directives in to strcmp.S and fix a missing set of directives in cortex-a9/memcpy_base.S. Bug: 10345269 Merge from internal master. (cherry-picked from 5f7ccea3ffab05aeceecb85c821003cf580630d3) Change-Id: If48a216203216a643807f5d61906015984987189
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcmp.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
rait/bionic/strcmp.S
|
e74f77f92d80f11616da699ac908fd5d1913e996 |
20-Sep-2013 |
Elliott Hughes <enh@google.com> |
am 48a909c9: am aad3c52e: Merge "Ensure we have the off64_t variant of every function that takes an off_t." * commit '48a909c9fd6dbe9be5655ad172d1083fa69c4107': Ensure we have the off64_t variant of every function that takes an off_t.
|
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
|
2e7a8b44c2691770e917efcca80bc2650d93efaa |
11-Sep-2013 |
Christopher Ferris <cferris@google.com> |
resolved conflicts for merge of 883ef249 to klp-dev-plus-aosp Change-Id: I1e2bd03a0cb5a0ab191c525d1574377bc7fd90ab
|
883ef2499c2ff76605f73b1240f719ca6282e554 |
11-Sep-2013 |
Christopher Ferris <cferris@google.com> |
__memcpy_chk: Fix signed cmp of unsigned values. I accidentally did a signed comparison of the size_t values passed in for three of the _chk functions. Changing them to unsigned compares. Add three new tests to verify this failure is fixed. Bug: 10691831 Change-Id: Ia831071f7dffd5972a748d888dd506c7cc7ddba3
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
|
5cb04369309856f2d2960fe3fbd517ce4e403605 |
06-Sep-2013 |
Christopher Ferris <cferris@google.com> |
am 1a88ca08: am 98c726ec: Merge "Add the dl_iterate_phdr function to libdl for arm." * commit '1a88ca08046ea510bfc8d3de6875537f124b3ce3': Add the dl_iterate_phdr function to libdl for arm.
|
24053a461e7a20f34002262c1bb122023134989d |
20-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Add the dl_iterate_phdr function to libdl for arm. Bug: 8410085 Merge from internal master. (cherry-picked from cb491bc66dc0abc145930b09086eb9189a30f6c2) Change-Id: I94ed51bc5d4c626df7552c0e85c31ccee2d6568f
rm.mk
|
153ec2a76f539902cc84a15b6737bf3ce9243f30 |
29-Aug-2013 |
Christopher Ferris <cferris@google.com> |
am 49c0d471: Merge "Fix all debug directives." into klp-dev * commit '49c0d471a8ba9ed32e7fdadb7e4ea6118b4b4af4': Fix all debug directives.
|
05332f2ce7e542d32ff4d5cd9f60248ad71fbf0d |
21-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Fix all debug directives. The backtrace when a fortify check failed was not correct. This change adds all of the necessary directives to get a correct backtrace. Fix the strcmp directives and change all labels to local labels. Testing: - Verify that the runtime can decode the stack for __memcpy_chk, __memset_chk, __strcpy_chk, __strcat_chk fortify failures. - Verify that gdb can decode the stack properly when hitting a fortify check. - Verify that the runtime can decode the stack for a seg fault for all of the _chk functions and for memcpy/memset. - Verify that gdb can decode the stack for a seg fault for all of the _chk functions and for memcpy/memset. - Verify that the runtime can decode the stack for a seg fault for strcmp. - Verify that gdb can decode the stack for a seg fault in strcmp. Bug: 10342460 Bug: 10345269 Change-Id: I1dedadfee207dce4a285e17a21e8952bbc63786a
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcmp.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
rait/bionic/strcmp.S
|
f6186e95929b8da3d90057648475301bf6ee03d2 |
28-Aug-2013 |
Nick Kralevich <nnk@google.com> |
am 1278ae38: am 22f5ef6b: Merge "Delete CAVEATS / fix spelling." * commit '1278ae38366102369b5a35152f2213426a148512': Delete CAVEATS / fix spelling.
|
bdbdbb8319b85044ba528f673de253a97910cf77 |
28-Aug-2013 |
Nick Kralevich <nnk@google.com> |
Delete CAVEATS / fix spelling. Change-Id: I0ed504271b7c2e4434d0d5f53bc10335c8cf7b5b
ionic/eabi.c
|
5f7ccea3ffab05aeceecb85c821003cf580630d3 |
20-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Update all debug directives. The libcorkscrew stack unwinder does not understand cfi directives, so add .save directives so that it can function properly. Also add the directives in to strcmp.S and fix a missing set of directives in cortex-a9/memcpy_base.S. Bug: 10345269 Change-Id: I043f493e0bb6c45bd3f4906fbe1d9f628815b015
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a15/bionic/strcmp.S
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/bionic/strcmp.S
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memset.S
rait/bionic/strcmp.S
|
5f45d583b0cfb4f7bed1447e8eed003a529cc69e |
07-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Create optimized __strcpy_chk/__strcat_chk. This change pulls the memcpy code out into a new file so that the __strcpy_chk and __strcat_chk can use it with an include. The new versions of the two chk functions uses assembly versions of strlen and memcpy to implement this check. This allows near parity with the assembly versions of strcpy/strcat. It also means that as memcpy implementations get faster, so do the chk functions. Other included changes: - Change all of the assembly labels to local labels. The other labels confuse gdb and mess up backtracing. - Add .cfi_startproc and .cfi_endproc directives so that gdb is not confused when falling through from one function to another. - Change all functions to use cfi directives since they are more powerful. - Move the memcpy_chk fail code outside of the memcpy function definition so that backtraces work properly. - Preserve lr before the calls to __fortify_chk_fail so that the backtrace actually works. Testing: - Ran the bionic unit tests. Verified all error messages in logs are set correctly. - Ran libc_test, replacing strcpy with __strcpy_chk and replacing strcat with __strcat_chk. - Ran the debugger on nexus10, nexus4, and old nexus7. Verified that the backtrace is correct for all fortify check failures. Also verify that when falling through from __memcpy_chk to memcpy that the backtrace is still correct. Also verified the same for __memset_chk and bzero. Verified the two different paths in the cortex-a9 memset routine that save variables to the stack still show the backtrace properly. Bug: 9293744 (cherry-picked from 2be91915dcecc956d14ff281db0c7d216ca98af2) Change-Id: Ia407b74d3287d0b6af0139a90b6eb3bfaebf2155
rm.mk
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a15/bionic/memset.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/cortex-a9.mk
eneric/generic.mk
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
rait/bionic/memset.S
rait/krait.mk
|
59a13c122ebc4191583b67c846a95d690dcda5cf |
01-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Optimize __memset_chk, __memcpy_chk. DO NOT MERGE. This change creates assembler versions of __memcpy_chk/__memset_chk that is implemented in the memcpy/memset assembler code. This change avoids an extra call to memcpy/memset, instead allowing a simple fall through to occur from the chk code into the body of the real implementation. Testing: - Ran the libc_test on __memcpy_chk/__memset_chk on all nexus devices. - Wrote a small test executable that has three calls to __memcpy_chk and three calls to __memset_chk. First call dest_len is length + 1. Second call dest_len is length. Third call dest_len is length - 1. Verified that the first two calls pass, and the third fails. Examined the logcat output on all nexus devices to verify that the fortify error message was sent properly. - I benchmarked the new __memcpy_chk and __memset_chk on all systems. For __memcpy_chk and large copies, the savings is relatively small (about 1%). For small copies, the savings is large on cortex-a15/krait devices (between 5% to 30%). For cortex-a9 and small copies, the speed up is present, but relatively small (about 3% to 5%). For __memset_chk and large copies, the savings is also small (about 1%). However, all processors show larger speed-ups on small copies (about 30% to 100%). Bug: 9293744 Merge from internal master. (cherry-picked from 7c860db0747f6276a6e43984d43f8fa5181ea936) Change-Id: I916ad305e4001269460ca6ebd38aaa0be8ac7f52
rm.mk
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
rait/bionic/memcpy.S
rait/bionic/memset.S
|
f0c3d909136167fdbe32b7815e5e1e02b4c35d62 |
07-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Create optimized __strcpy_chk/__strcat_chk. This change pulls the memcpy code out into a new file so that the __strcpy_chk and __strcat_chk can use it with an include. The new versions of the two chk functions uses assembly versions of strlen and memcpy to implement this check. This allows near parity with the assembly versions of strcpy/strcat. It also means that as memcpy implementations get faster, so do the chk functions. Other included changes: - Change all of the assembly labels to local labels. The other labels confuse gdb and mess up backtracing. - Add .cfi_startproc and .cfi_endproc directives so that gdb is not confused when falling through from one function to another. - Change all functions to use cfi directives since they are more powerful. - Move the memcpy_chk fail code outside of the memcpy function definition so that backtraces work properly. - Preserve lr before the calls to __fortify_chk_fail so that the backtrace actually works. Testing: - Ran the bionic unit tests. Verified all error messages in logs are set correctly. - Ran libc_test, replacing strcpy with __strcpy_chk and replacing strcat with __strcat_chk. - Ran the debugger on nexus10, nexus4, and old nexus7. Verified that the backtrace is correct for all fortify check failures. Also verify that when falling through from __memcpy_chk to memcpy that the backtrace is still correct. Also verified the same for __memset_chk and bzero. Verified the two different paths in the cortex-a9 memset routine that save variables to the stack still show the backtrace properly. Bug: 9293744 Change-Id: Id5aec8c3cb14101d91bd125eaf3770c9c8aa3f57 (cherry picked from commit 2be91915dcecc956d14ff281db0c7d216ca98af2)
rm.mk
ortex-a15/bionic/__strcat_chk.S
ortex-a15/bionic/__strcpy_chk.S
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memcpy_base.S
ortex-a15/bionic/memset.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/__strcat_chk.S
ortex-a9/bionic/__strcpy_chk.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memcpy_base.S
ortex-a9/bionic/memset.S
ortex-a9/cortex-a9.mk
eneric/generic.mk
rait/bionic/__strcat_chk.S
rait/bionic/__strcpy_chk.S
rait/bionic/memcpy.S
rait/bionic/memcpy_base.S
rait/bionic/memset.S
rait/krait.mk
|
b922ed349893c9a5e62eca0de4ad32a4851484d1 |
06-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Fix strcpy.c that should have been strcpy.S. DO NOT MERGE Merge from internal master. (cherry-picked from 1ce665416307628f4bcaced86faa64bdf9c489c3) Change-Id: I376b831df42248baadde7202a30a68112f752ff7
eneric/generic.mk
|
4e24dcc8d869db7303650d8444c8796445fbbc07 |
15-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Optimize strcat/strcpy, small tweaks to strlen. DO NOT MERGE Create one version of strcat/strcpy/strlen for cortex-a15/krait and another version for cortex-a9. Tested with the libc_test strcat/strcpy/strlen tests. Including new tests that verify that the src for strcat/strcpy do not overread across page boundaries. NOTE: The handling of unaligned strcpy (same code in strcat) could probably be optimized further such that the src is read 64 bits at a time instead of the partial reads occurring now. strlen improves slightly since it was recently optimized. Performance improvements for strcpy and strcat (using an empty dest string): cortex-a9 - Small copies vary from about 5% to 20% as the size gets above 10 bytes. - Copies >= 1024, about a 60% improvement. - Unaligned copies, from about 40% improvement. cortex-a15 - Most small copies exhibit a 100% improvement, a few copies only improve by 20%. - Copies >= 1024, about 150% improvement. - Unaligned copies, about 100% improvement. krait - Most small copies vary widely, but on average 20% improvement, then the performance gets better, hitting about a 100% improvement when copies 64 bytes of data. - Copies >= 1024, about 100% improvement. - When coping MBs of data, about 50% improvement. - Unaligned copies, about 90% improvement. As strcat destination strings get larger in size: cortex-a9 - about 40% improvement for small dst strings (>= 32). - about 250% improvement for dst strings >= 1024. cortex-a15 - about 200% improvement for small dst strings (>=32). - about 250% improvement for dst strings >= 1024. krait - about 25% improvement for small dst strings (>=32). - about 100% improvement for dst strings >=1024. Merge from internal master. (cherry-picked from d119b7b6f48fe507088cfb98bcafa99b320fd884) Change-Id: I296463b251ef9fab004ee4dded2793feca5b547a
rm.mk
ionic/strcpy.S
ortex-a15/bionic/strcat.S
ortex-a15/bionic/strcpy.S
ortex-a15/bionic/strlen.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/strcat.S
ortex-a9/bionic/strcpy.S
ortex-a9/bionic/strlen.S
ortex-a9/cortex-a9.mk
eneric/bionic/strcpy.S
eneric/generic.mk
rait/krait.mk
|
7c860db0747f6276a6e43984d43f8fa5181ea936 |
01-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Optimize __memset_chk, __memcpy_chk. This change creates assembler versions of __memcpy_chk/__memset_chk that is implemented in the memcpy/memset assembler code. This change avoids an extra call to memcpy/memset, instead allowing a simple fall through to occur from the chk code into the body of the real implementation. Testing: - Ran the libc_test on __memcpy_chk/__memset_chk on all nexus devices. - Wrote a small test executable that has three calls to __memcpy_chk and three calls to __memset_chk. First call dest_len is length + 1. Second call dest_len is length. Third call dest_len is length - 1. Verified that the first two calls pass, and the third fails. Examined the logcat output on all nexus devices to verify that the fortify error message was sent properly. - I benchmarked the new __memcpy_chk and __memset_chk on all systems. For __memcpy_chk and large copies, the savings is relatively small (about 1%). For small copies, the savings is large on cortex-a15/krait devices (between 5% to 30%). For cortex-a9 and small copies, the speed up is present, but relatively small (about 3% to 5%). For __memset_chk and large copies, the savings is also small (about 1%). However, all processors show larger speed-ups on small copies (about 30% to 100%). Bug: 9293744 Change-Id: I8926d59fe2673e36e8a27629e02a7b7059ebbc98
rm.mk
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
eneric/bionic/memcpy.S
eneric/bionic/memset.S
rait/bionic/memcpy.S
rait/bionic/memset.S
|
1ce665416307628f4bcaced86faa64bdf9c489c3 |
06-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Fix strcpy.c that should have been strcpy.S. Change-Id: Ib4609baad3a14c8b0f37556269781fa2b06916dc
eneric/generic.mk
|
e1857431e8b7120de3a0d42fb671c056df7c673d |
06-Aug-2013 |
Christopher Ferris <cferris@google.com> |
Merge "Optimize strcat/strcpy, small tweaks to strlen."
|
b78f43579f3dd386ebf7735e706ec4acc2cc9af1 |
03-Aug-2013 |
Ben Cheng <bccheng@google.com> |
am aa2733d1: Merge "Update the comments to reflect the current status." * commit 'aa2733d17b87c607fccbd6e6a0f44d2d411ffd77': Update the comments to reflect the current status.
|
d0313e7a2ac7fdc5255a94983cc4879caf3a74c2 |
03-Aug-2013 |
Elliott Hughes <enh@google.com> |
am a6ed05c1: Merge "libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher" * commit 'a6ed05c1c4c787241b56df132e77512c64cbc595': libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher
|
772b797b7b758328eaf6d4e9c93a6d2f78cbe3d0 |
03-Aug-2013 |
Ben Cheng <bccheng@google.com> |
Update the comments to reflect the current status. Change-Id: I3a6348b568230fe8b21d121e5b8d30561a9703c2
ionic/libgcc_compat.c
|
d119b7b6f48fe507088cfb98bcafa99b320fd884 |
15-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Optimize strcat/strcpy, small tweaks to strlen. Create one version of strcat/strcpy/strlen for cortex-a15/krait and another version for cortex-a9. Tested with the libc_test strcat/strcpy/strlen tests. Including new tests that verify that the src for strcat/strcpy do not overread across page boundaries. NOTE: The handling of unaligned strcpy (same code in strcat) could probably be optimized further such that the src is read 64 bits at a time instead of the partial reads occurring now. strlen improves slightly since it was recently optimized. Performance improvements for strcpy and strcat (using an empty dest string): cortex-a9 - Small copies vary from about 5% to 20% as the size gets above 10 bytes. - Copies >= 1024, about a 60% improvement. - Unaligned copies, from about 40% improvement. cortex-a15 - Most small copies exhibit a 100% improvement, a few copies only improve by 20%. - Copies >= 1024, about 150% improvement. - Unaligned copies, about 100% improvement. krait - Most small copies vary widely, but on average 20% improvement, then the performance gets better, hitting about a 100% improvement when copies 64 bytes of data. - Copies >= 1024, about 100% improvement. - When coping MBs of data, about 50% improvement. - Unaligned copies, about 90% improvement. As strcat destination strings get larger in size: cortex-a9 - about 40% improvement for small dst strings (>= 32). - about 250% improvement for dst strings >= 1024. cortex-a15 - about 200% improvement for small dst strings (>=32). - about 250% improvement for dst strings >= 1024. krait - about 25% improvement for small dst strings (>=32). - about 100% improvement for dst strings >=1024. Change-Id: Ifd091ebdbce70fe35a7c5d8f71d5914255f3af35
rm.mk
ionic/strcpy.S
ortex-a15/bionic/strcat.S
ortex-a15/bionic/strcpy.S
ortex-a15/bionic/strlen.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/strcat.S
ortex-a9/bionic/strcpy.S
ortex-a9/bionic/strlen.S
ortex-a9/cortex-a9.mk
eneric/bionic/strcpy.S
eneric/generic.mk
rait/krait.mk
|
efddf44c8e75f2807437bf26e8117f86f2645454 |
28-Jul-2013 |
synergydev <synergye@codefi.re> |
libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher This is needed when passing -mcpu=cortex-a9 or higher on a modern toolchain for prebuilt library compatibility Change-Id: I73eb2393377914ae26216a8c2828ad973d1c1225
ionic/libgcc_compat.c
|
7ff868a6307f0d5e63555b5d320b8ad6e490e3c4 |
17-Jul-2013 |
Christopher Ferris <cferris@google.com> |
am f63c28f0: Merge "Fix assembler errors in generic arm strlen.c." * commit 'f63c28f0338fd647e88f1f9300b2220093af1aae': Fix assembler errors in generic arm strlen.c.
|
b1d7fd4969fdd3d3402b500840561beb30962c1d |
17-Jul-2013 |
Christopher Ferris <cferris@google.com> |
am 6f4fed74: Merge "Add new optimized strlen for arm." * commit '6f4fed74cb9405c0f5322307085d15afed6be764': Add new optimized strlen for arm.
|
9ad2a73ed65d39c3a638ff9bd2d73250b41212c6 |
15-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Fix assembler errors in generic arm strlen.c. Tested using a static version of the strlen libc_test program on a nexus7 that uses the generic code. Merge from internal master. (cherry-picked from d8d10a8994472e40d19301b7087806630877b4d5) Change-Id: I88f7dc01dc5b5c3ac2d5580d92153bc1bc36c564
eneric/bionic/strlen.c
|
0aa9b52efa75b4c8bbdc12845434e25e457ea57b |
10-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Add new optimized strlen for arm. This optimized version is primarily targeted at cortex-a15. Tested on all nexus devices using the system/extras/libc_test strlen test. Tested alignments from 1 to 32 that are powers of 2. Tested that strlen does not cross page boundaries at all alignments. Speed improvements listed below: cortex-a15 - Sizes >= 32 bytes, ~75% improvement. - Sizes >= 1024 bytes, ~250% improvement. cortex-a9 - Sizes >= 32 bytes, ~75% improvement. - Sizes >= 1024 bytes, ~85% improvement. krait - Sizes >= 32 bytes, ~95% improvement. - Sizes >= 1024 bytes, ~160% improvement. Merge from internal master. (cherry-picked from 2fc071797743b88a9a47427d46baed7c7b24f4d2) Change-Id: I1ceceb4e745fd68e9d946f96d1d42e0cdaff6ccf
rm.mk
ionic/strlen.c
ortex-a15/bionic/strlen.S
ortex-a15/cortex-a15.mk
ortex-a9/cortex-a9.mk
eneric/bionic/strlen.c
eneric/generic.mk
rait/krait.mk
|
62d6b7526a5cdc24451d032578b86fbe68ce419a |
17-Jul-2013 |
Elliott Hughes <enh@google.com> |
am 2a18ea14: am f152e386: Merge "EABI syscall cleanup." * commit '2a18ea1462cf65cc51bfcb1a1c46972ee5af1d01': EABI syscall cleanup.
|
2a18ea1462cf65cc51bfcb1a1c46972ee5af1d01 |
17-Jul-2013 |
Elliott Hughes <enh@google.com> |
am f152e386: Merge "EABI syscall cleanup." * commit 'f152e386fcf477f3f5de9dc020c3660d4f9c4b81': EABI syscall cleanup.
|
da4a3e65153f2979b5e339d0efe6b81ebf74af8f |
16-Jul-2013 |
Elliott Hughes <enh@google.com> |
EABI syscall cleanup. We cleaned up the auto-generated ones a while back to not touch the stack unnecessarily if they have <= 4 arguments. This patch cleans up some hand-crafted ones. Also improve comments in clone.S. Change-Id: I8850bf98f2b26829385315304472a760e6880ed8
ionic/clone.S
ionic/futex_arm.S
|
d8d10a8994472e40d19301b7087806630877b4d5 |
15-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Fix assembler errors in generic arm strlen.c. Tested using a static version of the strlen libc_test program on a nexus7 that uses the generic code. Change-Id: If04d15dcb6c0b18f27f2fefadca5510ed49016c5
eneric/bionic/strlen.c
|
2fc071797743b88a9a47427d46baed7c7b24f4d2 |
10-Jul-2013 |
Christopher Ferris <cferris@google.com> |
Add new optimized strlen for arm. This optimized version is primarily targeted at cortex-a15. Tested on all nexus devices using the system/extras/libc_test strlen test. Tested alignments from 1 to 32 that are powers of 2. Tested that strlen does not cross page boundaries at all alignments. Speed improvements listed below: cortex-a15 - Sizes >= 32 bytes, ~75% improvement. - Sizes >= 1024 bytes, ~250% improvement. cortex-a9 - Sizes >= 32 bytes, ~75% improvement. - Sizes >= 1024 bytes, ~85% improvement. krait - Sizes >= 32 bytes, ~95% improvement. - Sizes >= 1024 bytes, ~160% improvement. Change-Id: I361b1a36ed89ab991f2a8f0abbf0d7416d39c8f5
rm.mk
ionic/strlen.c
ortex-a15/bionic/strlen.S
ortex-a15/cortex-a15.mk
ortex-a9/cortex-a9.mk
eneric/bionic/strlen.c
eneric/generic.mk
rait/krait.mk
|
be438a4c40a1e1809f5e9238c22618703a7b4506 |
03-Jul-2013 |
Elliott Hughes <enh@google.com> |
am fac9199c: am ebc8ce1d: Merge "libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings." * commit 'fac9199c7698481805dd9b1adaf89a2584719f4c': libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings.
|
fac9199c7698481805dd9b1adaf89a2584719f4c |
03-Jul-2013 |
Elliott Hughes <enh@google.com> |
am ebc8ce1d: Merge "libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings." * commit 'ebc8ce1de68a83d772106af98c7cb98150bb5662': libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings.
|
2753e12af50a83882a3f854343aa686289da97b5 |
03-Jul-2013 |
Will Newton <will.newton@linaro.org> |
libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings. This memcpy code uses NEON/VFP to achieve very good performance on ARMv7-A processors. It is specifically tuned for A15 but should provide good performance on A9 also. It is equivalent to the code in cortex-strings rev 116. This patch is a follow up the existing gerrit change: I7f6f77995f3ca903ad9c66d14261441667a2a935 This version includes a tweak for performance on misaligned buffers and splits the header comment into license and documentation sections. Change-Id: Ibd2e23c8d8e01357ba0247be1d05192de3ceba69 Signed-off-by: Will Newton <will.newton@linaro.org>
ionic/memcpy.a9.S
|
c6ac3ae269c9fb30bed9c4faf46276ac46abf2e3 |
01-Jul-2013 |
Christopher Ferris <cferris@google.com> |
am 269daac2: am 7c14d67b: Merge "libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings." * commit '269daac2f1d76a478b83ba4cbb57d28b47eef5ec': libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings.
|
269daac2f1d76a478b83ba4cbb57d28b47eef5ec |
01-Jul-2013 |
Christopher Ferris <cferris@google.com> |
am 7c14d67b: Merge "libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings." * commit '7c14d67bc1cc2679365a784e68518bf602b81dc7': libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings.
|
b61103dff4531322b02dd0f2217149e9b258fa10 |
01-Jul-2013 |
Will Newton <will.newton@linaro.org> |
libc/arch-arm/bionic/memcpy.a9.S: memcpy from cortex-strings. This memcpy code uses NEON/VFP to achieve very good performance on ARMv7-A processors. It is specifically tuned for A15 but should provide good performance on A9 also. It is equivalent to the code in cortex-strings rev 116. This patch is a follow up the existing gerrit change: I7f6f77995f3ca903ad9c66d14261441667a2a935 But this version includes a tweak for performance on misaligned buffers. Change-Id: I285abac0068f8ae29a1cbf7862ea8590aadaf0a7 Signed-off-by: Will Newton <will.newton@linaro.org>
ionic/memcpy.a9.S
|
6937468d37bdeffe77cc288ec0c5e7619acee062 |
26-Jun-2013 |
Rom Lemarchand <romlem@google.com> |
am baa61864: am 995f17e6: Merge "libc: add swapon and swapoff syscalls" * commit 'baa61864c515a56d4dbeac46b149b4317b01797b': libc: add swapon and swapoff syscalls
|
baa61864c515a56d4dbeac46b149b4317b01797b |
26-Jun-2013 |
Rom Lemarchand <romlem@google.com> |
am 995f17e6: Merge "libc: add swapon and swapoff syscalls" * commit '995f17e6a9a9903f03f542192da9a83b1cabc684': libc: add swapon and swapoff syscalls
|
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
|
d20a04c5cf7f97102cb344a38312cb0eae38b051 |
11-Jun-2013 |
Ben Cheng <bccheng@google.com> |
am 77f90de7: am fc104f89: Merge "Fix abort(3) to raise SIGABRT rather than causing SIGSEGV." * commit '77f90de728b9fa60b83b7f12a45c1113f3189cb2': Fix abort(3) to raise SIGABRT rather than causing SIGSEGV.
|
77f90de728b9fa60b83b7f12a45c1113f3189cb2 |
11-Jun-2013 |
Ben Cheng <bccheng@google.com> |
am fc104f89: Merge "Fix abort(3) to raise SIGABRT rather than causing SIGSEGV." * commit 'fc104f899d47916f76c91127caf9aeaf7b69d4ef': Fix abort(3) to raise SIGABRT rather than causing SIGSEGV.
|
7e6ce1a3c52d8533fed92c143419fedb0c93988a |
11-Jun-2013 |
Ben Cheng <bccheng@google.com> |
Fix abort(3) to raise SIGABRT rather than causing SIGSEGV. tgkill() needs the .save stack unwinding directive to get the complete stack trace. BUG: https://code.google.com/p/android/issues/detail?id=16672 Change-Id: Ifb447dca2147a592c48baf32769dfc175d8aea72
ionic/tgkill.S
|
72ce296f282803cb026aff5ab180e8a43656612e |
01-Jun-2013 |
Ben Cheng <bccheng@google.com> |
am 404d491e: Merge "Use bl instead of blx to support interworking properly." * commit '404d491eb655839bf4260cc168bb79864473e129': Use bl instead of blx to support interworking properly.
|
a123b5d3199ea2eaf8cfc513278f1906dcde1ab8 |
31-May-2013 |
Ben Cheng <bccheng@google.com> |
Use bl instead of blx to support interworking properly. (cherry picked from commit 9e1905794b4ecd8f7b87d8e4e2f954c8cfc6beda in master) Change-Id: I9b8c35ea9e201e00f84315f9f105013c23c94d85
ionic/abort_arm.S
|
9e1905794b4ecd8f7b87d8e4e2f954c8cfc6beda |
31-May-2013 |
Ben Cheng <bccheng@google.com> |
Use bl instead of blx to support interworking properly. BUG: 9227177 Change-Id: I742c2f2ecbe332f9c9743e3f4bde8de791a1d289
ionic/abort_arm.S
|
d5234a3b08179307b767807f7ddacf5469621426 |
16-May-2013 |
Erik Gilling <konkers@android.com> |
am 4c8eba6f: am 2e317075: Merge "libc/arm: add cortex-a8 cpu variant" * commit '4c8eba6f2aaf351e29881ca4dc2ec47fc0246446': libc/arm: add cortex-a8 cpu variant
|
4c8eba6f2aaf351e29881ca4dc2ec47fc0246446 |
16-May-2013 |
Erik Gilling <konkers@android.com> |
am 2e317075: Merge "libc/arm: add cortex-a8 cpu variant" * commit '2e317075b044e94fc75e36d08bec8a7eb5fc31ae': libc/arm: add cortex-a8 cpu variant
|
22bda4bd670e11e4bb68e67feb75845dcbb17552 |
03-May-2013 |
Rom Lemarchand <romlem@google.com> |
libc/arm: add cortex-a8 cpu variant Change-Id: I30e8dd6d4b2e7889aea8f5ed21182a5941bfb489
rm.mk
ortex-a8/cortex-a8.mk
|
562804ff878ede5d0ce0cb0c79ffb9b26777bf76 |
14-May-2013 |
Elliott Hughes <enh@google.com> |
am f0f4fa3f: Merge "libc: add timerfd calls" * commit 'f0f4fa3fb1ea8623b1e1bc59f7967e0470c8e532': libc: add timerfd calls
|
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
|
04c0ac14a49e0969333008a9522b64046d58fbdc |
09-May-2013 |
Todd Poynor <toddpoynor@google.com> |
libc: add timerfd calls Change-Id: Id63b907266d5b87c7422a51d393a1430551ca33d
yscalls.mk
yscalls/timerfd_create.S
yscalls/timerfd_gettime.S
yscalls/timerfd_settime.S
|
4d8fe5177eae8abe3cf5a596916e85daee78a0f4 |
19-Apr-2013 |
Christopher Ferris <cferris@google.com> |
Tune the memcpy for krait. Streamline the memcpy a bit removing some unnecessary instructions. The biggest speed improvement comes from changing the size of the preload. On krait, the sweet spot for the preload in the main loop is twice the L1 cache line size. In most cases, these small tweaks yield > 1000MB/s speed ups. As the size of the memcpy approaches about 1MB, the speed improvement disappears. Change-Id: Ief79694d65324e2db41bee4707dae19b8c24be62
rait/bionic/memcpy.S
|
83966db80b9cccc3417db7566242d30a330cde29 |
26-Apr-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
am f7153fd1: Merge "Remove redundant space within square brackets" * commit 'f7153fd13f469e9ba5aecbfa00fde42530ca2124': Remove redundant space within square brackets
|
e8f46e8eddc8ebfbe7bea0a238f61f1e9adf4a0a |
25-Apr-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Remove redundant space within square brackets The new "as" in binutils-2.23 (with gcc4.8) is more picky: it expects register right after [ Change-Id: I876124841582070ab2083ffafe38bc333b5812d0
ionic/strlen.c
|
39e4ed969948fd738d7b670b099c0b2c25351d95 |
12-Apr-2013 |
Christopher Ferris <cferris@google.com> |
am 516a8970: Merge "Rewrite memset for cortexa15 to use strd." * commit '516a89705378f43646678e75924529404e52b613': Rewrite memset for cortexa15 to use strd.
|
796cbe249bf6626b1de01664c38a7b06dcb2eb1f |
09-Apr-2013 |
Christopher Ferris <cferris@google.com> |
Rewrite memset for cortexa15 to use strd. Merge from internal master. (cherry-picked from commit 7ffad9c120054eedebd5f56f8bed01144e93eafa) Change-Id: Ia67f2a545399f4fa37b63d5634a3565e4f5482f9
ortex-a15/bionic/memset.S
|
101dadf6a6a689b53f6db809578627448a14bff8 |
11-Apr-2013 |
Christopher Ferris <cferris@google.com> |
am fc76c7d3: Merge "Add missing branch in memcpy.S dst aligned case." * commit 'fc76c7d394ebe0e585777955efadf7cc8ed86636': Add missing branch in memcpy.S dst aligned case.
|
3fe5b109483f81cdfb317181d4bba3b938bd308f |
11-Apr-2013 |
Christopher Ferris <cferris@google.com> |
am 68fd78ef: Merge "Update to latest cortexa15 memcpy code." * commit '68fd78efa05fc61adfbdeadeb757caa45663570c': Update to latest cortexa15 memcpy code.
|
bf0d1ad72b35ce1cb796aa0f6d44cbf4a495bff5 |
02-Apr-2013 |
Christopher Ferris <cferris@google.com> |
Add missing branch in memcpy.S dst aligned case. Merge from internal master. (cherry-picked from commit 6ffaa931c362602a2b606a610c92326a425a876e) Change-Id: Ifdcf01fd122866cf0d4c5b5f7a997803561d7889
ortex-a15/bionic/memcpy.S
|
185ce72d003def80022a48fe56ce65e547170cd2 |
16-Mar-2013 |
Christopher Ferris <cferris@google.com> |
Update to latest cortexa15 memcpy code. This uses the new code original submitted as memcpy.a15.S as the base. However, the old code handled unaligned src/dst better so that was spliced in. I optimized the original unaligned code by removing a few unnecessary instructions. I optimized the a15 code by rewriting the pre and post code. I also modified the main loop to add a pld so that larger copies would not stall waiting for memory. Test cases for the new memcpy: - Copy all sized values from 0 to 1024 bytes, using whatever alignment is returned by malloc. For each alignment case described below, the test copied from 0 to 128 bytes. - Src and dst pointers are both aligned to the same value, starting at one going through every power of two up to and including 128. - Src aligned to double word boundary, dst aligned to word boundary. - Src aligned to word boundary, dst aligned to double word boundary. - Src aligned to 16 bit boundary, dst aligned to word boundary. - Src aligned to word boundary, dst aligned to 16 byte boundary. - Src aligned to word boundary, dst aligned to 1 byte from a word boundary. - Src aligned to word boundary, dst aligned to 2 bytes from a word boundary. - Src aligned to word boundary, dst aligned to 3 bytes from a word boundary. - Src aligned to 1 byte from a word boundary, dst aligned to a word boundary. - Src aligned to 2 bytes from a word boundary, dst aligned to a word boundary. - Src aligned to 3 bytes from a word boundary, dst aligned to a word boundary. Cases to verify the unaligned source code properly aligns to a 16 bit boundary. - Src aligned to 1 byte from a 128 bit boundary, dst aligned to 4 + 128 bit boundary. - Src aligned to 1 byte from a 128 bit boundary, dst aligned to 8 + 128 bit boundary. - Src aligned to 1 byte from a 128 bit boundary, dst aligned to 12 + 128 bit boundary. - Src aligned to 1 byte from a 128 bit boundary, dst aligned to 16 + 128 bit boundary. In all cases, a two byte fencepost was placed at the end of the destination to verify that only the requested number of bytes were copied. Bug: 8005082 Merge from internal master. (cherry-picked from commit 21ede92d794969f22cacbdb9f557818f1c5712b5) Change-Id: Ief70c9e6dc8c6473ae245b6570b2c266fed9618c
ortex-a15/bionic/memcpy.S
|
369f92349fc784f6c14ad30f5806f708a8f2c7f7 |
25-Mar-2013 |
Dima Zavin <dima@android.com> |
Merge "libc/arm: add cortex-a7 cpu variant" into jb-mr2-dev
|
0c973d70490bfd893276464bd5b36fc87a8ee59b |
23-Mar-2013 |
Dima Zavin <dima@android.com> |
libc/arm: add cortex-a7 cpu variant Change-Id: I541d665805ea69ca96bb6a5f4d50e56287f8c08c Signed-off-by: Dima Zavin <dima@android.com>
ortex-a7/cortex-a7.mk
|
cda62094ef6ab44d3804954fff75be1246725c36 |
22-Mar-2013 |
Elliott Hughes <enh@google.com> |
Use the correct names for the __ARM_NR_* syscalls. This lets us move all the ARM syscall stubs over to the kernel <asm/unistd.h>. Our generated <sys/linux-syscalls.h> is now unused, but I'll remove that in a later change. Change-Id: Ie5ff2cc4abce1938576af7cbaef615a79c7f310d
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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/times.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/vfork.S
yscalls/wait4.S
yscalls/write.S
yscalls/writev.S
|
8794ece296dd62cbeb3d00fe57c831c90a1bef77 |
22-Mar-2013 |
Elliott Hughes <enh@google.com> |
Replace unnecessary ARM uses of <sys/linux-syscalls.h> with <asm/unistd.h>. For some reason, socketcalls.c was only being compiled for ARM, where it makes no sense. For x86 we generate stubs for the socket functions that use __NR_socketcall directly. Change-Id: I84181e6183fae2314ae3ed862276eba82ad21e8e
ionic/_exit_with_stack_teardown.S
ionic/clone.S
ionic/futex_arm.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/kill.S
ionic/tgkill.S
ionic/tkill.S
|
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
|
31dea25b8b6438df709f6b2c703cf385a2691e41 |
09-Mar-2013 |
Christopher Ferris <cferris@google.com> |
Create arch specific versions of strcmp. This uses the new strcmp.a15.S code as the basis for new versions of strcmp.S. The cortex-a15 code is the performance optimized version of strcmp.a15.S taken with only the addition of a few pld instructions. The cortex-a9 code is the same as the cortex-a15 code except that the unaligned strcmp code was taken from the original strcmp.S. The krait code is the same as the cortex-a15 code except that one path in the unaligned strcmp code was taken from the original strcmp.S code (the 2 byte overlap case). The generic code is the original unmodified strmp.S from the bionic subdirectory. All three new versions underwent these test cases: Strings the same, all same size: - Both pointers double word aligned. - One pointer double word aligned, one pointer word aligned. - Both pointers word aligned. - One pointer double word aligned, one pointer 1 off a word alignment. - One pointer double word aligned, one pointer 2 off a word alignment. - One pointer double word aligned, one pointer 3 off a word alignment. - One pointer word aligned, one pointer 1 off a word alignment. - One pointer word aligned, one pointer 2 off a word alignment. - One pointer word aligned, one pointer 3 off a word alignment. For all cases where it made sense, the two pointers were also tested swapped. Different strings, all same size: - Single difference at double word boundary. - Single difference at word boudary. - Single difference at 1 off a word alignment. - Single difference at 2 off a word alignment. - Single difference at 3 off a word alignment. Different sized strings, strings the same until the end: - Shorter string ends on a double word boundary. - Shorter string ends on word boundary. - Shorter string ends at 1 off a word boundary. - Shorter string ends at 2 off a word boundary. - Shorter string ends at 3 off a word boundary. For all different cases, run them through the same pointer alignment cases when the strings are the same size. For all cases the two pointers were also tested swapped. Bug: 8005082 Merge from internal master. (cherry-picked from commit a9a5870d166f8060a8182cd61e5536b0becea74e) Change-Id: I4c2b98f8a50804fb98ab67f75e9d660f1315a144
rm.mk
ortex-a15/bionic/strcmp.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/strcmp.S
ortex-a9/cortex-a9.mk
eneric/bionic/strcmp.S
eneric/generic.mk
rait/bionic/strcmp.S
rait/krait.mk
|
8f2a5a0b40fc82126c691d5c30131d908772aab7 |
15-Mar-2013 |
Elliott Hughes <enh@google.com> |
Clean up internal libc logging. We only need one logging API, and I prefer the one that does no allocation and is thus safe to use in any context. Also use O_CLOEXEC when opening the /dev/log files. Move everything logging-related into one header file. Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
ionic/atexit_legacy.c
|
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
ionic/clone.S
ionic/kill.S
ionic/syscall.S
ionic/tgkill.S
ionic/tkill.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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/times.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/vfork.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
rm.mk
ortex-a15/bionic/memcpy.S
ortex-a15/bionic/memset.S
ortex-a15/cortex-a15.mk
ortex-a9/bionic/memcpy.S
ortex-a9/bionic/memset.S
ortex-a9/cortex-a9.mk
eneric/bionic/memcpy.S
eneric/bionic/memset.S
eneric/generic.mk
rait/bionic/memcpy.S
rait/bionic/memset.S
rait/krait.mk
|
14283004f5a8fe4c74961a9c89009a781e1becbe |
01-Mar-2013 |
Ben Cheng <bccheng@google.com> |
Add stack unwinding directives to memcpy. Also include some Android specific header files. Change-Id: Idbcbd43458ba945ca8c61bfbc04ea15fc0ae4e00
ionic/memcpy.a15.S
|
eb149e954ed7c455d3fb3b19bc064ad358c8bb1e |
30-Nov-2012 |
Greta Yorsh <greta.yorsh@arm.com> |
Adding strcmp tuned for Cortex-A15. The attached patch provides a new implementation of strcmp for ARM, using LDRD instead of LDR whenever possible. For older architectures that do not support LDRD, this implementation uses the same algorithm as before. Testing and benchmarking: * Validation: successfully passes a test that compares different strings of length 1-128 and offsets 0-8 from a word boundary. Checked on qemu/A15/A9, ARM/Thumb mode, Big/Little Endian. * Integration with gcc: no regression on qemu for arm-none-eabi --with-cpu a15/a9 --with-mode arm/thumb. Change-Id: I9e230e1b99dbdc9119b69ee858a89038c516a4ea Signed-off-by: Vassilis Laganakos <vasileios.laganakos@arm.com>
ionic/strcmp.a15.S
|
5b349fc22e7ba35ecb76b365d8be71939d204cde |
04-Oct-2011 |
Greta Yorsh <greta.yorsh@arm.com> |
Adding memcpy tuned for Cortex-A15. The strategy for large block sizes is LDRD and STRD with offset addressing, where the main loop copies 64 bytes in every iteration, (i.e., 8 calls to LDRD and STRD pairs), interleaving load and stores (i.e., the pairs of LDRD and STRD of the same data are consecutive instructions), and the writeback of an updated address is a separate instruction, which allows us to write back the accumulated update once per iteration. This strategy is implemented in memcpy.S. In some configurations, a plain version of memcpy (included from memcpy-stub.c) is used instead of the optimized one. Validation: * Correctness: checked memcpy using a test harness for block sizes ranging between 1 to 128, and source and destination buffers alignment ranging in { 0,1,2,3,4,8,12 } bytes each. * Performance: benchmarking on Cortex-A15 FPGA indicates that this strategy is better for A15 than the strategy used by glibc and even slightly better than using NEON. Benchmarking on Cortex-A9 bare metal and Linux shows that the proposed strategy is reasonable: not as fast as the version of memcpy from glibc (which is the best open source strategy for A9), but comparable with csl and bionic. * Integration with GCC: no regression for arm-none-eabi --with-cpu cortex-a15 and cortex-a9. Change-Id: Ied56354d8992c62ae3e02d582a2bd55585d814b9 Signed-off-by: Vassilis Laganakos <vasileios.laganakos@arm.com>
ionic/memcpy.a15.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
|
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/memcmp.S
ionic/memset.S
|
73964c592c8d23901e9479893dfbd3d0f25bab04 |
13-Feb-2013 |
Elliott Hughes <enh@google.com> |
Everyone has CLZ. Even armv5 had CLZ. Change-Id: I51bc8d1166d09940fd0d3f4c7717edf26977082c
ionic/ffs.S
|
9f878c2fcab4e497d8b59f69dab74f092ad04deb |
13-Feb-2013 |
Elliott Hughes <enh@google.com> |
Really set errno if __pthread_clone fails. If r0 == 0, we're the child. If r0 > 0, we're the parent. Otherwise set errno. The __bionic_clone code I copy & pasted was wrong. This patch fixes both. Bug: 3461078 Change-Id: Ibb7d6cc7e54e666841f2f0dc59a141a0b31982e4
ionic/clone.S
|
d7a3a403c1a0bbb30786f052adc7332fdda3e1f9 |
12-Feb-2013 |
Elliott Hughes <enh@google.com> |
Use ENTRY/END in ARM __get_sp. Change-Id: If2f159b266f5fa4ad9d188a17d4cd318b605e446
ionic/__get_sp.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
|
f94fd3ccc66e05f53965bc14237778c0d8437bb6 |
12-Feb-2013 |
Elliott Hughes <enh@google.com> |
Clean up ARM assembler files to use ENTRY/END. We also don't need legacy syscall support (non-"swi 0"). Change-Id: Id1012e8ca18bf13f3f4e42200f39ba0e2e632cbf
ionic/_exit_with_stack_teardown.S
ionic/clone.S
ionic/futex_arm.S
ionic/syscall.S
|
646e058136d59671d5d32d93bedbb71004a9ce73 |
07-Feb-2013 |
Elliott Hughes <enh@google.com> |
Fix x86 build, remove void* arithmetic. Change-Id: Idc7f14af2e094ac33de315e808176237af063bb8
ionic/crtbegin.c
|
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
|
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
|
6a94cb748bf63278c3271b0ab610061b0dc6f04a |
25-Jan-2013 |
Elliott Hughes <enh@google.com> |
Merge "arm syscall : for eabi call_default don't use stack"
|
1e980b6bc8315d00a07312b25486531247abd98c |
18-Jan-2013 |
Elliott Hughes <enh@google.com> |
Fix the duplication in the debugging code. We had two copies of the backtrace code, and two copies of the libcorkscrew /proc/pid/maps code. This patch gets us down to one. We also had hacks so we could log in the malloc debugging code. This patch pulls the non-allocating "printf" code out of the dynamic linker so everyone can share. This patch also makes the leak diagnostics easier to read, and makes it possible to paste them directly into the 'stack' tool (by using relative PCs). This patch also fixes the stdio standard stream leak that was causing a leak warning every time tf_daemon ran. Bug: 7291287 Change-Id: I66e4083ac2c5606c8d2737cb45c8ac8a32c7cfe8
ionic/atexit_legacy.c
|
faa0fdb1194172f578f973097d61e580bce528dc |
16-Jan-2013 |
Matthieu Castet <matthieu.castet@gmail.com> |
arm syscall : for eabi call_default don't use stack In the default case, we don't need to use the stack, we can save r7 with ip register (that what does eglibc). This allow to fix vfork data corruption (see 3884bfe9661955543ce203c60f9225bbdf33f6bb), because vfork now don't use the stack.
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/__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_tls.S
yscalls/__setresuid.S
yscalls/__setreuid.S
yscalls/__setuid.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/fdatasync.S
yscalls/fgetxattr.S
yscalls/flistxattr.S
yscalls/flock.S
yscalls/fremovexattr.S
yscalls/fstat.S
yscalls/fstatat.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/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/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/lstat.S
yscalls/madvise.S
yscalls/mincore.S
yscalls/mkdir.S
yscalls/mkdirat.S
yscalls/mknod.S
yscalls/mlock.S
yscalls/mlockall.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/personality.S
yscalls/pipe.S
yscalls/pipe2.S
yscalls/poll.S
yscalls/read.S
yscalls/readlink.S
yscalls/readv.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/sendfile.S
yscalls/sendmsg.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/settimeofday.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/times.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/vfork.S
yscalls/write.S
yscalls/writev.S
|
35f5385aa5206c8958dc38a197cd6847e01b8c7b |
14-Jan-2013 |
Ben Cheng <bccheng@google.com> |
Add __aeabi_idiv to the dummy reference list. If the platform code is compiled with -mcpu=cortex-a15, then without this change prebuilt libraries built against -march=armv7 cannot resolve the dependency on __aeabi_idiv (provided by libgcc.a). Bug: 7961327 cherry-picked from internal master. Change-Id: I8fe59a98eb53d641518b882523c1d6a724fb7e55
ionic/libgcc_compat.c
|
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
|
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
nclude/machine/_types.h
|
884e4f839b18552237c1453312aa4ccba46f94e9 |
05-Nov-2010 |
Henrik Smiding <henrik.smiding@stericsson.com> |
Add optimized version of memset for Cortex A9 Adds new code to function memset, optimized for Cortex A9. Copyright (C) ST-Ericsson SA 2010 Added neon implementation Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson. Change-Id: Id3c87767953439269040e15bd30a27aba709aef6 Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
ionic/memset.S
|
6d0bcdc8329dde4d3c83e95475bc670002f41309 |
17-Jan-2011 |
Henrik Smiding <henrik.smiding@stericsson.com> |
Add optimized version of memcpy for Cortex A9 Adds new code to memcpy function, optimized for Cortex A9. Adds new ARM-only loop, for operations where source and destination are aligned. Copyright (C) ST-Ericsson SA 2010 Modified neon implementation to fit Cortex A9 cache line size, for those running 32 bytes L2 cache line size. Also split the implementation in aligned and unaligned access, for those that allows unaligned memory access with Neon. For totally aligned operations, arm-only code is used. Change-Id: I95ebf6164cd6486b12a7e3e98e369db21e7e18d2 Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson. Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
ionic/memcpy.S
|
c2132915158014f578c3f003c9399961fe8d6da2 |
09-Nov-2012 |
Elliott Hughes <enh@google.com> |
Merge "Add optimized version of memcmp for Cortex A9"
|
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
|
d10309c36b93176a473baeeddef6f3fba8bf0678 |
07-Sep-2012 |
Elliott Hughes <enh@google.com> |
Merge "Rename __dso_handle_so.c to __dso_handle_so.h"
|
048569be54188fadde19d5e48363e5fe3943023a |
05-Sep-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Rename __dso_handle_so.c to __dso_handle_so.h Also chang libc/arch-arm/bionic/crtbegin_so.c to include it as a header. Change-Id: Ib91b0b8caf5c8b936425aa8a4fc1a229b2b27929
ionic/crtbegin_so.c
|
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
|
b2c5bd543dcbbc1b2cbf7afd8b124256ce2c128e |
05-Sep-2012 |
Elliott Hughes <enh@google.com> |
Merge "ARM: warn about atexit() calls from legacy shared libraries"
|
26f2e4a1639a959513c4ff5981b4eb52757e8012 |
05-Sep-2012 |
Elliott Hughes <enh@google.com> |
Merge "ARM: make CRT_LEGACY_WORKAROUND work as intended"
|
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
|
069c64cdf2d3da7b7ff6ea5d1041f982fb10ab22 |
28-Aug-2012 |
Nick Kralevich <nnk@google.com> |
Merge "ARM: make sure __on_dlclose() actually gets called"
|
e026b1d89a0dcada499da186d4d94cc3ce5d3ef3 |
28-Aug-2012 |
Nick Kralevich <nnk@google.com> |
Merge "ARM: remove dummy entries from .so init_array/fini_array"
|
144c2918668ac0d506a86478d5b9966ad816cec4 |
28-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
ARM: warn about atexit() calls from legacy shared libraries Legacy ARM shared libraries use this generic version of atexit(), which queues exit functions for invocation at program exit, at which time the library may have been dlclose()'d, causing the program to crash. Change-Id: I41ae153c23268daa65ede7fb8966fc3e9caec369 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/atexit_legacy.c
|
f3cfcd869ded41d25c1f4f4e48e7c374a64f9583 |
21-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
ARM: make CRT_LEGACY_WORKAROUND work as intended To properly support legacy ARM shared libraries, libc.so needs to export the symbols __dso_handle and atexit, even though these are now supplied by the crt startup code. This patch reshuffles the existing CRT_LEGACY_WORKAROUND conditionally compiled code slightly so it works as the original author likely intended. Change-Id: Id6c0e94dc65b7928324a5f0bad7eba6eb2f464b9 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/atexit.h
ionic/atexit_legacy.c
ionic/crtbegin_so.c
ionic/eabi.c
|
c23092887fce8bf97ff33f72adf2d454946e7271 |
28-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
ARM: remove dummy entries from .so init_array/fini_array The runtime linker parses the ELF section headers to discover the size of the init_array and fini_array, so there is no point in putting NULL terminators at the end. Change-Id: I3246cd585efce9314155600277dd829e9f37d04f Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/crtend_so.S
|
0a150ead18019c0e4e59417ae3c5e8e0d7d2e4f4 |
21-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
libc: remove ctors/dtors sections None of the supported ARCHs actually populate these sections, so there is no point in keeping them in the binaries. Change-Id: I21a364f510118ac1114e1b49c53ec8c895c6bc6b Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/crtbegin.c
ionic/crtend.S
|
404e28ff8c3352a4fa290ae7769922db0172008e |
22-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
hardening: remove pointless ARM __get_pc() function Useful if you're trying to defeat ASLR, otherwise not so much ... Change-Id: I17ebb50bb490a3967db9c3038f049adafe2b8ea7 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/__get_pc.S
|
5ed48a4d7fece002afbbd2bd981563aea6e52e24 |
21-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
ARM: make sure __on_dlclose() actually gets called Change-Id: I280e5428b0543cccf17ca36baee4865395928cdb Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
ionic/crtbegin_so.c
|
b7beb6907599b36809effe1b4db76039ac649518 |
16-Aug-2012 |
Pavel Chupin <pavel.v.chupin@intel.com> |
Add link.h for all platforms with dl_phdr_info This header is used on bionic build and should be propagated into sysroot on toolchain rebuild. Discussion re. this header is here: http://gcc.gnu.org/ml/gcc-patches/2012-08/msg00936.html It is available already in mips NDK platforms: development/ndk/platforms/android-9/arch-mips/include/link.h Change-Id: I39ff467cdac9f448e31c11ee3e14a6200e82ab57 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
ionic/exidx_dynamic.c
ionic/exidx_static.c
|
6eee1fc68f366651379e776e4e3408069772562f |
10-Aug-2012 |
Nick Kralevich <nnk@google.com> |
crtend*: Add GNU_STACK note Add a GNU_STACK marker to crtend* files. This tells the linker that these files do not require an executable stack. When linking, a missing GNU_STACK marker in any .o file can prevent the compiler from automatically marking the final executable as NX safe (executable stack not required). In Android, we normally work around this by adding -Wa,--noexecstack / -Wl,-z,noexecstack. For files like crtend.S / crtend_so.S, which are included in every executable / shared library, it's better to add the GNU_STACK note directly to the assembly file. This allows the compiler to automatically mark the final executable as NX safe without any special command line options. References: http://www.gentoo.org/proj/en/hardened/gnu-stack.xml Change-Id: I07bd058f9f60ddd8b146e0fb36ba26ff84c0357d
ionic/crtend.S
ionic/crtend_so.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
|
3460db9490d7aee834dc05f99356e44d7549c538 |
09-Jul-2012 |
Peter Enderborg <peter.enderborg@sonymobile.com> |
bionic: Stack pointer/signal race condition. Move the stackpointer so a captured signal does not corrupt stack variables needed for __thread_entry. Change-Id: I3e1e7b94a6d7cd3a07081f849043262743aa8064
ionic/clone.S
|
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/atexit.S
ionic/atexit.h
ionic/crtbegin.S
ionic/crtbegin.c
ionic/crtbegin_so.S
ionic/crtbegin_so.c
|
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
|
3ebd31c0a1d343c3fd7845d7b1149e841ad83c6a |
05-Nov-2010 |
Henrik Smiding <henrik.smiding@stericsson.com> |
Add optimized version of memcmp for Cortex A9 Adds new code to function memcmp, optimized for Cortex A9. Copyright (C) ST-Ericsson SA 2010 Added neon optimization Change-Id: I8864d277042db40778b33232feddd90a02a27fb0 Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson. Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
ionic/memcmp.S
|
6cdefd06c0386776405e4379af036722db5d60c0 |
20-Oct-2011 |
Nick Kralevich <nnk@google.com> |
Add linker support for PIE Modify the dynamic linker so that executables can be loaded at locations other than 0x00000000. Modify crtbegin* so that non-PIC compilant "thumb interwork veneers" are not created by the linker. Bug: 5323301 Change-Id: Iece0272e2b708c79034f302c20160e1fe9029588
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
|
8034415ddd8404f8788199ed993af89692235dc5 |
10-May-2012 |
Iliyan Malchev <malchev@google.com> |
resolved conflicts for merge of 08e72d01 to jb-dev-plus-aosp Change-Id: If00e354a5953ed54b31963d4f8ea77e1603c321e
|
08e72d0161e39e99ff1003bf1ce894f37d7b7eb4 |
07-May-2012 |
Prajakta Gudadhe <pgudadhe@nvidia.com> |
bionic: add support for non-NEON memcpy() on NEON SoCs Some SoCs that support NEON nevertheless perform better with a non-NEON than a NEON memcpy(). This patch adds build variable ARCH_ARM_USE_NON_NEON_MEMCPY, which can be set in BoardConfig.mk. When ARCH_ARM_USE_NON_NEON_MEMCPY is defined, we compile in the non-NEON optimized memcpy() even if the SoC supports NEON. Change-Id: Ia0e5bee6bad5880ffc5ff8f34a1382d567546cf9
ionic/memcpy.S
|
da0d8534f1a6273a383f1dc631fbaf032674bb4d |
09-May-2012 |
Ben Cheng <bccheng@google.com> |
am 08b51e2c: Implement the "abort" stub in assembly for ARM. * commit '08b51e2c091d036c124259ae59eb7be6bbe346af': Implement the "abort" stub in assembly for ARM.
|
eda7be454d6ff8689392442223335c6558bea932 |
08-May-2012 |
Ben Cheng <bccheng@google.com> |
Implement the "abort" stub in assembly for ARM. So that we can always get the full stack trace regardless of gcc's handling of the "noreturn" attribute associated with abort(). (Cherry pick of Id264a5167e7cabbf11515fbc48f5469c527e34d4.) Bug: 6455193 Conflicts: libc/Android.mk Change-Id: I568fc5303fd1d747075ca933355f914122f94dac
ionic/abort_arm.S
|
08b51e2c091d036c124259ae59eb7be6bbe346af |
08-May-2012 |
Ben Cheng <bccheng@google.com> |
Implement the "abort" stub in assembly for ARM. So that we can always get the full stack trace regardless of gcc's handling of the "noreturn" attribute associated with abort(). [cherry-picked from master] BUG:6455193 Change-Id: I0102355f5bf20e636d3feab9d1424495f38e39e2
ionic/abort_arm.S
|
e636e1f2c17d7097b6638cb4ae2b4857765b502d |
07-May-2012 |
Elliott Hughes <enh@google.com> |
am 8657eafc: Merge "Adjust memcpy for ARM Cortex A9 cache line size" * commit '8657eafc3552f36c176667c1591beab255308da6': Adjust memcpy for ARM Cortex A9 cache line size
|
fe6338da9168330d44b409b2ee36103e8bfe6697 |
15-Sep-2010 |
Henrik Smiding <henrik.smiding@stericsson.com> |
Adjust memcpy for ARM Cortex A9 cache line size ARM Cortex A8 use 64 bytes and ARM Cortex A9 use 32 bytes cache line size. The following patch: Adds code to adjust memcpy cache line size to match A9 cache line size. Adds a flag to select between 32 bytes and 64 bytes cache line size. Copyright (C) ST-Ericsson SA 2010 Modified neon implementation to fit Cortex A9 cache line size Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson. Change-Id: I8a55946bfb074e6ec0a14805ed65f73fcd0984a3 Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
ionic/memcpy.S
|
4a9d6e50bb800eeadf579eb36b63e8b2eedb0d43 |
17-Apr-2012 |
Evgeniy Stepanov <eugenis@google.com> |
Fix segv when unwinding stack past __libc_init. This change mirrors cd15bac for statically-linked binaries. Change-Id: Id870832a50b37f0ef3e79e1ed03ed31390bfc9ef
ionic/crtbegin_static.S
|
f0ec06ba609a15cf9343aabd5b2486f9a8af9adb |
13-Apr-2012 |
Kenny Root <kroot@google.com> |
Add faccessat to syscall list Change-Id: I427a18811089cb280769ac8da3ed8adc00a65a10
yscalls.mk
yscalls/faccessat.S
|
d5099016f70b5acbfeb969787687099df703a4f4 |
12-Apr-2012 |
Elliott Hughes <enh@google.com> |
Merge "Fix segv when unwinding stack past __libc_init."
|
470835b215c14aa5ff2368527feeff35bfb46a90 |
11-Apr-2012 |
Kenny Root <kroot@google.com> |
Move end of __on_dlclose up The END macro was put too far down which made the linker complain about it. Move up to the end of the code. Change-Id: Ica71a9c6083b437d2213c7cefe34b0083c78f16b
ionic/crtbegin_so.S
|
03273f8fc0a7ac2b54fa2c983d4a647580e34458 |
11-Apr-2012 |
Kenny Root <kroot@google.com> |
__on_dlclose should be aligned Marking segments read-only was pushing the alignment of __on_dlclose by 2 bytes making it unaligned. This change makes sure the ARM code is aligned to the 4 byte boundary. Bug: 6313309 Change-Id: Ic2bf475e120dd61225ec19e5d8a9a8b1d0b7f081
ionic/crtbegin_so.S
|
cd15bacf334ab254a5f61c3bba100adde1b6b80a |
10-Apr-2012 |
Evgeniy Stepanov <eugenis@google.com> |
Fix segv when unwinding stack past __libc_init. This change fixes a segmentation fault in the libc unwinder when it goes past __libc_init. Unwind instructions for __libc_init direct it to grab the return address from the stack frame. Without this change, the unwinder gets a wild address and looks up further unwind instructions for the routine at that address. If it's unlucky enough to hit an existing function, it will try to unwind it. Bad things happen then. With this change, the return address always points to the _start function, which does not have unwind instructions associated with it. This stop the unwind process. __libc_init never returns, so this does not affect program execution, other than adding 4 bytes on the main thread stack. Change-Id: Id58612172e8825c8729cccd081541a13bff96bd0
ionic/crtbegin_dynamic.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
|
be101bf39aaaaaee3a96d62fbc4c1136548480de |
05-Mar-2012 |
Kenny Root <kroot@google.com> |
Revert "Reference __dso_handle in PIC way" This reverts commit 93cb30813764b140f0adbaa620dcdbb1cae56dd8
ionic/crtbegin_so.S
|
93cb30813764b140f0adbaa620dcdbb1cae56dd8 |
02-Mar-2012 |
Kenny Root <kroot@google.com> |
Reference __dso_handle in PIC way Use the same pattern in atexit.S to reference __dso_handle in a way that doesn't require a TEXTREL flag to be set. Change-Id: Id69d20863ee203d2b2f7ef0db230f9b548657741
ionic/crtbegin_so.S
|
4fc127345968c0e75775a6377c6f784ae6600cff |
29-Feb-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Merge "Trivial fix in comment"
|
f1a17e762b6fab449cff3006178e42b68e8e241e |
23-Feb-2012 |
Dima Zavin <dima@android.com> |
libc: Add __aeabi_llsl and __aeabi_llsr to libgcc_compat Some platform libraries built for ICS do not work with master because of some refactoring in frameworks/base. Make sure that these libgcc symbols are always present in our libc Change-Id: Ib8d345878be0ba711f051082a778f5cc1f1b3a19 Signed-off-by: Dima Zavin <dima@android.com>
ionic/libgcc_compat.c
|
58b2c1616bed68fe5a6a1794c8764b24d29ad8cb |
22-Feb-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Trivial fix in comment Very, very trivial fix for minor typo in comment about how it works Change-Id: Ia08d332366837dec8f7e91b9728732c5edea223e
ionic/libgcc_compat.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
|
f1a39dce60be0b453416e1b82a6d445a7677eb4b |
23-Nov-2011 |
David 'Digit' Turner <digit@google.com> |
libc: Fix typo that broke NDK compatibility. The function must be named __atomic_cmpxchg, not __android_cmpxchg. This typo broke existing prebuilt binaries (they couldn't be loaded at runtime anymore). Change-Id: I25ca7d18329817f0056e616a0409113269ad7b1f
ionic/atomics_arm.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
ionic/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_arm.S
ionic/atomics_arm.c
ionic/futex_arm.S
|
d9ad62343c2db6b66a5fa597c9b20a6faabd7a9a |
20-Oct-2011 |
Nick Kralevich <nnk@google.com> |
Add linker support for PIE Modify the dynamic linker so that executables can be loaded at locations other than 0x00000000. Modify crtbegin* so that non-PIC compilant "thumb interwork veneers" are not created by the linker. Bug: 5323301 Change-Id: Iece0272e2b708c79034f302c20160e1fe9029588
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
|
487b613e572160e80d0700e1bcd0e405420d14ea |
04-Oct-2011 |
Evgeniy Stepanov <eugenis@google.com> |
Use ENTRY and EXIT macros for strcmp, memcpy, atexit. Without this change strcmp size is zero (not set), and it gets ignored by Valgrind. Changes to memcpy and atexit don't affect the generated binary in any way. Change-Id: I05818cb5951f75901dc8c0eef02807a2e83a9231
ionic/atexit.S
ionic/memcpy.S
ionic/strcmp.S
|
58246b7067b4e1a0b3ce48ccd94331f6fd8fa7cc |
22-Aug-2011 |
David 'Digit' Turner <digit@google.com> |
libc: Add __aeabi_f2uiz to libgcc_compat.c This patch ensure that __aeabi_f2uiz is embedded in our C library. This is needed to avoid breaking certain applications when they are loaded in ICS. It is likely that the issue is due to mis-linked binaries generated with the stand-alone toolchain (the problem should not exist if you use ndk-build), but this fix is easier than asking all app developers to fix their custom build system. If you want more technical details, read the comments inside libgcc_compat.c Change-Id: I59ac1fc781ecb70b90b5573c5a3c67560ca8f270
ionic/libgcc_compat.c
|
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
|
a9e409a03530c79bc7ad8144d08e8921ebe0dd02 |
17-May-2011 |
David Turner <digit@android.com> |
am a7a9dddb: Merge "bionic: Add ARM optimized strcmp()" * commit 'a7a9dddb5dfe783d65fec4d3b0dee9f734345a29': bionic: Add ARM optimized strcmp()
|
f50e9be5930a08fa825b0c23353c802e11369b14 |
20-Apr-2011 |
Jim Huang <jim.huang@linaro.org> |
bionic: Add ARM optimized strcmp() Reference results of the experiments on TI OMAP3430 at 600 MHz $ bench_strcmp -N "strcmp_1k" -s 1k -I 200 [original C code] prc thr usecs/call samples errors cnt/samp size strcmp_1k 1 1 10.38000 102 0 15000 1024 [ARM optimized code] prc thr usecs/call samples errors cnt/samp size strcmp_1k 1 1 3.08840 88 0 15000 1024 The work was derived from ARM Ltd, contributed to newlib, and reworked for Android by Linaro. Change-Id: Ib0d5755e1eb9adb07d80ef0252f57a5c4c57a425 Signed-off-by: Jim Huang <jserv@0xlab.org>
ionic/strcmp.S
|
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
|
3224c08bd77043338ad6e9ecacbd4c118205e873 |
19-Feb-2011 |
David Turner <digit@google.com> |
Merge changes I8c481c89,I791406f8,I5f09cef8 * changes: libc: ARM: update syscalls with new script libc: ARM: add size info to gensyscalls Add function marks and size indications
|
fb723c87490b76d1d2fe521886f7cb6c96ed40b7 |
17-Feb-2011 |
Kenny Root <kroot@google.com> |
libc: ARM: update syscalls with new script Used the new gensyscalls.py script to update the ARM syscalls with the BEGIN(x) and END(x) macros to give size information for the code of the syscall. Useful for valgrind. Change-Id: I8c481c8928401ac110fd19b087f7d67e4db39326
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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/fchdir.S
yscalls/fchmod.S
yscalls/fchmodat.S
yscalls/fchown.S
yscalls/fchownat.S
yscalls/fdatasync.S
yscalls/flock.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/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/ioprio_get.S
yscalls/ioprio_set.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/pipe2.S
yscalls/poll.S
yscalls/prctl.S
yscalls/pread64.S
yscalls/pwrite64.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_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/shutdown.S
yscalls/sigaction.S
yscalls/sigaltstack.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/times.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/write.S
yscalls/writev.S
|
420878c6908cf9c2862888477ec3f424a06cf172 |
16-Feb-2011 |
Kenny Root <kroot@google.com> |
Add function marks and size indications Add a macro to annotate function end and start using both ENTRY and END for each function. This allows valgrind (and presumably other debugging tools) to use the debug symbols to trace the functions. Change-Id: I5f09cef8e22fb356eb6f5cee952b031e567599b6
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_arm.S
ionic/clone.S
ionic/ffs.S
ionic/kill.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/memset.S
ionic/setjmp.S
ionic/sigsetjmp.S
ionic/strcpy.S
ionic/tkill.S
nclude/machine/asm.h
|
0233509c16046766bea9af6c7053cc6ceecef7a2 |
17-Feb-2011 |
Kenny Root <kroot@google.com> |
Amend previous commit with needed include Change-Id: Idae8daaf095d90513820e05f423144ffed4ba913
ionic/ffs.S
|
3a3c1853aca502ec109e5e97423e9f721035915c |
17-Feb-2011 |
Kenny Root <kroot@google.com> |
Use CLZ on ARMv5 and newer Change-Id: Ia5aa6974c0343ae43fbcb91304501213048e9ec0
ionic/ffs.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
|
9c8ea7fa3fcc26a0777011e0a84831c58847faed |
22-Nov-2010 |
Jean-Baptiste Queru <jbq@google.com> |
am 24dc9363: resolved conflicts for merge of 1bc98ccb to gingerbread-plus-aosp * commit '24dc936346b4a31005ac28c4bd464320cca9320a': bionic: Add ARM optimized strcpy()
|
24dc936346b4a31005ac28c4bd464320cca9320a |
22-Nov-2010 |
Jean-Baptiste Queru <jbq@google.com> |
resolved conflicts for merge of 1bc98ccb to gingerbread-plus-aosp Change-Id: Ief9ec3d0472660e26864e082e03c26e09a043b9d
|
73c04b32691cb344cb60289a646ded8fc551d09e |
10-Aug-2010 |
Jim Huang <jserv@0xlab.org> |
bionic: Add ARM optimized strcpy() Reference results of the experiments on Qualcomm MSM7x25 (524MHz): [original C code] prc thr usecs/call samples errors cnt/samp size strcpy_1k 1 1 14.56159 99 0 1000 1024 [ARM optimized code] prc thr usecs/call samples errors cnt/samp size strcpy_1k 1 1 3.46653 99 0 1000 1024 The work was derived from ARM Ltd. Change-Id: I906ac53bb7a7285e14693c77d3ce8d4ed6f98bfd
ionic/strcpy.S
|
482358fda727ceab18412d63098db524a46999e8 |
21-Oct-2010 |
Jean-Baptiste Queru <jbq@google.com> |
am d29b8a51: am 5109146f: Merge "Reconcile assembly-only macros in <machine/cpu-features.h>" Merge commit 'd29b8a51a5f95a3f38e5fb812231e12e5a66a865' * commit 'd29b8a51a5f95a3f38e5fb812231e12e5a66a865': Reconcile assembly-only macros in <machine/cpu-features.h>
|
d29b8a51a5f95a3f38e5fb812231e12e5a66a865 |
20-Oct-2010 |
Jean-Baptiste Queru <jbq@google.com> |
am 5109146f: Merge "Reconcile assembly-only macros in <machine/cpu-features.h>" Merge commit '5109146f954d8cca39d34689bff2762e15bc6933' into gingerbread-plus-aosp * commit '5109146f954d8cca39d34689bff2762e15bc6933': Reconcile assembly-only macros in <machine/cpu-features.h>
|
76a34d6628c1b0815cdf6bc6c0a724f9eb1118d4 |
09-Oct-2010 |
Ying Wang <wangying@google.com> |
Remove duplicate item This elimates the makefile warning at the beginning of each build: libc_common_intermediates/arch-arm/syscalls/eventfd.o' given more than once in the same rule. Change-Id: I25cc0c373d55b5036dd17811a595c097fd6ca69a
yscalls.mk
|
94e5c5ef3754fee833c527f12ddb18e639fe7cf2 |
01-Oct-2010 |
Jim Huang <jserv@0xlab.org> |
Reconcile assembly-only macros in <machine/cpu-features.h> The change explicitly isolates the assembly-only macros in header <machine/cpu-features.h> in order to prevent mis-inclusion in C/C++ source files. Change-Id: I0258e87c5ac3fd24944fb227290ac3b9cac4bfba
nclude/machine/cpu-features.h
|
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.
|
9aac38249b579282ae8eaa630de3deaf97c4edff |
28-Sep-2010 |
David 'Digit' Turner <digit@google.com> |
am bd8d987b: libc: remove C++ comments from public headers. Merge commit 'bd8d987b3c3aa6d9d00cede2cb091f00bdb42204' into gingerbread-plus-aosp * commit 'bd8d987b3c3aa6d9d00cede2cb091f00bdb42204': libc: remove C++ comments from public headers.
|
223ddfcfc4cb354641e70da31a60556248db5036 |
28-Sep-2010 |
David 'Digit' Turner <digit@google.com> |
Merge "libc: Add missing pipe2() declaration and implementation." into gingerbread
|
8120a8df848e6dec31ef5f00bc0b41ed95ce1310 |
27-Sep-2010 |
Elliott Hughes <enh@google.com> |
am 3cf53d1a: Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64. Merge commit '3cf53d1a7814e1520df09d24b009c16f4f27db0d' into gingerbread-plus-aosp * commit '3cf53d1a7814e1520df09d24b009c16f4f27db0d': Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64.
|
bd8d987b3c3aa6d9d00cede2cb091f00bdb42204 |
26-Sep-2010 |
David 'Digit' Turner <digit@google.com> |
libc: remove C++ comments from public headers. Change-Id: I4af84f912062cd2ff34711c25122fb323f20c032
nclude/machine/_types.h
|
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
|
3cf53d1a7814e1520df09d24b009c16f4f27db0d |
25-Sep-2010 |
Elliott Hughes <enh@google.com> |
Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64. 1. Make the feature test work by excluding known-deficient processors, so we don't have to maintain a complete list of all the processors that support REV and REV16. 2. Don't abuse 'register' to get an effect similar to GCC's +l constraint, but which was unnecessarily restrictive. 3. Fix __swap64md so _x isn't clobbered, breaking 64-bit swaps. 4. Make <byteswap.h> (which declars bswap_16 and friends) use <endian.h> rather than <sys/endian.h>, so we get the machine-dependent implementations. Change-Id: I6a38fad7a9fbe394aff141489617eb3883e1e944
nclude/endian.h
|
ef3644d110bcb44010672c0ad0bc7c96fd130c8f |
11-Sep-2010 |
Jean-Baptiste Queru <jbq@google.com> |
am 312be567: Merge "Use ARMv6 instruction for handling byte order" Merge commit '312be567a03aaf851707a268807ee666b12f8c74' into gingerbread-plus-aosp * commit '312be567a03aaf851707a268807ee666b12f8c74': Use ARMv6 instruction for handling byte order
|
312be567a03aaf851707a268807ee666b12f8c74 |
11-Sep-2010 |
Jean-Baptiste Queru <jbq@google.com> |
Merge "Use ARMv6 instruction for handling byte order"
|
d7b156d2a38e58ab1e5f9e6a4b420588aeb78b46 |
08-Sep-2010 |
Keith Deacon <kdeacon@ti.com> |
am 3a1bbee3: Add eventfd system call support Merge commit '3a1bbee36b773862e88c6f1895b607c0cd81b499' into gingerbread-plus-aosp * commit '3a1bbee36b773862e88c6f1895b607c0cd81b499': Add eventfd system call support
|
3a1bbee36b773862e88c6f1895b607c0cd81b499 |
31-Aug-2010 |
Keith Deacon <kdeacon@ti.com> |
Add eventfd system call support
yscalls.mk
yscalls/eventfd.S
|
aa35095517b78b3d2e8ee282cab93ef058479fcf |
31-Aug-2010 |
Jim Huang <jserv@0xlab.org> |
Use ARMv6 instruction for handling byte order ARMv6 ISA has several instructions to handle data in different byte order. For endian conversion (byte swapping) of single data words, it might be a good idea to use the REV/REV16 instruction simply. Change-Id: Ic4a5ed6254e082763e54aa70d428f59a0088636e
nclude/endian.h
|
a1727092595a65e4dd9d9a6bae3778ad8c31d77f |
08-Aug-2010 |
Jim Huang <jserv@0xlab.org> |
bionic: Rename _ARM_HAVE_LDREX_STREX to __ARM_HAVE_LDREX_STREX for consistency The patch follows the naming manner in existing macros with prefix __ARM_HAVE. Change-Id: I6763ce2bf3ee85fd1da112c719543061d8d19bf4
ionic/atomics_arm.S
nclude/machine/cpu-features.h
|
18c5bcc66a9a7b2178dcdcf04a0716958798ab81 |
30-Jul-2010 |
Dima Zavin <dima@android.com> |
Revert "Set SA_RESTORER in sigaction()" This reverts commit e4fa46e75cd0d433b5c6c064720ed7e195cba7c8.
ionic/__sig_restorer.S
ionic/sigaction.c
yscalls.mk
yscalls/__sigaction.S
yscalls/sigaction.S
|
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
|
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
ionic/crtend_so.S
ionic/eabi.c
|
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
ionic/crtend_so.S
ionic/eabi.c
|
b8e6c50cfa2d4c4b73e071d0e836a2667db010b1 |
25-Mar-2010 |
David 'Digit' Turner <digit@google.com> |
Fix setjmp()/longjmp() to save FP registers on ARMv7. - DO NOT MERGE Change-Id: I3a0c2c05e295ac05ed51a531dabda668be204ca0
ionic/_setjmp.S
ionic/setjmp.S
nclude/machine/cpu-features.h
nclude/machine/setjmp.h
|
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
|
fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa |
28-May-2010 |
Andy McFadden <fadden@android.com> |
Atomic/SMP update, part 3. Update ARM atomic ops to use LDREX/STREX. Stripped out #if 0 chunk. Insert explicit memory barriers in pthread and semaphore code. For bug 2721865. Change-Id: I0f153b797753a655702d8be41679273d1d5d6ae7
ionic/atomics_arm.S
|
4fdbadde921ec17b4ff9e97fbd41096903b21772 |
20-May-2010 |
Andy McFadden <fadden@android.com> |
Atomic/SMP update. Added an underscore to _ARM_HAVE_LDREX_STREX to make it match the others. Added __ARM_HAVE_DMB and __ARM_HAVE_LDREXD when appropriate. Fixed some typos. Change-Id: I2f55febcff4aeb7de572a514fb2cd2f820dca27c
ionic/atomics_arm.S
nclude/machine/cpu-features.h
|
4aef0ae660e81ca151a04ce0ddaf956275c70116 |
13-May-2010 |
The Android Open Source Project <initial-contribution@android.com> |
merge from open-source master Change-Id: I2be62bce462ee53fe9519f433523bd7a44a73d40
|
e4fa46e75cd0d433b5c6c064720ed7e195cba7c8 |
11-Jan-2010 |
Matt Fischer <matt.fischer@garmin.com> |
Set SA_RESTORER in sigaction() GDB looks for specific opcode sequences when trying to recognize a stack frame as a signal trampoline. The sequences it looks for happen to be those created when SA_RESTORER is set, since glibc always sets a restorer. This patch does the same here, so that the trampolines can be correctly identified. Change-Id: I0ac574a68818cb24d939c3527f3aaeb04b853d04
ionic/__sig_restorer.S
ionic/sigaction.c
yscalls.mk
yscalls/__sigaction.S
yscalls/sigaction.S
|
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_arm.S
|
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_arm.S
|
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_arm.S
|
ecede4022283650ee4c4ed117a792d6db0b929fd |
10-Mar-2010 |
Colin Cross <ccross@android.com> |
Only use NEON memcpy if __ARM_NEON__ is defined Change-Id: I32e6b9385d46efeec15dee8e395a82eef24ba3ea
ionic/memcpy.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
|
d548a265ca0d998241443504afdcdc12e1507811 |
04-Dec-2009 |
Doug Kwan <dougkwan@google.com> |
Add missing symbol type directives.
ionic/__get_pc.S
ionic/__get_sp.S
ionic/atomics_arm.S
|
ecac54db21256952b4b4a9c6f17604ec31743183 |
30-Oct-2009 |
Mathias Agopian <mathias@google.com> |
am 3ba822cc: am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment) Merge commit '3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a' into eclair-mr2-plus-aosp * commit '3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a': Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)
|
47c5e30b61bad28731e4acff2d690a4207801f27 |
29-Oct-2009 |
Mathias Agopian <mathias@google.com> |
am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment) Merge commit '199f9d923804d74e021dd80e48ec75c0a96dba77' into eclair-plus-aosp * commit '199f9d923804d74e021dd80e48ec75c0a96dba77': Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)
|
199f9d923804d74e021dd80e48ec75c0a96dba77 |
28-Oct-2009 |
Mathias Agopian <mathias@google.com> |
Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment) use 64 bytes cache lines, reduce the main loop to 64-bytes instead of 128 bytes and adjust the prefetch distance to the optimal value.
ionic/memcpy.S
|
581f43056b594429b3df4678d87989c93d8f81d2 |
20-Oct-2009 |
Mathias Agopian <mathias@google.com> |
am 76ef331c: am 7e7d6c48: use local symbols in memset so it doesn\'t screw up profiling Merge commit '76ef331cd6967ca8f5af779d25c8b634f8cdd2b6' into eclair-mr2-plus-aosp * commit '76ef331cd6967ca8f5af779d25c8b634f8cdd2b6': use local symbols in memset so it doesn't screw up profiling
|
214dec2811ef893984ce5bceceb28a47d701fa9f |
20-Oct-2009 |
Mathias Agopian <mathias@google.com> |
am 7e7d6c48: use local symbols in memset so it doesn\'t screw up profiling Merge commit '7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c' into eclair-plus-aosp * commit '7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c': use local symbols in memset so it doesn't screw up profiling
|
7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c |
20-Oct-2009 |
Mathias Agopian <mathias@google.com> |
use local symbols in memset so it doesn't screw up profiling
ionic/memset.S
|
1f2a381e844abfb364af7cfc48d8a2cb1e194637 |
07-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
am fdc5c1f5: Re-enable ARMv7 memcpy implementation. Merge commit 'fdc5c1f56f9d21034badb8e4b092c47098f19613' into eclair-plus-aosp * commit 'fdc5c1f56f9d21034badb8e4b092c47098f19613': Re-enable ARMv7 memcpy implementation.
|
5be45ce0cf81a3904c697a77fa3e73bf85aead8b |
07-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
am 1e40783d: Fix armv7-user builds by disabling the ARMv7-optimized memcpy. Merge commit '1e40783d9ad29c88a4d547774e05080fc4327a2e' into eclair-plus-aosp * commit '1e40783d9ad29c88a4d547774e05080fc4327a2e': Fix armv7-user builds by disabling the ARMv7-optimized memcpy.
|
fdc5c1f56f9d21034badb8e4b092c47098f19613 |
05-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
Re-enable ARMv7 memcpy implementation. Do not submit this patch before the one that modifies the Android emulator to work-around a weird ARMv7 emulation issue. This is done to temporarily re-allow the -user builds needed for QA.
ionic/memcpy.S
|
1e40783d9ad29c88a4d547774e05080fc4327a2e |
03-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
Fix armv7-user builds by disabling the ARMv7-optimized memcpy. This is required to work-around some corny bugs in ARMv7 emulation. The emulation itself is required to run the dex pre-optimization pass for -user builds.
ionic/memcpy.S
|
0893d4918742db3b4bd8ef82c4f3008b60de9e2a |
30-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
am 7a9e06fa: Merge change I2a7ad975 into eclair Merge commit '7a9e06fa7e4e533074cde314f25dff3024f34a5d' into eclair-plus-aosp * commit '7a9e06fa7e4e533074cde314f25dff3024f34a5d': Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
|
7a9e06fa7e4e533074cde314f25dff3024f34a5d |
30-Sep-2009 |
Android (Google) Code Review <android-gerrit@google.com> |
Merge change I2a7ad975 into eclair * changes: Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
|
2a7ad97539313c82e13d36c9c75cefb2982a87d8 |
29-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair. For a detailed description of the problem and why this fix is needed, plrease read the comments in libgcc_compat.c
ionic/libgcc_compat.c
|
2d77d4dbd690e2d85b9795e670c3b94f8233e962 |
29-Sep-2009 |
Mathias Agopian <mathias@google.com> |
am ee223d02: NEON optimized memcpy. Merge commit 'ee223d02d96815c989b62043ff1237b1cd4e14b0' into eclair-plus-aosp * commit 'ee223d02d96815c989b62043ff1237b1cd4e14b0': NEON optimized memcpy.
|
ee223d02d96815c989b62043ff1237b1cd4e14b0 |
28-Sep-2009 |
Mathias Agopian <mathias@google.com> |
NEON optimized memcpy. 372 MB/s for large transfers, 440 MB/s for smaller ones down to 1KB. 130 MB/s for very small transfers ( < 32 bytes ) Performance is similar with non-congruent buffers.
ionic/memcpy.S
|
dfa87a200fd3f99e2a8790f2efc12528fba8e756 |
27-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
am f355096a: Remove NEON optimizations for memcpy Merge commit 'f355096a64b74c8e869527de55f7e908873e3128' into eclair-plus-aosp * commit 'f355096a64b74c8e869527de55f7e908873e3128': Remove NEON optimizations for memcpy
|
f355096a64b74c8e869527de55f7e908873e3128 |
27-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
Remove NEON optimizations for memcpy
ionic/memcpy.S
|
4a05d12cf52a9a40759f11f28543bd75715c8f00 |
18-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
Fix TLS access for ARMv6 and beyond. For performance reasons, we don't call the kernel helper. Instead, we directly access the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded address populated by the kernel on each task switch. NOTE: Since we don't call the kernel helper, this must precisely match your kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER variable to 'true' in your board configuration file.
nclude/machine/cpu-features.h
|
b8a18d059b8bde9a04e5778a0074a54413328472 |
15-Sep-2009 |
Ben Cheng <bccheng@google.com> |
am bd192b47: Add stack unwinding directives to assembly leaf functions. Merge commit 'bd192b470b69e00e9313680b70c5572a609e535d' into eclair-plus-aosp * commit 'bd192b470b69e00e9313680b70c5572a609e535d': Add stack unwinding directives to assembly leaf functions.
|
bd192b470b69e00e9313680b70c5572a609e535d |
15-Sep-2009 |
Ben Cheng <bccheng@google.com> |
Add stack unwinding directives to assembly leaf functions. So that the real culprit of native crashes can surface in the stack trace.
ionic/atomics_arm.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
|
cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba |
15-Sep-2009 |
Jean-Baptiste Queru <jbq@google.com> |
merge from open-source master
|
76ec6891e2bc18c9e12cd2f567358bb817b24cff |
09-Sep-2009 |
vinay harugop <vinay.harugop@stericsson.com> |
ARM architecture reference manuals for ARMv6 & ARMv7 state that the use of 'swp' instruction is deprecated ARMv6 onwards. These architectures provide the load-linked, store-conditional pair of ldrex/strex whose use is recommended in place of 'swp'. Also, the description of the 'swp' instruction in the ARMv6 reference manual states that the swap operation does not include any memory barrier guarantees.This fix attempts to address these issues by providing an atomic swap implementation using ldrex/strex under _ARM_HAVE_LDREX_STREX macro. This Fix is verified on ST Ericsson's U8500 platform and Submitted on behalf of a third-party: Surinder-pal SINGH from STMicroelectronics.
ionic/atomics_arm.S
nclude/machine/cpu-features.h
|
1bbc56cd227546cb155bb47721cdb717780a3400 |
26-Aug-2009 |
David 'Digit' Turner <digit@google.com> |
Neon-optimized versions of memcpy. This optimization come from the external 0xdroid repository. Original patch can be found here: http://gitorious.org/0xdroid/bionic/commit/ebafe41c2c02f8c09a3c1d7746047083df180ac5
ionic/memcpy.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_pc.S
ionic/__get_sp.S
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_arm.S
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/exidx_dynamic.c
ionic/exidx_static.c
ionic/ffs.S
ionic/kill.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/memset.S
ionic/setjmp.S
ionic/sigsetjmp.S
ionic/strlen.c
ionic/syscall.S
ionic/tkill.S
nclude/endian.h
nclude/machine/_types.h
nclude/machine/asm.h
nclude/machine/cdefs.h
nclude/machine/cpu-features.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
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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/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
|
1767f908af327fa388b1c66883760ad851267013 |
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
ionic/__get_pc.S
ionic/__get_sp.S
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_arm.S
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/exidx_dynamic.c
ionic/exidx_static.c
ionic/ffs.S
ionic/kill.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/memset.S
ionic/setjmp.S
ionic/sigsetjmp.S
ionic/strlen.c
ionic/syscall.S
ionic/tkill.S
nclude/endian.h
nclude/machine/_types.h
nclude/machine/asm.h
nclude/machine/cdefs.h
nclude/machine/cpu-features.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
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_tls.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/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/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
|
6f04a0f4c72acff80dad04828cb69ef67fa609d1 |
19-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@132276
yscalls.mk
yscalls/msgctl.S
yscalls/msgget.S
yscalls/msgrcv.S
yscalls/msgsnd.S
yscalls/semctl.S
yscalls/semget.S
yscalls/semop.S
yscalls/shmat.S
yscalls/shmctl.S
yscalls/shmdt.S
yscalls/shmget.S
|
6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc |
10-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@125939
ionic/ffs.S
|
4e468ed2eb86a2406e14f1eca82072ee501d05fd |
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/strlen.c
nclude/asm
nclude/machine/_types.h
nclude/machine/cpu-features.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/fork.S
yscalls/getitimer.S
yscalls/timer_create.S
yscalls/timer_delete.S
yscalls/timer_getoverrun.S
yscalls/timer_gettime.S
yscalls/timer_settime.S
|
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 |
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
ionic/__get_pc.S
ionic/__get_sp.S
ionic/_exit_with_stack_teardown.S
ionic/_setjmp.S
ionic/atomics_arm.S
ionic/clone.S
ionic/crtbegin_dynamic.S
ionic/crtbegin_static.S
ionic/crtend.S
ionic/exidx_dynamic.c
ionic/exidx_static.c
ionic/kill.S
ionic/memcmp.S
ionic/memcmp16.S
ionic/memcpy.S
ionic/memset.S
ionic/setjmp.S
ionic/sigsetjmp.S
ionic/strlen.c
ionic/syscall.S
ionic/tkill.S
nclude/asm
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
yscalls.mk
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_tls.S
yscalls/__sigsuspend.S
yscalls/__statfs64.S
yscalls/__syslog.S
yscalls/__wait4.S
yscalls/_exit.S
yscalls/_exit_thread.S
yscalls/accept.S
yscalls/access.S
yscalls/acct.S
yscalls/bind.S
yscalls/cacheflush.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/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/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/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/msgctl.S
yscalls/msgget.S
yscalls/msgrcv.S
yscalls/msgsnd.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/semctl.S
yscalls/semget.S
yscalls/semop.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/shmat.S
yscalls/shmctl.S
yscalls/shmdt.S
yscalls/shmget.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/timer_create.S
yscalls/timer_delete.S
yscalls/timer_getoverrun.S
yscalls/timer_gettime.S
yscalls/timer_settime.S
yscalls/times.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
|