Todd Poynor
d1ad4f6dab
epoll: add EPOLLRDHUP, EPOLLWAKEUP, and EPOLLONESHOT events
...
Change-Id: I4a579fc4a74adaee57911b3974ec2f93d9321e8b
2013-05-13 12:06:36 -07:00
Todd Poynor
04c0ac14a4
libc: add timerfd calls
...
Change-Id: Id63b907266d5b87c7422a51d393a1430551ca33d
2013-05-13 12:06:15 -07:00
Todd Poynor
60e5144ca3
libc: remove obsolete CLOCK_REALTIME_HR and CLOCK_MONOTONIC_HR
...
Add CLOCK_MONOTONIC_RAW, CLOCK_REALTIME_COARSE, and CLOCK_MONOTONIC_COARSE
as supported by recent linux kernels.
Bug: 8895727
Change-Id: I3d415a2edbcf2928dd855e876337bf2239ac134a
2013-05-13 11:00:07 -07:00
Todd Poynor
b928bda83d
libc: add clock ids CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
...
Change-Id: I3bf934ab207e39b435e6b41a5fbe7eb318496dc0
2013-05-13 11:00:06 -07:00
Nick Kralevich
37cd8800d5
am d541ba17: Merge "Use restrict pointers for various libc functions."
...
* commit 'd541ba17197fd3ef1f60462e51261c4340369218':
Use restrict pointers for various libc functions.
2013-05-08 13:26:11 -07:00
Nick Kralevich
1c462b7a04
Use restrict pointers for various libc functions.
...
All the cool kids say this is the best thing since sliced bread.
http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html
For the most part, these changes match what glibc does.
Change-Id: I176268f27f82800162fe5f2515b08d5469ea2dfe
2013-05-07 10:00:21 -07:00
Nick Kralevich
8355ab5524
am bee0ab16: Merge "libc: upgrade strrchr to FORTIFY_SOURCE=2"
...
* commit 'bee0ab16e47086d2f31f6f9ff41328066d5a7128':
libc: upgrade strrchr to FORTIFY_SOURCE=2
2013-04-30 16:25:23 -07:00
Nick Kralevich
3b2e6bc9ac
libc: upgrade strrchr to FORTIFY_SOURCE=2
...
Change-Id: I4c34c2ce22c5092c4446dc1ab55f37604c1c223f
2013-04-30 14:19:23 -07:00
Nick Kralevich
2ff94a0964
am c4687130: Merge "libc: upgrade some libc functions to _FORTIFY_SOURCE=2"
...
* commit 'c46871302e7bd099aaf54d91da93a2248acbf733':
libc: upgrade some libc functions to _FORTIFY_SOURCE=2
2013-04-30 11:56:08 -07:00
Nick Kralevich
9020fd503c
libc: upgrade some libc functions to _FORTIFY_SOURCE=2
...
Upgrade the following functions:
* vsnprintf
* vsprintf
* snprintf
* fgets
* strcpy
* strcat
* strncat
* strlcpy
* strlcat
* strlen
* strchr
Change-Id: Icc036fc7f0bb317e05f7c051617887a1601271aa
2013-04-30 11:31:35 -07:00
Nick Kralevich
aed0c3ac54
am b94b2851: Merge "libc: upgrade sprintf to _FORTIFY_SOURCE=2"
...
* commit 'b94b2851d72187cc9095864a9c99429ee62d7786':
libc: upgrade sprintf to _FORTIFY_SOURCE=2
2013-04-29 16:56:29 -07:00
Nick Kralevich
78d6d9888c
libc: upgrade sprintf to _FORTIFY_SOURCE=2
...
Upgrade sprintf to fortify_source level 2, to catch
additional security bugs.
Change-Id: Ibc957d65e4cb96152de84b3745a04e00fa22659e
2013-04-29 16:41:54 -07:00
Nick Kralevich
56a1b492c4
am 382a7753: Merge "strncpy: implement _FORTIFY_SOURCE=2"
...
* commit '382a7753786646483a8101f4e337f9e3a82ec852':
strncpy: implement _FORTIFY_SOURCE=2
2013-04-29 16:25:41 -07:00
Nick Kralevich
1aae9bd170
strncpy: implement _FORTIFY_SOURCE=2
...
Add support for fortify source level 2 to strncpy.
This will enable detection of more areas where strncpy
is used inappropriately. For example, this would have detected
bug 8727221.
Move the fortify_source tests out of string_test.cpp, and
put it into fortify1_test.cpp.
Create a new fortify2_test.cpp file, which copies all
the tests in fortify1_test.cpp, and adds fortify_source level
2 specific tests.
Change-Id: Ica0fba531cc7d0609e4f23b8176739b13f7f7a83
2013-04-29 15:22:10 -07:00
Kito Cheng
9b84824dfd
Prevent name conflict for eventfd.cpp and eventfd.s when building libc.a
...
- eventfd.cpp and eventfd.s will output to the same file when building libc.a
out/target/product/*/obj/STATIC_LIBRARIES/libc_intermediates/WHOLE/libc_common_objs/eventfd.o
- And then `eventfd` will undefined when statically linked to libc.
Also add a unit test.
(cherry-pick of 8baa929d5d3bcf63381cf78ba76168c80c303f5e.)
Change-Id: Icd0eb0f4ce0511fb9ec00a504d491afd47d744d3
2013-04-03 11:14:20 -07:00
Kito Cheng
8baa929d5d
Prevent name conflict for eventfd.cpp and eventfd.s when building libc.a
...
- eventfd.cpp and eventfd.s will output to the same file when building libc.a
out/target/product/*/obj/STATIC_LIBRARIES/libc_intermediates/WHOLE/libc_common_objs/eventfd.o
- And then `eventfd` will undefined when statically linked to libc.
Also add a unit test.
Change-Id: Ib310ade3256712ca617a90539e8eb07459c98505
2013-04-03 11:10:37 -07:00
Elliott Hughes
c82b339a7d
am 3c1504d9: am 48f25cef: Merge "Stop generating <sys/linux-syscalls.h>."
...
* commit '3c1504d9d7d529b8281a447dc69af3ecf6b5ec83':
Stop generating <sys/linux-syscalls.h>.
2013-03-25 10:24:42 -07:00
Elliott Hughes
1b91c6c11f
Stop generating <sys/linux-syscalls.h>.
...
The <asm/unistd.h> files contain the canonical data, and
<sys/glibc-syscalls.h> contain new glibc-compatible names,
and if you #include the standard <sys/syscall.h> you get
both sets of names.
Change-Id: I9919c080931c0ba1660f5e37c6a6265ea716d603
2013-03-22 18:56:24 -07:00
Elliott Hughes
ba61bb55c4
am a3fe475c: am c019345a: Merge "Use the correct names for the __ARM_NR_* syscalls."
...
* commit 'a3fe475c9ff444f45eb3c4dd7fd462326dfdb13d':
Use the correct names for the __ARM_NR_* syscalls.
2013-03-22 15:09:13 -07:00
Elliott Hughes
cda62094ef
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
2013-03-22 13:53:43 -07:00
Elliott Hughes
e0e5b2f6e7
am 65163750: am c37dd599: Merge "Fix builds where _FORTIFY_SOURCE is off."
...
* commit '65163750b11c814d6a75940ab1ede1e907b14d81':
Fix builds where _FORTIFY_SOURCE is off.
2013-03-22 11:20:22 -07:00
Elliott Hughes
890c8ed6ef
Fix builds where _FORTIFY_SOURCE is off.
...
Also add a more intention-revealing guard so we don't have loads of
places checking whether our inlining macro is defined.
Change-Id: I168860cedcfc798b07a5145bc48a125700265e47
2013-03-22 10:58:55 -07:00
Elliott Hughes
ddda044a81
am 5686bb30: am 3323628d: Merge "The SYS_ constants should cover all __NR_ values."
...
* commit '5686bb300304f5de0597f356c6da72b8a090a647':
The SYS_ constants should cover all __NR_ values.
2013-03-21 22:54:49 -07:00
Elliott Hughes
5c2772f59d
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
2013-03-21 22:26:20 -07:00
Elliott Hughes
17a0d1915f
am 01c0e19e: am 612333f6: Merge "Don\'t #define SYS_ constants unless they make sense for the current architecture."
...
* commit '01c0e19e426df5620c5ca822ab546907dbf1fa7d':
Don't #define SYS_ constants unless they make sense for the current architecture.
2013-03-21 19:58:22 -07:00
Elliott Hughes
9724ce3a09
Don't #define SYS_ constants unless they make sense for the current architecture.
...
Fixes the MIPS and x86 builds. strace tests whether syscalls
are supported using #ifdef of the appropriate SYS_ constant.
Change-Id: I90be118dc42abfdaf5b0f9b1e676e8601f55106e
2013-03-21 19:44:36 -07:00
Elliott Hughes
5c9a25cc23
am f977d2dc: am 800ad824: Merge "Provide glibc-compatible SYS_* aliases for the __NR_* constants."
...
* commit 'f977d2dc1dce28a517329e8b4990ebee696faec1':
Provide glibc-compatible SYS_* aliases for the __NR_* constants.
2013-03-21 18:51:51 -07:00
Elliott Hughes
8ecf225827
Provide glibc-compatible SYS_* aliases for the __NR_* constants.
...
This helps us remove another external/strace bionic hack.
Change-Id: I3e82c0d2fd27e479be98f096e05b666fd16f8eb3
2013-03-21 18:06:55 -07:00
Elliott Hughes
60ac09bdb2
am 6d6f5e61: am 4b032ee9: Merge "Let bionic use the correct definition of ssize_t."
...
* commit '6d6f5e618e054e79d80a02f2c3f76ce0fd73bb2a':
Let bionic use the correct definition of ssize_t.
2013-03-11 12:27:58 -07:00
Elliott Hughes
b6e22482d4
Let bionic use the correct definition of ssize_t.
...
Bug: 8253769
Change-Id: I50c7cc20828fc089b83580e039ce9153a6c5a8cc
2013-03-08 15:28:52 -08:00
Elliott Hughes
c96ad9bcd2
am 7b69ac53: am cf9a9604: Merge "Switch to upstream-freebsd for the unmolested wchar code."
...
* commit '7b69ac535abca0e7867524e68f5a3581cc367de8':
Switch to upstream-freebsd for the unmolested wchar code.
2013-03-05 20:28:28 +00:00
Elliott Hughes
eb93ebffba
Switch to upstream-freebsd for the unmolested wchar code.
...
Change-Id: I87b4d76ff8da04109ae53638eec4f11629798960
2013-03-01 18:35:56 -08:00
Nick Kralevich
04190c53e3
am cc646773: am 305a9995: am 8fa924e5: Merge "unistd.h: don\'t include sys/capability.h"
...
* commit 'cc64677342209d38f88138c03d3ded0e1d61637c':
unistd.h: don't include sys/capability.h
2013-03-01 18:28:24 +00:00
Nick Kralevich
6524d3cad7
unistd.h: don't include sys/capability.h
...
Don't pull in unnecessary header files. AFAIK, I've fixed all
the code which didn't include the correct header files.
Change-Id: If0b7bba74e77cb24a0cf9ce8968aa07400855e58
2013-03-01 10:10:55 -08:00
Elliott Hughes
04766565d3
am 9c102ccf: am 7fe8229b: am 9c1912c4: Merge "Avoid changing the C++ ABI with ssize_t."
...
* commit '9c102ccf9517637f9d293b4e52f9a40573d8fc1d':
Avoid changing the C++ ABI with ssize_t.
2013-02-28 19:46:19 +00:00
Elliott Hughes
e255642dc1
Avoid changing the C++ ABI with ssize_t.
...
Bug: 8253769
Change-Id: Ia325003ed6e59da553e2bdde7c43515bc191b8ba
2013-02-28 10:51:31 -08:00
Nick Kralevich
30f1622a34
am 82f4cc5d: am 58b997c8: am f5f906c1: Merge "libc: create sys/capability.h"
...
* commit '82f4cc5de495c6cc3d3736ab075ccd05285beabc':
libc: create sys/capability.h
2013-02-26 21:55:28 +00:00
Nick Kralevich
7c0dd555c0
libc: create sys/capability.h
...
Per "man capset", sys/capability.h is the appropriate header file
for the capget / capset definition, not unistd.h. Fixed.
As a short term hack, continue to include sys/capability.h in
unistd.h, until we can fix all the code which uses capget / capset.
Change-Id: I6e7cf55955d761ca785a14c5e4b7a44125d8fc15
2013-02-26 13:27:15 -08:00
Elliott Hughes
92ce5cc4bc
am ed1068c8: am 7b8bf681: am f6bb5bf4: Merge "Add the glibc-compatible names to <sys/endian.h>."
...
* commit 'ed1068c86ea0380e4b4909252367ffacc812ad57':
Add the glibc-compatible names to <sys/endian.h>.
2013-02-22 14:09:30 -08:00
Elliott Hughes
f6bb5bf498
Merge "Add the glibc-compatible names to <sys/endian.h>."
2013-02-22 21:46:59 +00:00
Elliott Hughes
726642cfa5
am dd843914: am 440bc83d: am 7b2c6385: Merge "Fix <memory.h> to be a synonym for <string.h> like in glibc."
...
* commit 'dd8439141aeac6dc3a64e25f313d08833e1d85f5':
Fix <memory.h> to be a synonym for <string.h> like in glibc.
2013-02-22 12:16:14 -08:00
Nick Kralevich
bcedca25d3
am 41fb968c: am cadc8583: am bc0e7ee1: Merge "libc: add sys/signal.h for compatibility"
...
* commit '41fb968c4268d080b0be4493876672efc4a71e16':
libc: add sys/signal.h for compatibility
2013-02-22 11:59:38 -08:00
Elliott Hughes
7b2c6385ef
Merge "Fix <memory.h> to be a synonym for <string.h> like in glibc."
2013-02-22 19:49:39 +00:00
Elliott Hughes
6f1b7a6407
Fix <memory.h> to be a synonym for <string.h> like in glibc.
...
Change-Id: If23589c5d85dffd28788e04b010303620fa178ca
2013-02-22 11:11:48 -08:00
Elliott Hughes
cf820d7e96
Add the glibc-compatible names to <sys/endian.h>.
...
Also remove declarations for functions that don't exist; these
are all macros.
Bug: http://code.google.com/p/android/issues/detail?id=41769
Change-Id: Ia3774ab2ff7d3c535f83774eac61068f9b11e194
2013-02-22 11:04:27 -08:00
Nick Kralevich
b22a684990
libc: add sys/signal.h for compatibility
...
Some applications look for sys/signal.h instead of signal.h.
Work around those apps.
Change-Id: I76ac7744ebc56d196b5f0cb9ed381d32817436b9
2013-02-22 10:38:28 -08:00
Elliott Hughes
7dfc6a3cd1
am e974e951: am 2a5b57db: am 580a7073: Merge "Stop advertising rindex(3), which is both deprecated and unimplemented."
...
* commit 'e974e951606d2efbad4bafe5edbd09c13d875f6a':
Stop advertising rindex(3), which is both deprecated and unimplemented.
2013-02-21 18:01:17 -08:00
Nick Kralevich
d470955eb5
am 72e983d6: am 398f46dd: am a0259b42: Merge "libc: remove bcmp prototype"
...
* commit '72e983d62828e1db5049800b7edef5a1b0cbbcbd':
libc: remove bcmp prototype
2013-02-21 17:45:27 -08:00
Elliott Hughes
538f6fc202
Stop advertising rindex(3), which is both deprecated and unimplemented.
...
Change-Id: I3c775d9974e49c3f76a53e46e022659657b89034
2013-02-21 17:39:06 -08:00
Nick Kralevich
11ebbc8437
libc: remove bcmp prototype
...
AFAIK, bionic only ever provided an implementation of bcmp
for x86, and even then, the code was never actually compiled.
Remove the prototype.
bcmp() has been obsoleted and replaced by memcmp()
Change-Id: I549d02ab6a9241a9acbbbfade0d98a9a02c2eaee
2013-02-21 17:17:09 -08:00