Commit Graph

6629 Commits

Author SHA1 Message Date
Elliott Hughes
70d37e343a am ca045a19: Merge "Switch to upstream sleep(3) and usleep(3)."
* commit 'ca045a19234a9323ea0e7eccbe3aefd74f9c1bab':
  Switch to upstream sleep(3) and usleep(3).
2013-11-20 16:44:59 -08:00
Elliott Hughes
ca045a1923 Merge "Switch to upstream sleep(3) and usleep(3)." 2013-11-21 00:41:30 +00:00
Elliott Hughes
ab61eb366a Switch to upstream sleep(3) and usleep(3).
Also fix the signature of usleep, and the definition of useconds_t which
should be unsigned, as the 'u' in its name implies.

This patch also cleans up the existing FreeBSD hacks by moving the libm
stuff from <sys/cdefs.h> to a libm-private header, and adding comments
about the hacks we use to build FreeBSD source.

Change-Id: Ibe5067a380502df94a0a3a7901969b35411085b6
2013-11-20 16:24:16 -08:00
Elliott Hughes
556c740298 am 39bc7ecd: Merge "Fix <signal.h> for mips uapi."
* commit '39bc7ecd45700e9edac0b29d33cc211383ebb107':
  Fix <signal.h> for mips uapi.
2013-11-20 12:57:19 -08:00
Elliott Hughes
39bc7ecd45 Merge "Fix <signal.h> for mips uapi." 2013-11-20 20:54:03 +00:00
Elliott Hughes
d8482b6c7e Fix <signal.h> for mips uapi.
Bug: 11559337
Change-Id: I4c6080f162d74ee78c81d698c7b50470b0e09586
2013-11-20 12:51:52 -08:00
Elliott Hughes
004ecb39e1 am db1dec1e: Merge "Clean up pthread_internal_t."
* commit 'db1dec1ed4fac8bdb312a53e63ba8afeb3c9dea3':
  Clean up pthread_internal_t.
2013-11-19 17:25:54 -08:00
Elliott Hughes
db1dec1ed4 Merge "Clean up pthread_internal_t." 2013-11-20 01:23:33 +00:00
Elliott Hughes
cef3faec0e Clean up pthread_internal_t.
Bug: 11755300
Change-Id: Ib509e8c5ec6b23513aa78b5ac5141d7c34ce2dc8
2013-11-19 17:22:22 -08:00
Elliott Hughes
5cb66cfdc2 Remove the unused arch-x86 and arch-x86-64 kernel headers.
x86-64 already used uapi headers, and x86 can too now.

Bug: 11559337
Change-Id: I1196d2500f06ad40f2488b96fc8ccc7e02c7d5c0
2013-11-19 16:57:42 -08:00
Christopher Ferris
3c6d1b8876 am 2a34009f: Merge "Add .cfi_startproc/.cfi_endproc to ENTRY/END."
* commit '2a34009f109a504d3623abf75d7087a0d6474e59':
  Add .cfi_startproc/.cfi_endproc to ENTRY/END.
2013-11-19 16:48:20 -08:00
Christopher Ferris
2a34009f10 Merge "Add .cfi_startproc/.cfi_endproc to ENTRY/END." 2013-11-20 00:45:24 +00:00
Christopher Ferris
507cfe2e10 Add .cfi_startproc/.cfi_endproc to ENTRY/END.
Bug: 10414953
Change-Id: I711718098b9f3cc0ba8277778df64557e9c7b2a0
2013-11-19 16:31:24 -08:00
Elliott Hughes
f4e03b0365 am bf652a5f: Merge "Provide <sys/user.h>."
* commit 'bf652a5f5c1249471cb6a60b5bda5ddf1e94a635':
  Provide <sys/user.h>.
2013-11-19 16:25:22 -08:00
Elliott Hughes
bf652a5f5c Merge "Provide <sys/user.h>." 2013-11-20 00:21:29 +00:00
Elliott Hughes
e888de81df Provide <sys/user.h>.
strace wants this, for example.

Change-Id: Icb4d64bde392abbc091fa3375a4fa19b2707b12c
2013-11-19 15:32:31 -08:00
Elliott Hughes
d5a59aa767 am 1b2d214b: Merge "Clean up forking and cloning."
* commit '1b2d214b62ad7bf46f37c79442a69d930aa29027':
  Clean up forking and cloning.
2013-11-19 14:12:38 -08:00
Elliott Hughes
1b2d214b62 Merge "Clean up forking and cloning." 2013-11-19 22:09:54 +00:00
Elliott Hughes
36d6188f8c 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
2013-11-19 14:08:54 -08:00
Narayan Kamath
22b8c53ef6 am 9d70ddc4: Merge "Add test case for 1^NaN"
* commit '9d70ddc466ed0bdb36908d69b1fe849904150eb7':
  Add test case for 1^NaN
2013-11-19 01:59:28 -08:00
Narayan Kamath
9d70ddc466 Merge "Add test case for 1^NaN" 2013-11-19 09:56:53 +00:00
Elliott Hughes
8154f010a1 am 318e86ed: Merge "bionic: call stdio cleanup on exit"
* commit '318e86ed887e04e593f3db9b84b402d5501ced9b':
  bionic: call stdio cleanup on exit
2013-11-18 20:05:09 -08:00
Elliott Hughes
318e86ed88 Merge "bionic: call stdio cleanup on exit" 2013-11-19 04:01:55 +00:00
Elliott Hughes
044d4655b7 am 303fe0cb: Merge "Fix pthread_join."
* commit '303fe0cb38def66aa438b9caac32e5af298f840a':
  Fix pthread_join.
2013-11-18 19:51:34 -08:00
Elliott Hughes
303fe0cb38 Merge "Fix pthread_join." 2013-11-19 03:49:00 +00:00
Elliott Hughes
877ec6d904 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
2013-11-18 19:48:11 -08:00
Pawit Pornkitprasan
652289942d bionic: call stdio cleanup on exit
As of 61e699a133, stdio clean up
functions are no longer registered in atexit and must be called
manually via __cleanup.

The issue this fixes is some static binaries linked against bionic
cannot output properly when piped or redirected because the buffer
is not flushed before closing.

This is done by pulling in exit.c (and other dependencies) from
netbsd.

Change-Id: I193e54a6d08900f291550029fe75ce76394d9e22
2013-11-19 09:49:17 +07:00
Christopher Ferris
750668f5ab am 862faa12: Merge "Pull in cleaned version.h header."
* commit '862faa12928038759e1bbdbc394a7d58b560f128':
  Pull in cleaned version.h header.
2013-11-18 15:29:38 -08:00
Christopher Ferris
862faa1292 Merge "Pull in cleaned version.h header." 2013-11-18 23:26:59 +00:00
Christopher Ferris
da12e64f17 am be8344bb: Merge "Modify tests for another glibc difference."
* commit 'be8344bb068183715f808768341bce7fb69d5a70':
  Modify tests for another glibc difference.
2013-11-18 13:38:12 -08:00
Christopher Ferris
be8344bb06 Merge "Modify tests for another glibc difference." 2013-11-18 21:35:21 +00:00
Narayan Kamath
af64dad479 Add test case for 1^NaN
Should be 1.

Change-Id: I6cf723a419f51d3bda58286a538774b71276c7b5
2013-11-18 19:00:59 +00:00
Christopher Ferris
e372ec8cf9 Pull in cleaned version.h header.
Change-Id: Ia917af9336b63ed5a10147770a8110134cb274cb
2013-11-15 16:29:28 -08:00
Christopher Ferris
cbd85b9cc1 Modify tests for another glibc difference.
It turns out that when passing a closed file to getdelim or getline, the
functions in glibc will properly return a failure, but errno might not be
set. Skip the errno check except on bionic.

Change-Id: I8d625f15303d4c2d42e8d28491ea8a368aea4d32
2013-11-15 16:09:44 -08:00
Elliott Hughes
18368fc8e6 am f246c589: Merge "Clean up the pthread_create trampoline."
* commit 'f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9':
  Clean up the pthread_create trampoline.
2013-11-15 15:31:28 -08:00
Elliott Hughes
f246c589d6 Merge "Clean up the pthread_create trampoline." 2013-11-15 23:27:36 +00:00
Elliott Hughes
e48b68570d Clean up the pthread_create trampoline.
Bug: 8206355
Bug: 11693195
Change-Id: I35cc024d5b6ebd19d1d2e45610db185addaf45df
2013-11-15 14:57:45 -08:00
Christopher Ferris
862c32b4bd am e39e3a77: Merge "Add new tests for memory/string routines."
* commit 'e39e3a77d6e8cf681718a572bc754fd64dfc87ff':
  Add new tests for memory/string routines.
2013-11-15 14:51:02 -08:00
Elliott Hughes
5b5248526b am 645d4269: Merge "Switch pthread_create over to __bionic_clone."
* commit '645d4269d323acdcb20d1c31c15dbb4afbb9f46a':
  Switch pthread_create over to __bionic_clone.
2013-11-15 14:47:32 -08:00
Christopher Ferris
e39e3a77d6 Merge "Add new tests for memory/string routines." 2013-11-15 22:47:07 +00:00
Elliott Hughes
645d4269d3 Merge "Switch pthread_create over to __bionic_clone." 2013-11-15 22:42:57 +00:00
Elliott Hughes
70b24b1cc2 Switch pthread_create over to __bionic_clone.
Bug: 8206355
Bug: 11693195
Change-Id: I04aadbc36c87e1b7e33324b9a930a1e441fbfed6
2013-11-15 14:41:19 -08:00
Christopher Ferris
b687ad3c34 Add new tests for memory/string routines.
Create a few generic testing functions to allow any memory/string tests
to be created.

Add alignment tests for memcpy/memset/strcat/strcpy/strlen.

Add an overread test for memcpy/strcat/strcpy/strlen. This test attempts
to verify that the functions do not read past the end of their buffers
(src buffer in the case of src/dst functions).

Bug: 9797008

Change-Id: Ib3223ca1b99e729ae8229adc2d03f4dc3103d97c
2013-11-15 10:36:21 -08:00
Elliott Hughes
24cbf1991a am 04b4339a: am 60a67a0c: am 05ec00bf: Merge "[MIPS] Reimplement syscall to invoke the system call directly"
* commit '04b4339ad5396690329877df10fbe568bd4dd600':
  [MIPS] Reimplement syscall to invoke the system call directly
2013-11-14 17:09:48 -08:00
Elliott Hughes
04b4339ad5 am 60a67a0c: am 05ec00bf: Merge "[MIPS] Reimplement syscall to invoke the system call directly"
* commit '60a67a0c7e44dfc47b9b4271ea4ae2dbf336849a':
  [MIPS] Reimplement syscall to invoke the system call directly
2013-11-14 17:07:13 -08:00
Elliott Hughes
60a67a0c7e am 05ec00bf: Merge "[MIPS] Reimplement syscall to invoke the system call directly"
* commit '05ec00bf62ac168c9787a3d0640879ab3e502fe5':
  [MIPS] Reimplement syscall to invoke the system call directly
2013-11-14 17:05:10 -08:00
Elliott Hughes
05ec00bf62 Merge "[MIPS] Reimplement syscall to invoke the system call directly" 2013-11-15 01:01:06 +00:00
Chris Dearman
effaa7824d [MIPS] Reimplement syscall to invoke the system call directly
Some MIPS kernels do not correctly restart interrupted system calls that
have been invoked using the indirect syscall (NR_syscall).

The simplest workaround is to handle the indirection in userland and then
call the required system call directly.

Change-Id: I8385399621529db9a52b463c96925f6decaaca30
2013-11-14 16:53:15 -08:00
Elliott Hughes
ad7e42d6bd am 1b782289: am 5a70acd1: am ae5c3dd7: Merge "Remove the mips regdef.h and fpregdef.h old kernel headers."
* commit '1b782289f4f89434693e3e906df9c9cf43b4d277':
  Remove the mips regdef.h and fpregdef.h old kernel headers.
2013-11-13 18:47:59 -08:00
Elliott Hughes
67b73d370b am ab894977: am 3cc7da48: am c4250430: Merge "Add unit tests for pow\'s behavior with NaNs."
* commit 'ab894977da4e7519aa5c69b38817ee54ae8fd519':
  Add unit tests for pow's behavior with NaNs.
2013-11-13 18:44:12 -08:00