Commit Graph

2435 Commits

Author SHA1 Message Date
Elliott Hughes
a2e42c3798 am 6d460efe: am c9edc079: am 39e2a408: am 6eb978c9: Merge "Expose wait4 as wait4 rather than __wait4."
* commit '6d460efed94e3d5825b5c842c112aa6b26357d93':
  Expose wait4 as wait4 rather than __wait4.
2013-03-21 23:25:38 +00:00
Elliott Hughes
c9edc07977 am 39e2a408: am 6eb978c9: Merge "Expose wait4 as wait4 rather than __wait4."
* commit '39e2a408a64bd24fb0fe7f5eb444b55af1160480':
  Expose wait4 as wait4 rather than __wait4.
2013-03-21 16:19:29 -07:00
Elliott Hughes
39e2a408a6 am 6eb978c9: Merge "Expose wait4 as wait4 rather than __wait4."
* commit '6eb978c9bf02d2bcdece2826577cc65900030690':
  Expose wait4 as wait4 rather than __wait4.
2013-03-21 16:18:22 -07:00
Elliott Hughes
17a8b0db63 Expose wait4 as wait4 rather than __wait4.
This helps strace(1) compile with one fewer hack.

Change-Id: I5296d0cfec5546709cda990abd705ad33d7c4626
2013-03-21 16:14:06 -07:00
Christopher Ferris
f46e14544b am 9088af19: am 86c31849: Merge "Create arch specific versions of strcmp."
* commit '9088af19b45d1b7339b982c92ef9113337f5d2c6':
  Create arch specific versions of strcmp.
2013-03-20 15:33:54 -07:00
Christopher Ferris
9088af19b4 am 86c31849: Merge "Create arch specific versions of strcmp."
* commit '86c318497270c80a3791b4cd9835367653636377':
  Create arch specific versions of strcmp.
2013-03-20 15:29:06 -07:00
Christopher Ferris
31dea25b8b Create arch specific versions of strcmp.
This uses the new strcmp.a15.S code as the basis for new versions
of strcmp.S.

The cortex-a15 code is the performance optimized version of strcmp.a15.S
taken with only the addition of a few pld instructions.
The cortex-a9 code is the same as the cortex-a15 code except that the
unaligned strcmp code was taken from the original strcmp.S.
The krait code is the same as the cortex-a15 code except that one path
in the unaligned strcmp code was taken from the original strcmp.S code
(the 2 byte overlap case).
The generic code is the original unmodified strmp.S from the bionic
subdirectory.

All three new versions underwent these test cases:

Strings the same, all same size:
- Both pointers double word aligned.
- One pointer double word aligned, one pointer word aligned.
- Both pointers word aligned.
- One pointer double word aligned, one pointer 1 off a word alignment.
- One pointer double word aligned, one pointer 2 off a word alignment.
- One pointer double word aligned, one pointer 3 off a word alignment.
- One pointer word aligned, one pointer 1 off a word alignment.
- One pointer word aligned, one pointer 2 off a word alignment.
- One pointer word aligned, one pointer 3 off a word alignment.
For all cases where it made sense, the two pointers were also tested
swapped.

Different strings, all same size:
- Single difference at double word boundary.
- Single difference at word boudary.
- Single difference at 1 off a word alignment.
- Single difference at 2 off a word alignment.
- Single difference at 3 off a word alignment.

Different sized strings, strings the same until the end:
- Shorter string ends on a double word boundary.
- Shorter string ends on word boundary.
- Shorter string ends at 1 off a word boundary.
- Shorter string ends at 2 off a word boundary.
- Shorter string ends at 3 off a word boundary.

For all different cases, run them through the same pointer alignment
cases when the strings are the same size.
For all cases the two pointers were also tested swapped.

Bug: 8005082

Merge from internal master.

(cherry-picked from commit a9a5870d16)

Change-Id: I4c2b98f8a50804fb98ab67f75e9d660f1315a144
2013-03-20 14:33:54 -07:00
Elliott Hughes
6380d21a05 am 92a197f3: am d7dc414a: am 987fc5a3: am adeec096: Merge "Hide various symbols that shouldn\'t be exposed."
* commit '92a197f3051c5befd5e40ec7f23c0643999da259':
  Hide various symbols that shouldn't be exposed.
2013-03-16 00:11:52 +00:00
Elliott Hughes
d7dc414afd am 987fc5a3: am adeec096: Merge "Hide various symbols that shouldn\'t be exposed."
* commit '987fc5a3c4046831dc9e6c252e99a9c694bbd9ee':
  Hide various symbols that shouldn't be exposed.
2013-03-15 17:09:17 -07:00
Elliott Hughes
987fc5a3c4 am adeec096: Merge "Hide various symbols that shouldn\'t be exposed."
* commit 'adeec096292a3ad63767f13af04836249ecbc075':
  Hide various symbols that shouldn't be exposed.
2013-03-15 17:07:45 -07:00
Elliott Hughes
90f7546c68 am cf23cbb1: am 12ea8005: am 5f829205: am c1416647: Merge "Clean up internal libc logging."
* commit 'cf23cbb1d4826ac579fae28e4fe796a6e4e1ddfd':
  Clean up internal libc logging.
2013-03-15 23:43:01 +00:00
Elliott Hughes
12ea800566 am 5f829205: am c1416647: Merge "Clean up internal libc logging."
* commit '5f8292050fc07f4bf9e70f37a807ad028e3cfc87':
  Clean up internal libc logging.
2013-03-15 16:36:37 -07:00
Elliott Hughes
5f8292050f am c1416647: Merge "Clean up internal libc logging."
* commit 'c14166477e7fd22693eab194d37624c2f7506ce4':
  Clean up internal libc logging.
2013-03-15 16:34:05 -07:00
Elliott Hughes
ce532721aa Hide various symbols that shouldn't be exposed.
A mangled symbol in libc.so is a symbol that shouldn't be exported
by libc.so.

Change-Id: Id92d1e1968b3d11d111a5d9ef692adb1ac7694a1
2013-03-15 16:31:09 -07:00
Elliott Hughes
8f2a5a0b40 Clean up internal libc logging.
We only need one logging API, and I prefer the one that does no
allocation and is thus safe to use in any context.

Also use O_CLOEXEC when opening the /dev/log files.

Move everything logging-related into one header file.

Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
2013-03-15 16:12:58 -07:00
Elliott Hughes
cc71361ed6 am 270595f4: am e1b0db13: am 50d42294: am e23ed8c6: Merge "Remove useless workaround for HTC RIL bugs."
* commit '270595f4c976a86033ac099a283299c2ec53f24a':
  Remove useless workaround for HTC RIL bugs.
2013-03-15 18:49:50 +00:00
Elliott Hughes
e1b0db1392 am 50d42294: am e23ed8c6: Merge "Remove useless workaround for HTC RIL bugs."
* commit '50d42294bdc983e05eca0fb0099bbb9f634fd5e3':
  Remove useless workaround for HTC RIL bugs.
2013-03-15 11:46:05 -07:00
Elliott Hughes
50d42294bd am e23ed8c6: Merge "Remove useless workaround for HTC RIL bugs."
* commit 'e23ed8c6441389a79c6504295184f7249e01a197':
  Remove useless workaround for HTC RIL bugs.
2013-03-15 11:43:50 -07:00
Elliott Hughes
2eb44c5aa4 Remove useless workaround for HTC RIL bugs.
HTC's RIL uses the liblog logging, not ours.

Change-Id: I56f9304e833ccb329df4ee55042012d7ad5f73ed
2013-03-15 11:21:15 -07:00
Elliott Hughes
045e01caed am c204b501: am 9ede4549: am f8d689bc: am 4d696eb4: Merge "Fix a bug in ZoneCompactor that meant the zonetab offset was wrong."
* commit 'c204b501f44d7b08e2be06693322d5426b3f85ef':
  Fix a bug in ZoneCompactor that meant the zonetab offset was wrong.
2013-03-15 00:45:09 +00:00
Elliott Hughes
9ede4549fe am f8d689bc: am 4d696eb4: Merge "Fix a bug in ZoneCompactor that meant the zonetab offset was wrong."
* commit 'f8d689bc56976f8bd37b306053154a0e9d17fb1d':
  Fix a bug in ZoneCompactor that meant the zonetab offset was wrong.
2013-03-14 17:42:42 -07:00
Elliott Hughes
f8d689bc56 am 4d696eb4: Merge "Fix a bug in ZoneCompactor that meant the zonetab offset was wrong."
* commit '4d696eb49d24590a6d6d25657b5bc0103e2d90ba':
  Fix a bug in ZoneCompactor that meant the zonetab offset was wrong.
2013-03-14 17:40:26 -07:00
Elliott Hughes
4d696eb49d Merge "Fix a bug in ZoneCompactor that meant the zonetab offset was wrong." 2013-03-15 00:30:48 +00:00
Elliott Hughes
af7f2f2fcf Fix a bug in ZoneCompactor that meant the zonetab offset was wrong.
Bug: 8391426
Change-Id: Ia4a8889b5a613aa96bb3fb5d89a921c913ff7626
2013-03-14 17:10:24 -07:00
Christopher Ferris
f694ed1cdb am d30b9f09: Merge "Remove unused arm defines."
* commit 'd30b9f0912b4763f0d98bdee23064015223ec03f':
  Remove unused arm defines.
2013-03-14 16:32:21 -07:00
Elliott Hughes
4982e345cf am 2d48d0ea: am c9358706: am 2e7b8d63: am f861bc5c: Merge "Don\'t search off the end of the index for bad Olson ids."
* commit '2d48d0ea36395da9af4537195483b006900bf7bd':
  Don't search off the end of the index for bad Olson ids.
2013-03-14 22:35:28 +00:00
Christopher Ferris
306a353825 Remove unused arm defines.
The defines HAVE_32_BYTE_CACHE_LINES and ARCH_ARM_USE_NON_NEON_MEMCPY
are not used by any code. The previous memcpy code that used these
has been split into different architecture versions to avoid the need
for them.

Bug: 8005082

Merge from internal master.

(cherry-picked from commit 6e1a5cf31b)

Change-Id: Ib18fc3f4131b21cdbd19b9dde7697ac25d066fcf
2013-03-14 15:32:18 -07:00
Elliott Hughes
c9358706c6 am 2e7b8d63: am f861bc5c: Merge "Don\'t search off the end of the index for bad Olson ids."
* commit '2e7b8d6399fdea6e43dd07f353346324d2bf4ec4':
  Don't search off the end of the index for bad Olson ids.
2013-03-14 15:30:13 -07:00
Elliott Hughes
2e7b8d6399 am f861bc5c: Merge "Don\'t search off the end of the index for bad Olson ids."
* commit 'f861bc5cc3e17322e49f89deea61f278aaefbe76':
  Don't search off the end of the index for bad Olson ids.
2013-03-14 15:17:09 -07:00
Elliott Hughes
e0175ca7e4 Don't search off the end of the index for bad Olson ids.
In the old code, the index was a file to itself, so it made sense to
read until you hit the end of the file. In the new code, the index is
followed by hundreds of KiB of data, so we need to just search the
index.

Bug: 8368791
Change-Id: Icf5f8b5516cf3a93679fa849c9f6cd1cb100e0f1
2013-03-14 14:38:08 -07:00
Christopher Ferris
65461bbe25 Merge "Create arch specific versions of strcmp." 2013-03-14 21:18:20 +00:00
Elliott Hughes
a00988312b am 76ade2ed: am f557e90b: am 2f44c05b: am ec706c24: Merge "Use the kernel\'s MAX_ERRNO in the syscall stubs."
* commit '76ade2ed6077fec0a4978ef7e7e2a99578512c39':
  Use the kernel's MAX_ERRNO in the syscall stubs.
2013-03-13 01:00:12 +00:00
Elliott Hughes
f557e90b34 am 2f44c05b: am ec706c24: Merge "Use the kernel\'s MAX_ERRNO in the syscall stubs."
* commit '2f44c05bc54073aa6decfc5d933b7e77e7ce5768':
  Use the kernel's MAX_ERRNO in the syscall stubs.
2013-03-12 17:55:54 -07:00
Elliott Hughes
2f44c05bc5 am ec706c24: Merge "Use the kernel\'s MAX_ERRNO in the syscall stubs."
* commit 'ec706c24acb4d1db6a583a57b76adfb9250d39eb':
  Use the kernel's MAX_ERRNO in the syscall stubs.
2013-03-12 17:54:00 -07:00
Elliott Hughes
ec706c24ac Merge "Use the kernel's MAX_ERRNO in the syscall stubs." 2013-03-13 00:44:33 +00:00
Elliott Hughes
9aceab5015 Use the kernel's MAX_ERRNO in the syscall stubs.
Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Iaabf7025b153e96dc5eca231a33a32d4cb7d8116
2013-03-12 17:43:58 -07:00
Christopher Ferris
2a66ccf1bb am 980508b0: Merge "Break bionic implementations into arch versions."
* commit '980508b0ead3ee01e99e93635c57eb76d1aba62d':
  Break bionic implementations into arch versions.
2013-03-12 15:39:38 -07:00
Christopher Ferris
980508b0ea Merge "Break bionic implementations into arch versions." 2013-03-12 22:24:09 +00:00
Christopher Ferris
04954a43b3 Break bionic implementations into arch versions.
Move arch specific code for arm, mips, x86 into separate
makefiles.
In addition, add different arm cpu versions of memcpy/memset.

Bug: 8005082

Merge from internal master (acdde8c1cf).

Change-Id: I04f3d0715104fab618e1abf7cf8f7eec9bec79df
2013-03-12 14:06:08 -07:00
Elliott Hughes
4f73423c68 am 0052a618: am b4d6f28c: am a3214c65: am 94a34010: Merge "Support large errno values on ARM."
* commit '0052a6188ba20c3a9ea99f974bce0c143bd379cb':
  Support large errno values on ARM.
2013-03-12 19:24:10 +00:00
Elliott Hughes
b4d6f28cc3 am a3214c65: am 94a34010: Merge "Support large errno values on ARM."
* commit 'a3214c65620827628a87849a5fbad5a4ef97eeb1':
  Support large errno values on ARM.
2013-03-12 12:18:49 -07:00
Elliott Hughes
a3214c6562 am 94a34010: Merge "Support large errno values on ARM."
* commit '94a34010c1f989032c0a4dc7a7a68d069ca23b1e':
  Support large errno values on ARM.
2013-03-12 12:17:15 -07:00
Elliott Hughes
cb2069bf69 Support large errno values on ARM.
Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Ic6c40be2dc50f0644a3d8b09ceae59c38f2d5b53
2013-03-12 11:55:45 -07:00
Christopher Ferris
a9a5870d16 Create arch specific versions of strcmp.
This uses the new strcmp.a15.S code as the basis for new versions
of strcmp.S.

The cortex-a15 code is the performance optimized version of strcmp.a15.S
taken with only the addition of a few pld instructions.
The cortex-a9 code is the same as the cortex-a15 code except that the
unaligned strcmp code was taken from the original strcmp.S.
The krait code is the same as the cortex-a15 code except that one path
in the unaligned strcmp code was taken from the original strcmp.S code
(the 2 byte overlap case).
The generic code is the original unmodified strmp.S from the bionic
subdirectory.

All three new versions underwent these test cases:

Strings the same, all same size:
- Both pointers double word aligned.
- One pointer double word aligned, one pointer word aligned.
- Both pointers word aligned.
- One pointer double word aligned, one pointer 1 off a word alignment.
- One pointer double word aligned, one pointer 2 off a word alignment.
- One pointer double word aligned, one pointer 3 off a word alignment.
- One pointer word aligned, one pointer 1 off a word alignment.
- One pointer word aligned, one pointer 2 off a word alignment.
- One pointer word aligned, one pointer 3 off a word alignment.
For all cases where it made sense, the two pointers were also tested
swapped.

Different strings, all same size:
- Single difference at double word boundary.
- Single difference at word boudary.
- Single difference at 1 off a word alignment.
- Single difference at 2 off a word alignment.
- Single difference at 3 off a word alignment.

Different sized strings, strings the same until the end:
- Shorter string ends on a double word boundary.
- Shorter string ends on word boundary.
- Shorter string ends at 1 off a word boundary.
- Shorter string ends at 2 off a word boundary.
- Shorter string ends at 3 off a word boundary.

For all different cases, run them through the same pointer alignment
cases when the strings are the same size.
For all cases the two pointers were also tested swapped.

Bug: 8005082
Change-Id: I5f3dc02b48afba2cb9c13332ab45c828ff171a1c
2013-03-12 10:25:11 -07:00
Elliott Hughes
3284773891 am 03e71235: am 8c73f69c: am 36cb88b7: am 53630c0e: Merge "Cache the most-recently used timezone for mktime_tz and localtime_tz."
* commit '03e712357d1f4de204ac9ad5cbef53acba48db9d':
  Cache the most-recently used timezone for mktime_tz and localtime_tz.
2013-03-12 01:50:53 +00:00
Elliott Hughes
8c73f69cf4 am 36cb88b7: am 53630c0e: Merge "Cache the most-recently used timezone for mktime_tz and localtime_tz."
* commit '36cb88b70c39e507e9017f0bd7121da57e568744':
  Cache the most-recently used timezone for mktime_tz and localtime_tz.
2013-03-11 18:46:23 -07:00
Elliott Hughes
36cb88b70c am 53630c0e: Merge "Cache the most-recently used timezone for mktime_tz and localtime_tz."
* commit '53630c0e5bb6f845ba633e8dedc08b827f7b5d0c':
  Cache the most-recently used timezone for mktime_tz and localtime_tz.
2013-03-11 18:44:19 -07:00
Elliott Hughes
53630c0e5b Merge "Cache the most-recently used timezone for mktime_tz and localtime_tz." 2013-03-12 01:28:36 +00:00
Elliott Hughes
4a05bef4c0 Cache the most-recently used timezone for mktime_tz and localtime_tz.
Normally, the C library implicitly caches your timezone by virtue
of the fact that the prehistoric API assumes a single timezone for
the entire process.

The unfortunate mktime_tz and localtime_tz extensions work around
this, but represent timezones as strings to their callers, so code
that makes heavy use of these needs a cache to be able to perform
acceptably until it can hopefully one day be rewritten to use
java.util.Calendar or icu4c.

Bug: 8270865
Change-Id: I92e3964e86dc33ceac925f819cc5e26ff4203f50
2013-03-11 17:17:02 -07:00
Elliott Hughes
3d0bf2b30c am 9969b48d: am 60ac09bd: am 6d6f5e61: am 4b032ee9: Merge "Let bionic use the correct definition of ssize_t."
* commit '9969b48d235e71f87be67549fdd274c8e82f3f6f':
  Let bionic use the correct definition of ssize_t.
2013-03-11 19:41:19 +00:00