Commit Graph

261 Commits

Author SHA1 Message Date
Narayan Kamath
6e5fda6b6d am 22b8c53e: am 9d70ddc4: Merge "Add test case for 1^NaN"
* commit '22b8c53ef6fffdc83bd730563c30eb8ce93e46df':
  Add test case for 1^NaN
2013-11-21 08:10:04 -08:00
Elliott Hughes
86ae0ff135 am 044d4655: am 303fe0cb: Merge "Fix pthread_join."
* commit '044d4655b7c06c9d5988f7dc604e59f76e098f5d':
  Fix pthread_join.
2013-11-21 08:10:02 -08:00
Christopher Ferris
e4bc301aa5 am da12e64f: am be8344bb: Merge "Modify tests for another glibc difference."
* commit 'da12e64f1770deee4f5d0b4c41d5530a98b21073':
  Modify tests for another glibc difference.
2013-11-21 08:09:57 -08:00
Christopher Ferris
b343d22110 am 862c32b4: am e39e3a77: Merge "Add new tests for memory/string routines."
* commit '862c32b4bd73f2348ebd9b1267e2880afcf3be1b':
  Add new tests for memory/string routines.
2013-11-21 08:09:44 -08:00
Elliott Hughes
00f25edcca am 5b524852: am 645d4269: Merge "Switch pthread_create over to __bionic_clone."
* commit '5b5248526b0295e54f51dcc2fec6c1d8e5a3b9e2':
  Switch pthread_create over to __bionic_clone.
2013-11-21 08:09:43 -08:00
Narayan Kamath
9d70ddc466 Merge "Add test case for 1^NaN" 2013-11-19 09:56:53 +00: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
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
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
Christopher Ferris
e39e3a77d6 Merge "Add new tests for memory/string routines." 2013-11-15 22:47:07 +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
ab894977da am 3cc7da48: am c4250430: Merge "Add unit tests for pow\'s behavior with NaNs."
* commit '3cc7da4838ea5896ff142f447ecb03f62d3e70e6':
  Add unit tests for pow's behavior with NaNs.
2013-11-13 15:05:43 -08:00
Elliott Hughes
6010196355 am e77538d5: am 44cbe94b: Merge "Add a unit test for syscall(2)."
* commit 'e77538d570e8a811b09bdcd3c746471d8f74b3de':
  Add a unit test for syscall(2).
2013-11-13 13:37:18 -08:00
Elliott Hughes
6a8f00d49c Add unit tests for pow's behavior with NaNs.
Bug: 11669804
Change-Id: Idfa6527640c8d0c2cf3e5343bf7afe013e237545
2013-11-13 13:29:23 -08:00
Elliott Hughes
e61dc71efc Add a unit test for syscall(2).
Change-Id: Ic7d9735d46711af93c3a1747de7b2eb8cebea094
2013-11-13 13:14:31 -08:00
Elliott Hughes
3cf6d9983c am 6a7e539c: am 22ba86ee: Merge "Add extra regression tests for an already-fixed dynamic linker bug."
* commit '6a7e539cf1d8ee49fc2b6a11d043ce7962aa2de4':
  Add extra regression tests for an already-fixed dynamic linker bug.
2013-11-11 17:06:27 -08:00
Elliott Hughes
2ed710976c Add extra regression tests for an already-fixed dynamic linker bug.
Bug: https://code.google.com/p/android/issues/detail?id=61799
Change-Id: I84af68f8430a06e999297c2e57e06ecb45adf81e
2013-11-11 15:48:06 -08:00
Elliott Hughes
a4e281a549 am 76833a7c: am 9e63e03d: Merge "Clean up the 32-bit kernel support, fix LP64 fcntl declaration."
* commit '76833a7c575ca372b41cb6e2a964918d69fc0dbe':
  Clean up the 32-bit kernel support, fix LP64 fcntl declaration.
2013-11-06 17:07:35 -08:00
Elliott Hughes
062092543f 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
2013-11-06 16:33:39 -08:00
Elliott Hughes
2a60b264eb am 6b69b753: am 4d2ab4c7: Merge "Fix linker crashes during unknown symbol lookup"
* commit '6b69b753d7c9820fb4fd7f88a047931c645834c8':
  Fix linker crashes during unknown symbol lookup
2013-10-31 15:13:39 -07:00
Sergey Melnikov
ebd506c69e Fix linker crashes during unknown symbol lookup
Integration of kernel VDSO into internal bionic data structures using
common functions.
Fix for dl_iterate_phdr function: the function provides incorrect
address of object in case of nonzero virtual and base addresses.
Location in address space of a particular program header should be
calculated using the formula:  addr = base_addr + virtual_addr.

Signed-off-by: Sergey Melnikov <sergey.melnikov@intel.com>
Change-Id: Ie2ab4257fd456242aab8afed0bd5bd6b29e81d6d
2013-10-31 15:06:20 -07:00
Elliott Hughes
26e9e3c76a am 1658691e: am 0360e3ab: Merge "<pthread.h> fixes and pthread cleanup."
* commit '1658691e0cfe2eb221bee837649de1907a579a0b':
  <pthread.h> fixes and pthread cleanup.
2013-10-31 13:43:18 -07:00
Elliott Hughes
c3f114037d <pthread.h> fixes and pthread cleanup.
<pthread.h> was missing nonnull attributes, noreturn on pthread_exit,
and had incorrect cv qualifiers for several standard functions.

I've also marked the non-standard stuff (where I count glibc rather
than POSIX as "standard") so we can revisit this cruft for LP64 and
try to ensure we're compatible with glibc.

I've also broken out the pthread_cond* functions into a new file.

I've made the remaining pthread files (plus ptrace) part of the bionic code
and fixed all the warnings.

I've added a few more smoke tests for chunks of untested pthread functionality.

We no longer need the libc_static_common_src_files hack for any of the
pthread implementation because we long since stripped out the rest of
the armv5 support, and this hack was just to ensure that __get_tls in libc.a
went via the kernel if necessary.

This patch also finishes the job of breaking up the pthread.c monolith, and
adds a handful of new tests.

Change-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7
2013-10-31 12:31:16 -07:00
Christopher Ferris
fa088df49e am 4fbd0277: am f084f7dc: Merge "Fix up failing glibc tests."
* commit '4fbd0277aedd9cf1e81648e9a849c52211a65adf':
  Fix up failing glibc tests.
2013-10-29 18:31:05 -07:00
Christopher Ferris
13613137bc Fix up failing glibc tests.
There is a known bug running clone with the CLONE_VM flag, so for host
create an empty test.

Change the expected output of the stdio test for a glibc difference.

Change the pause test to use ScopedSignalHandler to setup/restore the SIGALRM
handler.

After this, running bionic-unit-tests-glibc passes for all tests.

Bug: 11389824

Change-Id: Ib304eae4164115835a54991dfdca5821ecc3db5e
2013-10-29 14:55:11 -07:00
Elliott Hughes
d1c7766aea am e9f6c480: am 3ec5d895: Merge "Fix utime/utimes when passed a NULL pointer."
* commit 'e9f6c4800816df3acec0d5683667b5aac290f049':
  Fix utime/utimes when passed a NULL pointer.
2013-10-28 13:34:32 -07:00
Elliott Hughes
27586ebe1a Fix utime/utimes when passed a NULL pointer.
Bug: 11383777
Change-Id: If944a42f3adfa8a6ce91c167c249e009ed63300a
2013-10-28 13:21:06 -07:00
Christopher Ferris
a9b95baace am 763fe341: am 93fcfeee: Merge "Update running bionic unit tests on host."
* commit '763fe3419c677e28d209ec319f743d65ff0e69c4':
  Update running bionic unit tests on host.
2013-10-25 10:40:26 -07:00
Christopher Ferris
b38e4d536f Update running bionic unit tests on host.
Add a bionic-unit-tests-glibc-run target to run the glibc bionic unit tests.

Modify the bionic-unit-tests-run-on-host to make sure that the /system/bin
directory is created properly.

Also remove the EXTERNAL_STORAGE variable which isn't used any more.

Bug: 11234772
Change-Id: I9aea501d05700b29e938f672474d550b1872a78b
2013-10-25 10:23:12 -07:00
Elliott Hughes
557a5e08c6 am e4ab1b67: am f8dfb6f2: Merge "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls."
* commit 'e4ab1b6795e325fe346c792e6254592a8db16d4e':
  Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.
2013-10-24 15:56:17 -07:00
Elliott Hughes
11952073af Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.
(aarch64 kernels don't have these system calls.)

Change-Id: I6f64075aa412f71520f2df71c3d69b647f91c1ca
2013-10-24 15:48:32 -07:00
Elliott Hughes
e514d2fe66 resolved conflicts for merge of 1dbf56aa to klp-dev-plus-aosp
Change-Id: Ia1d1467065320941d6dc3a50f7ea85eb4dbf3841
2013-10-22 16:41:42 -07:00
Elliott Hughes
f8fcfbc85a 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
2013-10-22 16:31:01 -07:00
Elliott Hughes
081b40f378 am 550ccc2e: am 8c39e58b: Merge "Make sure we have a mkfifo symbol."
* commit '550ccc2e20cb1998a959a7abb24f5ec382a93192':
  Make sure we have a mkfifo symbol.
2013-10-22 12:08:51 -07:00
Elliott Hughes
594b1a4af2 Make sure we have a mkfifo symbol.
Bug: https://code.google.com/p/android/issues/detail?id=58888
Change-Id: Ic0a883a5f30beb82cb7be3c4e81b6d693d5fbb4d
2013-10-22 12:03:19 -07:00
Elliott Hughes
5f985ebb1b am a5826391: am 393484ab: Merge "Fix statvfs tests for the host."
* commit 'a5826391e9afafcb688c103282a30254928f61f3':
  Fix statvfs tests for the host.
2013-10-21 20:16:54 -07:00
Elliott Hughes
3d305f1d62 Fix statvfs tests for the host.
Using /proc seems like a better idea because it's more similar across devices.
I've switched to ensuring we check the initial and final elements in the struct
too, so we have more reason to believe the whole struct is converted correctly.

Change-Id: Ia23403369485747c1452292f6c9df2bb233c04fb
2013-10-21 19:27:19 -07:00
Elliott Hughes
c6557e3c83 am f777c50a: am c284d47c: Merge "Fix the system property tests to use ."
* commit 'f777c50a7130271ed6fefa9bd2bae78be998f4b0':
  Fix the system property tests to use $ANDROID_DATA.
2013-10-21 17:45:21 -07:00
Elliott Hughes
e4375196d6 Fix the system property tests to use $ANDROID_DATA.
This lets them work on the host.

Change-Id: I771ccc67652ae37451b45859c7831116cd830086
2013-10-21 17:40:15 -07:00
Elliott Hughes
f1a93bf7da am 8173b001: am ac5d29fe: Merge "Fix the x86_64 clone implementation."
* commit '8173b00125bc0bdeda09d9b9d4f34a2f82b66016':
  Fix the x86_64 clone implementation.
2013-10-21 14:27:20 -07:00
Elliott Hughes
53bfdae4ff Fix the x86_64 clone implementation.
Change-Id: Ia75f46dcb4d3222049e9a6a6fabc2b17223b47f7
2013-10-18 19:39:09 -07:00
Elliott Hughes
7d0204b685 am f7de5d57: am 25269b88: Merge "Fix the time unit tests for systems with 64-bit time_t."
* commit 'f7de5d57732d67f967243bea5e01f6da6be5f517':
  Fix the time unit tests for systems with 64-bit time_t.
2013-10-18 16:59:10 -07:00
Elliott Hughes
0c40152767 Fix the time unit tests for systems with 64-bit time_t.
Change-Id: I29df50b25d022c1c00906e71b612defa58e46e81
2013-10-18 16:21:54 -07:00
Elliott Hughes
f00e772b25 am 63e118b7: am d0402acd: Merge "x86_64: Fix bionic tests build-and-run"
* commit '63e118b7dbadb49037cd20f8355e27fe4ac20f3b':
  x86_64: Fix bionic tests build-and-run
2013-10-18 15:11:33 -07:00
Pavel Chupin
17558dec7f x86_64: Fix bionic tests build-and-run
Change-Id: Iab48362893a212afbcbc362fdfaff5bfa5b55259
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-18 15:04:19 -07:00
Elliott Hughes
ceb6832ca0 am 7d604133: am e3cc1555: Merge "Fix some test assumptions that are wrong for __LP64__."
* commit '7d604133770ae3d9da84737a527907a94683fe21':
  Fix some test assumptions that are wrong for __LP64__.
2013-10-18 13:36:22 -07:00
Elliott Hughes
925753aa11 Fix some test assumptions that are wrong for __LP64__.
Change-Id: Ic79cd5858ceb611640a76bd03f3da4925d3150d9
2013-10-18 13:17:18 -07:00
Elliott Hughes
7efbac17bf am 2039949b: am 967cd1bc: Merge "Fix sigaction(3) for 64-bit."
* commit '2039949b225a3f6414250385b8d814440c24bab5':
  Fix sigaction(3) for 64-bit.
2013-10-17 11:52:30 -07:00