OSDN Git Service

android-x86/bionic.git
9 years agoGenerate gnu hash for arm only
Goran Jakovljevic [Tue, 10 Mar 2015 16:11:39 +0000 (17:11 +0100)]
Generate gnu hash for arm only

Fixes build failure caused by:
https://android-review.googlesource.com/#/c/139660

As previously discussed [1], MIPS does not support GNU-style ELF hashes.

[1] https://android-review.googlesource.com/#/c/49282/2/tests/Android.mk

Change-Id: I9a7966eebfd1ef0a587a20b71faefde38e84ab62

9 years agoMerge "Generate sysv hash for libc, libstdc++ and libm"
Dmitriy Ivanov [Tue, 10 Mar 2015 04:41:01 +0000 (04:41 +0000)]
Merge "Generate sysv hash for libc, libstdc++ and libm"

9 years agoMerge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink."
Yabin Cui [Tue, 10 Mar 2015 04:14:12 +0000 (04:14 +0000)]
Merge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink."

9 years agoGenerate sysv hash for libc, libstdc++ and libm
Dmitriy Ivanov [Tue, 10 Mar 2015 02:38:56 +0000 (19:38 -0700)]
Generate sysv hash for libc, libstdc++ and libm

Bug: 19059885
Change-Id: I35e2a9cd0bb3914d9d0c82d163bfaf0fff844667

9 years agoLoosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.
Yabin Cui [Mon, 9 Mar 2015 20:55:18 +0000 (13:55 -0700)]
Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.

It has been reported in b2/19657449 and b2/19381040 that fchmodat
AT_SYMLINK_NOFOLLOW operation on symlink can succeed. It seems to be
controlled by kernel(version or configuration) or user configuration
whether chmod is allowed on symlinks. Unless we can disable chmod on
symlinks in bionic explicitly, we can not guarantee that the test can
pass. But it seems reasonable to allow chmod on symlink if kernel allows
to. So We prefer to loosen the test here, accepting both success and
failure when doing chmod operation on symlinks.

Bug: 19657449
Bug: 19381040
Change-Id: I780e84f0b50d0412fbac9f1c240d07e984892a28

9 years agoMerge "Store fields for gnu_hash separately"
Dmitriy Ivanov [Mon, 9 Mar 2015 21:05:51 +0000 (21:05 +0000)]
Merge "Store fields for gnu_hash separately"

9 years agoStore fields for gnu_hash separately
Dmitriy Ivanov [Mon, 9 Mar 2015 19:02:02 +0000 (12:02 -0700)]
Store fields for gnu_hash separately

  Kindle app relies on soinfo's sysv hash
  fields while linking native libraries.

  This change allows to keep sysv hash fields
  intact for the libraries linked with --hash-style=both.

Bug: 19059885
Change-Id: I12528652955638f1a6586bda99e111bb1c8aa7a3

9 years agoMerge "linker: Allow an app to update it's own LD_LIBRARY_PATH"
Nick Kralevich [Sat, 7 Mar 2015 23:31:31 +0000 (23:31 +0000)]
Merge "linker: Allow an app to update it's own LD_LIBRARY_PATH"

9 years agolinker: Allow an app to update it's own LD_LIBRARY_PATH
Nick Kralevich [Sat, 7 Mar 2015 21:37:05 +0000 (13:37 -0800)]
linker: Allow an app to update it's own LD_LIBRARY_PATH

When the kernel executes a program which is setuid, setgid, has
file capabilities, or causes an SELinux domain transition, the
AT_SECURE flag is set. This flag instructs the dynamic linker to
prune any dangerous environment variables passed across security
boundaries.

For SELinux in particular, whether this flag is set depends on the
the "noatsecure" process permission. If that permission does not
exist, then AT_SECURE=1 whenever a domain transition occurs.

In https://android-review.googlesource.com/129971 , Android stopped
using noatsecure when executing init services. In
https://android-review.googlesource.com/130610 , init was flipped
back into SELinux enforcing mode, making ag/129971 active. The
combination of those two changes ensured that AT_SECURE=1 was
set when executing init spawned services.

In particular, AT_SECURE=1 is set when init executes zygote. Due to
the forking nature of zygote, AT_SECURE remains untouched when
executing zygote's children.

This causes problems for the code added in
https://android-review.googlesource.com/48409 . Specifically, if
AT_SECURE=1, an attempt to call android_update_LD_LIBRARY_PATH()
is silently ignored. This causes problems when art tries to adjust
the LD_LIBRARY_PATH for Android apps. Ultimately, apps are unable
to find shared libraries they depend on.

As discussed in bug 7896159, there's no security reason for
preventing an application from updating it's own LD_LIBRARY_PATH.
We only need to prune LD_LIBRARY_PATH when transitioning across
security boundaries, but not when we're entirely within a security
boundary.

Remove the AT_SECURE check within do_android_update_LD_LIBRARY_PATH().
It's unneeded and prevents an application from modifying it's own
LD_LIBRARY_PATH. This allows an application to specify a location
where it's dlopen()ed shared libraries should be loaded from.

There is no change to AT_SECURE handling in
__sanitize_environment_variables(). We continue to honor it there
to prevent using security sensitive environment variables across
an exec boundary.

Bug: 19559835
Change-Id: If4af2ee8e84265aaa0c93de8b281208b20d7942a

9 years agoMerge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64"
Christopher Ferris [Sat, 7 Mar 2015 16:46:26 +0000 (16:46 +0000)]
Merge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64"

9 years agoMerge changes I796a4ce8,I6165d062,I66c95d90,Ia67fa11d
Dmitriy Ivanov [Sat, 7 Mar 2015 07:08:50 +0000 (07:08 +0000)]
Merge changes I796a4ce8,I6165d062,I66c95d90,Ia67fa11d

* changes:
  Add support for packed relocations.
  Refactoring: introduce reloc_iterators
  Generalize compression tool
  Import relocation packer from chromium repo

9 years agoAdd support for packed relocations.
Dmitriy Ivanov [Thu, 5 Feb 2015 00:05:30 +0000 (16:05 -0800)]
Add support for packed relocations.

Change-Id: I796a4ce86d3fccb8361c19889419c96147ee3c9f

9 years agolibm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64
James Rose [Wed, 12 Nov 2014 19:05:54 +0000 (12:05 -0700)]
libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64

Add hardware implementations for sqrt, ceil, floor and trunc for
x86 and x86_64. These routines, and in particular sqrt are much
faster than the BSD C language versions of these functions.

Fixed whitespace errors.

Revised x86 versions with respect to alignment.
Rebased for Android 5.0

Change-Id: I86bdb520ce5e589b0cf63778f353fbd3263c8f0e
Author: James Rose <james.rose@intel.com>
Signed-off-by: James Rose <james.rose@intel.com>
9 years agoMerge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD."
Yabin Cui [Fri, 6 Mar 2015 23:21:11 +0000 (23:21 +0000)]
Merge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD."

9 years agoRemove PTHREAD_ATTR_FLAG_MAIN_THREAD.
Yabin Cui [Fri, 6 Mar 2015 21:48:58 +0000 (13:48 -0800)]
Remove PTHREAD_ATTR_FLAG_MAIN_THREAD.

Make this change because I think it is more reasonable to check stack info
in pthread_getattr_np. I believe pthread_attr_t is not tied with any thread,
and can't have a flag saying who using it is the main thread.
This change also helps refactor of g_thread_list_lock.

Bug: 19636317
Change-Id: Iedbb85a391ac3e1849dd036d01445dac4bc63db9

9 years agoRefactoring: introduce reloc_iterators
Dmitriy Ivanov [Wed, 4 Feb 2015 00:06:47 +0000 (16:06 -0800)]
Refactoring: introduce reloc_iterators

 Replace rel/rela array with reloc_iterators.

Change-Id: I6165d062e0390b6bc60da2e8279aabbedf828ec9

9 years agoGeneralize compression tool
Dmitriy Ivanov [Wed, 28 Jan 2015 03:32:56 +0000 (19:32 -0800)]
Generalize compression tool

 1. One binary for all architectures
 2. Generalize (and slightly improve) compression
 2.1 works on all relocation types (rela?.dyn section only so far)
 2.2 Uses same format to encode ElfW(Rel) as well as ElfW(Rela) tables

Bug: 18051137
Change-Id: I66c95d9076954ca115816fc577d0f5ef274e5e72

9 years agoImport relocation packer from chromium repo
Dmitriy Ivanov [Fri, 6 Feb 2015 18:56:28 +0000 (10:56 -0800)]
Import relocation packer from chromium repo

Bug: 18051137
Change-Id: Ia67fa11da8247e3f86f70a8ce99e6695f2c05423

9 years agoMerge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp."
Yabin Cui [Fri, 6 Mar 2015 20:52:30 +0000 (20:52 +0000)]
Merge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp."

9 years agoMerge "Use pthread_once for g_uselocale_key creation."
Yabin Cui [Fri, 6 Mar 2015 05:28:24 +0000 (05:28 +0000)]
Merge "Use pthread_once for g_uselocale_key creation."

9 years agoUse pthread_once for g_uselocale_key creation.
Yabin Cui [Fri, 6 Mar 2015 04:08:21 +0000 (20:08 -0800)]
Use pthread_once for g_uselocale_key creation.

Bug: 19625804
Change-Id: I57ec4c965067dc0c157c795c1f7217a3ca403286

9 years agoMerge "libm: arm: add arm specific sqrt and sqrtf"
Christopher Ferris [Thu, 5 Mar 2015 21:55:20 +0000 (21:55 +0000)]
Merge "libm: arm: add arm specific sqrt and sqrtf"

9 years agoMerge "Better control of pthread keys used in bionic."
Yabin Cui [Thu, 5 Mar 2015 18:26:43 +0000 (18:26 +0000)]
Merge "Better control of pthread keys used in bionic."

9 years agoRename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.
Yabin Cui [Wed, 4 Mar 2015 23:31:55 +0000 (15:31 -0800)]
Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.

Bug: 19234260
Change-Id: Ife27ca13eeae317739eda25b40dd2a08606d6d6f

9 years agoMerge "Fix fortify compilation test in x86_64."
Yabin Cui [Thu, 5 Mar 2015 08:40:58 +0000 (08:40 +0000)]
Merge "Fix fortify compilation test in x86_64."

9 years agoFix fortify compilation test in x86_64.
Yabin Cui [Thu, 5 Mar 2015 08:39:09 +0000 (00:39 -0800)]
Fix fortify compilation test in x86_64.

Change-Id: Ic243f6583e4f435899d01c7845dddacacbfc916e

9 years agoMerge "Fix fortify compilation test on x86."
Yabin Cui [Thu, 5 Mar 2015 06:36:47 +0000 (06:36 +0000)]
Merge "Fix fortify compilation test on x86."

9 years agoFix fortify compilation test on x86.
Yabin Cui [Thu, 5 Mar 2015 06:35:13 +0000 (22:35 -0800)]
Fix fortify compilation test on x86.

Change-Id: I9b88cbcec51b6f1dbac2780a9bf82851bd6cc87c

9 years agoMerge "Fix fortify compilation test on mips."
Yabin Cui [Thu, 5 Mar 2015 05:46:15 +0000 (05:46 +0000)]
Merge "Fix fortify compilation test on mips."

9 years agoFix fortify compilation test on mips.
Yabin Cui [Thu, 5 Mar 2015 05:43:14 +0000 (21:43 -0800)]
Fix fortify compilation test on mips.

Change-Id: Icff5b859ae58067bfa34430d3f5684335fe063b4

9 years agoMerge "Switch pthread_rwlock_t to stdatomic."
Yabin Cui [Thu, 5 Mar 2015 04:42:35 +0000 (04:42 +0000)]
Merge "Switch pthread_rwlock_t to stdatomic."

9 years agoSwitch pthread_rwlock_t to stdatomic.
Yabin Cui [Thu, 12 Feb 2015 01:04:36 +0000 (17:04 -0800)]
Switch pthread_rwlock_t to stdatomic.

Bug: 19099838
Change-Id: Ie82967a60b5cec61a8bdd1e0e4a03738d01944f8

9 years agoBetter control of pthread keys used in bionic.
Yabin Cui [Thu, 5 Mar 2015 00:53:23 +0000 (16:53 -0800)]
Better control of pthread keys used in bionic.

Change-Id: I1e1bc77c0e7879baead6c3417282ce549a1153b5

9 years agoMerge "Add fortify compile test."
Yabin Cui [Wed, 4 Mar 2015 23:25:42 +0000 (23:25 +0000)]
Merge "Add fortify compile test."

9 years agolibm: arm: add arm specific sqrt and sqrtf
Shu Zhang [Wed, 23 Jul 2014 09:21:55 +0000 (17:21 +0800)]
libm: arm: add arm specific sqrt and sqrtf

Add arm specific optimized sqrt and sqrtf.

Change-Id: I8ea417fc98a800c8cf4f47a0c6668c51d927b1dc

9 years agoMerge "Add aarch64 instructions wherever possible"
Christopher Ferris [Wed, 4 Mar 2015 21:52:00 +0000 (21:52 +0000)]
Merge "Add aarch64 instructions wherever possible"

9 years agoAdd fortify compile test.
Yabin Cui [Wed, 4 Mar 2015 04:27:58 +0000 (20:27 -0800)]
Add fortify compile test.

Two parts of tests are added:
1. Compile time warnings for gcc checking built-in functions.
2. Compile time errors for each errordecl() in bionic.

Bug: 19234260
Change-Id: Iec6e4a8070c36815574fe9e0af9595d6143a4757

9 years agoAdd aarch64 instructions wherever possible
Amaury Le Leyzour [Tue, 17 Feb 2015 23:05:51 +0000 (15:05 -0800)]
Add aarch64 instructions wherever possible

fma, sqrt and various rounding functions have aarch64 instruction equivalent

Change-Id: I1284f31b9f78f914281e5563b8d44db8362b627d

9 years agoMerge "Refactor pthread_key.cpp to be lock-free."
Yabin Cui [Wed, 4 Mar 2015 01:49:19 +0000 (01:49 +0000)]
Merge "Refactor pthread_key.cpp to be lock-free."

9 years agoRefactor pthread_key.cpp to be lock-free.
Yabin Cui [Sat, 21 Feb 2015 00:15:33 +0000 (16:15 -0800)]
Refactor pthread_key.cpp to be lock-free.

Change-Id: I20dfb9d3cdc40eed10ea12ac34f03caaa94f7a49

9 years agoMerge "Lose bionic_atomic stuff."
Yabin Cui [Tue, 3 Mar 2015 02:56:19 +0000 (02:56 +0000)]
Merge "Lose bionic_atomic stuff."

9 years agoMerge "bionic: deprecate _PATH_MEM"
Mark Salyzyn [Mon, 2 Mar 2015 18:56:21 +0000 (18:56 +0000)]
Merge "bionic: deprecate _PATH_MEM"

9 years agobionic: deprecate _PATH_MEM
Mark Salyzyn [Mon, 2 Mar 2015 17:14:51 +0000 (09:14 -0800)]
bionic: deprecate _PATH_MEM

/dev/mem (and /dev/kmem) are not enabled in the kernels, and selinux
prevents access and makes it a rule compilation error to enable
access. No code uses the _PATH_MEM macro. Remove definition to
suppress future usage.

Bug: 19549480
Change-Id: Ie0fb0f53d43349f4fe227068e4bf8a768f620d60

9 years agoMerge "Fix fread returning bad data."
Christopher Ferris [Sat, 28 Feb 2015 18:31:00 +0000 (18:31 +0000)]
Merge "Fix fread returning bad data."

9 years agoFix fread returning bad data.
Christopher Ferris [Sat, 28 Feb 2015 02:22:45 +0000 (18:22 -0800)]
Fix fread returning bad data.

Bug: 19172514
Change-Id: I05016577858a02aca7d14e75e6ec28abc925037c

9 years agoMerge "libm: arm: Add arm specific floor() optimization"
Christopher Ferris [Fri, 27 Feb 2015 20:23:15 +0000 (20:23 +0000)]
Merge "libm: arm: Add arm specific floor() optimization"

9 years agoMerge "Make bionic gtest main be compatible with gtest output format for cts test."
Yabin Cui [Fri, 27 Feb 2015 18:29:47 +0000 (18:29 +0000)]
Merge "Make bionic gtest main be compatible with gtest output format for cts test."

9 years agoMake bionic gtest main be compatible with gtest output format for cts test.
Yabin Cui [Fri, 27 Feb 2015 03:03:54 +0000 (19:03 -0800)]
Make bionic gtest main be compatible with gtest output format for cts test.

Bug: 17589740
Change-Id: Ifab521da379a33bf0a7bf11c21386f936f0d494c

9 years agoLose bionic_atomic stuff.
Yabin Cui [Thu, 26 Feb 2015 21:45:06 +0000 (13:45 -0800)]
Lose bionic_atomic stuff.

Bug: 17177189
Change-Id: Ie1f5d7af359d31b14f58e53ec89c72111362d7ec

9 years agoMerge "Allow wildcards to match arg values."
Christopher Ferris [Thu, 26 Feb 2015 03:47:12 +0000 (03:47 +0000)]
Merge "Allow wildcards to match arg values."

9 years agoMerge "Make getgrent deprecated."
Yabin Cui [Thu, 26 Feb 2015 03:46:40 +0000 (03:46 +0000)]
Merge "Make getgrent deprecated."

9 years agoMake getgrent deprecated.
Yabin Cui [Thu, 26 Feb 2015 03:05:37 +0000 (19:05 -0800)]
Make getgrent deprecated.

Bug: 19340053
Change-Id: Ie8b97f840d9e87555e6a3d591fc87bc08c2d6820

9 years agoMerge "Move endpwent to ndk_cruft.cpp."
Yabin Cui [Thu, 26 Feb 2015 02:23:07 +0000 (02:23 +0000)]
Merge "Move endpwent to ndk_cruft.cpp."

9 years agoMerge "Make tempnam/mktemp deprecated."
Yabin Cui [Thu, 26 Feb 2015 02:17:16 +0000 (02:17 +0000)]
Merge "Make tempnam/mktemp deprecated."

9 years agoMake tempnam/mktemp deprecated.
Yabin Cui [Tue, 24 Feb 2015 00:42:07 +0000 (16:42 -0800)]
Make tempnam/mktemp deprecated.

Bug: 19340053
Change-Id: Ib02c65814ef97cd1758fd8142b73736cc8bc1700

9 years agoMove endpwent to ndk_cruft.cpp.
Yabin Cui [Wed, 25 Feb 2015 22:58:08 +0000 (14:58 -0800)]
Move endpwent to ndk_cruft.cpp.

Bug: 19109159
Change-Id: I3683a247643006ea6d6bcf3845f57d1908d457d7

9 years agoAllow wildcards to match arg values.
Christopher Ferris [Sat, 21 Feb 2015 02:31:06 +0000 (18:31 -0800)]
Allow wildcards to match arg values.

Change-Id: I38230b500bb8f8f69af0d7c740855a401cd12898

9 years agoMerge "Switch system_properties.cpp from bionic atomic operations to stdatomic."
Yabin Cui [Wed, 25 Feb 2015 21:04:56 +0000 (21:04 +0000)]
Merge "Switch system_properties.cpp from bionic atomic operations to stdatomic."

9 years agoMerge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."
Yabin Cui [Wed, 25 Feb 2015 00:00:51 +0000 (00:00 +0000)]
Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."

9 years agoMerge "Make all output of child test go to parent process in gtest_main."
Yabin Cui [Tue, 24 Feb 2015 23:40:30 +0000 (23:40 +0000)]
Merge "Make all output of child test go to parent process in gtest_main."

9 years agoMove getusershell/endusershell/setusershell to ndk_cruft.cpp.
Yabin Cui [Tue, 24 Feb 2015 21:18:25 +0000 (13:18 -0800)]
Move getusershell/endusershell/setusershell to ndk_cruft.cpp.

Bug: 19108648
Change-Id: I65134040345398dde612c4325d902db58f3bd2be

9 years agoMake all output of child test go to parent process in gtest_main.
Yabin Cui [Tue, 24 Feb 2015 22:39:19 +0000 (14:39 -0800)]
Make all output of child test go to parent process in gtest_main.

Change-Id: Iad460e89755051cdb99593cbf42c97d9a359f32b

9 years agoMerge "Fix "faccessat ignores flags""
Nick Kralevich [Tue, 24 Feb 2015 21:49:09 +0000 (21:49 +0000)]
Merge "Fix "faccessat ignores flags""

9 years agoFix "faccessat ignores flags"
Nick Kralevich [Tue, 24 Feb 2015 21:40:43 +0000 (13:40 -0800)]
Fix "faccessat ignores flags"

The kernel system call faccessat() does not have any flags arguments,
so passing flags to the kernel is currently ignored.

Fix the kernel system call so that no flags argument is passed in.

Ensure that we don't support AT_SYMLINK_NOFOLLOW. This non-POSIX
(http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html)
flag is a glibc extension, and has non-intuitive, error prone behavior.

For example, consider the following code:

  symlink("foo.is.dangling", "foo");
  if (faccessat(AT_FDCWD, "foo", R_OK, AT_SYMLINK_NOFOLLOW) == 0) {
    int fd = openat(AT_FDCWD, "foo", O_RDONLY | O_NOFOLLOW);
  }

The faccessat() call in glibc will return true, but an attempt to
open the dangling symlink will end up failing. GLIBC documents this
as returning the access mode of the symlink itself, which will
always return true for any symlink on Linux.

Some further discussions of this are at:

  * http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003617.html
  * http://permalink.gmane.org/gmane.linux.lib.musl.general/6952

AT_SYMLINK_NOFOLLOW seems broken by design. I suspect this is why this
function was never added to POSIX. (note that "access" is pretty much
broken by design too, since it introduces a race condition between
check and action). We shouldn't support this until it's clearly
documented by POSIX or we can have it produce intuitive results.

Don't support AT_EACCESS for now. Implementing it is complicated, and
pretty much useless on Android, since we don't have setuid binaries.
See http://git.musl-libc.org/cgit/musl/commit/?id=0a05eace163cee9b08571d2ff9d90f5e82d9c228
for how an implementation might look.

Bug: 18867827
Change-Id: I25b86c5020f3152ffa3ac3047f6c4152908d0e04

9 years agoSwitch system_properties.cpp from bionic atomic operations to stdatomic.
Yabin Cui [Wed, 11 Feb 2015 05:35:56 +0000 (21:35 -0800)]
Switch system_properties.cpp from bionic atomic operations to stdatomic.

Bug: 17177189
Change-Id: I42e05ad1c490cc7a8040138151afc0ee72a9b63f

9 years agoMerge "Fix dup2 in the case where the two fds are equal."
Elliott Hughes [Tue, 24 Feb 2015 05:55:37 +0000 (05:55 +0000)]
Merge "Fix dup2 in the case where the two fds are equal."

9 years agoFix dup2 in the case where the two fds are equal.
Elliott Hughes [Tue, 24 Feb 2015 02:02:29 +0000 (18:02 -0800)]
Fix dup2 in the case where the two fds are equal.

dup3's behavior differs from dup2 in this case, so we need to paper
over that in the C library.

Change-Id: I313cd6f226db5e237f61866f324c5ecdd12bf762

9 years agoMerge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX."
Elliott Hughes [Mon, 23 Feb 2015 22:36:06 +0000 (22:36 +0000)]
Merge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX."

9 years agoAdd RLIM_SAVED_CUR and RLIM_SAVED_MAX.
Elliott Hughes [Mon, 23 Feb 2015 21:41:40 +0000 (13:41 -0800)]
Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.

Change-Id: Ia6be76460bfcf852832325c5f36cb272f49a4b87

9 years agoMerge "[MIPS64] Fix mips64 build."
Elliott Hughes [Mon, 23 Feb 2015 16:04:20 +0000 (16:04 +0000)]
Merge "[MIPS64] Fix mips64 build."

9 years ago[MIPS64] Fix mips64 build.
Nikola Veljkovic [Mon, 23 Feb 2015 15:14:56 +0000 (16:14 +0100)]
[MIPS64] Fix mips64 build.

Build was broken by:
https://android-review.googlesource.com/133834

Use <unistd.h> to get syscall().
Remove <asm/unistd.h>, it gets included through <sys/syscall.h>.

Change-Id: Id762f6dea5f9538c19b79cdd46deda978efd50fe

9 years agoMerge "Fix 64-bit benchmark build"
Greg Hackmann [Fri, 20 Feb 2015 19:16:48 +0000 (19:16 +0000)]
Merge "Fix 64-bit benchmark build"

9 years agoFix 64-bit benchmark build
Greg Hackmann [Fri, 20 Feb 2015 19:00:14 +0000 (11:00 -0800)]
Fix 64-bit benchmark build

The * flag to printf() wants an int instead of size_t, and these are
distinct types on 64-bit.  To accomodate this, make the name column
width helpers return int.

In theory this truncates things, but in practice this only matters if
you have a benchmark with more than INT_MAX characters in its name (in
which case you have bigger problems).

Change-Id: I3338948c25a3a8d84f1ead2f5b457c05da8a01cf
Signed-off-by: Greg Hackmann <ghackmann@google.com>
9 years agoMerge "valgrind can't find syscall because we didn't put it in <unistd.h>."
Elliott Hughes [Fri, 20 Feb 2015 16:56:57 +0000 (16:56 +0000)]
Merge "valgrind can't find syscall because we didn't put it in <unistd.h>."

9 years agovalgrind can't find syscall because we didn't put it in <unistd.h>.
Elliott Hughes [Fri, 20 Feb 2015 06:49:44 +0000 (22:49 -0800)]
valgrind can't find syscall because we didn't put it in <unistd.h>.

Change-Id: I1e47291d4476bd2816138a8cf58f29d4986d39e3

9 years agoMerge "Refactor the benchmark code."
Christopher Ferris [Fri, 20 Feb 2015 00:53:24 +0000 (00:53 +0000)]
Merge "Refactor the benchmark code."

9 years agoRefactor the benchmark code.
Christopher Ferris [Wed, 18 Feb 2015 03:58:53 +0000 (19:58 -0800)]
Refactor the benchmark code.

Changes:
- Modify the benchmarks to derive from a single Benchmark object.
- Rewrite the main iteration code. This includes changing the iteration
  code to use the actual total time calculated by the benchmark as a basis
  for determining whether there are enough iterations instead of using
  the time it takes to run the benchmark.
- Allow benchmarks to take no argument, int, or double.
- Fix the PrettyInt printer for negative integers.
- Modify the max column width name to include the whole name including
  the arg part.
- Reformat property_benchmark.cpp in line with the rest of the code.
- Modify a few of the math benchmarks to take an argument instead of
  separate benchmarks for the same function with different args.
- Create a vector of regex_t structs to represent the args all at
  once instead of when running each benchmark.

This change is in preparation for adding new math based benchmarks.

Tested by running on a nexus flo running at max using the new code
and the old code and comparing. All of the numbers are similar, but
some of the iterations are different due to the slightly different
algorithm used.

Change-Id: I57ad1f3ff083282b9ffeb72e687cab369ce3523a

9 years agoMerge "Add GNU extensions mempcpy and wmemcpy."
Elliott Hughes [Thu, 19 Feb 2015 15:49:53 +0000 (15:49 +0000)]
Merge "Add GNU extensions mempcpy and wmemcpy."

9 years agoAdd GNU extensions mempcpy and wmemcpy.
Elliott Hughes [Thu, 19 Feb 2015 05:29:13 +0000 (21:29 -0800)]
Add GNU extensions mempcpy and wmemcpy.

Used by elfutils. On the bright side, they stopped using __mempcpy.

Bug: 18374026
Change-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb

9 years agoMerge "Parameterize use of clang in libc_ndk."
Dan Albert [Thu, 19 Feb 2015 02:33:08 +0000 (02:33 +0000)]
Merge "Parameterize use of clang in libc_ndk."

9 years agoParameterize use of clang in libc_ndk.
Dan Albert [Thu, 19 Feb 2015 01:37:52 +0000 (17:37 -0800)]
Parameterize use of clang in libc_ndk.

We still have issues with clang coverage in static libraries, so we
need to make sure we follow suit with the rest of libc for now.

Bug: 17574078
Change-Id: I2ab58a84b1caa0d8d08415d240c35adec5b1e150

9 years agoMerge "[MIPS] Fix setjmp signals"
Elliott Hughes [Thu, 19 Feb 2015 01:00:18 +0000 (01:00 +0000)]
Merge "[MIPS] Fix setjmp signals"

9 years agoMerge "Make gets() deprecated."
Yabin Cui [Wed, 18 Feb 2015 21:33:01 +0000 (21:33 +0000)]
Merge "Make gets() deprecated."

9 years agoMake gets() deprecated.
Yabin Cui [Wed, 18 Feb 2015 20:20:32 +0000 (12:20 -0800)]
Make gets() deprecated.

gets is already deprecated in glibc. Others with __warnattr are not deprecated.

Change-Id: I80a276d2b5964630218be47f1c94b146c0d31151

9 years agoMerge "Implement _FILE_OFFSET_BITS (mostly)."
Elliott Hughes [Wed, 18 Feb 2015 18:01:04 +0000 (18:01 +0000)]
Merge "Implement _FILE_OFFSET_BITS (mostly)."

9 years agoMerge "Update tzdata to tzdata2015a"
Neil Fuller [Wed, 18 Feb 2015 09:42:31 +0000 (09:42 +0000)]
Merge "Update tzdata to tzdata2015a"

9 years agoImplement _FILE_OFFSET_BITS (mostly).
Elliott Hughes [Sat, 7 Feb 2015 06:28:49 +0000 (22:28 -0800)]
Implement _FILE_OFFSET_BITS (mostly).

I still don't think we can make stdio's fseeko and ftello work, but we can
have everything else, and very few programs use fseeko/ftello (and they can
just refrain from using _FILE_OFFSET_BITS and be no worse off than they are
today).

Bug: 11865851
Change-Id: Ic3cb409aae6713f4b345de954bcc4241fcd969ec

9 years agoMerge "Update NDK compatlib for 4.1.2."
Dan Albert [Wed, 18 Feb 2015 01:05:48 +0000 (01:05 +0000)]
Merge "Update NDK compatlib for 4.1.2."

9 years agoMerge "Update the NDK compatlib for 4.4.4 and ToT."
Dan Albert [Wed, 18 Feb 2015 01:05:43 +0000 (01:05 +0000)]
Merge "Update the NDK compatlib for 4.4.4 and ToT."

9 years agoUpdate NDK compatlib for 4.1.2.
Dan Albert [Fri, 13 Feb 2015 00:35:09 +0000 (16:35 -0800)]
Update NDK compatlib for 4.1.2.

The replacement new failures present in newer versions are present
here as well, with the following new issues:

XPASS std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp

This is from the -NaN formatting fix in bionic. We previously had this
wrong, and the upstream test is also wrong. There's currently an XFAIL
for Android in this test because I haven't fixed the upstream test
yet. After that is done, I'll need to teach the test runner how to
XFAIL older Android versions...

FAIL std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp
    dtor.pass.cpp:39: int main(): assertion "globalMemCounter.checkDeleteArrayCalledEq(1)" failed

Haven't investigated this one yet. http://b/19412688

Note that this also needs the libgcc link ordering to be fixed in the
build system, as we'll otherwise depend on libgcc symbols from libc
that may or may not have been there.

The build fix can't be submitted because the proper link order causes
the libgcc unwinder to be used instead of the EHABI one:
http://b/18471342

Bug: 18471532
Change-Id: Icf560485a9b8f5ebbe01e4458703e62ec94df5e1

9 years agoUpdate the NDK compatlib for 4.4.4 and ToT.
Dan Albert [Tue, 10 Feb 2015 01:45:22 +0000 (17:45 -0800)]
Update the NDK compatlib for 4.4.4 and ToT.

Now passes all libc++ tests for these targets, with the exception of
the usual failing replacement new tests since libc uses new/delete for
things. I don't know if we can ever really fix these.

Bug: 18471532
Change-Id: Ibc0a15f26b0e4613249b5e15ecf3cf80e523467c

9 years agoMerge "Revert "Move use of __warnattr to __deprecated.""
Yabin Cui [Tue, 17 Feb 2015 23:56:29 +0000 (23:56 +0000)]
Merge "Revert "Move use of __warnattr to __deprecated.""

9 years agoRevert "Move use of __warnattr to __deprecated."
Yabin Cui [Tue, 17 Feb 2015 23:54:40 +0000 (23:54 +0000)]
Revert "Move use of __warnattr to __deprecated."

This reverts commit 4645c4f62df49d1ece5aabb7c9fa44ca34d30272.

Change-Id: I6c1062d54a4e2c4f41ce7a403e4e7840e6339146

9 years agoMerge "Move use of __warnattr to __deprecated."
Yabin Cui [Tue, 17 Feb 2015 23:10:30 +0000 (23:10 +0000)]
Merge "Move use of __warnattr to __deprecated."

9 years agoMove use of __warnattr to __deprecated.
Yabin Cui [Tue, 17 Feb 2015 20:39:39 +0000 (12:39 -0800)]
Move use of __warnattr to __deprecated.

clang don't support warning attribute. Replacing warning attriubte with
deprecated attribute can achieve the same behavior whether compiled by
gcc or clang.

Bug: 19340053
Change-Id: I064432b81cf55212458edbc749eb72dc15a810fb

9 years agoMerge "Accuracy tests for libm"
Christopher Ferris [Tue, 17 Feb 2015 21:41:41 +0000 (21:41 +0000)]
Merge "Accuracy tests for libm"

9 years agoMerge "Change getgrent error declaration message to proper style."
Yabin Cui [Tue, 17 Feb 2015 21:29:21 +0000 (21:29 +0000)]
Merge "Change getgrent error declaration message to proper style."

9 years agoMerge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX."
Elliott Hughes [Tue, 17 Feb 2015 21:20:39 +0000 (21:20 +0000)]
Merge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX."

9 years agoChange getgrent error declaration message to proper style.
Yabin Cui [Tue, 17 Feb 2015 19:33:42 +0000 (11:33 -0800)]
Change getgrent error declaration message to proper style.

Bug: 19340053
Change-Id: I9c47a2016f356d171a5f2082acb8391d81e019b2

9 years agoFix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.
Elliott Hughes [Tue, 17 Feb 2015 17:55:58 +0000 (09:55 -0800)]
Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.

Change-Id: I656f613166bd604f35b31e5ec042a5230c6b82b8