9991 Commits

Author SHA1 Message Date
Elliott Hughes
2ea0a58e01 Fix linkage of grantpt(3).
Also clean up the implementation of all the pty functions, add tests,
and fix the stub implementations of ttyname(3) and ttyname_r(3).

Bug: https://code.google.com/p/android/issues/detail?id=58888

(cherry picked from commit 4916706cfe590eb06c9b5bd4bd402ce056034d51)

Change-Id: I5cb7a1c17b156456e4c4818e65f256eb8d045424
2014-07-29 10:48:34 -07:00
Brigid Smith
a09fe118b1 Added a bionic systrace class and tracing to pthread_mutex.cpp.
bionic_systrace.h contains an implementation of tracing that
can be used with systrace.py and its associated viewer.  pthread_mutex
now uses this tracing to track pthread_mutex contention, which can be
enabled by using the "bionic" command line option to systrace.

Bug: 15116468

(cherry picked from commit a406ee6d5f616192e9a13afad6ac6a9969814fc1)

Change-Id: Ic98fc303689fe9384974150d0d258c50806a55e4
2014-07-29 09:41:44 -07:00
Dmitriy Ivanov
1a5db57d5a Fix mips/mips64 build
Add _start entry label to mips/mips64 linker begin.S

(cherry picked from commit ed485347189e3dfe04a38207c416bdd8c8fac4bc)

Change-Id: Id1b6bb3258f3bfbe3b7ec9491a977f56e44bed14
2014-07-28 22:00:01 -07:00
Dmitriy Ivanov
5febb0da6f Fix 'adb shell /system/bin/linker' crash
Bug: https://code.google.com/p/android/issues/detail?id=63174

(cherry picked from commit efe13832dccf2cec2898b89ca4418a6aac29d3eb)

Change-Id: I43629e4a14870f67abc2dd5ff2e3040c47b2168d
2014-07-28 16:50:44 -07:00
Elliott Hughes
2be1be47aa Revert "Add a hack to <stdlib.h> until we can fix libvpx."
This reverts commit 3fb5097a7eec40404760c304b36c8b657b374cab.
libvpx is now fixed.

Bug: 15598056
Change-Id: Icca974e667f92206505f484bd291726eb0150f68
2014-07-28 16:16:38 -07:00
Elliott Hughes
78e4f8fed2 syscall(3)'s return type should be long.
This doesn't require us to change any of the syscall implementations
because (a) the LP32 ones have sizeof(int) == sizeof(long) anyway,
which is how we never noticed this bug before and (b) the LP64 ones
all use a 64-bit register for the result (and for the syscall number
too).

Bug: https://code.google.com/p/android/issues/detail?id=73952
Bug: 16568314

(cherry picked from commit 21972b61ec0572395c5684eebc6cc7b3a4c9e3be)

Change-Id: Ifbc424be29e5650ec72a24df25dd35f24fdd5b3c
2014-07-28 15:39:24 -07:00
Elliott Hughes
b1b60c30bf Use vsnprintf(3) in syslog(3).
It seemed like a clever trick to use the internal log message formatting
code in syslog(3), but on reflection that means you can't (for example)
format floating point numbers. This patch switches us over to using good
old vsnprintf(3), even though that requires us to jump through a few hoops.

There's no obvious way to unit test this, so I wrote a little program and
ran that.

Bug: 14292866
Change-Id: I9c83500ba9cbb209b6f496067a91bf69434eeef5
2014-07-28 09:33:00 -07:00
Elliott Hughes
c1a6a72560 Remove localtime_tz and strftime_tz.
This also brings our copy of strftime.c much closer to upstream, though
we still have several GNU extensions and hacks to deal with Android32's
broken time_t.

Bug: 15765976

(cherry picked from commit 39d903aea901cd29a4eef3a82c2dbda59b5bc292)

Change-Id: Ie278d3e976b7adc77bad5ce795dd4899cfbf3648
2014-07-25 17:28:52 -07:00
Elliott Hughes
708c112054 Start hiding "private/bionic_time.h".
Bug: 15765976

(cherry picked from commit 905e6d58aaf515bf237e62078f8a321920fe4c6b)

Change-Id: Ic7435308e8b521886f42ac7bf59531924921ea67
2014-07-25 15:24:57 -07:00
Dmitriy Ivanov
6554996948 Fix global variable initialization for linker
Linker now calls init functions for itself.

(cherry picked from commit 4151ea73b75e274d1ff80b42d9d457a783208516)

Change-Id: I3300fe22de8ad8466a5b1c2d551429769a42852d
2014-07-24 16:49:36 -07:00
Raghu Gandham
34b258dd69 [MIPS] Fix atomic_is_lock_free test for mips32.
On 32-bit MIPS, 64-bit atomic ops are achieved through locks.
So allow the test to fail for atomic_intmax_t on 32-bit MIPS.

(cherry picked from commit f1837377d215a6eda294b6ac7552b226deee91ce)

Change-Id: I973d999c31c9ab89b5a7b709beff6486b93408f2
2014-07-24 16:22:02 -07:00
Elliott Hughes
b902641d73 Implement twalk(3), add unit tests.
I've also added insque(3) and remque(3) (from NetBSD because the OpenBSD
ones are currently broken for non-circular lists).

I've not added the three hash table functions that should be in this header
because they operate on a single global hash table and thus aren't likely
to be useful.

Bug: https://code.google.com/p/android/issues/detail?id=73719

(cherry picked from commit 3e424d0a241f8ae5194514dabc4ad899f5a5416d)

Change-Id: I5882a6b48c80fea8ac6b9c27e7b9de10b202b4ff
2014-07-24 15:14:06 -07:00
Duane Sand
5ade7e3f6b [MIPS] Drop soft-fp targets
(cherry picked from commit ba23bd0a409bb0e43c57dabee96b2ae52481d5b7)

Change-Id: Ica09192c2760d38ceebc14e23a5d3ba94c20764c
2014-07-24 11:17:55 -07:00
Duane Sand
c86950cb3f [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
Save and restore floating point registers via 64-bit
load/stores when possible.  Use assembler's builtin macro
ops to generate pairs of 32-bit load/stores on Mips I cpus.

Some cpus or FR modes have only 16 even-numbered dp fp regs.
This is exposed by _MIPS_FPSET, defined by existing compilers.

(cherry picked from commit dd37251c473e1483faba0fd5aaf30e7a55582e8a)

Change-Id: Ibd43653701a363a77af85121d3cbd229d132a06a
2014-07-23 21:04:20 -07:00
Christopher Ferris
bc74ecfaf5 HACK: Disable syslog going to android log.
Bug: 14292866

Change-Id: I3adc448dbacfeecd32508ddccf27be3aa653e466
2014-07-23 18:08:09 -07:00
Nick Kralevich
92d8b2320a debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping
PR_GET_DUMPABLE is used by an application to indicate whether or
not core dumps / PTRACE_ATTACH should work.

Security sensitive applications often set PR_SET_DUMPABLE to 0 to
disable core dumps, to avoid leaking sensitive memory to persistent
storage. Similarly, they also set PR_SET_DUMPABLE to zero to prevent
PTRACE_ATTACH from working, again to avoid leaking the contents
of sensitive memory.

Honor PR_GET_DUMPABLE when connecting to debuggerd. If an application
has said it doesn't want its memory dumped, then we shouldn't
ask debuggerd to dump memory on its behalf.

FORTIFY_SOURCE tests: Modify the fortify_source tests to set
PR_SET_DUMPABLE=0. This reduces the total runtime of
/data/nativetest/bionic-unit-tests/bionic-unit-tests32 from approx
53 seconds to 25 seconds. There's no need to connect to debuggerd
when running these tests.

Bug: 16513137

(cherry picked from commit be0e43b77676338fd5e6a82c9cc2b6302d579de2)

Change-Id: I6e1a9bce564e94fc19893d639b15f38c549cabfa
2014-07-23 16:07:33 -07:00
Colin Cross
49fbec6d9a HACK: remove %m support from printf.
The change that added this support causes a cpu hard lock on one
device.  This code clearly isn't at fault, but disabling it to
unblock until we can find a real fix.

Bug: 16484311
Change-Id: I33834dc49d959ae403b10d2c7cad12ae2950f772
2014-07-23 14:56:20 -07:00
Elliott Hughes
4126c12961 Fix belated review comments on syslog change.
Bug: 14292866

(cherry picked from commit afe6360627ef3f0e9bc8f45535fbfae3354f3ae0)

Change-Id: I8e3cc6b37b2539e51a27261ffb5d6e58266ce11d
2014-07-23 13:11:15 -07:00
Elliott Hughes
2aa142ffb2 Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
(cherry picked from commit 5d2f86f36341b76f84770d8966d7686a59555ae9)

Change-Id: Iddf22c8d9ff7a4d1205d37bb58c6235af681d795
2014-07-23 11:36:21 -07:00
Elliott Hughes
4ac83fad3c Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
(cherry picked from commit 3758a244cf758046b40f630a11aed41e68c9cfc2)

Change-Id: I6ffb83b4a7b7746b095205c664cf025a72ead179
2014-07-23 09:39:40 -07:00
Elliott Hughes
3ff6d95a9b Remove the unused swab.S.
(cherry picked from commit ca70453e84a88405d30f64d603f9a9b5f53f1243)

Change-Id: I4dc13de0bdeb7abb3bd47b0397546ad7d1f11d49
2014-07-22 20:43:55 -07:00
Duane Sand
5d7775c6df [MIPS] Allow united mipsel and mips64el gcc toolchain
Explicitly tell 32-bit links that they are doing 32-bit links.
This is needed when using united 32-bit and 64-bit toolchains.
This is harmless when using older separate 32-only toolchains.

(cherry picked from commit f541650828f75b3dab22c9c0caab845be78b80fc)

Change-Id: I8df0ee7d36c6409458e18bea4e0e8b132edf77dc
2014-07-22 19:41:49 -07:00
Sreeram Ramachandran
2582f02a01 Cleanup: Delete dead code.
Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
2014-07-22 11:24:17 -07:00
Elliott Hughes
6209c81d40 Use upstream OpenBSD's arc4random.
The getentropy_linux.c is lightly modified to build on Android, but we're now
completely in sync with upstream OpenBSD's arc4random implementation.

(cherry picked from commit 2b67d7dee09852789d9ac7d8972ed6cdb2c18430)

Change-Id: Icc939b5fa2fcac3e15ff93735d2d34f67e9bb149
2014-07-21 19:17:15 -07:00
Elliott Hughes
b76613627d Rewrite syslog(3) to use Android logging.
Since we don't have syslogd on Android and you can't run one on a non-rooted
device, it's more useful if syslog output just goes to the regular Android
logging system.

Bug: 14292866

(cherry picked from commit 3ad8ecb64e9dd5614169232b84a93eb3b8aa32d7)

Change-Id: I3038855ca4f22532bf6d2c45d3f8028b866975f9
2014-07-21 18:55:04 -07:00
Hans Boehm
ed68221a82 Define atomic_charN_t only if charN_t is supported.
Some platform code is apparently compiled with switches that do
not support char16_t and char32_t.  This caused stdatomic.h to fail
to compile.  This CL makes stdatomic.h usable in those environments.

(cherry picked from commit 8b002362d996859ebfc8588d6859a9a79203dc27)
Change-Id: Ie5a17f20b8b545c97128d00605b4eabd2a6bfe3e
2014-07-18 17:53:01 -07:00
Christopher Ferris
b0815aeacb Make sure not to construct illegal property names.
(cherry picked from commit 53531ccebbaf103d80516ff74874482ca3ee31fc)

Change-Id: I7e988c335ef32b61b2ac34f34509274623dbed69
2014-07-18 17:00:20 -07:00
Elliott Hughes
fbd0081923 Merge "Clean up some misinformation around prctl." into lmp-dev 2014-07-18 22:16:50 +00:00
Elliott Hughes
de24f1ac00 Clean up some misinformation around prctl.
prctl shouldn't be in <unistd.h>.

(cherry picked from commit 9c07aee83b4ebbf2dba8e23d6896683187b9724e)

Change-Id: I70cda886fbf4d58d82dc70adaa981506ebff9949
2014-07-18 16:54:28 -07:00
Elliott Hughes
291da8d353 Remove SIOCKILLADDR from <sys/socket.h>.
(cherry picked from commit 8a3d1ca183e19d849728318fe8b0d36856fa000f)

Change-Id: Idb5cc4cff3ece7fa8740db12a19438d1a1c9a6a8
2014-07-18 16:53:23 -07:00
Elliott Hughes
b5bef263b3 Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
(cherry picked from commit 9f165d24f00c3bd4337ef719105bfb36bfa00a8b)

Change-Id: I009d3742cefbf36115f09824f267a0265ae215bf
2014-07-18 16:52:24 -07:00
Christopher Ferris
e8bc581333 Use the mmap/munmap for allocation routines.
To avoid any issues calling malloc related routines, use mmap/munmap.
Specifically, this avoids any problems when this is compiled into a
malloc debug shared library.

(cherry picked from commit 6425327c3278137d153b8a7505f97d2f5f058d49)

Change-Id: If43d12b2c588c9abcbfbbd2c53702cdac7695a73
2014-07-18 15:23:32 -07:00
Elliott Hughes
b46696858b Fix private/bionic_name_mem.h build breakage.
(cherry picked from commit 2f9c6e38b8f59ea6e53e95e062e04dc987ac67f3)

Change-Id: Ia8e96da98802d312011df866ac1baaa48f97811c
2014-07-17 15:15:44 -07:00
Elliott Hughes
d648f557f1 Remove non-standard prctl constants from <sys/prctl.h>.
Also remove __bionic_name_mem which has exactly one caller, and is only
ever expected to be used in this one place.

(cherry picked from commit d7453860a6b06e7d4a960c20792ce6f0b6cc5f3a)

Change-Id: I26b7638609e9d4eaf4f21ae29721ea27d4176702
2014-07-17 15:15:37 -07:00
Christopher Ferris
a694517909 Merge "Add gen syscalls step to instructions." into lmp-dev 2014-07-17 21:15:46 +00:00
Christopher Ferris
013c9b8035 Add gen syscalls step to instructions.
Also, fix incorrect path to some tools.

(cherry picked from commit ea271fdf2671707ed29bc6b564f544d2489115ff)

Change-Id: Ie93cbc84b9a46d622b0b462a33bed0ee129992cb
2014-07-18 16:56:33 -07:00
Elliott Hughes
9a7fdb2dae ptrace(3) should be varargs.
Bug: 16352070

(cherry picked from commit 98b088dce70a2625d5cfa1872e427af5f06bfd99)

Change-Id: I6193ef44df9a5668020916eaca90b47fc4c8ab77
2014-07-16 16:59:31 -07:00
Elliott Hughes
3002131da3 Use VDSO for clock_gettime(2) and gettimeofday(2).
Bug: 15387103

(cherry picked from commit 625993dfbb085a3cde7492eda8ec1cdc1ee39a78)

Change-Id: I0e156d7049ba1495902259071a96936592e74025
2014-07-16 15:15:53 -07:00
Dan Albert
a446505874 Merge "Remove isascii_l(3)." into lmp-dev 2014-07-16 13:12:22 +00:00
Elliott Hughes
97ba2a5cc4 Regenerate the syscalls list after the uapi update.
(cherry picked from commit 3fa60e10bcbfb8c7d94aeefc427640371683c920)

Change-Id: Id545a5b0b0953967effd819177f0dadb134f2011
2014-07-15 19:09:12 -07:00
Dan Albert
da8accfefe Remove isascii_l(3).
Had intended to remove this one before submitting the locale changes,
but forgot. It isn't a standard ctype function, so we don't need it.

Change-Id: Ie9c09fa6c61b1101b5992fa06da30e373a0c6bf7
2014-07-15 16:49:30 -07:00
Christopher Ferris
73c963e4c5 Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
There were two bugs here:

- For 64 bit values, this did not properly round up.
- The macro rounded to the power of 2 less than value, not to the power
  of 2 greater than value.

(cherry picked from commit 27047faf283cb9d3d025a984cd9934fd2c404407)

Change-Id: Idf1ec67854e1eb423704e599ae1c6b674d36618d
2014-07-15 13:23:06 -07:00
Elliott Hughes
ca276c40df Fix visibility for a bunch more symbols.
Bug: 11156955
Bug: 15291317

(cherry picked from commit a167eef5482d4a89d4277ec74f57adbe38052813)

Change-Id: Ib038ad34ef59631f7b4ed6dff2b7956001b8b159
2014-07-14 18:59:51 -07:00
Elliott Hughes
99ae0983c0 Implement rand/srand in terms of random/srandom.
Code developed for glibc or older versions of bionic might expect more
randomness than the BSD implementation provides.

Bug: 15829381

(cherry picked from commit 76c241b091b4d9d9a9237d40e814e52ce2917f47)

Change-Id: If721b3f16efdb21cb67df5ec5034c0ba905bd029
2014-07-14 14:06:11 -07:00
Elliott Hughes
caaf71ebb3 Sync upstream-openbsd.
(cherry picked from commit 4f0b67a8dbf0e1d8b1dae42358553fb8d14456d4)

Change-Id: I8753959853312ab978bc4eb1bbbcdc7d1b007b95
2014-07-14 13:59:03 -07:00
Dmitriy Ivanov
38778e3b6c Upstream atexit
Change-Id: Ia454a2181b5058ed9783dc02b6b1805d0e4d2715
(cherry picked from commit 53c3c271dc9927dd280981fc23409af60f460007)
2014-07-14 13:29:34 -07:00
Elliott Hughes
3b318a5b3d am e2b177a5: am 83ce99d8: Merge "Define SIOCKILLADDR which isn\'t in the common kernel uapi headers."
* commit 'e2b177a5d1384ebbb82d576637364e5b24450beb':
  Define SIOCKILLADDR which isn't in the common kernel uapi headers.
2014-07-12 13:08:44 +00:00
Elliott Hughes
e2b177a5d1 am 83ce99d8: Merge "Define SIOCKILLADDR which isn\'t in the common kernel uapi headers."
* commit '83ce99d8b7e2b15b2169e6e6e18e871ad35abb6c':
  Define SIOCKILLADDR which isn't in the common kernel uapi headers.
2014-07-12 12:59:27 +00:00
Elliott Hughes
f6968e3c08 Define SIOCKILLADDR which isn't in the common kernel uapi headers.
(cherry picked from commit 2ba2888cac2f04daff7bbaf032d0df7a095b00c3)

Change-Id: I3845871bb44dae94d9a0428af0f562ddfb8bd660
2014-07-11 22:37:13 -07:00
Elliott Hughes
bae7c20672 am b962ab81: am 57a5b338: Merge "Define three prctl constants that went missing from uapi."
* commit 'b962ab81fc37fc8b4b8cfd45d3538b641dd6fd13':
  Define three prctl constants that went missing from uapi.
2014-07-12 03:15:29 +00:00