Compare commits

...

5949 Commits

Author SHA1 Message Date
Elliott Hughes
195b85a80f Merge "Defend against -fstack-protector in libc startup." 2016-01-08 18:54:01 +00:00
Dimitry Ivanov
2afe5af77f Merge "Move __aeabi* symbols to LIBC_N version" 2016-01-08 18:50:13 +00:00
Dimitry Ivanov
6d142bcf34 Move __aeabi* symbols to LIBC_N version
We had these symbols incorrectly versioned as LIBC_PRIVATE
in M release. This change moves __aeabi* symbols from LIBC
to LIBC_N and adds __gnu_Unwind_Find_exidx to the list

Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I0b353012adeacb00ae29ea10c63b9d1cf1cadbe7
2016-01-08 10:13:16 -08:00
Elliott Hughes
42d949ff9d Defend against -fstack-protector in libc startup.
Exactly which functions get a stack protector is up to the compiler, so
let's separate the code that sets up the environment stack protection
requires and explicitly build it with -fno-stack-protector.

Bug: http://b/26276517
Change-Id: I8719e23ead1f1e81715c32c1335da868f68369b5
2016-01-06 20:06:08 -08:00
Josh Gao
988e71b2b2 Merge "Kill BOARD_MALLOC_ALIGNMENT." 2016-01-06 22:49:30 +00:00
Josh Gao
63a42070fc Kill BOARD_MALLOC_ALIGNMENT.
Bug: http://b/26403338
Change-Id: Iba4006277fdb7c7ca60542c517634ae86c847b4f
2016-01-06 14:30:26 -08:00
Josh Gao
e1f8c66d0b Merge "Replace MALLOC_IMPL with MALLOC_SVELTE." 2016-01-06 20:08:13 +00:00
Elliott Hughes
32388ba4dc Merge "Temporary hack to avoid stack protector crashes." 2016-01-06 19:52:43 +00:00
Tom Cherry
9353089262 Merge "Revert "system_properties.cpp: special case ro.* properties"" 2016-01-06 19:16:31 +00:00
Tom Cherry
e97ce31fe7 Revert "system_properties.cpp: special case ro.* properties"
This reverts commit c5fd81ab2524a06be907d9c5234e79346bbbbd7c.

Bug: 26416032

Change-Id: Id2d6761fdf55efa28c0b08b597daaa5cd381d758
2016-01-06 19:13:54 +00:00
Elliott Hughes
2489161ce5 Temporary hack to avoid stack protector crashes.
It'll take me a while to refactor things cleanly, but if we just want
something that boots for testing...

Bug: http://b/26276517
Change-Id: I24729d3dc546e36e0eff383f0d1d05c3aa1f2e0b
2016-01-06 11:12:06 -08:00
Elliott Hughes
1464f6d8d9 Merge "Remove mktime_tz." 2016-01-06 19:02:19 +00:00
Dimitry Ivanov
4664c14fa4 Merge "Temporary move __udivdi3 back to LIBC for x86" 2016-01-06 18:37:19 +00:00
Dimitry Ivanov
bc02fb964a Temporary move __udivdi3 back to LIBC for x86
Bug: http://b/26289334
Bug: http://b/26413821
Change-Id: Ifb0eb6f16aca54cb4a9184a6394992ee57dd3408
2016-01-06 18:36:40 +00:00
Elliott Hughes
76dfa6e351 Remove mktime_tz.
Bug: http://b/15765976
Change-Id: Ifc8cd19ae621e611d66173ae927ef9a0445965c1
2016-01-06 09:15:02 -08:00
Dimitry Ivanov
74d7aa1c34 Merge "Fix gcc+arm builds" 2016-01-06 04:43:26 +00:00
Dimitry Ivanov
6f72fdede8 Fix gcc+arm builds
gcc requires unique names of symbols for .symver

Bug: http://b/26391427
Change-Id: I6392e34a45a37245fd4e53fb54243be73f443313
2016-01-05 20:41:06 -08:00
Dimitry Ivanov
52fd4ca0a0 Merge "Deprecate bzero" 2016-01-06 02:33:41 +00:00
Dimitry Ivanov
609156e266 Merge "Export public __aeabi* symbols as LIBC_PRIVATE" 2016-01-06 02:19:27 +00:00
Dimitry Ivanov
d90d067312 Export public __aeabi* symbols as LIBC_PRIVATE
But keep LIBC as default version for them

Bug: http://b/26391427
Bug: http://b/26410625
Change-Id: I819e354bbba482d1f983d9be15c23fcce10e5dd9
2016-01-05 18:18:33 -08:00
Elliott Hughes
031dfe198b Merge "Fix a broken link in a comment." 2016-01-06 01:27:09 +00:00
Elliott Hughes
7d27b68ef4 Merge "Tidy up KernelArgumentBlock::getauxval." 2016-01-06 01:24:37 +00:00
Dimitry Ivanov
6134ed8b8f Deprecate bzero
bzero is hashdefined to memset in strings.h and it
was removed from POSIX 2008.

Bug: http://b/26407170
Change-Id: Ia6d54f0e314dc7f5f3fbad0e9b00344f49f77d43
2016-01-05 17:06:45 -08:00
Nick Kralevich
ffa54cd7ba Merge "system_properties.cpp: special case ro.* properties" 2016-01-06 00:43:48 +00:00
Elliott Hughes
40c2bf6cf6 Fix a broken link in a comment.
Bug: https://code.google.com/p/android/issues/detail?id=197784
Change-Id: I2f9e5bc2dd2b8a6992c7c55bc856e4a323c7c8a8
2016-01-05 16:33:33 -08:00
Nick Kralevich
c5fd81ab25 system_properties.cpp: special case ro.* properties
Currently, reads of ro.* properties are treated differently than
writes of ro.* properties. When writing an ro.* property, we ignore
the "ro." portion of the property, and base the security decision
on the label of the remaining portion.

See e7a9e52740/init/property_service.cpp
line 120-126

For example, for writing, the label associated with
"ro.build.fingerprint" comes from the /property_contexts file
entry:

  # ro.build.fingerprint is either set in /system/build.prop, or is
  # set at runtime by system_server.
  build.fingerprint       u:object_r:fingerprint_prop:s0

However, we fail to follow this same special case when sorting
properties into files. Instead, ro.build.fingerprint is assigned
u:object_r:default_prop:s0 instead of u:object_r:fingerprint_prop:s0

Ignore the "ro." portion when sorting properties into files.
This will make reads and writes of properties use the same label.

Bug: 21852512
Change-Id: Ie88ffc6b78b31fc8ddf370ae27c218546fb25a83
2016-01-05 16:30:17 -08:00
Elliott Hughes
63fbb233cb Tidy up KernelArgumentBlock::getauxval.
Correct the comment, and remove the unused functionality. getauxval(3) does
now set errno to let you know it failed to find anything, but since none of
this function's callers care anyway it seems safer to leave errno untouched
until we actually have a demonstrated need for it.

Bug: https://code.google.com/p/android/issues/detail?id=198111
Change-Id: I232a42dc5a02c8faab94c7d69bef610408276c23
2016-01-05 16:29:33 -08:00
Dan Willemsen
507d6f2a51 Merge "libc: Update Android.bp with recent changes" 2016-01-05 23:14:43 +00:00
Dan Willemsen
9b59acc9c7 libc: Update Android.bp with recent changes
Change-Id: I54047df9db95169452bbac6d52c75161d2f3bb64
2016-01-05 14:32:54 -08:00
Dimitry Ivanov
e647db7485 Merge "Move __aeabi_ which are not in libgcc.a to LIBC" 2016-01-05 22:07:02 +00:00
Dimitry Ivanov
bb5730ecdb Move __aeabi_ which are not in libgcc.a to LIBC
The following arm symbols should be exported by libc.so:
    __aeabi_atexit; # arm
    __aeabi_memclr; # arm
    __aeabi_memclr4; # arm
    __aeabi_memclr8; # arm
    __aeabi_memcpy; # arm
    __aeabi_memcpy4; # arm
    __aeabi_memcpy8; # arm
    __aeabi_memmove; # arm
    __aeabi_memmove4; # arm
    __aeabi_memmove8; # arm
    __aeabi_memset; # arm
    __aeabi_memset4; # arm
    __aeabi_memset8; # arm

Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I542d1ad023b8aece5dc05a28a9ca549cb51455b4
2016-01-05 13:59:20 -08:00
Josh Gao
09f4651c0e Replace MALLOC_IMPL with MALLOC_SVELTE.
Bug: http://b/26390299
Change-Id: I665f64bff4d598607e1eb7c4078819fe1d400feb
2016-01-05 11:45:45 -08:00
Elliott Hughes
c6c3b47be2 Merge "Clarify which linker we are." 2016-01-05 19:38:47 +00:00
Elliott Hughes
116b5698d4 Clarify which linker we are.
Also, we're not a debugger.

Also include LD_LIBRARY_PATH and LD_PRELOAD because they would have helped
diagnose a recent issue.

Change-Id: I7237a7236b7140ab49483c02efa705317d07bd3f
2016-01-05 11:06:50 -08:00
Dimitry Ivanov
ff164ef661 Merge "Temporary apply LIBC version to __pthread_gettid" 2016-01-05 08:22:24 +00:00
Dimitry Ivanov
0ef1d121b5 Temporary apply LIBC version to __pthread_gettid
This is workaround for http://b/26391427

Bug: http://b/26391427
Change-Id: Ibf5c611cf4c04dfa595644225e6d9503089a18da
2016-01-05 00:19:13 -08:00
Dimitry Ivanov
c1113a3fc7 Merge "Revert "Temporary apply LIBC version to __pthread_gettid"" 2016-01-05 08:04:17 +00:00
Dimitry Ivanov
c8bb96a163 Revert "Temporary apply LIBC version to __pthread_gettid"
This reverts commit eb90e91cb5872f6aac7008b0c83e103d396be196.

Change-Id: I63450087b6d3c23218b77d5eee37965f254a82d6
2016-01-05 08:03:56 +00:00
Dimitry Ivanov
56ecf28014 Merge "Temporary apply LIBC version to __pthread_gettid" 2016-01-05 07:02:15 +00:00
Dimitry Ivanov
eb90e91cb5 Temporary apply LIBC version to __pthread_gettid
This is workaround for http://b/26391427

Bug: http://b/26391427
Change-Id: I4ccc56e8b1bd2597f267df9706a33bb635abcfcb
2016-01-04 22:36:18 -08:00
Dimitry Ivanov
04673ee997 Merge changes I4fc241e6,Idca71396
* changes:
  Move __system_property* to LIBC_PRIVATE for lp64 libc
  Move ndk-cruft symbols to LIBC_PRIVATE
2016-01-04 22:52:21 +00:00
Dimitry Ivanov
ff14fb5a1f Move __system_property* to LIBC_PRIVATE for lp64 libc
Bug: http://b/26367254
Change-Id: I4fc241e69444a4b5641dfdf09576fe3ce5c1169e
2016-01-04 14:39:42 -08:00
Dimitry Ivanov
eac1d371f6 Move ndk-cruft symbols to LIBC_PRIVATE
Bug: http://b/26385283
Change-Id: Idca71396f9de4141eefc4e1851ba92ebff1ac792
2016-01-04 13:48:47 -08:00
Elliott Hughes
e13434f9da Merge "Revert "Revert "Implement getifaddrs(3)/freeifaddrs(3).""" 2016-01-04 21:03:48 +00:00
Elliott Hughes
9cddb482b4 Revert "Revert "Implement getifaddrs(3)/freeifaddrs(3).""
This reverts commit 76814a8250fd5e1502909ef5e10e4d166cc96c0e.

This differs from the original in fixing the GCC -Werror build:

  bionic/libc/bionic/ifaddrs.cpp: In function 'void __handle_netlink_response(ifaddrs**, nlmsghdr*)':
  bionic/libc/bionic/ifaddrs.cpp:113:62: error: use of old-style cast [-Werror=old-style-cast]
       ifinfomsg* ifi = reinterpret_cast<ifinfomsg*>(NLMSG_DATA(hdr));

This appears to be a GCC bug; the GCC command-line correctly uses -isystem,
and manually adding #pragma GCC system_header doesn't help. So just turn the
warning off for GCC for now. We won't need to worry about building with GCC
soon anyway.

Bug: http://b/26238832
Change-Id: I01615bd335edf11baf487b1c83a9157cd780f4a1
2016-01-04 13:00:39 -08:00
Dimitry Ivanov
2fed6aa9f0 Merge changes Ic66f6519,Ic16acea5
* changes:
  Make some of unwanted symbols LIBC_PRIVATE
  Make symbols exported via libgcc.a LIBC_PRIVATE
2016-01-04 18:55:42 +00:00
Nick Kralevich
fa8b9312d9 Merge "Add tests for /proc/self/fd and /proc/self/task/TID/fd access" 2015-12-24 04:02:47 +00:00
Nick Kralevich
bd4d45d55b Add tests for /proc/self/fd and /proc/self/task/TID/fd access
Add tests to ensure that the following kernel patches are present:

  __ptrace_may_access() should not deny sub-threads
  * https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=73af963f9f3036dffed55c3a2898598186db1045

  proc: make proc_fd_permission() thread-friendly
  * https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=96d0df79f2644fc823f26c06491e182d87a90c2a

  proc: actually make proc_fd_permission() thread-friendly
  * https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54708d2858e79a2bdda10bf8a20c80eb96c20613

Bug: 26110743
Bug: 24912743
Bug: 26016905
Change-Id: I7eab002ddfade9e4bfe51908e190231c8dde2cc7
2015-12-23 17:42:29 -08:00
Yi Kong
b62e633ff6 Merge "Revert "Implement getifaddrs(3)/freeifaddrs(3)."" 2015-12-22 17:48:21 +00:00
Yi Kong
76814a8250 Revert "Implement getifaddrs(3)/freeifaddrs(3)."
Werror build broken. Revert while working on a fix.

This reverts commit 0945ed5cc5921243724fed4465d20881f4891a8d.

Change-Id: I67edab7a7a3b9aa673ce9d14aa95380f947838a1
2015-12-22 17:47:54 +00:00
Yi Kong
71417caa92 Merge "Implement getifaddrs(3)/freeifaddrs(3)." 2015-12-22 17:11:59 +00:00
Dimitry Ivanov
788a2bc756 Make some of unwanted symbols LIBC_PRIVATE
Bug: http://b/26274444
Change-Id: Ic66f6519a974b72779071235c1d0dd36655fd1b9
2015-12-21 23:26:53 -08:00
Dimitry Ivanov
5ce79b0af3 Make symbols exported via libgcc.a LIBC_PRIVATE
Bug: http://b/26298172
Change-Id: Ic16acea56624680d48c0b190fbe5a6142a3fca2b
2015-12-21 22:54:35 -08:00
Dimitry Ivanov
be7c7fe218 Merge "linker: implement shared namespaces" 2015-12-21 23:10:49 +00:00
Dimitry Ivanov
7331fe18d7 linker: implement shared namespaces
Shared namespaces clone the list of loaded native
libraries from the caller namespace. This allows
classloaders for bundled apps to share already loaded
libraries with default namespace.

Bug: http://b/22548808
Bug: http://b/26165097
Change-Id: I8949d45937fdb38e1f586ff0679003adac0d9dad
(cherry picked from commit e78deef364d952dd1141a2f3067a12060aaf11e6)
2015-12-19 23:38:27 -08:00
Elliott Hughes
0945ed5cc5 Implement getifaddrs(3)/freeifaddrs(3).
Time to dust off the old libcore implementation from gingerbread and add it
to bionic. Unlike the original, this actually looks at both RTM_NEWLINK and
RTM_NEWADDR.

Bug: http://b/26238832
Change-Id: I7bb4b432deb766065b66b9c9ff36ed68249aba82
2015-12-19 14:49:09 -08:00
Elliott Hughes
4afd635be1 Merge "Improve the 32-bit ABI documentation." 2015-12-19 21:47:07 +00:00
Elliott Hughes
59fc2e8557 Improve the 32-bit ABI documentation.
Change-Id: Ie5bfc8d6f7f3946100f653de0e006072e56e18d6
2015-12-19 09:36:16 -08:00
Tom Cherry
dd57119ced Merge "Reset access to system properties on reinitialization" 2015-12-17 17:54:05 +00:00
Elliott Hughes
7cb3c4af13 Merge "sem_timedwait with a null timeout doesn't mean "forever"." 2015-12-17 01:15:15 +00:00
Dimitry Ivanov
d4f86aed42 Merge "linker: add dlvsym(3)" 2015-12-17 00:40:13 +00:00
Christopher Ferris
27032a39dd Merge "Fix missing parentheses." 2015-12-17 00:30:59 +00:00
Christopher Ferris
0b13f29b2c Fix missing parentheses.
The BIONIC_ROUND_UP_POWER_OF_2 macro did not have parentheses around
the whole expression. This lead to the wrong value being computed when
used as part of a mathematical expression such as this:

  value = BIONIC_ROUND_UP_POWER_OF_2(value) - 1;

This only happens on 64 bit abis.

Change-Id: I6f8afbdaf16fe64a88fa0246d074b3534c9159c1
2015-12-16 16:11:04 -08:00
Christopher Ferris
9f20db1c94 Merge "Fix bug in dlmalloc's version of calloc." 2015-12-17 00:06:03 +00:00
Dimitry Ivanov
9cf99cbad8 linker: add dlvsym(3)
This changes implements dlvsym - dlsym for versioned symbols.

Bug: http://b/22865643
Change-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f
2015-12-16 15:24:13 -08:00
Elliott Hughes
dd586f2ebd sem_timedwait with a null timeout doesn't mean "forever".
It actually means "crash immediately". Well, it's an error. And callers are
much more likely to realize their mistake if we crash immediately rather
than return EINVAL. Historically, glibc has crashed and bionic -- before
the recent changes -- returned EINVAL, so this is a behavior change.

Change-Id: I0c2373a6703b20b8a97aacc1e66368a5885e8c51
2015-12-16 15:15:58 -08:00
Christopher Ferris
ad33ebead8 Fix bug in dlmalloc's version of calloc.
Under some circumstances, doing a calloc will make sure that the memory
returned will be zero up to the size of the requested size. However, if
there is more usable size than the requested size, that extra part
of the allocation will not be zeroed. This change fixes it so that the
entire usable memory is always zeroed.

Change-Id: I8a66d6767c074023c4ba3568bf2705e1886740fc
2015-12-16 14:48:03 -08:00
Dimitry Ivanov
d3e5301a75 Merge "Revert "Revert "Remove remaining ndk_cruft from LP64 platforms""" 2015-12-16 19:06:09 +00:00
Dimitry Ivanov
bc2e88a85d Revert "Revert "Remove remaining ndk_cruft from LP64 platforms""
This reverts commit 23af25b747b5e7b0ca513a87b32f1f6a3cb99698.

Bug: http://b/26164862
Change-Id: I201bf49530f33f8ba6a1a35b79723afb9e84c7a5
2015-12-16 19:02:04 +00:00
Elliott Hughes
4d57e669dc Merge "Add a few missing pthread tests." 2015-12-15 01:38:24 +00:00
Dimitry Ivanov
52a05f3ce7 Merge "Revert "Remove remaining ndk_cruft from LP64 platforms"" 2015-12-15 01:36:19 +00:00
Elliott Hughes
d31d4c1cc6 Add a few missing pthread tests.
This seems to be all that's tested by system/extras/tests/bionic that isn't
already better tested here.

Change-Id: Id0aa985cefd4047a6007ba9804f541069d9e92ed
2015-12-14 17:35:10 -08:00
Dimitry Ivanov
23af25b747 Revert "Remove remaining ndk_cruft from LP64 platforms"
This reverts commit b1d0a2ae7790f882d8f1ab24d7ef15e2b90c8ca2.

Change-Id: I1da06be0b78a4f2a4cad7e4a19a3ee755f55a813
2015-12-15 01:34:14 +00:00
Dimitry Ivanov
b34ae08cc6 Merge "Remove remaining ndk_cruft from LP64 platforms" 2015-12-14 23:55:55 +00:00
Dimitry Ivanov
b1d0a2ae77 Remove remaining ndk_cruft from LP64 platforms
This change removes endpwent, dlmalloc_inspect_all, dlmalloc_trim
from lp64 libc.so. It also removed necessety of having brillo
version scripts for lp64 platforms.

Bug: http://b/26164862
Change-Id: I4e9b38907bb1dc410f0eb6d2f5d5944fe713da51
2015-12-14 15:49:28 -08:00
Dimitry Ivanov
881673cb45 Merge changes Iaee1b711,Ia3dd0761
* changes:
  Generate libc version-script for brillo
  Revert "Don't verify version scripts on 32-bit Brillo"
2015-12-14 22:53:06 +00:00
Dimitry Ivanov
585e959849 Generate libc version-script for brillo
Brillo doesn't use the ndk cruft, so we need
separate set of version scripts. Added new "nobrillo"
tag to mark such symbols in *.map.txt files.

Bug: http://b/26164862
Change-Id: Iaee1b7119f75b68c2971679fc32817e6df29fd94
2015-12-14 14:23:06 -08:00
Dimitry Ivanov
a3dd076126 Revert "Don't verify version scripts on 32-bit Brillo"
This reverts commit 31951b7f0dc7ce577a21682e54362b0cf2913e11.

Bug: http://b/26164862
2015-12-14 14:19:53 -08:00
Elliott Hughes
162a8524ea Merge "Fix personality test for mips32r6" 2015-12-14 15:59:29 +00:00
Lazar Trsic
61cf963efe Fix personality test for mips32r6
When personality syscall is executed on mips64, for a 32bit process,
sys_32_personality() is called, which converts PER_LINUX32 -> PER_LINUX.
Change expected value when mips32 is a second architecture.

For more information see:
https://www.linux-mips.org/archives/linux-mips/2015-08/msg00421.html
https://www.linux-mips.org/archives/linux-mips/2015-11/msg00093.html

Change-Id: I8c9062f536ad6e513f0ac585da3568d80e5fa1b4
2015-12-14 12:29:53 +01:00
Dan Willemsen
a7ff3964ab Merge "Don't verify version scripts on 32-bit Brillo" 2015-12-12 02:29:29 +00:00
Dan Willemsen
31951b7f0d Don't verify version scripts on 32-bit Brillo
Brillo doesn't use the ndk cruft, so the same version scripts do not
apply. Until we have brillo-specific version scripts, just disable the
version script check.

Bug: 26164862
Change-Id: I682860ec1c5b36014c7a6cf24da43df553e9dc9f
2015-12-11 16:52:08 -08:00
Dimitry Ivanov
52e2db647c Merge "Remove __bionic_libgcc_unwind_symbols from version script" 2015-12-11 19:41:33 +00:00
Dimitry Ivanov
2f019872dc Remove __bionic_libgcc_unwind_symbols from version script
Bug: http://b/26004476
Change-Id: Iaa468de4cbcc94e88badc5cde0f4421c710c1f38
2015-12-11 11:30:48 -08:00
Tom Cherry
b417169d80 Reset access to system properties on reinitialization
Treat subsequent calls to __system_properties_init() as a
reinitialization of system properties and revoke access to prop files
that have been previously mapped but that the process's current context
does not have access to.  Additionally reset the no_access_ flag in
case permissions have loosened and previously unaccessible files can now
be accessed.

This is meant to work around an issue that setcon() does not revoke
mmap() mappings, so we must manually revoke them after a successful
setcon() call.

Bug 26114086

Change-Id: I4d690abb6817283ca64ac26ea4c1dad398a98fbc
2015-12-11 11:16:21 -08:00
Dimitry Ivanov
0bc3977537 Merge "Move dlsym and dladdr implementation to linker.cpp" 2015-12-11 01:26:17 +00:00
Dimitry Ivanov
4a2c5aa30c Move dlsym and dladdr implementation to linker.cpp
Bug: http://b/25716705
Bug: http://b/22865643
Change-Id: If22fc1eda219f676b5fcc06490f7901d21d1749c
2015-12-10 16:24:57 -08:00
Tom Cherry
e46ded5ce1 Merge "Do not set properties in bionic_systrace" 2015-12-10 23:05:15 +00:00
Tom Cherry
46e2eadad2 Do not set properties in bionic_systrace
Currently, if the debug.atrace.tags.enableflags property is not found,
it is set to a safe value such that a pointer to this property can be
stored for later access.  This may result in selinux denials because not
all processes write permissions for this property or permission to
connect to the property write socket at all.

Change I6d953c0c281fd72ad3eba8a479fd258023579b5b writes this property to
a safe value upon boot, which greatly decreases the cases in which this
property will not be accessible and removes the need to write it here.
This commit removes this write.

Bug 26115803

Change-Id: Ief72c5f731d3a1231b5080eb531fa0a491a8b1d1
2015-12-10 13:33:37 -08:00
Dimitry Ivanov
cb025e55f7 Merge "Revert "Add /odm/lib to shared lib search path"" 2015-12-10 20:17:02 +00:00
Dimitry Ivanov
9d8632e1a7 Merge "constexpr constructor for atfork_list_t" 2015-12-10 17:39:48 +00:00
Dimitry Ivanov
39801757c3 Merge "Add permitted_when_isolated_path to linker namespaces" 2015-12-10 04:34:38 +00:00
Elliott Hughes
6500f51c0e Merge "Fix -fstack-protector-strong for x86." 2015-12-10 02:33:34 +00:00
Dimitry Ivanov
284ae3559e Add permitted_when_isolated_path to linker namespaces
The permitted_when_isolated_path is a way to white-list
directories not present in search-path. It is ignored for
not isolated namespaces.

Bug: http://b/25853516
Bug: http://b/22548808
Change-Id: Ib1538037268eea69323ea49968a34a4a1d1938a5
2015-12-09 13:54:01 -08:00
Dimitry Ivanov
5a3ab3422d Merge "Revert "Ensure that readlink has access to /proc/self/fd"" 2015-12-09 21:50:54 +00:00
Dimitry Ivanov
db43526581 Revert "Ensure that readlink has access to /proc/self/fd"
This reverts commit 4e50d0247b9ace095e371865fad08b1a59672e3a.

Bug: http://b/24912743
Change-Id: I5d32c670f0e16aec9c74add143158e919a301673
2015-12-09 19:36:47 +00:00
Dimitry Ivanov
40728bccbc Revert "Add /odm/lib to shared lib search path"
This reverts commit f74b041cce75091b922151d4fa57e63c8a6caf4b.

Bug: 25654402
Change-Id: I77386ea3655868d7cd1a8130afbc95e70549389e
2015-12-09 19:35:02 +00:00
Dan Willemsen
df196131f3 Merge "libm: Use LOCAL_SRC_FILES_EXCLUDE_{arch}" 2015-12-08 23:41:24 +00:00
Todd Kjos
5736959094 Merge "bionic: Build Breakage" 2015-12-08 21:46:17 +00:00
Mark Salyzyn
9da687e2f4 bionic: Build Breakage
Bug: 23668800
Change-Id: Ic7cf5864d3f5881e6f7105a49ecf62b1bc4a604c
2015-12-08 13:42:41 -08:00
Elliott Hughes
6c54ddd20f Fix -fstack-protector-strong for x86.
We need to ensure %gs:20 is set up early enough for -fstack-protector-strong
on x86, and that __set_tls doesn't get stack protector checks because it's a
prerequisite for them. x86 devices/emulators won't boot without this.

Bug: http://b/26073874
Change-Id: Icf0d34294648cc0c8cb406a3617befe0d45c525a
2015-12-08 12:48:42 -08:00
Dimitry Ivanov
89a50fe1eb constexpr constructor for atfork_list_t
Bug: http://b/26026986
Change-Id: Iad95383a23f81eea776bebce641c555d26547b77
2015-12-08 11:40:51 -08:00
Mark Salyzyn
eaccfde075 Merge "Add monotonic logging for bionic" 2015-12-08 18:59:05 +00:00
Elliott Hughes
cf0c1af1dd Merge "Base bcopy on memmove rather than memcpy."
am: f0a451dcd1

* commit 'f0a451dcd10241c8f2ead2448ed922eb80f387f6':
  Base bcopy on memmove rather than memcpy.
2015-12-07 23:20:58 +00:00
Elliott Hughes
36545d2e76 Merge "Make all of ndk_cruft.cpp one big extern "C"."
am: 9dec0a775b

* commit '9dec0a775b07f58d133ae5c35713e7cf60ddcc7c':
  Make all of ndk_cruft.cpp one big extern "C".
2015-12-07 23:16:43 +00:00
Elliott Hughes
1190230f33 Merge "Fix stdio static initializers to make both clang and GCC happy."
am: 7bd33cdf15

* commit '7bd33cdf15c26c5855628eb2ac0e7d0f52189010':
  Fix stdio static initializers to make both clang and GCC happy.
2015-12-07 23:16:39 +00:00
Elliott Hughes
568ad51d80 Merge "Revert "Revert "Remove __sinit and __sdidinit."""
am: c4eef1fb5b

* commit 'c4eef1fb5ba325317e94b598c6fbf8e4c4bf83e1':
  Revert "Revert "Remove __sinit and __sdidinit.""
2015-12-07 23:14:29 +00:00
Elliott Hughes
f0a451dcd1 Merge "Base bcopy on memmove rather than memcpy." 2015-12-07 22:07:11 +00:00
Rohit Agrawal
d51a0b0f9d Base bcopy on memmove rather than memcpy.
POSIX defined bcopy to handle overlapping memory akin to memmove and
bionic appears to have always done so.

Change-Id: I2599113411e3532913270ba1c1b49e35cbc5f106
2015-12-07 13:06:14 -08:00
Elliott Hughes
9dec0a775b Merge "Make all of ndk_cruft.cpp one big extern "C"." 2015-12-07 19:14:46 +00:00
Elliott Hughes
cfd5a46b09 Make all of ndk_cruft.cpp one big extern "C".
Change-Id: Iddd9b5f36e661e443fa13d12326e72df8c0d209c
2015-12-07 11:13:23 -08:00
Elliott Hughes
7bd33cdf15 Merge "Fix stdio static initializers to make both clang and GCC happy." 2015-12-07 19:10:32 +00:00
Elliott Hughes
29ee6397a8 Fix stdio static initializers to make both clang and GCC happy.
Previously only clang was happy. GCC said:

  error: missing initializer for field 'wcio_mbstate_in' of 'struct wchar_io_data'

Change-Id: I25a11b64f4dfa22a5dd5daded152191fe2cfacaf
2015-12-07 11:07:15 -08:00
Elliott Hughes
c4eef1fb5b Merge "Revert "Revert "Remove __sinit and __sdidinit.""" 2015-12-07 18:19:07 +00:00
Elliott Hughes
bb46afd6c4 Revert "Revert "Remove __sinit and __sdidinit.""
This reverts commit c8bae05f3ff9f1c736f7be70fa17d02795d748bb.

We were breaking init (ueventd) because we initialize system properties
before we initialize stdio. The new system property implementation uses
stdio to read from /property_contexts, so we end up touching stdio data
structures before they've been initialized.

This second attempt takes things further by removing the stdio initialization
function altogether. The data structures for stdin/stdout/stderr can be
statically initialized as data, and -- since we already had to give the
atexit implementation a backdoor for stdio -- we can just admit that we
need to clean up stdio, and that we always do so last.

This patch also removes the 17 statically pre-allocated file structures,
so the first fopen will now allocate a block of 10 (the usual overflow
behavior). I did this just to make my life simpler, but it's not actually
necessary to remove it if we want it back.

Change-Id: I936b2eb5e88e4ebaf5516121872b71fc88e5609c
2015-12-05 07:30:59 -08:00
Dimitry Ivanov
d5ce2a93af Merge "Allow dlopening public libs using absolute path"
am: e371ae68ac

* commit 'e371ae68ac0d6d39cacf5edc893bda2f4a61e883':
  Allow dlopening public libs using absolute path
2015-12-05 05:29:52 +00:00
Dimitry Ivanov
e371ae68ac Merge "Allow dlopening public libs using absolute path" 2015-12-05 05:25:57 +00:00
Dimitry Ivanov
22840aab47 Allow dlopening public libs using absolute path
dlopen on isolated namespaces should be able to open
public libraries using absolute path not only soname.

Bug: http://b/25853820
Change-Id: If574a67853dc51226f0f376e9e2d108316002f84
2015-12-04 21:21:35 -08:00
Elliott Hughes
f4e511ecf9 Merge "Revert "Remove __sinit and __sdidinit.""
am: 0d89913e74

* commit '0d89913e74981cd51532e66a2e2f138392be4de1':
  Revert "Remove __sinit and __sdidinit."
2015-12-05 01:58:40 +00:00
Elliott Hughes
0d89913e74 Merge "Revert "Remove __sinit and __sdidinit."" 2015-12-05 01:53:21 +00:00
Elliott Hughes
c8bae05f3f Revert "Remove __sinit and __sdidinit."
This reverts commit 4371961e00ad83fca033992c8a19c7d262fe6f84.

This broke booting; ueventd crashes with a null pointer dereference
somewhere in __sfp (but the kernel doesn't unwind, so I don't know
what was calling __sfp).

Change-Id: I65375fdfdf1d339a06558b4057b580cacd6324e2
2015-12-04 17:47:20 -08:00
Tom Cherry
071234cfd9 Merge "Do not create prop files for ctl.* properties"
am: 4ade5195f1

* commit '4ade5195f188b84ce3599c71ef058d040b141da4':
  Do not create prop files for ctl.* properties
2015-12-05 00:27:56 +00:00
Tom Cherry
4ade5195f1 Merge "Do not create prop files for ctl.* properties" 2015-12-05 00:21:46 +00:00
Elliott Hughes
70d477c913 Merge "Fix GCC build."
am: ef2ba3dbf9

* commit 'ef2ba3dbf986257ded12531fe15bf0d1d4a87d50':
  Fix GCC build.
2015-12-04 16:02:27 -08:00
Tom Cherry
21eadee6e9 Do not create prop files for ctl.* properties
Change-Id: Ia6660c68c9e0cb89938751dbc0747ee038394778
2015-12-04 15:55:32 -08:00
Elliott Hughes
ef2ba3dbf9 Merge "Fix GCC build." 2015-12-04 23:54:15 +00:00
Elliott Hughes
8766edc098 Fix GCC build.
error: '__sdidinit' initialized and declared 'extern' [-Werror]

Change-Id: I97d9c174da6a99ca61b72572dfb4694813372a60
2015-12-04 15:53:25 -08:00
Elliott Hughes
a3f5912129 Merge "Track rename from base/ to android-base/."
am: 0b40c13a5a

* commit '0b40c13a5a2da127cb1203d33a3d170671b39247':
  Track rename from base/ to android-base/.
2015-12-04 23:33:45 +00:00
Elliott Hughes
942d81c246 Merge "Remove __sinit and __sdidinit."
am: 2558b11230

* commit '2558b112300e0a27590b9e31f627fe94594fa6a0':
  Remove __sinit and __sdidinit.
2015-12-04 23:33:39 +00:00
Elliott Hughes
0b40c13a5a Merge "Track rename from base/ to android-base/." 2015-12-04 23:30:09 +00:00
Elliott Hughes
939a7e0119 Track rename from base/ to android-base/.
Change-Id: I0a4592945400b1fa6892bf7c1fa8659fd711efa3
2015-12-04 15:27:46 -08:00
Elliott Hughes
2558b11230 Merge "Remove __sinit and __sdidinit." 2015-12-04 23:27:07 +00:00
Tom Cherry
e049fa71cb Merge "add checks for initialization for system properties"
am: 136bf8fa45

* commit '136bf8fa45b243b56a8f2543d43970f253118cd7':
  add checks for initialization for system properties
2015-12-04 15:09:42 -08:00
Tom Cherry
136bf8fa45 Merge "add checks for initialization for system properties" 2015-12-04 23:06:31 +00:00
Mark Salyzyn
870f165ceb Add monotonic logging for bionic
Primarily a debug feature that can be switched at runtime to permit
developer to have the option of high-resolution Android logs with
either CLOCK_REALTIME (default) or CLOCK_MONOTONIC to correlate with
other system activities like kernel logs or systrace.

Bug: 23668800
Change-Id: Ib29024899540f51a72cad5dde25517a7134d68f7
2015-12-04 14:45:25 -08:00
Tom Cherry
6ed51c0e85 add checks for initialization for system properties
If a __system_property* function is called before
__system_properties_init() then the app will will abort.  This commit
returns either an error code or a safe return value instead.

Bug 26027140

Change-Id: I95ffd143e9563658ab67a397991e84fb4c46ab77
2015-12-04 13:26:47 -08:00
Dan Willemsen
a29ed0bbce libm: Use LOCAL_SRC_FILES_EXCLUDE_{arch}
Instead of adding the used common files to each arch that doesn't
override a file, make the architectures list the files they override.

Also updates the Android.bp file to match the Android.mk file.

Change-Id: I7d6a9c2e1c6b6cc9430aa818a89a2ccf52f62c98
2015-12-03 18:09:36 -08:00
Yabin Cui
21cca02a52 Merge "Clear pthread_internal_t allocated on user provided stack."
am: 2452cf3c33

* commit '2452cf3c332fdfdae6b6b27b57acaa6786a91c87':
  Clear pthread_internal_t allocated on user provided stack.
2015-12-04 01:05:37 +00:00
Yabin Cui
2452cf3c33 Merge "Clear pthread_internal_t allocated on user provided stack." 2015-12-04 00:58:05 +00:00
Yabin Cui
304348af19 Clear pthread_internal_t allocated on user provided stack.
Several parts in pthread_internal_t should be initialized
to zero, like tls, key_data and thread_local_dtors. So
just clear the whole pthread_internal_t is more convenient.

Bug: 25990348
Change-Id: Ibb6d1200ea5e6e1afbc77971f179197e8239f6ea
2015-12-03 16:51:20 -08:00
Yabin Cui
fb3708640f Merge "Don\'t use StringPrintf() in gtest runner."
am: 514f46b74c

* commit '514f46b74c5424eb10f21349654e90fcf69b3b10':
  Don't use StringPrintf() in gtest runner.
2015-12-04 00:35:30 +00:00
Yabin Cui
514f46b74c Merge "Don't use StringPrintf() in gtest runner." 2015-12-04 00:29:47 +00:00
Yabin Cui
a32fc8685d Don't use StringPrintf() in gtest runner.
Change-Id: I0cd0b3cbb952c65b1c449e88ce12964b93029538
2015-12-03 16:28:03 -08:00
Tom Cherry
e670e2f859 Merge "Remove c++14\'isms from system_properties"
am: b35a2fb370

* commit 'b35a2fb370db711fcea38441a1295cd542fc3daa':
  Remove c++14'isms from system_properties
2015-12-03 23:53:24 +00:00
Dimitry Ivanov
0ee40ef239 Merge "libm: stop exporting __muldc3"
am: bf20d0226b

* commit 'bf20d0226b28a029f4cade8dc8f3aa38d1e51a1a':
  libm: stop exporting __muldc3
2015-12-03 23:53:13 +00:00
Tom Cherry
b35a2fb370 Merge "Remove c++14'isms from system_properties" 2015-12-03 23:48:54 +00:00
Dimitry Ivanov
bf20d0226b Merge "libm: stop exporting __muldc3" 2015-12-03 23:44:59 +00:00
Tom Cherry
845e24a05e Remove c++14'isms from system_properties
Change-Id: If78e7d2770e8f8321f0d1824c3c52f93820dd325
2015-12-03 15:40:23 -08:00
Dimitry Ivanov
a2ead18657 libm: stop exporting __muldc3
Bug: http://b/26004493
Change-Id: I991268d5e7b59bca646da25d0ad90a1cb4a9d4b9
2015-12-03 15:25:37 -08:00
Tom Cherry
84bc4f5cc7 Merge "Separate properties by selabel"
am: 376b94f1e7

* commit '376b94f1e777375eb9ebb04a882b898aafa94625':
  Separate properties by selabel
2015-12-03 22:58:48 +00:00
Tom Cherry
376b94f1e7 Merge "Separate properties by selabel" 2015-12-03 22:55:32 +00:00
Yabin Cui
b561043d3a Merge "Improve unit test runner."
am: f57ae1cd43

* commit 'f57ae1cd433f2bdc02cec6b0d2666f7708f1fc37':
  Improve unit test runner.
2015-12-03 22:34:44 +00:00
Yabin Cui
f57ae1cd43 Merge "Improve unit test runner." 2015-12-03 22:29:29 +00:00
Elliott Hughes
4371961e00 Remove __sinit and __sdidinit.
We're eagerly initializing stdio now, so this can all be simplified.

Change-Id: Icb288f8dd0ee08f02bea0d23670f75e78bed6b99
2015-12-03 13:23:03 -08:00
Yabin Cui
d4c9b9d5ac Improve unit test runner.
1. Read unit test's output while the test is running. Previously
we only read output when the test finishes, which has trouble
when the test outputs too many stuff.
2. Report failed unit test's exit code. It is useful when the
test doesn't fail in ASSERT_xxx, but in somewhere else.

Bug: 25392375
Change-Id: Ie90823337f7c2ee25fa489a5534801d991258f95
2015-12-03 13:20:39 -08:00
Dan Willemsen
5bfa22ceab Merge "Re-add putw for LP32"
am: 22dca83e1c

* commit '22dca83e1c37d3b465b9fa432bbf7cb4bd0df868':
  Re-add putw for LP32
2015-12-03 02:01:07 +00:00
Dan Willemsen
22dca83e1c Merge "Re-add putw for LP32" 2015-12-03 01:56:00 +00:00
Dan Willemsen
b9055518fc Re-add putw for LP32
This was missed when switching to LOCAL_SRC_FILES_EXCLUDE

Change-Id: I6ea23c9eb31abe11e0ec4abfc2ee2f2a43c76ce2
2015-12-02 17:31:32 -08:00
Tom Cherry
49a309ff6a Separate properties by selabel
The purpose of this change is to add read access control to the property
space.

In the current design, a process either has access to the single
/dev/__properties__ file and therefore all properties that it contains
or it has access to no properties.  This change separates properties
into multiple property files based on their selabel, which allows
creation of sepolicies that allow read access of only specific sets of
properties to specific domains.

Bug 21852512

Change-Id: Ice265db79201ca811c6b6cf6d851703f53224f03
2015-12-02 15:17:03 -08:00
Dimitry Ivanov
9f525b66eb Merge "Explicitly disallow default c-tor"
am: b24f7a0513

* commit 'b24f7a0513f7468ccf7563d7d347c6e7bab391d9':
  Explicitly disallow default c-tor
2015-12-02 18:47:27 +00:00
Dimitry Ivanov
b24f7a0513 Merge "Explicitly disallow default c-tor" 2015-12-02 18:44:20 +00:00
Dimitry Ivanov
a5e183c066 Explicitly disallow default c-tor
Change-Id: Ia52995a459443159e80383d5b396c3edd90a08ae
2015-12-01 16:57:19 -08:00
Chih-hung Hsieh
d74566026d Merge "Add bionic-unit-tests-gcc{32,64}, compiled with gcc."
am: 9cbabd8fe5

* commit '9cbabd8fe5ef3834682996ff23b4a5325e0586cb':
  Add bionic-unit-tests-gcc{32,64}, compiled with gcc.
2015-12-01 00:27:13 +00:00
Chih-hung Hsieh
9cbabd8fe5 Merge "Add bionic-unit-tests-gcc{32,64}, compiled with gcc." 2015-12-01 00:23:32 +00:00
Yabin Cui
1f4b0c44b3 Merge "Init stdio in __libc_init_common."
am: 6bef152af2

* commit '6bef152af2c622ee0c57f9c374b76f3dd352e52b':
  Init stdio in __libc_init_common.
2015-11-30 23:58:50 +00:00
Yabin Cui
4262d3e9ac Merge "Enable using clang to build __cxa_thread_atexit_impl."
am: af87c9ccfc

* commit 'af87c9ccfc3afbc7db9f0bc131d122453b5c882d':
  Enable using clang to build __cxa_thread_atexit_impl.
2015-11-30 23:58:41 +00:00
Yabin Cui
6bef152af2 Merge "Init stdio in __libc_init_common." 2015-11-30 23:57:02 +00:00
Yabin Cui
af87c9ccfc Merge "Enable using clang to build __cxa_thread_atexit_impl." 2015-11-30 23:56:41 +00:00
Yabin Cui
9b687dc243 Enable using clang to build __cxa_thread_atexit_impl.
Remove previous workaround as we no longer use
__thread in __cxa_thread_atexit_impl.cpp.

Change-Id: Ic1062995db488859b341acdda0b5f6635e10d7e8
2015-11-30 14:43:52 -08:00
Yabin Cui
51ca18d2a1 Merge "Don\'t use __thread in __cxa_thread_finalize()."
am: 28d3f00cf4

* commit '28d3f00cf4545812503c835ea906fa83309e48ed':
  Don't use __thread in __cxa_thread_finalize().
2015-11-30 22:01:36 +00:00
Yabin Cui
28d3f00cf4 Merge "Don't use __thread in __cxa_thread_finalize()." 2015-11-30 21:59:47 +00:00
Yabin Cui
d68c9e5906 Init stdio in __libc_init_common.
Previously we call __sinit() lazily. But it is likely to cause data
races like in https://android-review.googlesource.com/#/c/183237/. So
we prefer to call __sinit() explicitly at libc initialization.

Bug: 25392375

Change-Id: I181ea7a4b2e4c7350b45f2e6c86886ea023e80b8
2015-11-30 13:51:07 -08:00
Yabin Cui
6ac2fdd0f4 Merge "Fix pthread_test according to tsan report."
am: aec13988da

* commit 'aec13988dab7ff32cb005f42b952e3b9b55a4779':
  Fix pthread_test according to tsan report.
2015-11-30 21:42:42 +00:00
Yabin Cui
aec13988da Merge "Fix pthread_test according to tsan report." 2015-11-30 21:38:59 +00:00
Chih-hung Hsieh
4f94b7bfc0 Merge "Consider when building libc_thread_atexit_impl module"
am: 2bb85c848a

* commit '2bb85c848abb89951ec01342d6c8278311346395':
  Consider $(use_clang) when building libc_thread_atexit_impl module
2015-11-30 19:02:05 +00:00
Chih-hung Hsieh
2bb85c848a Merge "Consider $(use_clang) when building libc_thread_atexit_impl module" 2015-11-30 18:58:59 +00:00
Chih-Hung Hsieh
f688c5d5b4 Add bionic-unit-tests-gcc{32,64}, compiled with gcc.
* bionic-unit-tests{32,64} are compiled with clang/llvm.
* Skip one single test in __cxa_thread_atexit_test.cpp
  when compiled with aarch64 clang/llvm.
  Aarch64 clang/llvm generates relocation references to
  "thread_local" symbols not supported by Android linker.

BUG: 25642296
Change-Id: Ia0497b79c4b335228afeb48a26e0592217909953
2015-11-30 10:52:16 -08:00
Nikola Veljkovic
83f314f060 Consider $(use_clang) when building libc_thread_atexit_impl module
Change-Id: Ia369d94979f418198a2ee891385942d9bc5604d7
2015-11-25 18:09:34 +00:00
Yabin Cui
952e9eb086 Don't use __thread in __cxa_thread_finalize().
Currently we use __thread variable to store thread_local_dtors,
which makes tsan test fork_atexit.cc hang. The problem is as below:
The main thread creates a worker thread, the worker thread calls
pthread_exit() -> __cxa_thread_finalize() -> __emutls_get_address()
-> pthread_once(emutls_init) -> emutls_init().
Then the main thread calls fork(), the child process cals
exit() -> __cxa_thread_finalize() -> __emutls_get_address()
-> pthread_once(emutls_init).
So the child process is waiting for pthread_once(emutls_init)
to finish which will never occur.

It might be the test's fault because POSIX standard says if a
multi-threaded process calls fork(), the new process may only
execute async-signal-safe operations until exec functions are
called. And exit() is not async-signal-safe. But we can make
bionic more reliable by not using __thread in
__cxa_thread_finalize().

Bug: 25392375
Change-Id: Ife403dd7379dad8ddf1859c348c1c0adea07afb3
2015-11-24 17:24:06 -08:00
Colin Cross
a36d1e0d31 Merge "Remove cflags and ldflags from crt defaults"
am: a01108d9bf

* commit 'a01108d9bf415854b9d36334483133adff3d7405':
  Remove cflags and ldflags from crt defaults
2015-11-24 21:41:22 +00:00
Colin Cross
a01108d9bf Merge "Remove cflags and ldflags from crt defaults" 2015-11-24 21:33:54 +00:00
Colin Cross
912e27a4b2 Merge "move arch variant structs down a level"
am: 8bd27182c5

* commit '8bd27182c505cdc8031ab23fea5d1dccb6b7405a':
  move arch variant structs down a level
2015-11-24 20:24:24 +00:00
Colin Cross
8bd27182c5 Merge "move arch variant structs down a level" 2015-11-24 20:21:20 +00:00
Colin Cross
bff87d19f1 Remove cflags and ldflags from crt defaults
After ToolchainCflags were added to soong crt no longer needs to try to
recreate the bare minimum cflags for compiling for each architecture.
Also always use GCC to match crt.mk

Change-Id: I01a833ab70d989033c84f072e3660d060189688c
2015-11-24 11:11:02 -08:00
Dimitry Ivanov
321314f2e9 Merge "Introduce anonymous namespace"
am: db8caa740a

* commit 'db8caa740a409c2ce75f875df84857e6be69eb9f':
  Introduce anonymous namespace
2015-11-24 02:45:14 +00:00
Dimitry Ivanov
db8caa740a Merge "Introduce anonymous namespace" 2015-11-24 02:23:34 +00:00
Dmitriy Ivanov
1ffec1cc4d Introduce anonymous namespace
The anonymous namespace is introduced to
handle cases when linker can not find the
caller. This usually happens when caller
code was not loaded by dynamic linker;
for example mono-generated code.

Bug: http://b/25844435
Bug: http://b/22548808
Change-Id: I9e5b1d23c1c75bc78548d68e79216a6a943a33cf
2015-11-23 16:13:10 -08:00
Colin Cross
6ab8f89d1c move arch variant structs down a level
Use blueprint's new anonymous embedded struct feature to move the arch
variant properties down a level, replacing arch.cortex_a9.srcs with
arch.arm.cortex_a9.srcs, while still supporting top-level properties
like arch.arm.srcs.

Change-Id: Ib41c80e3549440d5efdfd293a15cffa3f51a0fe4
2015-11-23 14:14:57 -08:00
Yabin Cui
edcee4e401 Merge "Change _stdio_handles_locking into _caller_handles_locking."
am: 17554356cc

* commit '17554356cc865908e5cbd7814c8be7e47c9c4ec5':
  Change _stdio_handles_locking into _caller_handles_locking.
2015-11-23 19:02:08 +00:00
Yabin Cui
17554356cc Merge "Change _stdio_handles_locking into _caller_handles_locking." 2015-11-23 18:57:26 +00:00
Dimitry Ivanov
a8f8cbb3fc Merge "Handling invalid section headers"
am: a7fc7f9909

* commit 'a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5':
  Handling invalid section headers
2015-11-23 07:33:23 +00:00
Dimitry Ivanov
a7fc7f9909 Merge "Handling invalid section headers" 2015-11-23 07:28:32 +00:00
Dmitriy Ivanov
3c5248182e Handling invalid section headers
The linker crashes if native library has invalid section
headers. This change adds boundary checks on target offsets
and generates dlerror instead of crash.

Bug: http://b/25800330
Change-Id: Ibe282029997302b9b557637c3aad064d7d0febc5
2015-11-22 23:25:06 -08:00
Yabin Cui
4469973bfb Merge "Use FUTEX_WAIT_BITSET to avoid converting timeouts."
am: 74ed96d597

* commit '74ed96d59731aa3661494330804d866e825209d3':
  Use FUTEX_WAIT_BITSET to avoid converting timeouts.
2015-11-21 01:55:27 +00:00
Yabin Cui
74ed96d597 Merge "Use FUTEX_WAIT_BITSET to avoid converting timeouts." 2015-11-21 01:50:29 +00:00
Yabin Cui
76144aaa63 Change _stdio_handles_locking into _caller_handles_locking.
It is reported by tsan that funlockfile() can unlock an unlocked mutex.
It happens when printf() is called before fopen() or other stdio stuff.
As FLOCKFILE(fp) is called before __sinit(), _stdio_handles_locking is false,
and _FLOCK(fp) will not be locked. But then cantwrite(fp) in __vfprintf()
calls__sinit(), which makes _stdio_handles_locking become true, and
FUNLOCKFILE(fp) unlocks _FLOCK(fp).

Change _stdio_handles_locking into _caller_handles_locking,
so __sinit() won't change its value. Add test due to my previous fault.

Bug: 25392375
Change-Id: I483e3c3cdb28da65e62f1fd9615bf58c5403b4dd
2015-11-20 17:44:26 -08:00
Dimitry Ivanov
8bd9e9ec69 Merge "Move some utility functions to linker_utils"
am: fb3219fbd1

* commit 'fb3219fbd1dbb0a369d52cbd0200330fd8852bc1':
  Move some utility functions to linker_utils
2015-11-20 21:45:36 +00:00
Dimitry Ivanov
fb3219fbd1 Merge "Move some utility functions to linker_utils" 2015-11-20 21:42:18 +00:00
Dmitriy Ivanov
84bab5a955 Move some utility functions to linker_utils
Also adds unit-tests for page_start, page_offset, and safe_add

Change-Id: Ia1325b4682d367328a01599a19848e4ffcd2c0ea
2015-11-20 21:37:51 +00:00
Dimitry Ivanov
d34c33764e Merge "Improve error message for files with no sections"
am: a1ab0d8ed1

* commit 'a1ab0d8ed1c4025233b0d816164eefb1b84159b9':
  Improve error message for files with no sections
2015-11-20 19:19:40 +00:00
Dimitry Ivanov
a1ab0d8ed1 Merge "Improve error message for files with no sections" 2015-11-20 19:16:14 +00:00
Chih-hung Hsieh
bb06a84672 Merge "Disable clang for mips/mips64 libc."
am: 8d5fb0d787

* commit '8d5fb0d78716379d07eddbd75c88c9b7082436ef':
  Disable clang for mips/mips64 libc.
2015-11-20 18:57:17 +00:00
Dmitriy Ivanov
b76123fed8 Improve error message for files with no sections
Bug: http://b/25801618
Change-Id: I4f4f368e727ff48c84781279e3d17d4ac2d1b6b0
2015-11-20 10:49:12 -08:00
Chih-hung Hsieh
8d5fb0d787 Merge "Disable clang for mips/mips64 libc." 2015-11-20 18:27:14 +00:00
Chih-Hung Hsieh
b4bc156c6c Disable clang for mips/mips64 libc.
* Many processes, including adbd, failed to start in mips/mips64
  emulator when libc.so was compiled by clang.

BUG: 25291096
Change-Id: If3434ebdca4a3a6bf6102b120ee838a7ab66cd74
2015-11-20 09:55:35 -08:00
Elliott Hughes
cb3af215dc Merge "mmap: fix calculation of is_private_anonymous variable"
am: 43c9045017

* commit '43c90450174ab8839c05702ac01c4092f5b6cd19':
  mmap: fix calculation of is_private_anonymous variable
2015-11-20 17:34:03 +00:00
Elliott Hughes
43c9045017 Merge "mmap: fix calculation of is_private_anonymous variable" 2015-11-20 17:19:19 +00:00
Vitaly Vul
ee67dd75e2 mmap: fix calculation of is_private_anonymous variable
Currently is_private_anonymous is calculated as true if _either_
MAP_PRIVATE or MAP_ANONYMOUS is set, which is a mistake.
According to Documentation/vm/ksm.txt, "KSM only merges anonymous
(private) pages, never pagecache (file) pages". MAP_PRIVATE can
still be set on file cache pages so in order to not redundantly
set MADV_MERGEABLE on pages that are not fitted for it, both
MAP_PRIVATE and MAP_ANONYMOUS should be set.

Along with this fix, add an extra check that the mapped page is
not a stack page before setting MADV_MERGEABLE for it. Stack pages
change too quickly and always end up in KSM 'page_volatile' list.

Change-Id: If4954142852f17cc61f02985ea1cb625a7f3dec6
2015-11-20 09:16:59 -08:00
Josh Gao
8af9a739c9 Merge changes I73a39c6d,Iab2af242
am: f30170dfa5

* commit 'f30170dfa514266a0bf007091aa54a866920208c':
  Fix test build break.
  extend the PTRDIFF_MAX size check to mremap
2015-11-20 02:00:16 +00:00
Josh Gao
f30170dfa5 Merge changes I73a39c6d,Iab2af242
* changes:
  Fix test build break.
  extend the PTRDIFF_MAX size check to mremap
2015-11-20 01:55:56 +00:00
Yabin Cui
b690cae8dd Merge "Fix tsan abort for lake of __libc_auxv initialization."
am: 79f8d64632

* commit '79f8d64632a57ccd62315286b809819de09e0317':
  Fix tsan abort for lake of __libc_auxv initialization.
2015-11-20 00:48:40 +00:00
Yabin Cui
79f8d64632 Merge "Fix tsan abort for lake of __libc_auxv initialization." 2015-11-20 00:40:00 +00:00
Colin Cross
75ba57de43 Merge "Update libc/Android.bp to match libc/Android.mk"
am: 9c6157c81d

* commit '9c6157c81d123d8c6ba1aa8d7ee5c67b0840666c':
  Update libc/Android.bp to match libc/Android.mk
2015-11-19 22:58:20 +00:00
Colin Cross
9c6157c81d Merge "Update libc/Android.bp to match libc/Android.mk" 2015-11-19 22:48:33 +00:00
Yabin Cui
284068f44f Fix tsan abort for lake of __libc_auxv initialization.
If tsan is used, the following callchain can happen:
__libc_preinit() -> __libc_init_globals() ->
__libc_init_vdso() -> strcmp() -> __tsan_init()
-> sysconf(_SC_PAGE_SIZE) -> getauxval().
But __libc_auxv is initialized in __libc_init_common(),
after __libc_init_globals(). One simple way to fix
this is to initialize __libc_auxv at __libc_init_globals().

Bug: 25392375
Change-Id: I3893b1f567d5f3b7a8c881c0c1b8234b06b7751b
2015-11-19 14:24:06 -08:00
Colin Cross
a35d23d251 Update libc/Android.bp to match libc/Android.mk
Change-Id: I4dfadc55688213f095949c56306e5071b2ab6135
2015-11-19 14:18:06 -08:00
Josh Gao
2feb9dde60 Fix test build break.
Change-Id: I73a39c6d4bb9baebbfb5572e9259bcd405116039
2015-11-19 13:44:20 -08:00
Yabin Cui
c9a659c57b Use FUTEX_WAIT_BITSET to avoid converting timeouts.
Add unittests for pthread APIs with timeout parameter.

Bug: 17569991

Change-Id: I6b3b9b2feae03680654cd64c3112ce7644632c87
2015-11-19 13:42:03 -08:00
Hung-ying Tyan
ce77e47b2f Merge "Add /odm/lib to shared lib search path"
am: 0ebe2f07c3

* commit '0ebe2f07c35d4b764bc5d8b5226004e3db46da91':
  Add /odm/lib to shared lib search path
2015-11-19 16:45:08 +00:00
Hung-ying Tyan
0ebe2f07c3 Merge "Add /odm/lib to shared lib search path" 2015-11-19 16:38:51 +00:00
Daniel Micay
c22a7de798 extend the PTRDIFF_MAX size check to mremap
This removes another way to obtain objects larger than PTRDIFF_MAX. The
only known remaining hole is now jemalloc's merging of virtual memory
spans.

Technically this could be wrapped in an __LP64__ ifndef since it can't
occur on 64-bit due to the 1:1 split. It doesn't really matter either
way.

Change-Id: Iab2af242b775bc98a59421994d87aca0433215bd
2015-11-19 08:57:47 -05:00
Junichi Uekawa
1ab4088062 Merge "Do not depend on host bits to get the right size to write."
am: 313632db57

* commit '313632db574d101275206ca025d21a5a3cd62150':
  Do not depend on host bits to get the right size to write.
2015-11-19 12:51:01 +00:00
Junichi Uekawa
313632db57 Merge "Do not depend on host bits to get the right size to write." 2015-11-19 12:44:19 +00:00
Junichi Uekawa
ff35b1e659 Do not depend on host bits to get the right size to write.
x86_64 32-bit or 64-bit relocations do not depend on ELF bit size, they
are 32-bit or 64-bit respectively.

Known compiler that emits such code is nacl-clang which emits
R_X86_64_PC32 which should write 32 bits but ended up writing 64 bits.

Change-Id: Ibb6b484c0fea6a7e291362148e8ac749d6674529
2015-11-19 11:28:20 +09:00
Yabin Cui
f091c1f2f1 Merge "Implement pthread spin."
am: 2c09e5de29

* commit '2c09e5de299ca87a9e68807e2b4af41ba61710f3':
  Implement pthread spin.
2015-11-19 02:03:24 +00:00
Yabin Cui
9d4bd6f0ca Merge "Avoid tsan warning about pthread_mutex_destroy."
am: ea5bb151af

* commit 'ea5bb151af5e1e364968cb1eac70c8a2c13ca7a7':
  Avoid tsan warning about pthread_mutex_destroy.
2015-11-19 02:03:13 +00:00
Yabin Cui
2c09e5de29 Merge "Implement pthread spin." 2015-11-19 01:55:37 +00:00
Yabin Cui
ea5bb151af Merge "Avoid tsan warning about pthread_mutex_destroy." 2015-11-19 01:55:25 +00:00
Yabin Cui
fe3a83a934 Implement pthread spin.
In order to run tsan unit tests, we need to support pthread spin APIs.

Bug: 18623621
Bug: 25392375
Change-Id: Icbb4a74e72e467824b3715982a01600031868e29
2015-11-18 17:51:21 -08:00
Hung-ying Tyan
f74b041cce Add /odm/lib to shared lib search path
ODM's shared libs should live in /odm/lib on the ODM partition.

BUG: 25654402
Change-Id: I3f5c26f208af87ff2817e490e51d0b4f5b8ec98e
2015-11-18 23:45:25 +08:00
Dimitry Ivanov
3f539a1655 Merge "Ignore target sdk version for the public namespace"
am: 63f0e0db76

* commit '63f0e0db768ea9be4db3dd6a2fb62ea942afb9d6':
  Ignore target sdk version for the public namespace
2015-11-18 03:52:50 +00:00
Dimitry Ivanov
63f0e0db76 Merge "Ignore target sdk version for the public namespace" 2015-11-18 03:43:59 +00:00
Dmitriy Ivanov
3cc35e224c Ignore target sdk version for the public namespace
This fixes the bug with using the libraries loaded
prior to android_set_target_sdk_version call.

Bug: http://b/22548808
Change-Id: I3ca2d367b0fa930a437bbb65f780834803d2ef0a
2015-11-17 18:45:12 -08:00
Yabin Cui
0307eee293 Avoid tsan warning about pthread_mutex_destroy.
If calling pthread_mutex_trylock from pthread_mutex_destroy, tsan
warns about an attempt to destroy a locked mutex.

Bug: 25392375
Change-Id: I5feee20e7a0d0915adad24da874ec1ccce241381
2015-11-17 16:17:44 -08:00
Yabin Cui
a36158a77d Fix pthread_test according to tsan report.
1. Fix leak threads and data races related to spin_flag.
2. Increase stack size to run under tsan.

This doesn't pass all pthread tests, as some tests are used
to run intentionally in race situations.

Bug: 25392375
Change-Id: Icfba3e141e7170abd890809586e89b99adc8bd02
2015-11-16 21:15:58 -08:00
Yabin Cui
278fe431b6 Merge "Implement pthread barrier."
am: b804b9d67b

* commit 'b804b9d67b9e3a8c63471ff9892f6abea2a58684':
  Implement pthread barrier.
2015-11-17 00:28:20 +00:00
Yabin Cui
b804b9d67b Merge "Implement pthread barrier." 2015-11-17 00:22:54 +00:00
Dimitry Ivanov
159c3d617f Merge "Remove the warning about empty LD_LIBRARY_PATH"
am: 3c8c16022a

* commit '3c8c16022a513a32eb6b92cf23f4ef43ccf7ad6d':
  Remove the warning about empty LD_LIBRARY_PATH
2015-11-16 22:30:32 +00:00
Dimitry Ivanov
3c8c16022a Merge "Remove the warning about empty LD_LIBRARY_PATH" 2015-11-16 22:25:50 +00:00
Dmitriy Ivanov
fbfba64068 Remove the warning about empty LD_LIBRARY_PATH
Change-Id: I3eca11512d8055ab94dd0a6badcd83ce6440d675
2015-11-16 14:23:37 -08:00
Yabin Cui
e7c2fffa16 Implement pthread barrier.
Bug: 24341262
Change-Id: I5472549e5d7545c1c3f0bef78235f545557b9630
2015-11-16 14:02:26 -08:00
Chih-hung Hsieh
4d87f17621 Merge "Enable clang to compile more tests."
am: 949bfb9e3c

* commit '949bfb9e3cceac7913fe1debc39617c9ec01ae5e':
  Enable clang to compile more tests.
2015-11-16 21:36:51 +00:00
Chih-hung Hsieh
949bfb9e3c Merge "Enable clang to compile more tests." 2015-11-16 21:31:36 +00:00
Dimitry Ivanov
b061c9250d Merge "Fix arm64 and x86 builds"
am: 61f186d067

* commit '61f186d067a3efb6a86450092a567fb18c1641c3':
  Fix arm64 and x86 builds
2015-11-16 21:25:31 +00:00
Dimitry Ivanov
61f186d067 Merge "Fix arm64 and x86 builds" 2015-11-16 21:23:18 +00:00
Dmitriy Ivanov
d9b08a0bc0 Fix arm64 and x86 builds
Change-Id: Ic3746b2f200f42218b6ac857c1631e873c767c17
2015-11-16 13:17:27 -08:00
Dimitry Ivanov
2616cdcdb9 Merge "Introducing linker namespaces"
am: 1f0ccbb59c

* commit '1f0ccbb59cd32dfad0e6d9fd9619905e067076a6':
  Introducing linker namespaces
2015-11-16 20:21:05 +00:00
Dimitry Ivanov
1f0ccbb59c Merge "Introducing linker namespaces" 2015-11-16 20:14:37 +00:00
Chih-Hung Hsieh
1e79540807 Enable clang to compile more tests.
* Disable optimization only in gtest.h of atexit_test.c for arm/aarch64
  to keep VTT for std::__1::basic_stringstream<char, std::__1::char_traits<char>,
  std::__1::allocator<char> > to link with g++ compiled modules.
* bionic-unit-tests source files are not affected by clang x86_64 fp128 bug
  so they can be compiled with clang.

BUG: 25643775
Change-Id: I3da2a0de61edcdca07b7fcd73a16de9da4a1f7d6
2015-11-16 11:36:15 -08:00
Dmitriy Ivanov
42d5fcb9f4 Introducing linker namespaces
Bug: http://b/22548808
Change-Id: Ia3af3c0a167f1d16447a3d83bb045d143319b1e1
2015-11-15 12:09:16 -08:00
Elliott Hughes
69536213d6 Merge "Improve libc time zone fallback behavior."
am: 1b42c54471

* commit '1b42c544711316281e09c5da25850fac531b27cb':
  Improve libc time zone fallback behavior.
2015-11-13 18:28:57 +00:00
Elliott Hughes
1b42c54471 Merge "Improve libc time zone fallback behavior." 2015-11-13 18:24:41 +00:00
Elliott Hughes
d1c28a361b Improve libc time zone fallback behavior.
We should fall back to GMT if neither the environment variable nor the
system property is set. This is the case if you wipe a WiFi-only device,
because we currently only take the time zone from cell networks.

Bug: http://b/24773112
Change-Id: I90d236d4d492b6562d75021bd312030b91c1e298
2015-11-13 08:38:48 -08:00
Elliott Hughes
5187baa387 Merge "Fix strftime if tm_zone is null."
am: 5780f9d809

* commit '5780f9d80963fbe7b93f501dd3dd7edc7fab46b0':
  Fix strftime if tm_zone is null.
2015-11-13 03:04:31 +00:00
Elliott Hughes
5780f9d809 Merge "Fix strftime if tm_zone is null." 2015-11-13 02:58:30 +00:00
Nick Kralevich
bb725f7b77 Merge "FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc"
am: 4ea67f6950

* commit '4ea67f695066b73796b24563d83e8b5a9190334d':
  FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc
2015-11-13 01:12:41 +00:00
Nick Kralevich
4ea67f6950 Merge "FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc" 2015-11-13 01:09:44 +00:00
Elliott Hughes
a9cac4c87a Fix strftime if tm_zone is null.
Upstream tzcode said "On platforms with tm_zone, strftime.c now assumes it
is not NULL". Which is fine for any struct tm generated by tzcode, but not
necessarily true of a struct tm constructed by arbitrary code. In particular,
Netflix on Nexus Player was failing to start because they format "%Z" with
a struct tm whose tm_zone is null (the other fields are valid, but, yeah,
that's probably not intentional).

glibc takes a null tm_zone to mean "the current time zone", so let's do that
too. (Historically Android would use the empty string, and POSIX doesn't
clarify which of this is the appropriate behavior when tm_zone is null.)

Bug: http://b/25170306
Change-Id: Idbf68bfe90d143aca7dada8607742905188b1d33
2015-11-12 16:51:31 -08:00
Nick Kralevich
2ed1b29d00 FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc
The default compiler is clang. We need to explicitly indicate
that we should use gcc.

Change-Id: I37859c2e303f2a86a2565fe72eda1fda7c557a59
2015-11-12 15:55:13 -08:00
Chih-hung Hsieh
a2e9d90811 Merge "Still cannot compile with clang on arm64."
am: 7c10ee9473

* commit '7c10ee9473b5c46da733b2d3d24cf90fb8ac7672':
  Still cannot compile with clang on arm64.
2015-11-12 20:51:05 +00:00
Chih-hung Hsieh
7c10ee9473 Merge "Still cannot compile with clang on arm64." 2015-11-12 20:45:48 +00:00
Chih-Hung Hsieh
c04647f8c2 Still cannot compile with clang on arm64.
When __cxa_thread_atexit_impl.cpp is compiled with clang on arm64,
Android cannot boot up.

BUG: 25662915
Change-Id: If997b544f43e956172ce605d86fe147d42fd39e0
2015-11-12 12:39:13 -08:00
Chih-hung Hsieh
c0116bd3db Merge "Enable clang for modules failed with TLS."
am: 0c447053de

* commit '0c447053de4b87d50ebec260c7e1d949fe934065':
  Enable clang for modules failed with TLS.
2015-11-12 01:09:37 +00:00
Chih-hung Hsieh
0c447053de Merge "Enable clang for modules failed with TLS." 2015-11-12 01:04:51 +00:00
Elliott Hughes
fd57638117 Merge "Clean up pthread_gettid_np test."
am: dbc6398e95

* commit 'dbc6398e95df44a18715ce5ba19b8e1a93b969d4':
  Clean up pthread_gettid_np test.
2015-11-12 01:04:38 +00:00
Elliott Hughes
dbc6398e95 Merge "Clean up pthread_gettid_np test." 2015-11-12 00:59:08 +00:00
Chih-Hung Hsieh
5058a005b8 Enable clang for modules failed with TLS.
New 3.8 clang/llvm can compile TLS code now.
* For x86_64, still disable clang due to f128 bug.
* For b/25643775, arm and arm64, disable clang in unit tests.
* Fix thread_local_test.cpp to compile with clang and
  limit gcc workaround only to arm and aarch64.

BUG: 25643775

Change-Id: Iecd006bf1fc417dbcce2c63343a59c4bf1fa77ea
2015-11-11 16:22:38 -08:00
Josh Gao
504e3274a0 Merge "Add 100 column limit to .clang-format."
am: b03e6bf924

* commit 'b03e6bf9247bb36162b9f4c61d07e488a18e126c':
  Add 100 column limit to .clang-format.
2015-11-11 22:25:42 +00:00
Josh Gao
b03e6bf924 Merge "Add 100 column limit to .clang-format." 2015-11-11 22:22:59 +00:00
Josh Gao
615f3aa8b4 Add 100 column limit to .clang-format.
Change-Id: I3c3fa5e61cfb2af7f2888dcee56229692ec1479c
2015-11-11 14:21:09 -08:00
Elliott Hughes
f208361b2b Clean up pthread_gettid_np test.
Change-Id: I0fad26c7824981bfa3ad3a8a0b28a1984062dcd1
2015-11-11 13:32:28 -08:00
Elliott Hughes
2b1e258fec Merge "Fix potential race condition on CTS TC pthread_gettid_np"
am: ffe5c24c86

* commit 'ffe5c24c8693f1f4fc8edb68075fb36df558b801':
  Fix potential race condition on CTS TC pthread_gettid_np
2015-11-11 21:25:38 +00:00
Elliott Hughes
ffe5c24c86 Merge "Fix potential race condition on CTS TC pthread_gettid_np" 2015-11-11 21:21:33 +00:00
Junjie Hu
de1246202a Fix potential race condition on CTS TC pthread_gettid_np
Root cause:
If start_routine thread exits before pthread_gettid_np is invokded, the "tid" field
will be cleared so that pthread_gettid_np will get "0" (which is cleared by kernel, 
due to the flag "CLONE_CHILD_CLEARTID" is set while calling clone system call inside
pthread_create).

Proposed patch:
Use a mutex to guarantee pthread_gettid_np will be invoked and returned before the
start_routine exits

Signed-off-by: Junjie Hu <junjie.hu@mediatek.com>

Change-Id: I22411f1b0f7446d76a0373cef4ccec858fac7018
(cherry picked from commit 4f8010293506d4e08d184e66bf4af44ef3483611)
2015-11-11 21:21:21 +00:00
Nick Kralevich
8640233fef Merge "libc_init_common.cpp: Clarify when environment stripping occurs"
am: 6209b99a73

* commit '6209b99a7351ed732ab25bb2ffa75465366b244f':
  libc_init_common.cpp: Clarify when environment stripping occurs
2015-11-11 02:09:36 +00:00
Nick Kralevich
6209b99a73 Merge "libc_init_common.cpp: Clarify when environment stripping occurs" 2015-11-11 02:06:59 +00:00
Nick Kralevich
2fb02651c8 libc_init_common.cpp: Clarify when environment stripping occurs
The current comment implies that we only strip sensitive
environment variables on executing a setuid program. This is
true but incomplete. The AT_SECURE flag is set whenever a
security transition occurs, such as executing a setuid program,
SELinux security transition, executing a file with file capabilities,
etc...

Fixup the comments.

Change-Id: I30a73992adfde14d6e5f642b3a1ead2ee56726be
2015-11-10 16:45:49 -08:00
Tom Cherry
8e86f33690 Merge "Refactor prop_area into a class"
am: 2a7f1b335d

* commit '2a7f1b335dcd08a480c4acc948ba202bae1a0a1f':
  Refactor prop_area into a class
2015-11-10 21:58:23 +00:00
Tom Cherry
2a7f1b335d Merge "Refactor prop_area into a class" 2015-11-10 21:54:39 +00:00
Tom Cherry
926ebe1094 Refactor prop_area into a class
Bug 21852512

Change-Id: I432bf592f1a71a046c32616fc334ad77c220f0ca
2015-11-09 17:22:44 -08:00
Josh Gao
2fdaa6c599 Merge "Fix test failure."
am: 11b3916b83

* commit '11b3916b83e33fce9e3123659fe4e61ef84d39b5':
  Fix test failure.
2015-11-10 00:10:20 +00:00
Josh Gao
11b3916b83 Merge "Fix test failure." 2015-11-10 00:08:09 +00:00
Josh Gao
09fac86ca3 Fix test failure.
Bug: http://b/25596173
Change-Id: I0cf8f550837d4a936d6a784063a0ec9509150358
2015-11-09 16:04:50 -08:00
Dan Willemsen
dcf501913d Merge "Update Android.bp with latest Android.mk changes"
am: 704e048cbf

* commit '704e048cbfcb69b7906371f9f4cae4cb6357096e':
  Update Android.bp with latest Android.mk changes
2015-11-09 22:31:50 +00:00
Dan Willemsen
704e048cbf Merge "Update Android.bp with latest Android.mk changes" 2015-11-09 22:28:18 +00:00
Dan Willemsen
dc6b0a7b93 Update Android.bp with latest Android.mk changes
Change-Id: I45f6292fcc4d4559519d88f948b4478204b08f25
2015-11-09 14:03:46 -08:00
Yabin Cui
a74eb4dbf5 Merge "Add fileno_unlocked to support thread sanitizer."
am: 0e6542b75b

* commit '0e6542b75b2f3ca155b452782d2122f34f807485':
  Add fileno_unlocked to support thread sanitizer.
2015-11-07 00:30:09 +00:00
Yabin Cui
0e6542b75b Merge "Add fileno_unlocked to support thread sanitizer." 2015-11-07 00:24:52 +00:00
Yabin Cui
fb994f4c04 Add fileno_unlocked to support thread sanitizer.
Bug: 25392375
Change-Id: If3f92a0e08a53f4b59e01397e8efa307d8572349
2015-11-06 16:13:47 -08:00
Elliott Hughes
4eba804ca0 Merge "fix the mremap signature"
am: 8b5b2c4672

* commit '8b5b2c467281de502ba1c8ffbe447ef95fbf5219':
  fix the mremap signature
2015-11-06 21:24:59 +00:00
Elliott Hughes
8b5b2c4672 Merge "fix the mremap signature" 2015-11-06 21:18:08 +00:00
Daniel Micay
4200e260d2 fix the mremap signature
The mremap definition was incorrect (unsigned long instead of int) and
it was missing the optional new_address parameter.

Change-Id: Ib9d0675aaa098c21617cedc9b2b8cf267be3aec4
2015-11-06 13:14:43 -08:00
Dimitry Ivanov
bc0b61e407 Merge "linker: cleanup solist after unsuccessful read"
am: 3482613685

* commit '3482613685342da365a7569220f8e6c27a1fe7e5':
  linker: cleanup solist after unsuccessful read
2015-11-06 19:02:08 +00:00
Dimitry Ivanov
3482613685 Merge "linker: cleanup solist after unsuccessful read" 2015-11-06 19:00:24 +00:00
Dmitriy Ivanov
fd7a91e692 linker: cleanup solist after unsuccessful read
Bug: http://b/25560017
Change-Id: I03c5a1d7aed34c480d341aacfb3b1afdfa037b99
2015-11-06 10:44:37 -08:00
Dimitry Ivanov
2dc1e91dba Merge "Fix linked_list::remove_if()"
am: 004fead6bc

* commit '004fead6bc55d1e65b4fb9ca1ac36646b99e5fdd':
  Fix linked_list::remove_if()
2015-11-06 02:35:02 +00:00
Dimitry Ivanov
004fead6bc Merge "Fix linked_list::remove_if()" 2015-11-06 02:32:34 +00:00
Dmitriy Ivanov
7a9311f7f1 Fix linked_list::remove_if()
When remove_if removes last element from the list
following push_back stops working.

Change-Id: Ia3e92763b83a2e172eaa10de7aecfb7a4be452d7
2015-11-05 17:41:05 -08:00
Colin Cross
10c6a7c7b9 Merge "Use cc_defaults"
am: ef5e647891

* commit 'ef5e647891f1a0aefeab4a87e9225e47087c6301':
  Use cc_defaults
2015-11-05 02:00:22 +00:00
Colin Cross
ef5e647891 Merge "Use cc_defaults" 2015-11-05 01:56:58 +00:00
Josh Gao
824084ce76 Merge "Fix GNU/POSIX basename headers."
am: dd7dcfcfdb

* commit 'dd7dcfcfdbab3b38fc40551defdf81c3b734e336':
  Fix GNU/POSIX basename headers.
2015-11-04 22:28:19 +00:00
Josh Gao
dd7dcfcfdb Merge "Fix GNU/POSIX basename headers." 2015-11-04 22:26:13 +00:00
Josh Gao
eb9b925012 Fix GNU/POSIX basename headers.
Including glibc's <libgen.h> will result in the user getting the POSIX
version of basename always, regardless of when it is included relative
to <string.h>. Prior to this patch, our implementation would result in
the one that's included first winning.

Bug: http://b/25459151
Change-Id: Id4aaf1670dad317d6bbc05763a84ee87596e8e59
2015-11-04 14:19:55 -08:00
Colin Cross
50c21ab47d Use cc_defaults
Use a cc_defaults module to reduce duplication.

Change-Id: Iaee6bf20b84123babcdc68d4feb06308f5f61a59
2015-11-03 17:25:36 -08:00
Dan Willemsen
021d959eba Merge "Update Android.bp with arch-specific version scripts"
am: 4b920f042a

* commit '4b920f042ac4b35c4dd3ff51f7b8f164a22e3500':
  Update Android.bp with arch-specific version scripts
2015-11-03 23:26:08 +00:00
Josh Gao
a59479434c Merge "fix PTRDIFF_MAX check in the 32-bit mmap wrapper"
am: af909869d8

* commit 'af909869d868585a47914ab51536192da50935cb':
  fix PTRDIFF_MAX check in the 32-bit mmap wrapper
2015-11-03 23:25:55 +00:00
Dan Willemsen
4b920f042a Merge "Update Android.bp with arch-specific version scripts" 2015-11-03 22:38:23 +00:00
Dan Willemsen
9e6f98fe9d Update Android.bp with arch-specific version scripts
Change-Id: I59b34f21b54e8a2084bb318a08c4092064f48083
2015-11-03 14:30:57 -08:00
Bill Yi
a4bff2106b Merge commit '6ebfb7b4ea158005a725f43564267e0aed764d80' into HEAD 2015-11-03 14:28:57 -08:00
Josh Gao
af909869d8 Merge "fix PTRDIFF_MAX check in the 32-bit mmap wrapper" 2015-11-03 19:35:05 +00:00
Daniel Micay
706186d266 fix PTRDIFF_MAX check in the 32-bit mmap wrapper
It wasn't making use of the page-rounded size.

Change-Id: I911345fcfd6419a4dbc18a4622b42e1b76729abb
2015-11-03 05:30:29 -05:00
Christopher Ferris
9fe02f3e3c Merge "Fix comment to reflect the actual reality."
am: e07558fb80

* commit 'e07558fb80da4e196e8b7e371041c1e75c56b29b':
  Fix comment to reflect the actual reality.
2015-11-02 21:10:19 +00:00
Christopher Ferris
e07558fb80 Merge "Fix comment to reflect the actual reality." 2015-11-02 21:07:04 +00:00
Christopher Ferris
384ffe3463 Fix comment to reflect the actual reality.
The original comment implied that Android 32 bit was the only one
using a bad time_t, but it turns out 32 bit glibc has the same time_t
as Android. Update the comment to reflect this reality.

Change-Id: I72cdd2c677a6521f7b43d4695a52fd8fdc3305bd
2015-11-02 12:56:37 -08:00
Dimitry Ivanov
86bf87c054 Merge "Generate libdl.so per-architecture version script"
am: 75dd3710e7

* commit '75dd3710e72e819ce6710e93672f937550ed3818':
  Generate libdl.so per-architecture version script
2015-10-31 18:20:28 +00:00
Dimitry Ivanov
75dd3710e7 Merge "Generate libdl.so per-architecture version script" 2015-10-31 18:17:17 +00:00
Christopher Ferris
0ba085de2c Merge "Make _signal hidden in all cases."
am: 6a8a09f7c4

* commit '6a8a09f7c40fb677a8dc8a233b58f62df8ae79dc':
  Make _signal hidden in all cases.
2015-10-31 16:15:17 +00:00
Christopher Ferris
6a8a09f7c4 Merge "Make _signal hidden in all cases." 2015-10-31 16:11:48 +00:00
Dmitriy Ivanov
bc75047a1b Generate libdl.so per-architecture version script
Bug: http://b/24767418
Change-Id: I3d5775ba44d4c8e7fc5f2fbebae10e022100f1e2
2015-10-30 17:43:27 -07:00
Christopher Ferris
1721cd6a74 Make _signal hidden in all cases.
_signal was static in 64 bit, and hidden on 32 bit. There is no
reason to have this distinction, so make it hidden in all cases.

Change-Id: I09d5d93ac8cab4fe14dc7bdfeb25aa46a3b7413d
2015-10-30 17:10:47 -07:00
Elliott Hughes
a8f69017e5 Merge "Add prlimit to LP32."
am: c36be975ce

* commit 'c36be975ce4525b452435f43beb1fb9fc26a7fdc':
  Add prlimit to LP32.
2015-10-30 23:40:48 +00:00
Elliott Hughes
c36be975ce Merge "Add prlimit to LP32." 2015-10-30 23:35:40 +00:00
Elliott Hughes
caa61b03b2 Merge "Remove <sys/shm.h>."
am: bdac9ec142

* commit 'bdac9ec142347a0dc9784bddd0f8336535e73529':
  Remove <sys/shm.h>.
2015-10-30 22:16:58 +00:00
Elliott Hughes
bdac9ec142 Merge "Remove <sys/shm.h>." 2015-10-30 22:06:26 +00:00
Christopher Ferris
6297e3231c Merge "Move __set_errno to ndk_cruft.cpp."
am: e75453d5dd

* commit 'e75453d5dd8b373f6e7ef61ec22a6a3074d51e02':
  Move __set_errno to ndk_cruft.cpp.
2015-10-30 16:06:45 +00:00
Christopher Ferris
e75453d5dd Merge "Move __set_errno to ndk_cruft.cpp." 2015-10-30 16:02:01 +00:00
Elliott Hughes
38eca07826 Remove <sys/shm.h>.
Android doesn't allow SysV IPC, so this only serves two purposes. It's
good in that it helps random code (especially code that doesn't actually
need this header) to compile anyway. But it's bad for the same reason:
it's misleading for configure scripts that test for the header but not
for the corresponding functions.

Bug: http://b/19340456
Change-Id: I4a5f319d9aecf46fc512fc94bb4f9e3f6ea64e71
2015-10-29 19:52:44 -07:00
Christopher Ferris
9978a9a82e Move __set_errno to ndk_cruft.cpp.
Change-Id: I5caa1cc161961d2e4629429c0d406875b93cdbd0
2015-10-29 18:11:32 -07:00
Elliott Hughes
4151db5f99 Add prlimit to LP32.
Bug: http://b/24918750
Change-Id: I0151cd66ccf79a6169610de35bb9c288c0fa4917
2015-10-28 20:04:59 -07:00
Dimitry Ivanov
6ebfb7b4ea Merge "Fix mips and x86 builds" am: 50e9279589
am: fedb167c55

* commit 'fedb167c551540133d88d46a1de7c17b865cbf32':
  Fix mips and x86 builds
2015-10-29 00:59:46 +00:00
Dimitry Ivanov
fedb167c55 Merge "Fix mips and x86 builds"
am: 50e9279589

* commit '50e92795890c0d8b4bf54c535f66f3b2edf7bd59':
  Fix mips and x86 builds
2015-10-29 00:56:57 +00:00
Dimitry Ivanov
50e9279589 Merge "Fix mips and x86 builds" 2015-10-29 00:53:52 +00:00
Dmitriy Ivanov
c176440c90 Fix mips and x86 builds
Change-Id: Idda2494876fd6bf64b3efe6de2e384da9b6a0dbc
2015-10-28 17:51:47 -07:00
Dimitry Ivanov
316938a676 Merge "Fix LDFLAGS for arm and x86" am: 5ccad497d4
am: bd5bf272a0

* commit 'bd5bf272a0fbb65ad1658106cde4c2ec5f5ce520':
  Fix LDFLAGS for arm and x86
2015-10-29 00:50:51 +00:00
Dimitry Ivanov
bd5bf272a0 Merge "Fix LDFLAGS for arm and x86"
am: 5ccad497d4

* commit '5ccad497d43e7587ec5581845e5094488093f76d':
  Fix LDFLAGS for arm and x86
2015-10-29 00:47:16 +00:00
Dimitry Ivanov
5ccad497d4 Merge "Fix LDFLAGS for arm and x86" 2015-10-29 00:43:00 +00:00
Dmitriy Ivanov
e85fb580c8 Fix LDFLAGS for arm and x86
Change-Id: I5366f4499cb4da3a51b8484ab3e4ff785f0888ab
2015-10-28 17:25:34 -07:00
Dimitry Ivanov
c5f943eb2e Merge "Generate per-architecture version scripts." am: 578d949e8d
am: b420ddd27e

* commit 'b420ddd27e1ce0becf0e57c0fc0efe9ec726ab21':
  Generate per-architecture version scripts.
2015-10-28 23:55:10 +00:00
Dimitry Ivanov
b420ddd27e Merge "Generate per-architecture version scripts."
am: 578d949e8d

* commit '578d949e8df782134127b4ae384f731d9d7c6694':
  Generate per-architecture version scripts.
2015-10-28 23:51:49 +00:00
Elliott Hughes
7f337bd1e3 Merge "Remove the legacy endusershell/getusershell/setusershell stubs." am: d9146c2404
am: 601183efaf

* commit '601183efafffb2a145736b4a3f73be1034d761b0':
  Remove the legacy endusershell/getusershell/setusershell stubs.
2015-10-28 23:48:12 +00:00
Dimitry Ivanov
578d949e8d Merge "Generate per-architecture version scripts." 2015-10-28 23:44:03 +00:00
Elliott Hughes
601183efaf Merge "Remove the legacy endusershell/getusershell/setusershell stubs."
am: d9146c2404

* commit 'd9146c24041ad571e3725ab630d9ac94df3ff6d1':
  Remove the legacy endusershell/getusershell/setusershell stubs.
2015-10-28 23:43:05 +00:00
Dmitriy Ivanov
284b468524 Generate per-architecture version scripts.
Bug: http://b/24767418
Change-Id: I23e49d8d30c0def3215ffbd99d09f207d9483624
2015-10-28 16:40:53 -07:00
Elliott Hughes
d9146c2404 Merge "Remove the legacy endusershell/getusershell/setusershell stubs." 2015-10-28 23:35:25 +00:00
Elliott Hughes
d7c7daada2 Remove the legacy endusershell/getusershell/setusershell stubs.
These don't work, aren't thread-safe, aren't in POSIX (or our header
files), and are only used by one app (whose developers I've contacted).
But the presence of these symbols causes configure to be confused, which
is a pain for Brillo.

Bug: http://b/24812426
Change-Id: I7fa6ef82864d5563929d9b8a7f8fcacb30b26d45
2015-10-28 14:20:16 -07:00
Elliott Hughes
2c11b07ee0 Merge "Implement scandirat and scandirat64." am: 1721be2229
am: a1be410fd7

* commit 'a1be410fd7f916063164fd9daf28ca992af828d7':
  Implement scandirat and scandirat64.
2015-10-27 22:02:54 +00:00
Elliott Hughes
a1be410fd7 Merge "Implement scandirat and scandirat64."
am: 1721be2229

* commit '1721be2229d07b5eea830f02a76e7be56d172aa9':
  Implement scandirat and scandirat64.
2015-10-27 21:57:55 +00:00
Elliott Hughes
1721be2229 Merge "Implement scandirat and scandirat64." 2015-10-27 21:40:31 +00:00
Elliott Hughes
6331e806de Implement scandirat and scandirat64.
Bug: http://b/12612339
Change-Id: Id3b249a884fe08964b26a017ae9574961f0cb441
2015-10-27 13:47:36 -07:00
Dimitry Ivanov
75347e52b0 Merge "Implement load at fixed address feature" am: 5238eb0984
am: 9e599956b2

* commit '9e599956b2ece835b480182eee27209b4a831a19':
  Implement load at fixed address feature
2015-10-27 19:17:38 +00:00
Dimitry Ivanov
9e599956b2 Merge "Implement load at fixed address feature"
am: 5238eb0984

* commit '5238eb09844f9c1578353d4c9e297aadb34c71be':
  Implement load at fixed address feature
2015-10-27 19:12:34 +00:00
Dimitry Ivanov
5238eb0984 Merge "Implement load at fixed address feature" 2015-10-27 19:03:53 +00:00
Dmitriy Ivanov
126af757c6 Implement load at fixed address feature
Bug: http://b/24683631
Change-Id: I3a39ab526c8f9e213339b60e135e5459d0f41381
2015-10-27 11:27:34 -07:00
Elliott Hughes
3b9b14830b Merge "Fix <utmp.h> declarations." am: 60752a2eea
am: 6e780f2f47

* commit '6e780f2f47655ce264cfe90c4a721eb609fdbfec':
  Fix <utmp.h> declarations.
2015-10-27 15:15:10 +00:00
Elliott Hughes
6e780f2f47 Merge "Fix <utmp.h> declarations."
am: 60752a2eea

* commit '60752a2eeab8cd0b344b27c67a47e30628962211':
  Fix <utmp.h> declarations.
2015-10-27 15:11:58 +00:00
Elliott Hughes
60752a2eea Merge "Fix <utmp.h> declarations." 2015-10-27 15:07:12 +00:00
Elliott Hughes
9216a64c90 Fix <utmp.h> declarations.
If we're going to keep this useless header -- and I think it's too late to
remove it -- it may as well be correct.

Bug: http://b/17700469
Change-Id: Ifec4f8f1a984483d7fa7d81d47786f75b70ff4ba
2015-10-26 19:29:12 -07:00
Elliott Hughes
164bd7349b Merge "Remove swap16/swap32/swap64 header pollution." am: a2cf3783d4
am: 00e9bfe523

* commit '00e9bfe523a045131142b13a766774f1ee43555e':
  Remove swap16/swap32/swap64 header pollution.
2015-10-27 02:14:39 +00:00
Elliott Hughes
00e9bfe523 Merge "Remove swap16/swap32/swap64 header pollution."
am: a2cf3783d4

* commit 'a2cf3783d4e9a4008ed468ef3204593f8f549934':
  Remove swap16/swap32/swap64 header pollution.
2015-10-27 02:11:17 +00:00
Elliott Hughes
a2cf3783d4 Merge "Remove swap16/swap32/swap64 header pollution." 2015-10-27 02:07:35 +00:00
Elliott Hughes
bf4c32df6b Remove swap16/swap32/swap64 header pollution.
This seems to be obsolete BSD stuff, and the only references to it in the
tree are people #undef'ing it.

Bug: http://b/2735009
Change-Id: Icde523ae2d15cf1025357d861f97b415e89e4f9a
2015-10-26 17:51:42 -07:00
Dimitry Ivanov
159f0d4013 Merge "Implement Library Load Order Randomization" am: 6a4ddeb56e
am: 3d784087cd

* commit '3d784087cd292f5ed10f9560f28152db3c4d550e':
  Implement Library Load Order Randomization
2015-10-26 22:43:06 +00:00
Dimitry Ivanov
3d784087cd Merge "Implement Library Load Order Randomization"
am: 6a4ddeb56e

* commit '6a4ddeb56ef2144e98437ae82f84b09ea785e411':
  Implement Library Load Order Randomization
2015-10-26 22:38:01 +00:00
Dimitry Ivanov
6a4ddeb56e Merge "Implement Library Load Order Randomization" 2015-10-26 22:30:35 +00:00
Christopher Ferris
382524878a Merge "Fix arm64 fenv warnings, and make warnings errors." am: 1ab8251030
am: 25a7efa7e9

* commit '25a7efa7e9a4bee5cae872c59a5edab8cae147da':
  Fix arm64 fenv warnings, and make warnings errors.
2015-10-24 16:10:07 +00:00
Christopher Ferris
25a7efa7e9 Merge "Fix arm64 fenv warnings, and make warnings errors."
am: 1ab8251030

* commit '1ab8251030407ec397009b46db025f8e9688abc8':
  Fix arm64 fenv warnings, and make warnings errors.
2015-10-24 16:06:17 +00:00
Christopher Ferris
1ab8251030 Merge "Fix arm64 fenv warnings, and make warnings errors." 2015-10-24 16:00:29 +00:00
Christopher Ferris
fa7752986d Fix arm64 fenv warnings, and make warnings errors.
Even though the control registers being read/written in fenv.c only
have 32 bits that are used, the instructions take a 64 bit register.
Make sure the inline assembler in the macros use 64 bit values.

Verified that before the change and after the change, the disassembly
is exactly the same.

In addition, add -Werror to the cflags.

Change-Id: I6603779327488c23e3aab13300edf2e02b101916
2015-10-23 16:41:17 -07:00
Christopher Ferris
c9ad2274b2 Merge "Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC." am: ca430d9787
am: c5b9c4d72f

* commit 'c5b9c4d72f141fea8b03561c0c8f5f7068ea93ea':
  Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC.
2015-10-23 21:08:31 +00:00
Dimitry Ivanov
172cdd79a5 Merge "refactoring: introduce MappedFileFragment" am: e08ab4b414
am: 67e282d511

* commit '67e282d5111fd8920b271dd1bbbb7348e06f719f':
  refactoring: introduce MappedFileFragment
2015-10-23 21:08:26 +00:00
Christopher Ferris
c5b9c4d72f Merge "Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC."
am: ca430d9787

* commit 'ca430d9787f1c11c2df8e908c64fe2ef2e6d54ed':
  Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC.
2015-10-23 21:02:56 +00:00
Dimitry Ivanov
67e282d511 Merge "refactoring: introduce MappedFileFragment"
am: e08ab4b414

* commit 'e08ab4b4144b8c4c920221b403daa220b43df2fb':
  refactoring: introduce MappedFileFragment
2015-10-23 21:02:51 +00:00
Christopher Ferris
ca430d9787 Merge "Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC." 2015-10-23 20:56:09 +00:00
Dimitry Ivanov
e08ab4b414 Merge "refactoring: introduce MappedFileFragment" 2015-10-23 20:54:00 +00:00
Christopher Ferris
a818445622 Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC.
Change-Id: If4da9e46398ca5524f6f0680d70588e3dc7e80b4
2015-10-23 12:32:52 -07:00
Andreas Gampe
bdff4ce8ed resolve merge conflicts of 216bff9ff3 to mnc-dr-dev.
am: 807032d0e1

* commit '807032d0e12877a4c92ac7f6072d5dd9e1f76f3c':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-23 05:39:52 +00:00
Andreas Gampe
807032d0e1 resolve merge conflicts of 216bff9ff3 to mnc-dr-dev.
Change-Id: I63c4f3a4e56f30d6f476ad2c623c23ee7e1a3778
2015-10-22 22:15:26 -07:00
Yabin Cui
12b46fb00e Merge "Use bionic lock in pthread_internal_t." am: c45f3bf3e6
am: 0507b6e9e6

* commit '0507b6e9e65132a95bc0e366faa0df729b219b43':
  Use bionic lock in pthread_internal_t.
2015-10-23 04:36:12 +00:00
Yabin Cui
0507b6e9e6 Merge "Use bionic lock in pthread_internal_t."
am: c45f3bf3e6

* commit 'c45f3bf3e691f48af63c5ea2bf7a348a698013ac':
  Use bionic lock in pthread_internal_t.
2015-10-23 04:32:44 +00:00
Yabin Cui
c45f3bf3e6 Merge "Use bionic lock in pthread_internal_t." 2015-10-23 04:26:54 +00:00
Yabin Cui
d26e780df6 Use bionic lock in pthread_internal_t.
It removes calling to pthread_mutex_lock() at the beginning of new
thread, which helps to support thread sanitizer.

Change-Id: Ia3601c476de7976a9177b792bd74bb200cee0e13
2015-10-22 20:14:33 -07:00
Dmitriy Ivanov
4f7a7ad3fe Implement Library Load Order Randomization
Bug: http://b/24047022
Change-Id: I36e05b403bfbaae8542a95147f9114a8b9c8ac0e
2015-10-22 18:26:07 -07:00
Dmitriy Ivanov
cf1cbbe432 refactoring: introduce MappedFileFragment
Change-Id: I97b0c1131711ed0ac13ab33e3357e99e0b6b1a4e
2015-10-22 18:01:56 -07:00
Christopher Ferris
216bff9ff3 resolve merge conflicts of d676080a37 to lmp-mr1-ub-dev.
am: afff4442ae

* commit 'afff4442ae092469f298a71862d61c65ceb67b03':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-22 22:27:54 +00:00
Christopher Ferris
afff4442ae resolve merge conflicts of d676080a37 to lmp-mr1-ub-dev.
Change-Id: I56c1bb2adb4b6a48733c928415e788e689b4944e
2015-10-21 14:56:52 -07:00
Elliott Hughes
d676080a37 Sync with upstream NetBSD lib/libc/regex.
am: 055a66c9b1

* commit '055a66c9b1017c01b82c12b65a571bf9efad8b19':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-21 21:45:01 +00:00
Dan Willemsen
258a775d75 Merge "Switch to LOCAL_SRC_FILES_EXCLUDE" am: 5edf077c5b
am: 788eae7286

* commit '788eae728675bcf59f2b0809e85532c6ac357e2c':
  Switch to LOCAL_SRC_FILES_EXCLUDE
2015-10-20 20:58:25 +00:00
Dan Willemsen
788eae7286 Merge "Switch to LOCAL_SRC_FILES_EXCLUDE"
am: 5edf077c5b

* commit '5edf077c5b92f0db212e45ed5402339a6e4c7334':
  Switch to LOCAL_SRC_FILES_EXCLUDE
2015-10-20 20:52:01 +00:00
Dan Willemsen
5edf077c5b Merge "Switch to LOCAL_SRC_FILES_EXCLUDE" 2015-10-20 20:44:29 +00:00
Dan Willemsen
268a673bd1 Switch to LOCAL_SRC_FILES_EXCLUDE
This moves the generic arm/arm64/x86 settings into the main makefiles
and makes the rest of them derivatives. This better aligns with how
soong handles arch/cpu variants.

Also updates the Android.bp to make it consistent with the make
versions.

Change-Id: I5a0275d992bc657459eb6fe1697ad2336731d122
2015-10-20 11:58:28 -07:00
Mike Frysinger
4e0c4032d1 Merge "dlfcn: update ifdef around old_name_" am: 5c495dacda
am: 0fb6704e82

* commit '0fb6704e82fef450a01cca3b13d2fa02f66d47a5':
  dlfcn: update ifdef around old_name_
2015-10-20 18:42:59 +00:00
Mike Frysinger
0fb6704e82 Merge "dlfcn: update ifdef around old_name_"
am: 5c495dacda

* commit '5c495dacdadff9dfbe48be31d4b30c5fe75ac7db':
  dlfcn: update ifdef around old_name_
2015-10-20 18:31:32 +00:00
Mike Frysinger
5c495dacda Merge "dlfcn: update ifdef around old_name_" 2015-10-20 18:23:22 +00:00
Mike Frysinger
747d30ebf3 dlfcn: update ifdef around old_name_
Commit 9185e04f72c16d2a66d92ac89b38ee926d7f706b changed the ifdef around
old_name_ from __arm__ to __work_around_b_###__, but missed one place in
dlfcn.cpp.  So if you do a build w/out that workaround for arm, you end
up with a build failure:
bionic/linker/dlfcn.cpp:275:27: error: no member named 'old_name_' in 'soinfo'
    strlcpy(__libdl_info->old_name_, __libdl_info->soname_, sizeof(__libdl_info->old_name_));
            ~~~~~~~~~~~~  ^
bionic/linker/dlfcn.cpp:275:82: error: no member named 'old_name_' in 'soinfo'
    strlcpy(__libdl_info->old_name_, __libdl_info->soname_, sizeof(__libdl_info->old_name_));
                                                                   ~~~~~~~~~~~~  ^

Bug: 24425865
Change-Id: Idbe1cc1c28083afeee6d90203c221f30f661c69c
2015-10-20 14:06:25 -04:00
Josh Gao
56ecb9bf2a Merge "Remove deprecated use of ldm/stm in ARM setjmp." am: f5ea085844
am: 053867ded8

* commit '053867ded82271f3f2795f3dcf62b4e7735619c8':
  Remove deprecated use of ldm/stm in ARM setjmp.
2015-10-20 01:48:47 +00:00
Josh Gao
053867ded8 Merge "Remove deprecated use of ldm/stm in ARM setjmp."
am: f5ea085844

* commit 'f5ea085844c66e7a65709edd7485a49396e556ce':
  Remove deprecated use of ldm/stm in ARM setjmp.
2015-10-20 01:30:32 +00:00
Josh Gao
f5ea085844 Merge "Remove deprecated use of ldm/stm in ARM setjmp." 2015-10-20 01:01:19 +00:00
Josh Gao
b24d743f62 Remove deprecated use of ldm/stm in ARM setjmp.
ARM deprecates using the SP register in the register lists for ldm
and stm, which LLVM emits a warning for.

Bug: http://b/25017080
Change-Id: Ib427e3dfd5740e251f1ad91ebb66534e0d7b72a9
2015-10-19 17:13:51 -07:00
Elliott Hughes
64f628f8d3 am 43b1f823: am 1a61896b: am 98384649: am 75316283: am 2d23418e: am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '43b1f823b5a739437cbe14e24d8449028e3c8f6e':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 17:46:59 +00:00
Elliott Hughes
055a66c9b1 Sync with upstream NetBSD lib/libc/regex.
Bug: http://b/22850181
Change-Id: I11a51a2031e68a953ccd5691da98c699c7d01904

(cherry-picked from commit 71927a82379f7a72559ea96e6678d6215090937f)
2015-10-19 10:42:31 -07:00
Elliott Hughes
43b1f823b5 am 1a61896b: am 98384649: am 75316283: am 2d23418e: am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '1a61896b1bc470f9377eeeafec461aba0d0dda6c':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 17:32:59 +00:00
Elliott Hughes
1a61896b1b am 98384649: am 75316283: am 2d23418e: am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '98384649b2d3f3eb5b03077bc0004e14a99a4d55':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 17:29:49 +00:00
Elliott Hughes
98384649b2 am 75316283: am 2d23418e: am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '753162836a0d3a82739611c9e30aa872363558b1':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 17:25:29 +00:00
Elliott Hughes
753162836a am 2d23418e: am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '2d23418e68acdab7e142cc75db2850a54aa829aa':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 10:14:41 -07:00
Elliott Hughes
2d23418e68 am 18442e02: (-s ours) am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit '18442e023536c5cf205b820ed5d74b972b710acb':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 10:07:34 -07:00
Elliott Hughes
18442e0235 am beb6e08a: Sync with upstream NetBSD lib/libc/regex.
* commit 'beb6e08abf1393663151afde2742bb23eccab4e1':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-19 15:34:19 +00:00
Elliott Hughes
630855a6d5 am 6764e0b5: am d29ba555: Merge "Opt Brillo out of the ndk cruft."
* commit '6764e0b5e546c318d13fcac0ddbf0bea88271768':
  Opt Brillo out of the ndk cruft.
2015-10-17 03:16:47 +00:00
Elliott Hughes
6764e0b5e5 am d29ba555: Merge "Opt Brillo out of the ndk cruft."
* commit 'd29ba555130f1e61164cf6186cd6a29c7aa14719':
  Opt Brillo out of the ndk cruft.
2015-10-16 20:10:48 -07:00
Elliott Hughes
d29ba55513 Merge "Opt Brillo out of the ndk cruft." 2015-10-17 03:06:41 +00:00
Elliott Hughes
beb6e08abf Sync with upstream NetBSD lib/libc/regex.
Bug: http://b/22850181
(cherry-picked from commit 71927a82379f7a72559ea96e6678d6215090937f)

Change-Id: I11a51a2031e68a953ccd5691da98c699c7d01904
2015-10-16 17:52:55 -07:00
Dimitry Ivanov
a60b1aebb7 am 114605b0: am 5fd94dfe: Merge "Replace auto -> const auto&/auto&&"
* commit '114605b03666230f11113990b828356bfe692278':
  Replace auto -> const auto&/auto&&
2015-10-16 20:48:32 +00:00
Dimitry Ivanov
56cd1962b2 am c0e917ab: am 9c2122e8: Merge "Fix R_AARCH64_ABS/PREL relocations"
* commit 'c0e917abe5e94ce9729a8302b5ef3cb318003ea5':
  Fix R_AARCH64_ABS/PREL relocations
2015-10-16 20:48:30 +00:00
Dimitry Ivanov
114605b036 am 5fd94dfe: Merge "Replace auto -> const auto&/auto&&"
* commit '5fd94dfe3b36ee56e54d2002ad3a5e0fa8bff683':
  Replace auto -> const auto&/auto&&
2015-10-16 13:41:45 -07:00
Dimitry Ivanov
c0e917abe5 am 9c2122e8: Merge "Fix R_AARCH64_ABS/PREL relocations"
* commit '9c2122e803a01c80bef550eac2b24b5a79635a2a':
  Fix R_AARCH64_ABS/PREL relocations
2015-10-16 13:41:44 -07:00
Dimitry Ivanov
5fd94dfe3b Merge "Replace auto -> const auto&/auto&&" 2015-10-16 20:37:34 +00:00
Dimitry Ivanov
9c2122e803 Merge "Fix R_AARCH64_ABS/PREL relocations" 2015-10-16 20:36:25 +00:00
Dmitriy Ivanov
77f91c6d99 Fix R_AARCH64_ABS/PREL relocations
According to specification arm64 relocations
should not use *reloc value.

See http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056b/IHI0056B_aaelf64.pdf
section 4.6.5

Bug: http://b/24977219
Bug: http://b/24527155
Change-Id: I3813255771f408ba957963c6ad56ed08e5110d83
2015-10-16 10:42:16 -07:00
Neil Fuller
3676052ce7 am 842866bd: Merge "Update timezone data to 2015g" into mnc-dr-dev
* commit '842866bd00220119e03fd8d2e6b77d7187b4b38c':
  Update timezone data to 2015g
2015-10-15 09:21:59 +00:00
Neil Fuller
842866bd00 Merge "Update timezone data to 2015g" into mnc-dr-dev 2015-10-15 08:25:58 +00:00
Dmitriy Ivanov
845dd0266b resolved conflicts for 95ac6dbb to mnc-dr-dev-plus-aosp
Change-Id: I8937cd33aa375824965d4f919038a99b30ab75ea
2015-10-14 18:41:36 -07:00
Dimitry Ivanov
c70d479dc6 am 8c9cb682: am 074efa02: Merge "Ensure that readlink has access to /proc/self/fd"
* commit '8c9cb6820fca3f73414219d816e10355a7052dbd':
  Ensure that readlink has access to /proc/self/fd
2015-10-15 01:37:37 +00:00
Dimitry Ivanov
8c9cb6820f am 074efa02: Merge "Ensure that readlink has access to /proc/self/fd"
* commit '074efa02a7de67589c36f75222e3b45c3f15206a':
  Ensure that readlink has access to /proc/self/fd
2015-10-15 01:31:15 +00:00
Christopher Ferris
9e2d37ccae am 3c30a156: Merge "Sync with upstream NetBSD lib/libc/regex." into mnc-dr-dev
* commit '3c30a156523f40250361e6ed8791919d1c71a4bb':
  Sync with upstream NetBSD lib/libc/regex.
2015-10-15 01:29:05 +00:00
Dimitry Ivanov
074efa02a7 Merge "Ensure that readlink has access to /proc/self/fd" 2015-10-15 01:27:17 +00:00
Dmitriy Ivanov
4e50d0247b Ensure that readlink has access to /proc/self/fd
/proc/self/fd is not available when PR_DUMPABLE is set to 0
which is default for the user builds. It leads to permission
denials on readlink.

This change fixes the problem by setting PR_DUMPABLE flag to 1
for readlink and restoring it's previous value after the call.

Bug: http://b/24912743
Change-Id: I3fd179c5c6b56af96d6a15ee597024ccb15e1a13
(cherry picked from commit cf92738fa5dee24050028a1235f815f2a0fd33b5)
2015-10-14 18:24:54 -07:00
Dimitry Ivanov
95ac6dbbb2 Merge "Ensure that readlink has access to /proc/self/fd" into mnc-dr-dev 2015-10-15 01:17:55 +00:00
Christopher Ferris
3c30a15652 Merge "Sync with upstream NetBSD lib/libc/regex." into mnc-dr-dev 2015-10-15 01:15:22 +00:00
Josh Gao
b16f1b4b89 am 559d9cf5: am c433a36f: Merge "Move malloc dispatch table to __libc_globals."
* commit '559d9cf5fa6d5339d1578530a73ecb81a91c27d9':
  Move malloc dispatch table to __libc_globals.
2015-10-14 23:54:59 +00:00
Josh Gao
559d9cf5fa am c433a36f: Merge "Move malloc dispatch table to __libc_globals."
* commit 'c433a36fb5fb8a1050e8ecbd94d215123b829e07':
  Move malloc dispatch table to __libc_globals.
2015-10-14 23:50:51 +00:00
Josh Gao
c433a36fb5 Merge "Move malloc dispatch table to __libc_globals." 2015-10-14 23:47:41 +00:00
Elliott Hughes
9a9572d577 Sync with upstream NetBSD lib/libc/regex.
Bug: http://b/22850181

(cherry picked from commit 71927a82379f7a72559ea96e6678d6215090937f)

Change-Id: I4a914f0594a66f38efb3026b7ba9d28a4887cb2d
2015-10-14 16:30:08 -07:00
Dmitriy Ivanov
cf92738fa5 Ensure that readlink has access to /proc/self/fd
/proc/self/fd is not available when PR_DUMPABLE is set to 0
which is default for the user builds. It leads to permission
denials on readlink.

This change fixes the problem by setting PR_DUMPABLE flag to 1
for readlink and restoring it's previous value after the call.

Bug: http://b/24912743
Change-Id: I3fd179c5c6b56af96d6a15ee597024ccb15e1a13
2015-10-14 11:15:45 -07:00
Neil Fuller
cd9278798a Update timezone data to 2015g
Changes affecting future time stamps

    Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25.
    (Thanks to Fatih.)

    Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time.
    (Thanks to Alexander Krivenyshev.)

    Fiji's 2016 fall-back transition is scheduled for January 17, not 24.
    (Thanks to Ken Rylander.)

    Fort Nelson, British Columbia will not fall back on 2015-11-01. It has
    effectively been on MST (-0700) since it advanced its clocks on 2015-03-08.
    New zone America/Fort_Nelson.  (Thanks to Matt Johnson.)

  Changes affecting past time stamps

    Norfolk observed DST from 1974-10-27 02:00 to 1975-03-02 02:00.

Bug: 24595281
(cherry-picked from commit 31740bfdb942399235e42ea920b6b717dfa0279c)

Change-Id: I6a57fbdaf12a4b4ebf2a760fd3bd872055621106
2015-10-14 08:54:17 +00:00
Josh Gao
87bb58064d am 36ebee4f: am 198d13e8: Merge "make mmap fail on requests larger than PTRDIFF_MAX"
* commit '36ebee4f495b0c49ed686221dfe127f4ccd12b52':
  make mmap fail on requests larger than PTRDIFF_MAX
2015-10-14 02:27:42 +00:00
Josh Gao
36ebee4f49 am 198d13e8: Merge "make mmap fail on requests larger than PTRDIFF_MAX"
* commit '198d13e8c25e69f7dbda3f5e1a3258b13fe8db5d':
  make mmap fail on requests larger than PTRDIFF_MAX
2015-10-14 02:21:04 +00:00
Josh Gao
198d13e8c2 Merge "make mmap fail on requests larger than PTRDIFF_MAX" 2015-10-14 02:17:10 +00:00
Dimitry Ivanov
b8ab96910f am 090278d6: am 11c2179d: Merge "Log dlopen failures caused by text relocations"
* commit '090278d6c6e3501836c70ce555996511b96a38d9':
  Log dlopen failures caused by text relocations
2015-10-13 23:01:36 +00:00
Dimitry Ivanov
090278d6c6 am 11c2179d: Merge "Log dlopen failures caused by text relocations"
* commit '11c2179d468bba3336c3a3e8418ddaa98f58afce':
  Log dlopen failures caused by text relocations
2015-10-13 22:53:03 +00:00
Dimitry Ivanov
11c2179d46 Merge "Log dlopen failures caused by text relocations" 2015-10-13 22:50:05 +00:00
Dmitriy Ivanov
fae39d2bf9 Log dlopen failures caused by text relocations
Some apps will fail to load native libraries with
text relocations when switching target sdk version to M.
It could be hard to diagnose because some of them
suppress dlerror and/or UnsatisfiedLinkError.

This change unconditionally logs the error message making
the cause of the failure more visible to developers.

Bug: http://b/24876001
Change-Id: I0477a0d1307d0879000f3a3a43b974b4cf34bdb2
(cherry picked from commit f32b689d3dbe7a1317bce58d1d9bef9bba173c66)
2015-10-13 15:48:57 -07:00
Dmitriy Ivanov
1002265d0a resolved conflicts for f32b689d to mnc-dr-dev-plus-aosp
Change-Id: I95f90eb68dcb4b3f4b3d80260b2285c78692b535
2015-10-13 14:59:20 -07:00
Dimitry Ivanov
7197c2909d am 5db60c04: am 30cd7065: Merge "Correctly resolve realpath for absolute paths"
* commit '5db60c04c68ed5f0d9ef9bc0e8c2a84062287b8d':
  Correctly resolve realpath for absolute paths
2015-10-13 20:51:11 +00:00
Dimitry Ivanov
5db60c04c6 am 30cd7065: Merge "Correctly resolve realpath for absolute paths"
* commit '30cd7065b6cd37342e23904cb512c409b8bbd4f1':
  Correctly resolve realpath for absolute paths
2015-10-13 20:43:36 +00:00
Dimitry Ivanov
30cd7065b6 Merge "Correctly resolve realpath for absolute paths" 2015-10-13 20:37:55 +00:00
Dmitriy Ivanov
5dce8948b6 Replace auto -> const auto&/auto&&
Change-Id: Ie484e5a296b5dd222a9545d8539d40d97a6c158c
2015-10-13 12:14:16 -07:00
Dmitriy Ivanov
f32b689d3d Log dlopen failures caused by text relocations
Some apps will fail to load native libraries with
text relocations when switching target sdk version to M.
It could be hard to diagnose because some of them
suppress dlerror and/or UnsatisfiedLinkError.

This change unconditionally logs the error message making
the cause of the failure more visible to developers.

Bug: http://b/24876001
Change-Id: I0477a0d1307d0879000f3a3a43b974b4cf34bdb2
2015-10-13 11:13:19 -07:00
Lazar Trsic
6f2d3104c8 Correctly resolve realpath for absolute paths
Introduced by: https://android-review.googlesource.com/174475

Change-Id: I44e00040b28be167d5141454f919340afec6084e
2015-10-13 10:57:41 -07:00
Neil Fuller
1cdd99bcb9 am 12b4f21e: am fb7f45b6: Merge "Update timezone data to 2015g"
* commit '12b4f21e1969b0eceeedb52b2ff0f77a1f791908':
  Update timezone data to 2015g
2015-10-13 09:24:08 +00:00
Neil Fuller
12b4f21e19 am fb7f45b6: Merge "Update timezone data to 2015g"
* commit 'fb7f45b6a3242c9a9a547705de08cf59e6b7f935':
  Update timezone data to 2015g
2015-10-13 09:14:17 +00:00
Neil Fuller
fb7f45b6a3 Merge "Update timezone data to 2015g" 2015-10-13 08:26:44 +00:00
Dimitry Ivanov
433cdaa85f am 5a805d91: am a5ad727e: Merge "linker: Switch to clang"
* commit '5a805d919c0a531c0e8bbae746d192db218d625d':
  linker: Switch to clang
2015-10-13 01:46:10 +00:00
Dimitry Ivanov
5a805d919c am a5ad727e: Merge "linker: Switch to clang"
* commit 'a5ad727e7619f4497792d67ae05b8ef15315b362':
  linker: Switch to clang
2015-10-13 01:40:49 +00:00
Dimitry Ivanov
a5ad727e76 Merge "linker: Switch to clang" 2015-10-13 01:34:59 +00:00
Dmitriy Ivanov
b28ffc7744 linker: Switch to clang
x86_64 gcc exports malloc/free and co functions because they
are defined with visibility "default" somewhere in gcc builtins;
and vector d-tors for some reason. Switching to clang fixes
this problem.

Bug: http://b/24785482
Change-Id: I741503b4b446523e7ff3fb16de13ed99991fd0c0
2015-10-12 18:20:26 -07:00
Josh Gao
3c8fc2fea9 Move malloc dispatch table to __libc_globals.
Change-Id: Ic20b980d1e8b6c2d4b773ebe336658fd17c737cb
2015-10-12 17:54:58 -07:00
Elliott Hughes
fb8fd5076e Opt Brillo out of the ndk cruft.
Bug: http://b/24812426
Change-Id: I6a858d8ceebce9e2285e5b12de9fd89d2b42b352
2015-10-12 17:53:48 -07:00
Dmitriy Ivanov
78f1871f4e resolved conflicts for a828a2f8 to mnc-dr-dev-plus-aosp
Change-Id: Ibe8c145eaadcd1fa9229d8a6eda1e33c0e59fb12
2015-10-12 15:02:28 -07:00
Elliott Hughes
452ab8f7e3 am 25cba7df: Merge "Make struct FILE opaque."
* commit '25cba7df5120a32b144769843781442031fc597b':
  Make struct FILE opaque.
2015-10-12 20:40:41 +00:00
Elliott Hughes
25cba7df51 Merge "Make struct FILE opaque." 2015-10-12 20:33:04 +00:00
Elliott Hughes
f0141dfab1 Make struct FILE opaque.
Bug: http://b/24807045
Change-Id: I3cb4e436325a65bef3b203e3970e4d967101fcce
2015-10-12 12:53:42 -07:00
Elliott Hughes
7c585f2b01 am e7839263: Merge "Fix stdio read after EOF behavior."
* commit 'e78392637d5086384a5631ddfdfa8d7ec8326ee3':
  Fix stdio read after EOF behavior.
2015-10-12 15:23:48 +00:00
Elliott Hughes
e78392637d Merge "Fix stdio read after EOF behavior." 2015-10-12 15:20:29 +00:00
Elliott Hughes
8ab433df13 Fix stdio read after EOF behavior.
Bug: https://code.google.com/p/android/issues/detail?id=184847
Change-Id: Ia20ce94007c2a09649f0763b1dc7ba959f2f618d
2015-10-09 17:57:26 -07:00
Elliott Hughes
d8c03b774e am 1ab3f303: Merge "Fix inet_aton on LP32."
* commit '1ab3f303d2e7c8cc498a28fc3c8d9ded1fc46994':
  Fix inet_aton on LP32.
2015-10-10 00:44:51 +00:00
Elliott Hughes
1ab3f303d2 Merge "Fix inet_aton on LP32." 2015-10-10 00:39:11 +00:00
Elliott Hughes
7b77cb35af Fix inet_aton on LP32.
I wasn't checking for overflow. Luckily, I had a test that overflows on LP32.

Change-Id: If2cf33d88f459eb26d0ce75f3c5ed192f516ab7a
2015-10-09 17:36:05 -07:00
Mike Frysinger
132b9c90fc am c6f704bf: Merge "utmp.h: add more ut_type defines"
* commit 'c6f704bf77576b2cf27decd8ee50c99aeeb9e209':
  utmp.h: add more ut_type defines
2015-10-09 23:37:18 +00:00
Mike Frysinger
c6f704bf77 Merge "utmp.h: add more ut_type defines" 2015-10-09 23:33:37 +00:00
Josh Gao
ac47790ad8 am 902ab885: Merge "Move setjmp cookie to a shared globals struct."
* commit '902ab8859f360d81d6bd03a76a77900743018a15':
  Move setjmp cookie to a shared globals struct.
2015-10-09 23:33:32 +00:00
Josh Gao
dc9ff1b80b am 73a91218: Merge "Move VDSO pointers to a shared globals struct."
* commit '73a91218d1f0b334b97648461b19eed96e6c4336':
  Move VDSO pointers to a shared globals struct.
2015-10-09 23:33:30 +00:00
Josh Gao
902ab8859f Merge "Move setjmp cookie to a shared globals struct." 2015-10-09 23:27:07 +00:00
Josh Gao
73a91218d1 Merge "Move VDSO pointers to a shared globals struct." 2015-10-09 23:26:53 +00:00
Josh Gao
fe9d0ed6cb Move setjmp cookie to a shared globals struct.
Change-Id: I59a4c187d61524c4e48655c4c6376dba0d41eee2
2015-10-09 15:59:04 -07:00
Josh Gao
93c0f5ee00 Move VDSO pointers to a shared globals struct.
Change-Id: I01cbc9cf0917dc1fac52d9205bda2c68529d12ef
2015-10-09 15:59:04 -07:00
Elliott Hughes
8733118fa5 am 487a1823: Merge "Fix inet_addr/inet_aton/inet_network."
* commit '487a1823e8617011009eded8eae9a75c1f871887':
  Fix inet_addr/inet_aton/inet_network.
2015-10-09 22:53:45 +00:00
Mike Frysinger
68af0adeb9 utmp.h: add more ut_type defines
This fills out the defines that utmp.h normally offers on other systems
such as glibc.

BUG=24810744

Change-Id: If57f9ced22e8673f072245fce3f5c0f8e1f591e5
2015-10-09 18:52:49 -04:00
Elliott Hughes
487a1823e8 Merge "Fix inet_addr/inet_aton/inet_network." 2015-10-09 22:48:13 +00:00
Elliott Hughes
047866672c Fix inet_addr/inet_aton/inet_network.
Rewrite inet_addr and inet_network in terms of inet_aton, and reimplement
that to include all the missing error checks.

Bug: http://b/24754503
Change-Id: I5dfa971c87201968985a0894df419f0fbf54768a
2015-10-09 15:44:24 -07:00
Elliott Hughes
c1d7d92201 am f41fe717: Merge "Sync with upstream tzcode (2015g)."
* commit 'f41fe717655f01affc1d8244ff9efccc04d86620':
  Sync with upstream tzcode (2015g).
2015-10-09 22:42:25 +00:00
Elliott Hughes
f41fe71765 Merge "Sync with upstream tzcode (2015g)." 2015-10-09 22:35:24 +00:00
Elliott Hughes
9fb22a3ec4 Sync with upstream tzcode (2015g).
This is quite a large patch because we haven't updated for some time,
but the good news is that upstream is now thread-safe so a lot of our
changes go away in this update and the remaining diff is a lot smaller.

(Note that our whitespace still doesn't match upstream. I use diff -wub
to compare. Upstream doesn't even really have a consistent style. New
code seems to be two spaces, old code tabs.)

From the intervening changelogs (eliding the changes that only affected
the tools, which we don't use):

2014a:
     An uninitialized-storage bug in 'localtime' has been fixed.
     (Thanks to Logan Chien.)

2014b:
     'zic' and 'localtime' no longer reject locations needing four
     transitions per year for the forseeable future.  (Thanks to Andrew
     Main (Zefram).)

2014c:
     <None>

2014d:
     <None>

2014e:
     <None>

2014f:
     'localtime', 'mktime', etc. now use much less stack space if
     ALL_STATE is defined.  (Thanks to Elliott Hughes for reporting the
     problem.)

     Some lint has been removed when using GCC_DEBUG_FLAGS with GCC
     4.9.0.

2014g:
     Unless NETBSD_INSPIRED is defined to 0, the tz library now
     supplies functions for creating and using objects that represent
     time zones. The new functions are tzalloc, tzfree, localtime_rz,
     mktime_z, and (if STD_INSPIRED is also defined) posix2time_z and
     time2posix_z.  They are intended for performance: for example,
     localtime_rz (unlike localtime_r) is trivially thread-safe without
     locking.  (Thanks to Christos Zoulas for proposing NetBSD-inspired
     functions, and to Alan Barrett and Jonathan Lennox for helping to
     debug the change.)

     If THREAD_SAFE is defined to 1, the tz library is now thread-safe.
     Although not needed for tz's own applications, which are single-threaded,
     this supports POSIX better if the tz library is used in multithreaded apps.

     Some crashes have been fixed when zdump or the tz library is given
     invalid or outlandish input.

     The tz library no longer mishandles leap seconds on platforms with
     unsigned time_t in time zones that lack ordinary transitions after 1970.

     The tz code now attempts to infer TM_GMTOFF and TM_ZONE if not
     already defined, to make it easier to configure on common platforms.
     Define NO_TM_GMTOFF and NO_TM_ZONE to suppress this.

     Unless the new macro UNINIT_TRAP is defined to 1, the tz code now
     assumes that reading uninitialized memory yields garbage values
     but does not cause other problems such as traps.

     If TM_GMTOFF is defined and UNINIT_TRAP is 0, mktime is now
     more likely to guess right for ambiguous time stamps near
     transitions where tm_isdst does not change.

     If HAVE_STRFTIME_L is defined to 1, the tz library now defines
     strftime_l for compatibility with recent versions of POSIX.
     Only the C locale is supported, though.  HAVE_STRFTIME_L defaults
     to 1 on recent POSIX versions, and to 0 otherwise.

     tzselect -c now uses a hybrid distance measure that works better
     in Africa.  (Thanks to Alan Barrett for noting the problem.)

     The C source code now ports to NetBSD when GCC_DEBUG_FLAGS is used,
     or when time_tz is defined.

     When HAVE_UTMPX_H is set the 'date' command now builds on systems
     whose <utmpx.h> file does not define WTMPX_FILE, and when setting
     the date it updates the wtmpx file if _PATH_WTMPX is defined.
     This affects GNU/Linux and similar systems.

     For easier maintenance later, some C code has been simplified,
     some lint has been removed, and the code has been tweaked so that
     plain 'make' is more likely to work.

     The C type 'bool' is now used for boolean values, instead of 'int'.

     The long-obsolete LOCALE_HOME code has been removed.

     The long-obsolete 'gtime' function has been removed.

2014h:
     The tz library's localtime and mktime functions now set tzname to a value
     appropriate for the requested time stamp, and zdump now uses this
     on platforms not defining TM_ZONE, fixing a 2014g regression.
     (Thanks to Tim Parenti for reporting the problem.)

     The tz library no longer sets tzname if localtime or mktime fails.

     An access to uninitalized data has been fixed.
     (Thanks to Jörg Richter for reporting the problem.)

     When THREAD_SAFE is defined, the code ports to the C11 memory model.
     A memory leak has been fixed if ALL_STATE and THREAD_SAFE are defined
     and two threads race to initialize data used by gmtime-like functions.
     (Thanks to Andy Heninger for reporting the problems.)

2014i:
     The time-related library functions now set errno on failure,
     and some crashes in the new tzalloc-related library functions
     have been fixed.  (Thanks to Christos Zoulas for reporting
     most of these problems and for suggesting fixes.)

     If USG_COMPAT is defined and the requested time stamp is
     standard time, the tz library's localtime and mktime functions
     now set the extern variable timezone to a value appropriate
     for that time stamp; and similarly for ALTZONE, daylight
     saving time, and the altzone variable.  This change is a
     companion to the tzname change in 2014h, and is designed to
     make timezone and altzone more compatible with tzname.

     The tz library's functions now set errno to EOVERFLOW if they
     fail because the result cannot be represented.  ctime and
     ctime_r now return NULL and set errno when a time stamp is out
     of range, rather than having undefined behavior.

     Some bugs associated with the new 2014g functions have been
     fixed.  This includes a bug that largely incapacitated the new
     functions time2posix_z and posix2time_z.  (Thanks to Christos
     Zoulas.)  It also includes some uses of uninitialized
     variables after tzalloc.  The new code uses the standard type
     'ssize_t', which the Makefile now gives porting advice about.

2014j:
     <None>

2015a:
     tzalloc now scrubs time zone abbreviations compatibly with the way
     that tzset always has, by replacing invalid bytes with '_' and by
     shortening too-long abbreviations.

2015b:
     Fix integer overflow bug in reference 'mktime' implementation.
     (Problem reported by Jörg Richter.)

     Allow -Dtime_tz=time_t compilations, and allow -Dtime_tz=... libraries
     to be used in the same executable as standard-library time_t functions.
     (Problems reported by Bradley White.)

2015c:
     <None>

2015d:
     <None>

2015e:
     <None>

2015f:
     <None>

2015g:
    localtime no longer mishandles America/Anchorage after 2037.
    (Thanks to Bradley White for reporting the bug.)

    On hosts with signed 32-bit time_t, localtime no longer mishandles
    Pacific/Fiji after 2038-01-16 14:00 UTC.

    The localtime module allows the variables 'timezone', 'daylight',
    and 'altzone' to be in common storage shared with other modules,
    and declares them in case the system <time.h> does not.
    (Problems reported by Kees Dekker.)

    On platforms with tm_zone, strftime.c now assumes it is not NULL.
    This simplifies the code and is consistent with zdump.c.
    (Problem reported by Christos Zoulas.)

Change-Id: I9eb0a8323cb8bd9968fcfe612dc14f45aa3b59d2
2015-10-09 15:15:39 -07:00
Dimitry Ivanov
533d7e403d am 6a59289b: Merge "Remove textrels support for platform libs"
* commit '6a59289b06deafe5eed49d86753297c604eadc86':
  Remove textrels support for platform libs
2015-10-09 21:14:26 +00:00
Dimitry Ivanov
6a59289b06 Merge "Remove textrels support for platform libs" 2015-10-09 21:09:46 +00:00
Dmitriy Ivanov
8068786ae6 Remove textrels support for platform libs
Bug: http://b/20013628
Change-Id: Ia9382c7113e09bb6aed65072543e4ebe33026cf8
2015-10-09 13:59:42 -07:00
Josh Gao
786807b26c am d8df28ff: Merge "Implement setjmp cookies on MIPS and MIPS64"
* commit 'd8df28ff3833e620db1b61dd4038028dd160c870':
  Implement setjmp cookies on MIPS and MIPS64
2015-10-09 18:39:57 +00:00
Josh Gao
d8df28ff38 Merge "Implement setjmp cookies on MIPS and MIPS64" 2015-10-09 18:32:20 +00:00
Neil Fuller
31740bfdb9 Update timezone data to 2015g
Changes affecting future time stamps

    Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25.
    (Thanks to Fatih.)

    Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time.
    (Thanks to Alexander Krivenyshev.)

    Fiji's 2016 fall-back transition is scheduled for January 17, not 24.
    (Thanks to Ken Rylander.)

    Fort Nelson, British Columbia will not fall back on 2015-11-01. It has
    effectively been on MST (-0700) since it advanced its clocks on 2015-03-08.
    New zone America/Fort_Nelson.  (Thanks to Matt Johnson.)

  Changes affecting past time stamps

    Norfolk observed DST from 1974-10-27 02:00 to 1975-03-02 02:00.

Bug: 24595281
Change-Id: I7e4e4c53b4843110540f573ba82d3761c871c096
2015-10-09 17:58:58 +01:00
Nikola Veljkovic
1b519c0ae4 Implement setjmp cookies on MIPS and MIPS64
Bug: http://b/23942752
Change-Id: Ie58892a97b5075d30d7607667251007cda99d38c
2015-10-09 13:42:58 +02:00
Dan Albert
17e3aec523 am 599af934: Merge "Fix bionic_coverage for kati."
* commit '599af9346e3ea697dda1b0c38a99cce842154307':
  Fix bionic_coverage for kati.
2015-10-08 22:08:28 +00:00
Dimitry Ivanov
ec48a72a00 am 268f7391: Merge "Make dt_runpath work for libraries opened from apk"
* commit '268f73917831e709bc6a201658c19ffb5c8cbfd1':
  Make dt_runpath work for libraries opened from apk
2015-10-08 22:08:17 +00:00
Dan Albert
599af9346e Merge "Fix bionic_coverage for kati." 2015-10-08 21:35:12 +00:00
Dan Albert
697e261d4b Fix bionic_coverage for kati.
Kati won't override something set with :=, only ?=.

Note that the actually reveals that our coverage build has been broken
for... some time. The issue is that we have static libraries built
with clang and others built with gcc linked into the same .so. If we
use both libclang_rt.profile and libgcov together, we get duplicate
symbol errors. If we only use one or the other, we don't have all the
symbols we need.

This will be fixed once chh's TLS stuff makes it into our clang and we
can start building libc_thread_atexit_impl with clang.

Change-Id: I45d0f2e558a881ad8be71088102320724ced8fe5
2015-10-08 14:04:53 -07:00
Dimitry Ivanov
268f739178 Merge "Make dt_runpath work for libraries opened from apk" 2015-10-08 19:45:45 +00:00
Torne (Richard Coles)
a828a2f8e6 linker: don't pass dlextinfo to dependent loads.
Don't pass the parent load's dlextinfo to dependent loads, since this
causes the linker to try to load the dependencies using the same
addresses/relro/fds/etc as the main library, which is never going to
work. This was how it worked before ae69a95 which broke this.

Bug: 23742664
Change-Id: I53d8cdf0982d8758e6d2ced4864c704cdf74118f
2015-10-08 12:28:39 -07:00
Josh Gao
10f71abc4e am cc56abbb: Merge "Add missing register preserve in x86/x86_64 longjmp."
* commit 'cc56abbb007e090b830f510df6cb300ae12e1a89':
  Add missing register preserve in x86/x86_64 longjmp.
2015-10-07 21:32:47 +00:00
Josh Gao
cc56abbb00 Merge "Add missing register preserve in x86/x86_64 longjmp." 2015-10-07 21:17:47 +00:00
Josh Gao
8dbf02d76a Add missing register preserve in x86/x86_64 longjmp.
Change-Id: I3fc442f819229640e9c0ec4f9c865d9bf0e70881
2015-10-07 14:01:45 -07:00
Dmitriy Ivanov
a1feb117e4 Make dt_runpath work for libraries opened from apk
This patch also fixes realpath for libraries opened directly
from apks.

Bug: http://b/21960914
Bug: http://b/21961857
Change-Id: I35ade661c87f1d448191f385811f6e9fd3cacf11
2015-10-07 11:44:53 -07:00
Yabin Cui
b5e05d29b5 am f9604906: Merge "Remove the workaround which fixes JOB_COUNT in CTS test."
* commit 'f96049062f04a922fda937aecc562517101a38cc':
  Remove the workaround which fixes JOB_COUNT in CTS test.
2015-10-07 17:20:29 +00:00
Yabin Cui
f96049062f Merge "Remove the workaround which fixes JOB_COUNT in CTS test." 2015-10-07 17:05:29 +00:00
Yabin Cui
bc6379d7da Remove the workaround which fixes JOB_COUNT in CTS test.
Bug: 24376925
Change-Id: Ib195ce1577ee9412068cc1b6223fc051b5bcfcaa
2015-10-06 16:30:14 -07:00
Dimitry Ivanov
29fe356575 am 98be6be1: am 748421be: Merge "Fix linker tests"
* commit '98be6be171b3792c51d83d19f015052112f8ddbf':
  Fix linker tests
2015-10-05 20:24:37 +00:00
Dimitry Ivanov
98be6be171 am 748421be: Merge "Fix linker tests"
* commit '748421beef0ed8625920a27b3753a79c2652b6ef':
  Fix linker tests
2015-10-05 20:17:39 +00:00
Dimitry Ivanov
748421beef Merge "Fix linker tests" 2015-10-05 20:10:26 +00:00
Dmitriy Ivanov
a0f187bec7 Fix linker tests
Change-Id: I4794f2d9dcc5ceb419e1bf9151607a650eb801d9
2015-10-05 12:06:40 -07:00
Elliott Hughes
8daf53db75 am df62e317: am 5c50449b: Merge "Use const auto& in for loops."
* commit 'df62e3171ca52cbdadb3c3edc93c42cfacbad054':
  Use const auto& in for loops.
2015-10-03 16:35:32 +00:00
Elliott Hughes
df62e3171c am 5c50449b: Merge "Use const auto& in for loops."
* commit '5c50449b0c098cb8191fe3f7791e91a7ec4f7029':
  Use const auto& in for loops.
2015-10-03 16:29:55 +00:00
Elliott Hughes
5c50449b0c Merge "Use const auto& in for loops." 2015-10-03 16:23:19 +00:00
Elliott Hughes
0b2acdfcc9 Use const auto& in for loops.
Change-Id: Ic437c59797ee4e7dc38291da35c72d827bc89c8d
2015-10-02 18:25:19 -07:00
Mark Salyzyn
991a8a6bf7 am ee9dea83: am f7cf8b2c: Merge "bionic: tzset running hot"
* commit 'ee9dea83fbaf2261066fbb20e5942c147018c949':
  bionic: tzset running hot
2015-10-02 21:17:39 +00:00
Mark Salyzyn
ee9dea83fb am f7cf8b2c: Merge "bionic: tzset running hot"
* commit 'f7cf8b2c1fbf6250e12d1e59aa353990eca4f109':
  bionic: tzset running hot
2015-10-02 21:10:18 +00:00
Mark Salyzyn
f7cf8b2c1f Merge "bionic: tzset running hot" 2015-10-02 21:04:50 +00:00
Mark Salyzyn
d0578949ac bionic: tzset running hot
logd makes a non-insignificant number of calls to localtime, 3% of
the time in logd is spent performing __system_property_get within the
context of tzset_locked().

Bug: 23685592
Change-Id: I75f8c2d436b60374e92c166b87393abda9487af7
2015-10-02 13:30:34 -07:00
Josh Gao
e22d32d06c am a7d5919c: am cf92ebcf: Merge "Use foreach loop to match setuid unsafe env vars."
* commit 'a7d5919cc92db395a943d8f5094e47d50148c39c':
  Use foreach loop to match setuid unsafe env vars.
2015-10-02 18:41:55 +00:00
Josh Gao
a7d5919cc9 am cf92ebcf: Merge "Use foreach loop to match setuid unsafe env vars."
* commit 'cf92ebcfe323ee2ea58168ed008d2a08565809ce':
  Use foreach loop to match setuid unsafe env vars.
2015-10-02 18:37:22 +00:00
Josh Gao
cf92ebcfe3 Merge "Use foreach loop to match setuid unsafe env vars." 2015-10-02 18:32:44 +00:00
Josh Gao
a5d5d16c3c Use foreach loop to match setuid unsafe env vars.
Change-Id: I1e94daefac8e601281f38c7ce29ba3172a4a60bb
2015-10-02 11:31:09 -07:00
Dimitry Ivanov
a978ec9e7b am 27f2e04c: am 143409d7: Merge "Fix the comment"
* commit '27f2e04c8c31cb4fbcc842ff457a1a4e53b61f4d':
  Fix the comment
2015-10-01 22:59:58 +00:00
Dimitry Ivanov
27f2e04c8c am 143409d7: Merge "Fix the comment"
* commit '143409d75b093c89042e25cab1757d6b2bae8ec5':
  Fix the comment
2015-10-01 22:11:31 +00:00
Dimitry Ivanov
143409d75b Merge "Fix the comment" 2015-10-01 21:18:36 +00:00
Dmitriy Ivanov
7e039937b8 Fix the comment
Change-Id: Ic8126cf92d12851cccaa3e2e781f075c9f6c283a
2015-10-01 14:02:19 -07:00
Stephen Hines
03d14f9276 am 14b7c94f: am 4a65557d: Merge "Remove invalid left shifts of -1."
* commit '14b7c94f40c845715561d1f4031f650a03df0336':
  Remove invalid left shifts of -1.
2015-10-01 05:42:13 +00:00
Stephen Hines
14b7c94f40 am 4a65557d: Merge "Remove invalid left shifts of -1."
* commit '4a65557d0ebd167e557958687f50510742cb238a':
  Remove invalid left shifts of -1.
2015-10-01 05:33:49 +00:00
Stephen Hines
4a65557d0e Merge "Remove invalid left shifts of -1." 2015-10-01 05:23:14 +00:00
Christopher Ferris
240a0a9068 am dc813fe3: am ad157a3c: Merge "Add a no dwarf version of assembler macros."
* commit 'dc813fe338626b28a8e9066c81fac6dac0982af5':
  Add a no dwarf version of assembler macros.
2015-09-30 23:59:48 +00:00
Christopher Ferris
b33e6097fe am 8bb2141b: am 3230d96a: Merge "libc: krait: Use performance version of memcpy"
* commit '8bb2141b7707b593245b77e3c73c26b7bb6f29fd':
  libc: krait: Use performance version of memcpy
2015-09-30 23:59:47 +00:00
Christopher Ferris
dc813fe338 am ad157a3c: Merge "Add a no dwarf version of assembler macros."
* commit 'ad157a3c3353ba69d3bd155a7c09f9943a22f8d2':
  Add a no dwarf version of assembler macros.
2015-09-30 23:44:34 +00:00
Christopher Ferris
8bb2141b77 am 3230d96a: Merge "libc: krait: Use performance version of memcpy"
* commit '3230d96a10ab0cfa128487ef03fa5f08c77ebf20':
  libc: krait: Use performance version of memcpy
2015-09-30 23:44:12 +00:00
Christopher Ferris
ad157a3c33 Merge "Add a no dwarf version of assembler macros." 2015-09-30 23:18:32 +00:00
Christopher Ferris
3230d96a10 Merge "libc: krait: Use performance version of memcpy" 2015-09-30 22:54:09 +00:00
Christopher Ferris
8f8308c974 Add a no dwarf version of assembler macros.
For the __release and __release_rt functions, the previous macros
would add a dwarf cfi entry for the function with no values. This works
with libunwind since it always tries the arm unwind information first.

This change removes those entries by creating a no dwarf version of the
assembler macro.

Change-Id: Ib93e42fff5a79b8d770eab0071fdee7d2afa988d
2015-09-30 15:32:15 -07:00
Brent DeGraaf
1d0268c6b8 libc: krait: Use performance version of memcpy
Change-Id: Iaa52635240da8b8746693186b66b69778e833c32
2015-09-30 20:59:36 +00:00
Dimitry Ivanov
84b24d62d0 am 889dd564: am a0b9cad0: Merge "Optimize dlopen from a zip file"
* commit '889dd56428fdecedb55e11b990609993294561ff':
  Optimize dlopen from a zip file
2015-09-30 20:16:52 +00:00
Dimitry Ivanov
889dd56428 am a0b9cad0: Merge "Optimize dlopen from a zip file"
* commit 'a0b9cad07629439bab926373515d964253426a69':
  Optimize dlopen from a zip file
2015-09-30 20:10:49 +00:00
Dimitry Ivanov
a0b9cad076 Merge "Optimize dlopen from a zip file" 2015-09-30 19:11:30 +00:00
Dmitriy Ivanov
b48275045d Optimize dlopen from a zip file
This change makes dynamic linker reuse ZipArchiveHandles in
ld_library_path on dlopen to optimize the lookup of dt_needed
libraries.

Bug: http://b/21960534
Change-Id: I65f897910d46dd2ffabdcb0b7842db2f127eee30
2015-09-30 10:47:11 -07:00
Yabin Cui
8db320637c am 8cd11809: am c1eebd5f: Merge "Fix the way to count online cpus."
* commit '8cd1180904a0b8713c20feed5255bbedcfabe4e9':
  Fix the way to count online cpus.
2015-09-30 01:33:22 +00:00
Yabin Cui
8cd1180904 am c1eebd5f: Merge "Fix the way to count online cpus."
* commit 'c1eebd5ff42cdf8f8a08be76bfdeaad6a327976c':
  Fix the way to count online cpus.
2015-09-30 01:23:33 +00:00
Yabin Cui
c1eebd5ff4 Merge "Fix the way to count online cpus." 2015-09-30 01:17:32 +00:00
Yabin Cui
cb6f599c44 Fix the way to count online cpus.
Read /proc/stat to count online cpus is not correct for all android
kernels. Change to reading /sys/devices/system/cpu/online instead.

Bug: 24376925
Change-Id: I3785a6c7aa15a467022a9a261b457194d688fb38
2015-09-29 17:49:37 -07:00
Stephen Hines
23360cc498 Remove invalid left shifts of -1.
Bug: 24492248

Shifting sign bits left is considered undefined behavior, so we need to
switch these uses to unsigned equivalents. The time_t-related code is
updated relative to upstream sources.

Change-Id: I226e5a929a10f5c57dfcb90c748fdac34eb377c2
2015-09-29 10:04:54 -07:00
Christopher Ferris
86fdb6bf23 am 4f3e3591: am 93a91f0c: Force cts to only run one test at a time.
* commit '4f3e3591ace36b6d86e3a1bc8b3f438989cb0618':
  Force cts to only run one test at a time.
2015-09-29 15:26:43 +00:00
Christopher Ferris
4f3e3591ac am 93a91f0c: Force cts to only run one test at a time.
* commit '93a91f0cf4f015762ac1ed57395c4c0de8ba7db3':
  Force cts to only run one test at a time.
2015-09-29 15:11:45 +00:00
Colin Cross
6a753ffec6 am 1c34fea8: am 8b279ead: Merge "Pass -q is zip for test"
* commit '1c34fea8033d64b7f2c54366add908aba7fa44dc':
  Pass -q is zip for test
2015-09-28 23:17:43 +00:00
Colin Cross
1c34fea803 am 8b279ead: Merge "Pass -q is zip for test"
* commit '8b279eadd3a635c31df9c570ab2144212bfd07cc':
  Pass -q is zip for test
2015-09-28 23:11:58 +00:00
Colin Cross
8b279eadd3 Merge "Pass -q is zip for test" 2015-09-28 23:07:04 +00:00
Colin Cross
195a5bef1f am 289e58e8: am c80aa3f9: Merge "Turn common INFO messages down to VLOG(1)"
* commit '289e58e83e62b600c2b1764c6f9cfd07f1717bdc':
  Turn common INFO messages down to VLOG(1)
2015-09-28 22:57:48 +00:00
Colin Cross
298d176813 Pass -q is zip for test
Pass -q to zip for dlext_testzip to avoid printing:
  adding: empty_file.txt (stored 0%)
on every compile.

Bug: 24409581
Change-Id: I2320f31182a9a332b3ef8b32a22561092ab5aceb
2015-09-28 15:56:18 -07:00
Colin Cross
289e58e83e am c80aa3f9: Merge "Turn common INFO messages down to VLOG(1)"
* commit 'c80aa3f9e2be9f9390b1e11f8f2b67a2adbd1faa':
  Turn common INFO messages down to VLOG(1)
2015-09-28 22:52:32 +00:00
Colin Cross
c80aa3f9e2 Merge "Turn common INFO messages down to VLOG(1)" 2015-09-28 22:46:11 +00:00
Colin Cross
4032d344d4 Turn common INFO messages down to VLOG(1)
Turn messages that are printed on every run of relocation_packer down to
VLOG(1) to clean up ninja build output.

Bug: 24409581
Change-Id: I040aed6a7b4261eefa6f7278fa451180115b0716
2015-09-28 15:30:37 -07:00
Dan Willemsen
3fb798c8ac am bfd9255d: am f16f4f8a: Merge "Fix file-check-cxx to handle quoted arguments"
* commit 'bfd9255ddba7db2e07de6483bf55f567c7f1f7a3':
  Fix file-check-cxx to handle quoted arguments
2015-09-28 20:48:00 +00:00
Dan Willemsen
bfd9255ddb am f16f4f8a: Merge "Fix file-check-cxx to handle quoted arguments"
* commit 'f16f4f8a6bac035db5f25538ddb4fe810d0719db':
  Fix file-check-cxx to handle quoted arguments
2015-09-28 20:43:06 +00:00
Dan Willemsen
f16f4f8a6b Merge "Fix file-check-cxx to handle quoted arguments" 2015-09-28 20:37:07 +00:00
Dan Willemsen
808602a485 Fix file-check-cxx to handle quoted arguments
If the OVERRIDE_C_DATE_TIME environment variable is set, the build
system will add a macro to the global cflags that contains a static
quoted date, like:

  -D__DATE__="\"Sep 28 2015\""

file-check-cxx needs to properly pass that through as a single, still
quoted argument. So use the quoted "$@" instead of turning each word
into an argument.

Change-Id: I6929d712c280d0452062640e0cba8a176d045c97
2015-09-28 13:14:19 -07:00
Dimitry Ivanov
2027e5e4ca am 97233047: am d5e8a049: Merge "Fix bug number for linker related workarounds"
* commit '972330476c26d5f610026fc006d05b128dc45e56':
  Fix bug number for linker related workarounds
2015-09-28 18:34:00 +00:00
Dimitry Ivanov
972330476c am d5e8a049: Merge "Fix bug number for linker related workarounds"
* commit 'd5e8a0499b9efa147d45aabd47cfb2d2204c2323':
  Fix bug number for linker related workarounds
2015-09-28 18:23:48 +00:00
Dimitry Ivanov
d5e8a0499b Merge "Fix bug number for linker related workarounds" 2015-09-28 17:54:23 +00:00
Dmitriy Ivanov
280d54680d Fix bug number for linker related workarounds
Bug: 24425865
Change-Id: I2021674a9df0e768f312ca024d906302db1c494f
2015-09-28 10:31:12 -07:00
Colin Cross
fd7251acd4 am b99b3f77: am 55f87a0c: Merge "Force non-color output for bionic FileCheck tests"
* commit 'b99b3f773cef7d160481f8c30b41c01839ca7090':
  Force non-color output for bionic FileCheck tests
2015-09-25 22:39:49 +00:00
Colin Cross
b74e9ddda5 am 0f575d44: am 4a54ec82: Merge "Add .PHONY for phony bionic test targets"
* commit '0f575d4482cebbedcc9d44634ba453fa57f21c3f':
  Add .PHONY for phony bionic test targets
2015-09-25 22:39:48 +00:00
Colin Cross
b99b3f773c am 55f87a0c: Merge "Force non-color output for bionic FileCheck tests"
* commit '55f87a0c0bb587ee85b5662967563462d52db560':
  Force non-color output for bionic FileCheck tests
2015-09-25 22:33:53 +00:00
Colin Cross
0f575d4482 am 4a54ec82: Merge "Add .PHONY for phony bionic test targets"
* commit '4a54ec8200356a755aeeb212c4dd9cefad39754c':
  Add .PHONY for phony bionic test targets
2015-09-25 22:33:51 +00:00
Christopher Ferris
93a91f0cf4 Force cts to only run one test at a time.
Also, slightly increase the timeout for each test run.

Bug: 24198050

(cherry picked from commit daaaed18ce1d2f2da9d2240e974922299d937670)

Change-Id: I29e169e962da803a89abf0a28e071abcafa315b7
2015-09-25 15:33:20 -07:00
Colin Cross
55f87a0c0b Merge "Force non-color output for bionic FileCheck tests" 2015-09-25 22:27:16 +00:00
Colin Cross
4a54ec8200 Merge "Add .PHONY for phony bionic test targets" 2015-09-25 22:25:58 +00:00
Christopher Ferris
a64bb4c172 am c1d4ba88: am b48ca46d: Merge "Force cts to only run one test at a time."
* commit 'c1d4ba88cfd824b938feed68a706d2a06e993d3a':
  Force cts to only run one test at a time.
2015-09-25 22:17:12 +00:00
Christopher Ferris
c1d4ba88cf am b48ca46d: Merge "Force cts to only run one test at a time."
* commit 'b48ca46d88d9e664763eff39604f772a57d8e2fb':
  Force cts to only run one test at a time.
2015-09-25 22:11:46 +00:00
Christopher Ferris
b48ca46d88 Merge "Force cts to only run one test at a time." 2015-09-25 21:50:35 +00:00
Colin Cross
840be7cb79 Force non-color output for bionic FileCheck tests
Turning on color output will break the bionic compilation tests that
check for expected warnings, as they will be matching color output
against non-color expected values.  Turn off color locally.

Bug: 24273983
Change-Id: Ia3b3262ccece121217f0dc0997734b3ad65b928b
2015-09-25 14:42:07 -07:00
Colin Cross
b67afb3eb5 Add .PHONY for phony bionic test targets
Bug: 24384320
Change-Id: I41038ff8b34391d03ce1e204e30e5ae34ec56614
2015-09-25 14:36:15 -07:00
Christopher Ferris
aaff959fc0 am 4344a02a: am 931e1399: Merge "Add cortex-a53.a57 target for 32 bit big/little."
* commit '4344a02a9efc93ff4f772f5722f1a455d8ef25cd':
  Add cortex-a53.a57 target for 32 bit big/little.
2015-09-25 16:44:03 +00:00
Christopher Ferris
4344a02a9e am 931e1399: Merge "Add cortex-a53.a57 target for 32 bit big/little."
* commit '931e1399f13b35a139977354e179403184c649fa':
  Add cortex-a53.a57 target for 32 bit big/little.
2015-09-25 16:35:53 +00:00
Christopher Ferris
931e1399f1 Merge "Add cortex-a53.a57 target for 32 bit big/little." 2015-09-25 16:29:33 +00:00
Christopher Ferris
daaaed18ce Force cts to only run one test at a time.
Also, slightly increase the timeout for each test run.

Bug: 24198050
Change-Id: I2b0ebdebb909023d0f179e0a433c564266a99161
2015-09-25 09:16:31 -07:00
Christopher Ferris
774a4703e8 am 6eb06b03: am 70a9f0a3: Merge "Fix over read in strcpy/stpcpy/strcat."
* commit '6eb06b0399c95f52cd28ff7971582ebec42f45f7':
  Fix over read in strcpy/stpcpy/strcat.
2015-09-24 21:48:52 +00:00
Christopher Ferris
6eb06b0399 am 70a9f0a3: Merge "Fix over read in strcpy/stpcpy/strcat."
* commit '70a9f0a3bc310c863b5c90c9860aae842f82e47f':
  Fix over read in strcpy/stpcpy/strcat.
2015-09-24 21:38:47 +00:00
Christopher Ferris
70a9f0a3bc Merge "Fix over read in strcpy/stpcpy/strcat." 2015-09-24 21:26:40 +00:00
Christopher Ferris
fdfcfce7c6 Fix over read in strcpy/stpcpy/strcat.
This bug will happen when these circumstances are met:

- Destination address & 0x7 == 1, strlen of src is 11, 12, 13.
- Destination address & 0x7 == 2, strlen of src is 10, 11, 12.
- Destination address & 0x7 == 3, strlen of src is 9, 10, 11.
- Destination address & 0x7 == 4, strlen of src is 8, 9, 10.

In these cases, the dest alignment code does a ldr which reads 4 bytes,
and it will read past the end of the source. In most cases, this is
probably benign, but if this crosses into a new page it could cause a
crash.

Fix the labels in the cortex-a9 strcat.

Modify the overread test to vary the dst alignment to expost this bug.
Also, shrink the strcat/strlcat overread cases since the dst alignment
variation increases the runtime too much.

Bug: 24345899
Change-Id: Ib34a559bfcebd89861985b29cae6c1e47b5b5855
2015-09-24 14:17:36 -07:00
Christopher Ferris
54ee0407dc Add cortex-a53.a57 target for 32 bit big/little.
The routines optimized for cortex-a7 and cortex-a53 cause performance
drops on cortex-a57. Instead create a target that is the middle ground
that works relatively well on either core.

Change-Id: Ie2b6cc9a59a01c7b30602ee368b2b90f5e886289
2015-09-24 14:00:00 -07:00
Yabin Cui
609716ae95 am 01030c24: Increase alternative signal stack size on 64-bit devices.
* commit '01030c24b0e3ace1b4cdaf415354e2f315f4f3a9':
  Increase alternative signal stack size on 64-bit devices.
2015-09-24 00:21:13 +00:00
Yabin Cui
01030c24b0 Increase alternative signal stack size on 64-bit devices.
Bug: 23041777
Bug: 24187462
Change-Id: I7d84c0cc775a74753a3e8e101169c0fb5dbf7437
2015-09-23 16:36:20 -07:00
Dan Albert
2c60af3e81 am 56446a6c: am c38cee59: Merge "Prevent the build system from hiding our ABI."
* commit '56446a6c8e2fd54f23a348060a2bc121c0846603':
  Prevent the build system from hiding our ABI.
2015-09-23 20:22:04 +00:00
Dan Albert
56446a6c8e am c38cee59: Merge "Prevent the build system from hiding our ABI."
* commit 'c38cee59dcba23576cc01bfbb97cecc5eb01a75c':
  Prevent the build system from hiding our ABI.
2015-09-23 20:15:35 +00:00
Dan Albert
c38cee59dc Merge "Prevent the build system from hiding our ABI." 2015-09-23 20:08:09 +00:00
Elliott Hughes
678752ed2a am 83911975: am cb696c50: Merge "Remove libpagemap include hack."
* commit '839119757d4d841359ad5f16d3bde8e4581f8322':
  Remove libpagemap include hack.
2015-09-23 19:04:18 +00:00
Elliott Hughes
839119757d am cb696c50: Merge "Remove libpagemap include hack."
* commit 'cb696c50c293f387c7de46cd3c8573a335e273bf':
  Remove libpagemap include hack.
2015-09-23 18:56:25 +00:00
Elliott Hughes
cb696c50c2 Merge "Remove libpagemap include hack." 2015-09-23 18:49:22 +00:00
Elliott Hughes
7660a088cd Remove libpagemap include hack.
Change-Id: I4c75ae4e311342c9ab4f317026904f893e931384
2015-09-22 22:40:22 -07:00
Elliott Hughes
fff13b9196 am 12432ca4: am 8d92afe3: Merge "Fix another duplicate maps parser."
* commit '12432ca4839b4df9b040b2bd3b4401a48e1f8a06':
  Fix another duplicate maps parser.
2015-09-23 00:36:13 +00:00
Elliott Hughes
12432ca483 am 8d92afe3: Merge "Fix another duplicate maps parser."
* commit '8d92afe32265be8c36ea2adb3c4059298cd583eb':
  Fix another duplicate maps parser.
2015-09-23 00:26:38 +00:00
Elliott Hughes
8d92afe322 Merge "Fix another duplicate maps parser." 2015-09-23 00:18:50 +00:00
Dan Albert
0aa96aedbe Prevent the build system from hiding our ABI.
Unfortunately --exclude-libs (now passed globally) clobbers our
version script, so we have to prevent the build system from using this
flag.

Bug: http://b/24166967
Change-Id: I33c766d399c418fdc17983c8c0a56608d463201e
2015-09-22 16:49:40 -07:00
Elliott Hughes
15dfd63aba Fix another duplicate maps parser.
Change-Id: Icb69f59ffbd0d5de7f727142260fae152d36a904
2015-09-22 16:40:14 -07:00
Elliott Hughes
afba67bd2f am f599ea97: am 9e3a2491: Merge "Clean up /proc/<pid>/maps sscanfs."
* commit 'f599ea9743098a694262b7ab6c3b3d3f11eeb0dd':
  Clean up /proc/<pid>/maps sscanfs.
2015-09-22 23:05:43 +00:00
Elliott Hughes
f599ea9743 am 9e3a2491: Merge "Clean up /proc/<pid>/maps sscanfs."
* commit '9e3a24915241c07d8ea886533c8de6a85744a734':
  Clean up /proc/<pid>/maps sscanfs.
2015-09-22 22:54:45 +00:00
Elliott Hughes
9e3a249152 Merge "Clean up /proc/<pid>/maps sscanfs." 2015-09-22 22:49:20 +00:00
Elliott Hughes
0dec228921 Clean up /proc/<pid>/maps sscanfs.
sscanf will swallow whitespace for us.

Change-Id: I59931cbad00f0144fd33ed4749ac0aaad15e6de6
2015-09-22 15:45:50 -07:00
Jorge Lucangeli Obes
eb83e971b4 am 9583f7e7: am dd514539: Merge "Add preliminary OEM UID/GID support."
* commit '9583f7e7c2863c63596429ccb23a34fdbf272102':
  Add preliminary OEM UID/GID support.
2015-09-22 22:09:43 +00:00
Elliott Hughes
4e9118c25c am 1085de1c: am efcb5d9d: Merge "Remove some <sys/cdefs.h> cruft."
* commit '1085de1cc5f56bf3538ff75ec93939b8c868eb2a':
  Remove some <sys/cdefs.h> cruft.
2015-09-22 22:09:42 +00:00
Jorge Lucangeli Obes
9583f7e7c2 am dd514539: Merge "Add preliminary OEM UID/GID support."
* commit 'dd51453904f609347ce7951661eff8bc12a1c0a4':
  Add preliminary OEM UID/GID support.
2015-09-22 21:59:02 +00:00
Elliott Hughes
1085de1cc5 am efcb5d9d: Merge "Remove some <sys/cdefs.h> cruft."
* commit 'efcb5d9d4c4b482cf21318b2bb4aec6cf6d8e0f5':
  Remove some <sys/cdefs.h> cruft.
2015-09-22 21:59:00 +00:00
Jorge Lucangeli Obes
dd51453904 Merge "Add preliminary OEM UID/GID support." 2015-09-22 21:53:39 +00:00
Elliott Hughes
efcb5d9d4c Merge "Remove some <sys/cdefs.h> cruft." 2015-09-22 21:52:28 +00:00
Yabin Cui
78f5504b92 am 042a61de: am 3d00f79f: Merge "Increase alternative signal stack size on 64-bit devices."
* commit '042a61de21296a7c5e4243b1e50ec591d124de98':
  Increase alternative signal stack size on 64-bit devices.
2015-09-22 20:59:44 +00:00
Yabin Cui
042a61de21 am 3d00f79f: Merge "Increase alternative signal stack size on 64-bit devices."
* commit '3d00f79f98c8b981a36a79657f07a303a2288a55':
  Increase alternative signal stack size on 64-bit devices.
2015-09-22 20:51:36 +00:00
Yabin Cui
3d00f79f98 Merge "Increase alternative signal stack size on 64-bit devices." 2015-09-22 20:44:05 +00:00
Elliott Hughes
cccb36036f am d97f4224: am 822c40a3: Merge "<netinet/udp.h> should include <linux/udp.h>."
* commit 'd97f422405cfb3f1d6287f879ce828f7195e68d3':
  <netinet/udp.h> should include <linux/udp.h>.
2015-09-22 20:34:32 +00:00
Jorge Lucangeli Obes
a39e30141d Add preliminary OEM UID/GID support.
Until we implement full support for passwd/group files, add a simple
way to use the new OEM UID/GID range (5000-5999).

oem_XXX -> 5000 + XXX iff 0 <= XXX < 1000.

Bug: 23225475

Change-Id: If48b88135d5df538313414f747d6c4c63bf0a103
2015-09-22 13:33:17 -07:00
Elliott Hughes
d97f422405 am 822c40a3: Merge "<netinet/udp.h> should include <linux/udp.h>."
* commit '822c40a3389a953d9b43f05ad6e40640fd55f9c4':
  <netinet/udp.h> should include <linux/udp.h>.
2015-09-22 20:25:03 +00:00
Elliott Hughes
822c40a338 Merge "<netinet/udp.h> should include <linux/udp.h>." 2015-09-22 20:19:14 +00:00
Elliott Hughes
44ddb31e75 Remove some <sys/cdefs.h> cruft.
In particular, we don't need to record the peculiarities of every
version of GCC ever shipped. It just makes this file harder to follow.

Change-Id: Ie9035d78eae86b4aed9dff3576c6f54e268aaced
2015-09-22 13:00:21 -07:00
Elliott Hughes
f8a2243ebe <netinet/udp.h> should include <linux/udp.h>.
The comment about "other stuff" referred to pre-uapi headers. Everything
in the current <linux/udp.h> should be exposed to userspace. The only
problem is that BSD and Linux use different names for the members of
struct udphdr. We can move the Linux udphdr out of the way and use an
anonymous union to get the best of both worlds. (Though unfortunately
this means that code that includes <linux/udp.h> directly instead of
using <netinet/udp.h> now won't have any definition of struct udphdr.
We've taken the stance in the past that you shouldn't include a linux/
header if there's a standard equivalent --- you should rely on us
transitively including it for you.)

Change-Id: Ie625892441b0edd8df3b76d3fcf2cbe299077bc4
2015-09-22 12:34:13 -07:00
Yabin Cui
33ac04a215 Increase alternative signal stack size on 64-bit devices.
Bug: 23041777
Bug: 24187462
Change-Id: I7d84c0cc775a74753a3e8e101169c0fb5dbf7437
2015-09-22 11:18:26 -07:00
Dan Albert
a2308b7f67 am 208d8e36: am 13997591: Merge "Add a hint about using --no-isolate for GDB."
* commit '208d8e369604e76363027289c09e08c9b4fc818b':
  Add a hint about using --no-isolate for GDB.
2015-09-19 19:59:53 +00:00
Christopher Ferris
a1ae03e21d am 4ed36397: am 777bd95c: Merge "Import scsi headers."
* commit '4ed363972e1120f924c84a56c513eb7e8077dcbc':
  Import scsi headers.
2015-09-19 19:59:52 +00:00
Greg Hackmann
672ff19c65 am 5fb12bc2: am 96b1323a: Merge "Define WIFCONTINUED()"
* commit '5fb12bc23273266b6afb08b61f1b5e558165c3d1':
  Define WIFCONTINUED()
2015-09-19 19:59:52 +00:00
Greg Hackmann
51c4d51d8f am a4ab398c: am 7c460451: Merge "Fix SOCK_* flag definitions"
* commit 'a4ab398c617055f5f5895f6b9f6ca5bf0f6e520f':
  Fix SOCK_* flag definitions
2015-09-19 19:59:51 +00:00
Dan Albert
208d8e3696 am 13997591: Merge "Add a hint about using --no-isolate for GDB."
* commit '1399759118f50071d499f88b18828e36aa2bad00':
  Add a hint about using --no-isolate for GDB.
2015-09-19 19:52:23 +00:00
Christopher Ferris
4ed363972e am 777bd95c: Merge "Import scsi headers."
* commit '777bd95c63fcbb461deac40b303d706d3b672837':
  Import scsi headers.
2015-09-19 19:52:13 +00:00
Greg Hackmann
5fb12bc232 am 96b1323a: Merge "Define WIFCONTINUED()"
* commit '96b1323a403bbd946487e4107a076b0a307136b1':
  Define WIFCONTINUED()
2015-09-19 19:52:12 +00:00
Greg Hackmann
a4ab398c61 am 7c460451: Merge "Fix SOCK_* flag definitions"
* commit '7c4604518bcd27e27fb305388188275f49dea468':
  Fix SOCK_* flag definitions
2015-09-19 19:52:09 +00:00
Dan Albert
1399759118 Merge "Add a hint about using --no-isolate for GDB." 2015-09-18 21:18:06 +00:00
Christopher Ferris
777bd95c63 Merge "Import scsi headers." 2015-09-18 20:44:58 +00:00
Greg Hackmann
96b1323a40 Merge "Define WIFCONTINUED()" 2015-09-18 20:39:07 +00:00
Greg Hackmann
7c4604518b Merge "Fix SOCK_* flag definitions" 2015-09-18 20:38:54 +00:00
Greg Hackmann
c6043f6b27 Define WIFCONTINUED()
Change-Id: Id0feebd90d0525f3b479eb119b942eae8ca568d1
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-09-18 13:37:53 -07:00
Greg Hackmann
d75abb9614 Fix SOCK_* flag definitions
MIPS and the rest of the world only disagree on the first two SOCK_*
constants, so restructure the #ifdef accordingly.

As a deliberate side effect, this fixes SOCK_DCCP being missing on
non-MIPS platforms.

Change-Id: I2267008f1121a7eebe1ed9097afab6e612bce7f0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-09-18 13:37:53 -07:00
Dan Albert
1af434cc02 Add a hint about using --no-isolate for GDB.
Change-Id: Ib9df5ed986a1c4082c9c7cd793a4d670be21ca66
2015-09-18 13:17:02 -07:00
Elliott Hughes
10292607e4 am c0c6bcc8: am 355f3d0c: Merge "Fix mips FP abi bug in the linker."
* commit 'c0c6bcc8f7f90a7bb65d683efc97825625f072b0':
  Fix mips FP abi bug in the linker.
2015-09-18 15:34:09 +00:00
Elliott Hughes
c0c6bcc8f7 am 355f3d0c: Merge "Fix mips FP abi bug in the linker."
* commit '355f3d0c12a3cca3bf8304073f81b5e0d544ac59':
  Fix mips FP abi bug in the linker.
2015-09-18 15:29:12 +00:00
Elliott Hughes
355f3d0c12 Merge "Fix mips FP abi bug in the linker." 2015-09-18 15:20:40 +00:00
Christopher Ferris
1e9b59d37e am 577c64eb: am d9639559: Merge "Add support for manually modified kernel headers."
* commit '577c64ebbfc3fe183394e14b67d543d8ec0f6425':
  Add support for manually modified kernel headers.
2015-09-18 04:30:42 +00:00
Christopher Ferris
577c64ebbf am d9639559: Merge "Add support for manually modified kernel headers."
* commit 'd9639559ccccf055919a4d1487ca8a6cba953715':
  Add support for manually modified kernel headers.
2015-09-18 04:23:55 +00:00
Christopher Ferris
6048173b36 Import scsi headers.
Linux's scsi headers are a mix of userspace-facing and kernel-facing
declarations that can't be directly used by userspace.  The glibc
maintainers manually copy-and-pasted these definitions into their own
scsi headers and haven't substantially updated them in 15 years.  musl
has a similar set of definitions in its scsi headers.

This change generates the scsi headers from external/kernel-headers,
using the updated generation script so that the single modified scsi.h
takes the place of the non-modified one.

Change-Id: Ic14d155aa534b0edc1ee686d61113ce5cdf0e6af
2015-09-17 21:22:44 -07:00
Christopher Ferris
d9639559cc Merge "Add support for manually modified kernel headers." 2015-09-18 04:15:32 +00:00
Christopher Ferris
d12c332018 Add support for manually modified kernel headers.
This changes the scripts so that if some kernel files exists
in external/kernel-headers/modified, that they will be preferred
over the same files found in original. This is to support the case
where the kernel headers cannot be taken without some small modifications.

Included with this change, is a general cleanup of the python scripts.

This also modifies the generate uapi headers script to indicate if the
source of the modified headers has changed.

Change-Id: Id13523b244ced52a2ecd9f1399c43996dd8296fa
2015-09-17 21:02:52 -07:00
Dan Willemsen
e06ef6709f am 305af045: am 353e7e5d: Merge "Update Android.bp for setjmp cookies"
* commit '305af04561b9b8bd612f16350f0dd41a25be7cc2':
  Update Android.bp for setjmp cookies
2015-09-17 22:52:33 +00:00
Dan Willemsen
305af04561 am 353e7e5d: Merge "Update Android.bp for setjmp cookies"
* commit '353e7e5d11fa59750c5358ad3e239765dcbeb335':
  Update Android.bp for setjmp cookies
2015-09-17 22:44:57 +00:00
Dan Willemsen
353e7e5d11 Merge "Update Android.bp for setjmp cookies" 2015-09-17 22:34:35 +00:00
Josh Gao
ec94ca9284 am 91624eae: am 57866a6d: Merge changes Iea8d03de,I2014f959
* commit '91624eae9aa90e123ae37843d94861120d2433a4':
  Implement setjmp cookies on x86_64.
  Implement setjmp cookies on x86.
2015-09-17 22:31:45 +00:00
Dan Willemsen
35e91a10e0 Update Android.bp for setjmp cookies
Change-Id: I57245e4eedf9b8e1edc7de46208be5aa47c94b28
2015-09-17 15:28:45 -07:00
Josh Gao
91624eae9a am 57866a6d: Merge changes Iea8d03de,I2014f959
* commit '57866a6ddef66e9c331df4f20e6c39920aba2a99':
  Implement setjmp cookies on x86_64.
  Implement setjmp cookies on x86.
2015-09-17 22:22:33 +00:00
Douglas Leung
dccc40883a Fix mips FP abi bug in the linker.
Change-Id: I1ffab938eb06f9dc0963ee15bc10eca216618792
2015-09-17 15:17:06 -07:00
Josh Gao
57866a6dde Merge changes Iea8d03de,I2014f959
* changes:
  Implement setjmp cookies on x86_64.
  Implement setjmp cookies on x86.
2015-09-17 22:14:41 +00:00
Josh Gao
2342e643d4 Implement setjmp cookies on x86_64.
Bug: http://b/23942752
Change-Id: Iea8d03de1dd9ca5a128c072c94b10de3a8056348
2015-09-17 14:51:44 -07:00
Josh Gao
85c14fb086 Implement setjmp cookies on x86.
Bug: http://b/23942752
Change-Id: I2014f95989d0ab094b225234d98ccee477166c9d
2015-09-17 14:51:44 -07:00
Josh Gao
5c12a504cf am 9e3d8730: am 823cff84: Merge changes I81408ef0,Id0eb8d06
* commit '9e3d873036b581b9986f42cc40f2d43f057ed7f1':
  Implement setjmp cookies on AArch64.
  Implement setjmp cookies on ARM.
2015-09-17 21:22:32 +00:00
Josh Gao
9e3d873036 am 823cff84: Merge changes I81408ef0,Id0eb8d06
* commit '823cff847b3b202b235ddd84650338f07bc61511':
  Implement setjmp cookies on AArch64.
  Implement setjmp cookies on ARM.
2015-09-17 21:15:57 +00:00
Josh Gao
823cff847b Merge changes I81408ef0,Id0eb8d06
* changes:
  Implement setjmp cookies on AArch64.
  Implement setjmp cookies on ARM.
2015-09-17 21:09:23 +00:00
Josh Gao
54db0df8d6 Implement setjmp cookies on AArch64.
Bug: http://b/23942752
Change-Id: I81408ef0dd53010140b51e3083d357d3f2961112
2015-09-17 14:07:24 -07:00
Josh Gao
7fda8d2aa4 Implement setjmp cookies on ARM.
Reuse the top bits of _JB_SIGFLAG field previously used to store a
boolean to store a cookie that's validated by [sig]longjmp to make it
harder to use as a ROP gadget. Additionally, encrypt saved registers
with the cookie so that an attacker can't modify a register's value to
a specific value without knowing the cookie.

Bug: http://b/23942752
Change-Id: Id0eb8d06916e89d5d776bfcaa9458f8826717ba3
2015-09-17 14:07:24 -07:00
Dan Willemsen
c101cc20bf am 64ce4787: am 90fc8e24: Merge "Add Android.bp for libc/libm/libdl"
* commit '64ce4787e593a547dab41210b28bc74e19318820':
  Add Android.bp for libc/libm/libdl
2015-09-17 19:52:53 +00:00
Dan Willemsen
64ce4787e5 am 90fc8e24: Merge "Add Android.bp for libc/libm/libdl"
* commit '90fc8e24876412a816776d44bedc77e1f1888a13':
  Add Android.bp for libc/libm/libdl
2015-09-17 19:40:42 +00:00
Dan Willemsen
90fc8e2487 Merge "Add Android.bp for libc/libm/libdl" 2015-09-17 19:31:07 +00:00
Yabin Cui
a59905b80c am 72e678c8: am cbd0a15b: Merge "Fix the way to get main thread stack start address."
* commit '72e678c8a7f78a04dffc57a6b2add45aeee4d1ec':
  Fix the way to get main thread stack start address.
2015-09-17 02:50:56 +00:00
Yabin Cui
72e678c8a7 am cbd0a15b: Merge "Fix the way to get main thread stack start address."
* commit 'cbd0a15be881abb8ce1feb5b389da2f517a9a4c6':
  Fix the way to get main thread stack start address.
2015-09-17 02:42:52 +00:00
Yabin Cui
cbd0a15be8 Merge "Fix the way to get main thread stack start address." 2015-09-17 02:37:20 +00:00
Dan Willemsen
208ae17e5f Add Android.bp for libc/libm/libdl
Change-Id: I3537363849ba1244348996ff17c5ace1b95dbeee
2015-09-16 16:50:01 -07:00
Mor-sarid, Nitzan
569333293a Fix the way to get main thread stack start address.
For previous way to get the stack using the [stack] string from
/proc/self/task/<pid>/maps is not enough. On x86/x86_64, if an
alternative signal stack is used while a task switch happens,
the [stack] indicator may no longer be correct.

Instead, stack_start from /proc/self/stat which is always inside
the main stack, is used to find the main stack in /proc/self/maps.

Change-Id: Ieb010e71518b57560d541cd3b3563e5aa9660750
Signed-off-by: Nitzan Mor-sarid <nitzan.mor-sarid@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2015-09-16 11:45:13 -07:00
Elliott Hughes
5278af69ac am bab1044d: am 14545d4c: Merge "Move several FreeBSD functions to OpenBSD."
* commit 'bab1044d27cc5b88809f2fc0e5be7e23f2ab6623':
  Move several FreeBSD functions to OpenBSD.
2015-09-15 15:25:18 +00:00
Elliott Hughes
bab1044d27 am 14545d4c: Merge "Move several FreeBSD functions to OpenBSD."
* commit '14545d4ce3dd446f20a14dcff37d60ff8d756f7a':
  Move several FreeBSD functions to OpenBSD.
2015-09-15 15:19:20 +00:00
Elliott Hughes
8abd365509 am 364dbb3c: am 44c8ac8b: Merge "Sync with upstream NetBSD lib/libc/regex."
* commit '364dbb3cf493b00e48d8f29e4a845e78f8139f4f':
  Sync with upstream NetBSD lib/libc/regex.
2015-09-15 15:18:56 +00:00
Elliott Hughes
14545d4ce3 Merge "Move several FreeBSD functions to OpenBSD." 2015-09-15 15:13:35 +00:00
Elliott Hughes
364dbb3cf4 am 44c8ac8b: Merge "Sync with upstream NetBSD lib/libc/regex."
* commit '44c8ac8bd7747d907720c63538625a4b95245234':
  Sync with upstream NetBSD lib/libc/regex.
2015-09-15 15:12:36 +00:00
Elliott Hughes
44c8ac8bd7 Merge "Sync with upstream NetBSD lib/libc/regex." 2015-09-15 15:05:21 +00:00
Elliott Hughes
26a8322972 Move several FreeBSD functions to OpenBSD.
There's no difference between the two BSDs for these functions, so let's go
with the majority.

Change-Id: Ic296f23153a48bed5ad152f5b31989c4e00e60bd
2015-09-14 19:01:58 -07:00
Elliott Hughes
71927a8237 Sync with upstream NetBSD lib/libc/regex.
Bug: http://b/22850181
Change-Id: I11a51a2031e68a953ccd5691da98c699c7d01904
2015-09-14 18:45:52 -07:00
Daniel Micay
5ca66528c5 make mmap fail on requests larger than PTRDIFF_MAX
Allocations larger than PTRDIFF_MAX can be successfully created on
32-bit with a 3:1 split, or in 32-bit processes running on 64-bit.

Allowing these allocations to succeed is dangerous, as it introduces
overflows for `end - start` and isn't compatible with APIs (mis)using
ssize_t to report either the size or an error. POSIX is guilty of this,
as are many other Android APIs. LLVM even considers the `ptr + size`
case to be undefined, as all pointer arithmetic compiles down to signed
operations and overflow is treated as undefined for standard C pointer
arithmetic (GNU C `void *` arithmetic works differently).

This also prevents dlmalloc from allocating > PTRDIFF_MAX as it doesn't
merge mappings like jemalloc. A similar check will need to be added in
jemalloc's code path for huge allocations.

The musl libc implementation also performs this sanity check.

Change-Id: I5f849543f94a39719f5d27b00cef3079bb5933e9
2015-09-12 01:52:12 -04:00
Dan Albert
a4b45b70f5 am a1a46a8e: am cd0ed2f1: Merge "CMSG_DATA should return an unsigned char*."
* commit 'a1a46a8e946d1fd1c50f44e7e23f462e179ddbb1':
  CMSG_DATA should return an unsigned char*.
2015-09-11 23:04:58 +00:00
Dan Albert
a1a46a8e94 am cd0ed2f1: Merge "CMSG_DATA should return an unsigned char*."
* commit 'cd0ed2f174d9015da5ae7206bc4c5190cd0bb51e':
  CMSG_DATA should return an unsigned char*.
2015-09-11 22:14:07 +00:00
Dan Albert
cd0ed2f174 Merge "CMSG_DATA should return an unsigned char*." 2015-09-11 17:39:12 +00:00
Dan Albert
268af26359 CMSG_DATA should return an unsigned char*.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
> CMSG_DATA(cmsg)
>    If the argument is a pointer to a cmsghdr structure, this macro
>    shall return an unsigned character pointer to the data array
>    associated with the cmsghdr structure.

Change-Id: I3f89ba19cbca4e6727abc65a2bbcd59267892ba8
2015-09-11 09:47:27 -07:00
Dan Albert
b3c3fb5b59 am 32ec7498: am 1c7b84ca: Merge changes Ia1777fd4,I3998d88b
* commit '32ec74987344cedb5596e6da1891a9d54962f149':
  Unify unistd.h.
  Use attribute availability.
2015-09-08 20:38:46 +00:00
Dan Albert
32ec749873 am 1c7b84ca: Merge changes Ia1777fd4,I3998d88b
* commit '1c7b84ca0095e0dc4da8434e9e0c59cd2326f763':
  Unify unistd.h.
  Use attribute availability.
2015-09-08 20:32:37 +00:00
Dan Albert
1c7b84ca00 Merge changes Ia1777fd4,I3998d88b
* changes:
  Unify unistd.h.
  Use attribute availability.
2015-09-08 20:24:39 +00:00
Dan Albert
af4713e6a5 Unify unistd.h.
Make unistd.h usable from all platform versions.

Also name all function parameters for Android Studio.

Bug: http://b/21952040
Change-Id: Ia1777fd4a6d4e37f25cc402c28fb78c003e481e3
2015-09-04 13:02:09 -07:00
Dan Albert
a6435a186d Use attribute availability.
Bug: http://b/21952040
Change-Id: I3998d88bc6076d60ae5cf7efd112817f80f17971
2015-09-04 13:02:03 -07:00
Elliott Hughes
a775a41130 am edc73f62: am ba9c1705: Merge "linker: don\'t pass dlextinfo to dependent loads"
* commit 'edc73f6286bcd1f7d0278d25d4484bf23a0e53b2':
  linker: don't pass dlextinfo to dependent loads
2015-09-04 18:21:34 +00:00
Elliott Hughes
edc73f6286 am ba9c1705: Merge "linker: don\'t pass dlextinfo to dependent loads"
* commit 'ba9c17053456aed4452a349cf45c5960d9231f25':
  linker: don't pass dlextinfo to dependent loads
2015-09-04 18:12:33 +00:00
Elliott Hughes
ba9c170534 Merge "linker: don't pass dlextinfo to dependent loads" 2015-09-04 18:02:18 +00:00
Christopher Ferris
23ff8fc4ee am 2fe50aa3: am cb0d96e6: Merge "Only close stdin/stdout/stderr for debug malloc."
* commit '2fe50aa3806f2c367dddfc5ddedd1c636223b823':
  Only close stdin/stdout/stderr for debug malloc.
2015-09-04 01:31:18 +00:00
Christopher Ferris
2fe50aa380 am cb0d96e6: Merge "Only close stdin/stdout/stderr for debug malloc."
* commit 'cb0d96e6a218cc37eb0ab764740a8bf1ea385511':
  Only close stdin/stdout/stderr for debug malloc.
2015-09-04 01:17:48 +00:00
Christopher Ferris
cb0d96e6a2 Merge "Only close stdin/stdout/stderr for debug malloc." 2015-09-04 01:09:11 +00:00
Christopher Ferris
efc134dba3 Only close stdin/stdout/stderr for debug malloc.
The debug malloc code unconditionally closes stdin/stdout/stderr,
which means that other atexit functions cannot use them. Only
close these if there is a debug malloc final function to call.

This doesn't appear to be a problem on most normal applications or the
atexit_exit bionic unit test would be failing. However, if you
enable stat dumping in jemalloc, nothing prints. Most likely trying
to add an atexit function from within libc is causing that atexit
to run after the debug malloc atexit function.

Change-Id: I963720d4ccaaa511e44af07a7461f17eb3f84e8e
2015-09-03 17:45:33 -07:00
Christopher Ferris
407dea47bd am 7bb544cc: am b423ffa6: Merge "Update to v3.18.21 kernel headers."
* commit '7bb544cc7c3d70af5f06dd5cf8b33e841b816ded':
  Update to v3.18.21 kernel headers.
2015-09-03 18:14:10 +00:00
Christopher Ferris
7bb544cc7c am b423ffa6: Merge "Update to v3.18.21 kernel headers."
* commit 'b423ffa6c27ade8485f1f061fd3775553e9bb457':
  Update to v3.18.21 kernel headers.
2015-09-03 18:00:09 +00:00
Christopher Ferris
b423ffa6c2 Merge "Update to v3.18.21 kernel headers." 2015-09-03 17:52:47 +00:00
Christopher Ferris
915bf813ad Update to v3.18.21 kernel headers.
Change-Id: I4ade68d62981c7f6f361750cc811e8d84be9d5b9
2015-09-02 17:23:31 -07:00
Dmitriy Ivanov
edfc9f63a2 linker: don't pass dlextinfo to dependent loads
Don't pass the parent load's dlextinfo to dependent loads, since this
causes the linker to try to load the dependencies using the same
addresses/relro/fds/etc as the main library, which is never going to
work. This was how it worked before ae69a95 which broke this.

Bug: http://b/23742664
Bug: http://b/20948231
Bug: http://b/20841817
Change-Id: I340ebae1127666d5c6c6f9c6521b89fb93f15bdd
2015-09-02 16:32:02 -07:00
Elliott Hughes
eb457e212e am 67c6da80: am cc251966: Merge "Rename debug_stacktrace to debug_backtrace."
* commit '67c6da80bb3b6b4febc783db04ce19cdeb187092':
  Rename debug_stacktrace to debug_backtrace.
2015-09-02 04:00:02 +00:00
Elliott Hughes
67c6da80bb am cc251966: Merge "Rename debug_stacktrace to debug_backtrace."
* commit 'cc25196662cab824117e7cb79e435bd3aaf37dcc':
  Rename debug_stacktrace to debug_backtrace.
2015-09-02 03:52:24 +00:00
Elliott Hughes
cc25196662 Merge "Rename debug_stacktrace to debug_backtrace." 2015-09-02 03:44:31 +00:00
Yabin Cui
80dbedc95a am d3c7f67a: am 32c85daa: Merge "build bionic gtest runner on mac."
* commit 'd3c7f67aed0b5ac0bd7fd03c6925cbaf6b1305ba':
  build bionic gtest runner on mac.
2015-09-01 23:29:21 +00:00
Yabin Cui
d3c7f67aed am 32c85daa: Merge "build bionic gtest runner on mac."
* commit '32c85daa1570e589ce953c42b40fb34cf2b5e989':
  build bionic gtest runner on mac.
2015-09-01 23:08:34 +00:00
Elliott Hughes
32bf43f44a Rename debug_stacktrace to debug_backtrace.
All the functions say "backtrace", so it's weird that the filename
says "stacktrace".

Change-Id: I1c88a56c1f9adb1bae4615edc8af3e73db270a8c
2015-09-01 16:01:50 -07:00
Yabin Cui
32c85daa15 Merge "build bionic gtest runner on mac." 2015-09-01 22:58:23 +00:00
Yabin Cui
767fb1c5c6 build bionic gtest runner on mac.
Change-Id: I39a7e94b6662256646dfaeb8f9ecd5c03cd5fbc6
2015-09-01 15:40:38 -07:00
Elliott Hughes
695d4c62fd am c121e179: am a992004c: Merge "Regenerate NOTICE files."
* commit 'c121e179a2897e3e21d8455420dbd62822b32e53':
  Regenerate NOTICE files.
2015-08-29 04:14:22 +00:00
Elliott Hughes
c121e179a2 am a992004c: Merge "Regenerate NOTICE files."
* commit 'a992004c9edf4db0c11aae8610cce6ebf13d53b4':
  Regenerate NOTICE files.
2015-08-29 04:07:20 +00:00
Elliott Hughes
0cc8e665fd am 74c5bba5: am cb58f528: Merge "Sync with upstream FreeBSD libm."
* commit '74c5bba5404f2c286eae3a492898656e80097b11':
  Sync with upstream FreeBSD libm.
2015-08-29 04:02:34 +00:00
Elliott Hughes
a992004c9e Merge "Regenerate NOTICE files." 2015-08-29 04:00:21 +00:00
Elliott Hughes
74c5bba540 am cb58f528: Merge "Sync with upstream FreeBSD libm."
* commit 'cb58f528bfc19bbc32d8a8b9d7e954f61d622c52':
  Sync with upstream FreeBSD libm.
2015-08-29 03:55:19 +00:00
Elliott Hughes
cb58f528bf Merge "Sync with upstream FreeBSD libm." 2015-08-29 03:46:21 +00:00
Elliott Hughes
44ead71726 Regenerate NOTICE files.
Change-Id: Ia5c340220bb75e4e3166cc483ea77d19cfb08a71
2015-08-28 20:23:52 -07:00
Elliott Hughes
8cff2f95d8 Sync with upstream FreeBSD libm.
Change-Id: I97e9b23903f1d993d84825806065e85626007d31
2015-08-28 20:21:43 -07:00
Elliott Hughes
0f0c7197b5 am b57e9efd: am c2e634dd: Merge "Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64."
* commit 'b57e9efd40d5765f9ff62f2aa3b6b2ca8523b024':
  Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64.
2015-08-27 23:32:58 +00:00
Elliott Hughes
b57e9efd40 am c2e634dd: Merge "Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64."
* commit 'c2e634dd303a44b11e30ab31e39ffc4eae5467f8':
  Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64.
2015-08-27 23:24:33 +00:00
Elliott Hughes
c2e634dd30 Merge "Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64." 2015-08-27 23:17:43 +00:00
Dan Albert
5e98eaee2d am a71f81a0: am 46c7bc83: Merge "Don\'t re-export libunwind_llvm."
* commit 'a71f81a08b6a94ef79c96b62733bb97de5350d79':
  Don't re-export libunwind_llvm.
2015-08-27 22:37:01 +00:00
Dan Albert
a71f81a08b am 46c7bc83: Merge "Don\'t re-export libunwind_llvm."
* commit '46c7bc83ab0324983312f16bd40cc1cdfe11cce6':
  Don't re-export libunwind_llvm.
2015-08-27 22:27:38 +00:00
Dan Albert
46c7bc83ab Merge "Don't re-export libunwind_llvm." 2015-08-27 22:20:51 +00:00
Elliott Hughes
adf5c7237d Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64.
bionic is built without _FILE_OFFSET_BITS=64, so internally regoff_t
was 32-bit on LP32, but code compiled with _FILE_OFFSET_BITS would
expect rm_so and rm_eo in struct regmatch_t to be 64-bit, leading to
confusion.

Bug: http://b/23566443
Change-Id: Iae92fa545104068e4f64ce1977f5ec616859638c
2015-08-27 14:48:32 -07:00
Chih-hung Hsieh
4afb130399 am e7a09ff7: am bfaee4bd: Merge "Add test cases for __emutls_get_address."
* commit 'e7a09ff7d99740c5e74308abc1e209522811b814':
  Add test cases for __emutls_get_address.
2015-08-27 12:40:33 +00:00
Elliott Hughes
a0d1cda1a6 am c6effb3a: am 848808c6: Merge "Add preadv/pwritev."
* commit 'c6effb3af6f27c1acfbc2f776bb516e5f4d24476':
  Add preadv/pwritev.
2015-08-27 12:40:32 +00:00
Chih-hung Hsieh
e7a09ff7d9 am bfaee4bd: Merge "Add test cases for __emutls_get_address."
* commit 'bfaee4bd6ad901a699df21fd44d95f34e2e7444d':
  Add test cases for __emutls_get_address.
2015-08-27 05:22:56 +00:00
Elliott Hughes
c6effb3af6 am 848808c6: Merge "Add preadv/pwritev."
* commit '848808c660ec4811f4ff5a2748b6f754b008cd21':
  Add preadv/pwritev.
2015-08-27 05:22:55 +00:00
Christopher Ferris
ed90d4caea am 1154bcb3: (-s ours) am d518a6d3: Merge "Fix the 16 bit/32 bit instruction check for arm."
* commit '1154bcb3c095606fcaa5e836e935cb3406f6703d':
2015-08-27 05:06:25 +00:00
Elliott Hughes
a56db54d1d am 03deb828: (-s ours) am 629ed517: Merge "Add strchrnul."
* commit '03deb8287b019e9d526b193a0b7fa5e3fa6e8f77':
2015-08-27 05:06:24 +00:00
Elliott Hughes
83c7b596e4 am 5f55f32e: (-s ours) am 4d5c4f08: Merge "Add the missing aarch64 user structs."
* commit '5f55f32e49c804b21a66b7656297e8a426660afe':
2015-08-27 05:06:24 +00:00
Neil Fuller
268344457e am 1c751e5e: (-s ours) am 82911942: Update timezone data to 2015f
* commit '1c751e5ec76085aced87d50757495083a0f46a73':
2015-08-27 05:06:23 +00:00
Neil Fuller
b455457761 am 58cf5d6b: (-s ours) am 53f2abb5: Merge "Update timezone data to 2015f"
* commit '58cf5d6b1daf54b50c7864df563227787cb91375':
2015-08-27 05:06:22 +00:00
Neil Fuller
356868f8ac am 7336be05: (-s ours) am f7286a26: Merge "Move tzdata scripts from bionic to external/icu"
* commit '7336be059850edf23ad51f16520a9a08eff7cfe5':
2015-08-27 05:06:21 +00:00
Elliott Hughes
11a740e879 am 0ed97d1b: (-s ours) am 5bf79420: Merge "Revert "Revert "Use compiler builtins for fabs."""
* commit '0ed97d1b5fc136226d1ab62a2aa982ee5d99cabd':
2015-08-27 05:06:20 +00:00
Elliott Hughes
82f20c916e am 1a265558: (-s ours) am c868b4c3: Merge "Revert "Use compiler builtins for fabs.""
* commit '1a26555846f49a9f7d15772ab014e01cac7a6f5b':
2015-08-27 05:06:18 +00:00
Josh Gao
d32cadd1a5 am ebcaf389: (-s ours) am 0f8f9300: Merge "Add exported __popcount_tab for libgcc compat under compiler-rt."
* commit 'ebcaf389cdcb1d18622c500a6c7021259171dd39':
2015-08-27 05:06:17 +00:00
Josh Gao
b8c276b778 am df4492f3: (-s ours) am fad8370c: Merge "Improve .clang-format."
* commit 'df4492f339662ae1468bce3ee33270142227146c':
2015-08-27 05:06:16 +00:00
Elliott Hughes
756574d53e am 51b0bf03: (-s ours) am a19a9348: Merge "Use compiler builtins for fabs."
* commit '51b0bf03c074aa36f100a3d4d688f9b1687d3300':
2015-08-27 05:06:15 +00:00
Dan Albert
4ca3de4502 am 8c6b0d16: (-s ours) am a80ae8b8: Merge "Add a .clang-format file."
* commit '8c6b0d164e0d7a1a3ae4a2497e3bb9d5ae208a02':
2015-08-27 05:06:14 +00:00
Nick Kralevich
437c3e48f9 am f94b491c: (-s ours) am 4d7d05bd: Merge "Revert "fix incompatibility with -fstack-protector-strong""
* commit 'f94b491c2b9f8f01038af73863b6ba3945f70d0b':
2015-08-27 05:06:13 +00:00
Nick Kralevich
40773fb797 am abd1975d: (-s ours) am 5f7a5125: Merge "fix incompatibility with -fstack-protector-strong"
* commit 'abd1975dcc814087afb1fe262b5f2ce389fb4ff9':
2015-08-27 05:06:12 +00:00
Yabin Cui
3aa60b82ef am 65248069: (-s ours) am 62c26ed9: Merge "add fortified implementations of write/pwrite{,64}"
* commit '652480695172d90209e5163e92180a3952fba29a':
2015-08-27 05:06:10 +00:00
Elliott Hughes
806055dace am 9835b61d: (-s ours) am 49715dcc: Merge "Fix a mistype in segment overrange checking"
* commit '9835b61d636720712f79e49a5672518ead4753f9':
2015-08-27 05:06:09 +00:00
Christopher Ferris
f962a1848e am 55cd7b0b: (-s ours) am 079fc833: Merge "Modify ip to get the instr being executed."
* commit '55cd7b0b761ffb62ea522204fb2b0567862e920d':
2015-08-27 05:06:08 +00:00
Dan Albert
91aeb800d6 am af86eeec: (-s ours) am df0891ad: Merge "Add a TLS slot for TSAN."
* commit 'af86eeecc90442530ae6fa6f99188913c0198281':
2015-08-27 05:06:07 +00:00
Christopher Ferris
393e69d77e am 888ad399: (-s ours) am e4d51cf3: Merge "Add optimized cortex-a7/cortex-a53 memset/memcpy."
* commit '888ad399ee0b4da90d745fb9b45e89aec18bd8e1':
2015-08-27 05:06:06 +00:00
Elliott Hughes
a849fe6e2e am 37763e7a: (-s ours) am 4a8c4ce4: Merge "libc: remove bcopy from memmove on 64-bit architectures"
* commit '37763e7a7a3fc4b045d8a330306d652991bfed62':
2015-08-27 05:06:04 +00:00
Ying Wang
8abc375ec9 am e46c4212: (-s ours) am 85197af9: Merge "Don\'t attach linker_asan to linker in module definition."
* commit 'e46c4212d6478975dbbb7f7105ad05c2cdb07d7b':
2015-08-27 05:06:03 +00:00
Elliott Hughes
f92664cbe5 am 3034028d: (-s ours) am 6816d8cc: Merge "Use __builtin_* in <math.h>."
* commit '3034028d7a1f93e46e212061efe7b57fe8758107':
2015-08-27 05:06:01 +00:00
Elliott Hughes
b635c4ebb2 am 0ff5dda1: (-s ours) am dd8adc35: Merge "libm: ARM: reorganize a bit to match ARM64"
* commit '0ff5dda1020c4da9c4d21d8d3d4ad9ba15848441':
2015-08-27 05:06:00 +00:00
Elliott Hughes
ec6a557b38 am 1789ac90: (-s ours) am b4f2112f: Merge "[MIPS] Invalidate cached pid in vfork."
* commit '1789ac90f7ca94c161958640297b6b4aafa152fd':
2015-08-27 05:05:58 +00:00
Dan Albert
79697a7096 am 9423fb23: (-s ours) am f2985ed8: Merge "Fix test steps for 64-bit bionic"
* commit '9423fb23757a0d6d4f112a3f231717896444207b':
2015-08-27 05:05:57 +00:00
Dan Albert
8cc0d89a9d am 34afc42a: (-s ours) am 2b934924: Merge "Add missing include."
* commit '34afc42ae749c9cd7ce660ef6ab0c50bdbb41497':
2015-08-27 05:05:53 +00:00
Yabin Cui
0bbda9838b am 2bcb25c1: (-s ours) am 0660be89: am a6a12a78: am 0fdcdd00: Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev
* commit '2bcb25c1c3153a28229bffcdd4d289ac72b987cc':
2015-08-27 05:05:46 +00:00
Dan Albert
3ce99a04a9 am ee8576d1: (-s ours) am a3c01467: Merge "Move up to C++14."
* commit 'ee8576d11413c7b9d42f466fb378921b4cdb01f3':
2015-08-27 05:05:44 +00:00
Yabin Cui
7b02991de7 am c23143a5: (-s ours) am ff4afc13: Merge "Omit comment when reading --gtest_list_tests option\'s output."
* commit 'c23143a5fdd32a1cc0ca0efdb435d9f46b596113':
2015-08-27 05:05:42 +00:00
Elliott Hughes
29eaaa6ee5 am 23e0bdf7: (-s ours) am 182b91f6: Merge "Invalidate cached pid in vfork."
* commit '23e0bdf7d4476399c04557396e288ad21938e65f':
2015-08-27 05:05:40 +00:00
Andreas Gampe
34df06eb8a am fd202300: (-s ours) am e80369ab: Merge "Bionic: Add a TLS slot for ART for Thread self"
* commit 'fd202300d8639065406f054e7232e9135572bb81':
2015-08-27 05:05:38 +00:00
Elliott Hughes
45f262c084 am 711d7b9f: (-s ours) am b3db7764: Merge "name the arc4random structure mappings"
* commit '711d7b9f90648183af684f80b9de80fc83b43824':
2015-08-27 05:05:37 +00:00
Elliott Hughes
a31ba88d4c am 65941221: (-s ours) am f57f7945: Merge "Cherrypick upstream fnmatch.c fix."
* commit '65941221b5985c824783f8c549241695a0cb6f92':
2015-08-27 05:05:35 +00:00
Elliott Hughes
f1a2cd9713 am dc181dd7: (-s ours) am 2278d29a: Merge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"
* commit 'dc181dd7882e1a633400fe410266dc58152c7c10':
2015-08-27 05:05:32 +00:00
Yabin Cui
37c4110f41 am 993a2bee: (-s ours) am 7e919dae: Merge "add a fortified implementation of getcwd"
* commit '993a2bee84e25604e7ef8c1d386e7cd3904627e0':
2015-08-27 05:05:30 +00:00
Elliott Hughes
ba06d5519e am 5b916453: (-s ours) am 25907058: Merge "Sync current upstream fnmatch.c."
* commit '5b916453f3d75ca9bbac6825191442c4b159e6a9':
2015-08-27 05:05:25 +00:00
Elliott Hughes
dc5970d025 am 9d7c6a7e: (-s ours) am 61c21b63: Merge "Revert "add a fortified implementation of getcwd""
* commit '9d7c6a7e570a8b91a094f0df4407b5624b469730':
2015-08-27 05:05:22 +00:00
Yabin Cui
e6623ebcaf am 4279bac2: (-s ours) am 442a3fca: Merge "add a fortified implementation of getcwd"
* commit '4279bac26a15b69a85d3d98a57ff7094b579f207':
2015-08-27 05:05:20 +00:00
Elliott Hughes
b51b07117c am 19a8b3fc: (-s ours) am 807f27f9: Merge "Stop sending SIGPIPE to debuggerd."
* commit '19a8b3fc8296974a4c65f52bd5da050b442bf901':
2015-08-27 05:05:18 +00:00
Elliott Hughes
1dd6f6436b am d473681f: (-s ours) am 44989174: Merge "Prevent buffer over-read in linker.cpp\'s parse_path."
* commit 'd473681fb1ba8e93154a16ca5d9290c66c6da224':
2015-08-27 05:05:15 +00:00
Elliott Hughes
3cb8b52334 am 89a64c0f: (-s ours) am 34c5f5ea: Merge "Remove PAGE_SIZE from <limits.h>."
* commit '89a64c0f2ee1abfbda37049b7700c104a0092946':
2015-08-27 05:05:12 +00:00
Elliott Hughes
d4cc5122d2 am 5c104603: (-s ours) am 374adfee: Merge "Don\'t transitively include <limits.h> from <sys/user.h>."
* commit '5c104603a01ef3bffa6819313508a29722756bcf':
2015-08-27 05:05:09 +00:00
Elliott Hughes
6ed2717b28 am c5de153b: (-s ours) am 1ff4094a: Merge "Remove PAGESIZE."
* commit 'c5de153bc6600a73722a594416a9398361dfb942':
2015-08-27 05:05:06 +00:00
Elliott Hughes
6141acb75f am a3c3a6b2: (-s ours) am c8ba22c8: Merge "Move PAGE_MASK into <sys/user.h>."
* commit 'a3c3a6b2df6de20f22139fae79c6bd124fc7fdb6':
2015-08-27 05:04:56 +00:00
Mark Salyzyn
9f80696d4e am 835a23cc: (-s ours) am 1923d4c0: Merge "deprecate TARGET_USES_LOGD"
* commit '835a23cc9caeeee7f591bd241dc88fbd205c7ef8':
2015-08-27 05:04:53 +00:00
Elliott Hughes
21b3d798e8 am c9bee108: (-s ours) am 4955cde2: Merge "Add a regression test for a fixed strnlen bug."
* commit 'c9bee108050ab367953f8f1d9cb73e837c1d06df':
2015-08-27 05:04:49 +00:00
Chih-hung Hsieh
8a955e1493 am c11758f2: (-s ours) am cebef1a7: Merge "Add one simple thread local storage test."
* commit 'c11758f2c9ff88d069c1fa22be5165220a07dc5c':
2015-08-27 05:04:47 +00:00
Christopher Ferris
741d5ae03d am e1f1a635: (-s ours) am e8ceb95c: Merge "Remove pushes from memsets (krait/cortex-a9)."
* commit 'e1f1a6353a4a537cca7ecc1a128bf98bf3790df1':
2015-08-27 05:04:44 +00:00
Yabin Cui
73a6ac348d am 0e63c39c: (-s ours) am 8af32633: Merge "add fortified implementations of fread/fwrite"
* commit '0e63c39cca56ae1d2b5877b6ffced3c6a4ca312b':
2015-08-27 05:04:41 +00:00
Elliott Hughes
273292a11a am d79de83b: (-s ours) am f16c6e17: Merge "Restore protection flags for ifunc during relocs."
* commit 'd79de83bfca0da705dbced60e0294f29da4aa63d':
2015-08-27 05:04:34 +00:00
Dmitriy Ivanov
a3b90f275a am ab6ca484: (-s ours) am de0fb393: Restore protection flags for ifunc during relocs.
* commit 'ab6ca484bd69842e9a56f01c7eef72e5368936d1':
2015-08-27 05:04:29 +00:00
Elliott Hughes
89722d9f65 am fd3cd1cc: (-s ours) am bff19682: Merge "name the atexit handler pages"
* commit 'fd3cd1cc2a508a8a70780253fbe60ef1798aca21':
2015-08-27 05:04:26 +00:00
Elliott Hughes
010563c886 am 7835c65c: (-s ours) am adc5795f: Merge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)."
* commit '7835c65ca777cd88b9ec656d780a7a48b591467f':
2015-08-27 05:04:24 +00:00
Christopher Ferris
f616c70e20 am dd3eb086: (-s ours) am a3a61983: Merge "Make all labels local."
* commit 'dd3eb0862e8a025783f952a32c3b785a255035c2':
2015-08-27 05:04:21 +00:00
Yabin Cui
fda41cce04 am 0bfe75bc: (-s ours) am b8320b80: Don\'t abort when failed to write tracing message.
* commit '0bfe75bc317d351404df13c560242dd3e44cf54b':
2015-08-27 05:04:11 +00:00
Yabin Cui
1ebd90caf1 am b9da7c15: (-s ours) am 9e1c862c: Merge "Don\'t abort when failed to write tracing message."
* commit 'b9da7c151df389426b379477676ddaceff43543a':
2015-08-27 05:04:09 +00:00
Yabin Cui
5ca7a74838 am c0c9704e: (-s ours) am 2565492d: Merge "Add getgrgid_r/getgrnam_r."
* commit 'c0c9704e1128bcc1e172e23032b63b7b31c75283':
2015-08-27 05:04:07 +00:00
Elliott Hughes
775339f00e am da24f8af: (-s ours) am 3b49d61a: Merge "libc: arch-x86: implement kernel vdso time functions"
* commit 'da24f8af38cb7829a3947ee320449c05f79f6a63':
2015-08-27 05:04:05 +00:00
Ying Wang
5f8b4eb2a8 am 9c4f3522: (-s ours) am 86ac443c: Merge "We don\'t have CXX_BARE any more"
* commit '9c4f35229df162e42a34aae94b3eb2e2436c4469':
2015-08-27 05:04:03 +00:00
Elliott Hughes
0931e46f64 am 2329b721: (-s ours) am bc0b8ff2: Merge "Use a less misleading name for the code that sets up the main thread."
* commit '2329b7218e2ca65767020f135b524d1c22957791':
2015-08-27 05:04:01 +00:00
Dan Albert
9405119369 am 8cc83e5c: (-s ours) am 7e52dbe4: Merge "Revert "Stop libc from cross-referencing unwind symbols"" into mnc-dev
* commit '8cc83e5c6669fe815d69abf9d3263425e751c741':
2015-08-27 05:03:59 +00:00
Ying Wang
8f137f06ea am 40e2b72f: (-s ours) am e39b279b: Merge "We don\'t have CXX_BARE any more" into mnc-dev
* commit '40e2b72fb30cd0aace5b85185e1d0989c9ff2e1a':
2015-08-27 05:03:57 +00:00
Christopher Ferris
3ff0bae759 am 953611ba: (-s ours) am aa55e7ad: Add support for non-zero vaddr in maps.
* commit '953611bae03e92e728226a729b990b9516914f9c':
2015-08-27 05:03:55 +00:00
Christopher Ferris
3a647e158d am a41556d3: (-s ours) am c99fabb7: Merge "Add support for non-zero vaddr in maps."
* commit 'a41556d398e3222d6e6d468c997a78c809c146fd':
2015-08-27 05:03:53 +00:00
Elliott Hughes
78f34b981e am ded55525: (-s ours) am 3bcfd47c: Merge "Revert "Revert "make vdso function pointers read-only at runtime"""
* commit 'ded555256d72c0f8491b5edc0e4550c45d61059d':
2015-08-27 05:03:51 +00:00
Dan Albert
930936ae7b am a645ebed: (-s ours) am f37c237b: Merge "Revert "Stop libc from cross-referencing unwind symbols""
* commit 'a645ebed9c42264f41bece4f9bf378ed37abc97b':
2015-08-27 05:03:49 +00:00
Dmitriy Ivanov
f98c881d8e am 8bdf8ab9: (-s ours) am e70d7a78: Merge "Fix dt_runpath test."
* commit '8bdf8ab97c59f6c0a0152d923dcb668681e4e031':
2015-08-27 05:03:47 +00:00
Elliott Hughes
70a5005ea6 am f8457c2d: (-s ours) am e5544ae1: Merge "<sys/time.h> should include [most of] <sys/select.h>."
* commit 'f8457c2d95e217f26553e8454f1e91673cf7ac8f':
2015-08-27 05:03:46 +00:00
Elliott Hughes
4110bb6452 am 6071a7b9: (-s ours) am 6c9ad82b: Merge "Revert "make vdso function pointers read-only at runtime""
* commit '6071a7b9ef107d0928588b9232c0bcbd4de82a53':
2015-08-27 05:03:44 +00:00
Elliott Hughes
f86b5a751c am ba1c89e9: (-s ours) am 4f2e1d3b: Merge "Add all the glibc one-line "synonym" header files."
* commit 'ba1c89e9b33c4bde320bcafcb564ac69c0303d92':
2015-08-27 05:03:42 +00:00
Elliott Hughes
93ec254b9e am 4ec3dcf8: (-s ours) am ca7bc509: Merge "make vdso function pointers read-only at runtime"
* commit '4ec3dcf8ecd34d6d530c94b0e45775eac43a92f4':
2015-08-27 05:03:40 +00:00
Dmitriy Ivanov
3d397fa661 am 436ff890: (-s ours) am a58d2498: Merge "Fix potential race condition on dlopen"
* commit '436ff890df2dedc6fc1083a8a71873a9731bb6c1':
2015-08-27 05:03:37 +00:00
Bertrand SIMONNET
09f2ae9b40 am df6eee9f: (-s ours) am 60bc9090: Merge "Add timespec/timeval conversion helpers."
* commit 'df6eee9f85d9482c9b561b6817fcfd8ce1a56d5c':
2015-08-27 05:03:35 +00:00
Dmitriy Ivanov
256e992517 am 0ee0dd8b: (-s ours) am cd588f84: Merge "Add constant for zip separator"
* commit '0ee0dd8b3d66e05a86ca12c35d16752b574bcad0':
2015-08-27 05:03:33 +00:00
Evgenii Stepanov
4972c73602 am fb186d55: (-s ours) am b3140904: Merge "Replace spaces with tabs in a Makefile."
* commit 'fb186d55e87c2c5817872fda81c29c18e9e0a22d':
2015-08-27 05:03:31 +00:00
Evgenii Stepanov
67e5c7f06f am 760345a9: (-s ours) am e9774a52: Merge "A special linker for ASan executables."
* commit '760345a959fdc9fbc849e6f72bbf386960f2d838':
2015-08-27 05:03:29 +00:00
Yabin Cui
9d4bfe17b9 am a89821ab: (-s ours) am 60a11dcb: Merge "Add test for an Android kernel bug about prctl."
* commit 'a89821abe3f2f3e763a95ac1e8e330fbbbca4996':
2015-08-27 05:03:27 +00:00
Christopher Ferris
eafe28f85a am bf880978: (-s ours) am a8d82f12: Merge "Update to v3.18.18 kernel headers."
* commit 'bf8809782ea6f13ae0c14750d53d5077e51c0205':
2015-08-27 05:03:25 +00:00
Christopher Ferris
74484e8bd4 am 72361125: (-s ours) am 5e3dc45a: Merge "Do not hold hash table lock while backtracing."
* commit '723611256117f2328101a1db4a7cad8ac8043978':
2015-08-27 05:03:20 +00:00
Christopher Ferris
ac02082fa0 am 6db9c199: (-s ours) am 43d35c35: Merge "Do not hold hash table lock while backtracing." into mnc-dev
* commit '6db9c199a81e8c104abc011246796faa22bfacc8':
2015-08-27 05:03:17 +00:00
Elliott Hughes
44cb343e4d am 45baf0f3: (-s ours) am 147a50d0: Merge "Prevent user-defined basename_r from breaking basename(3)."
* commit '45baf0f384e6e2cbaa5383765a8671a00c85ea55':
2015-08-27 05:03:15 +00:00
Neil Fuller
44808d163f am c64ed22e: (-s ours) am 64c82544: Merge "Update timezone data to 2015e" into mnc-dev
* commit 'c64ed22e9b7c341d7e95ce526b37aaacadd420e2':
2015-08-27 05:03:13 +00:00
Dmitriy Ivanov
91ceb2b70a am db996ae7: (-s ours) am a5bb841d: Fix memory-leak on soinfo_free()
* commit 'db996ae74c36e334899ad381d84a84c67cbe8bcc':
2015-08-27 05:03:11 +00:00
Dmitriy Ivanov
e875510e17 am 7974b834: (-s ours) am 880a2933: Merge "Fix memory-leak on soinfo_free()"
* commit '7974b83443d782c361f2bb92abfcdcba6dffa3c9':
2015-08-27 05:03:09 +00:00
Pirama Arumuga Nainar
9b8179fb7e am fcd01714: (-s ours) am d1e10d7d: Merge "Use delete[] to de-allocate pointers from new[]"
* commit 'fcd017148ba7ecf181f2f4065437c01c1c66cd4e':
2015-08-27 05:03:04 +00:00
Daniel Erat
22b9e685bc am 818295c3: (-s ours) am c6f25641: Merge "libc: Add sys/fcntl.h for compatibility."
* commit '818295c3f7e204baa1cd3f2d6e44c773dcd052af':
2015-08-27 05:03:02 +00:00
Evgenii Stepanov
9b484289e1 am b4f5d6d8: (-s ours) am 33ef6c20: Merge "Respect caller DT_RUNPATH in dlopen()."
* commit 'b4f5d6d89471ffc4cd5f528e95b4fbf869c339d5':
2015-08-27 05:02:59 +00:00
Christopher Ferris
82ff96be56 am ce302bff: (-s ours) am 90de6820: Merge "Replace bx lr with update of pc from the stack."
* commit 'ce302bff6ad655a46a04ef680d332b6ad72e2650':
2015-08-27 05:02:57 +00:00
Elliott Hughes
e75d37eb5a am b82a5a96: (-s ours) am 7a9732d6: Merge "Add some glibc-like #defines for libchrome."
* commit 'b82a5a96f8df82bc02878628d8549366bbe78fa0':
2015-08-27 05:02:53 +00:00
Elliott Hughes
0746d0f175 am 95997b69: (-s ours) am 89bbb846: Merge "Fix alignment after variable-length data."
* commit '95997b691f788c06b68710ad015c9dc668e7b91f':
2015-08-27 05:02:49 +00:00
Elliott Hughes
fca5c4413a am a6441ac5: (-s ours) am 65dd8582: Fix alignment after variable-length data.
* commit 'a6441ac5bf85d187aa47be7a22483c7d5d321599':
2015-08-27 05:02:45 +00:00
Elliott Hughes
12ec03e3af am 4059fcd2: (-s ours) am f542b309: Merge "Name the thread stack and signal stack guard pages."
* commit '4059fcd29ba2731b30001f7a8a12300431461cd3':
2015-08-27 05:02:40 +00:00
Chih-hung Hsieh
bfaee4bd6a Merge "Add test cases for __emutls_get_address." 2015-08-26 22:27:35 +00:00
Elliott Hughes
848808c660 Merge "Add preadv/pwritev." 2015-08-26 22:04:32 +00:00
Elliott Hughes
6f4594d5dc Add preadv/pwritev.
Bug: http://b/12612572
Change-Id: I38ff2684d69bd0fe3f21b1d371b88fa60d5421cb
2015-08-26 14:48:55 -07:00
Chih-Hung Hsieh
83380b5cf0 Add test cases for __emutls_get_address.
BUG: 22984770
Change-Id: I193c3612190260a08f3b3ad8b856c0ae8f94e03d
2015-08-26 13:10:14 -07:00
Christopher Ferris
6501864af4 am d518a6d3: Merge "Fix the 16 bit/32 bit instruction check for arm."
* commit 'd518a6d3bccc82cffb61fb7615b8ba09a564dec0':
  Fix the 16 bit/32 bit instruction check for arm.
2015-08-26 19:59:06 +00:00
Christopher Ferris
1154bcb3c0 am d518a6d3: Merge "Fix the 16 bit/32 bit instruction check for arm."
* commit 'd518a6d3bccc82cffb61fb7615b8ba09a564dec0':
  Fix the 16 bit/32 bit instruction check for arm.
2015-08-26 19:55:21 +00:00
Christopher Ferris
d518a6d3bc Merge "Fix the 16 bit/32 bit instruction check for arm." 2015-08-26 19:39:36 +00:00
Elliott Hughes
f2700df2ae am 629ed517: Merge "Add strchrnul."
* commit '629ed517126b3be32f2b2e8b710e63358691c296':
  Add strchrnul.
2015-08-26 18:43:58 +00:00
Elliott Hughes
7443dd5805 am 4d5c4f08: Merge "Add the missing aarch64 user structs."
* commit '4d5c4f085bc880af838d50f6bbd60d86e800b6e1':
  Add the missing aarch64 user structs.
2015-08-26 18:43:57 +00:00
Elliott Hughes
03deb8287b am 629ed517: Merge "Add strchrnul."
* commit '629ed517126b3be32f2b2e8b710e63358691c296':
  Add strchrnul.
2015-08-26 18:42:45 +00:00
Elliott Hughes
5f55f32e49 am 4d5c4f08: Merge "Add the missing aarch64 user structs."
* commit '4d5c4f085bc880af838d50f6bbd60d86e800b6e1':
  Add the missing aarch64 user structs.
2015-08-26 18:42:45 +00:00
Elliott Hughes
629ed51712 Merge "Add strchrnul." 2015-08-26 18:27:05 +00:00
Christopher Ferris
b72c9d80ab Fix the 16 bit/32 bit instruction check for arm.
The current code only looks for a branch, instead make this more
general.

Change-Id: Ib442d6f2f04074e274b320ca0cf04734cc78e5d2
2015-08-26 10:55:09 -07:00
Elliott Hughes
7ac3c128bb Add strchrnul.
Bug: http://b/18374026
Change-Id: Iea923309c090a51a2d41c5a83320ab3789f40f1c
2015-08-26 09:59:29 -07:00
Elliott Hughes
4d5c4f085b Merge "Add the missing aarch64 user structs." 2015-08-26 01:39:38 +00:00
Dan Albert
cc6461861e Don't re-export libunwind_llvm.
Change-Id: Ic16be4ada4cff374209d5eea89a7f81ed2fff398
2015-08-25 16:29:28 -07:00
Elliott Hughes
03f22465ae Add the missing aarch64 user structs.
Bug: http://b/23377194
Change-Id: I7d36717e129d2e044dc2cf24de4227c3bcdd60ce
2015-08-25 14:18:26 -07:00
Neil Fuller
cc4245a8de am 82911942: Update timezone data to 2015f
* commit '829119425bcc2b5fcec8fdf219026a5192c81234':
  Update timezone data to 2015f
2015-08-25 20:09:02 +00:00
Neil Fuller
1c751e5ec7 am 82911942: Update timezone data to 2015f
* commit '829119425bcc2b5fcec8fdf219026a5192c81234':
  Update timezone data to 2015f
2015-08-25 19:48:50 +00:00
Neil Fuller
829119425b Update timezone data to 2015f
Changes affecting future time stamps

    North Korea switches to +0830 on 2015-08-15.  (Thanks to Steffen Thorsen.)
    The abbreviation remains "KST".  (Thanks to Robert Elz.)

    Uruguay no longer observes DST.  (Thanks to Steffen Thorsen
    and Pablo Camargo.)

  Changes affecting past and future time stamps

    Moldova starts and ends DST at 00:00 UTC, not at 01:00 UTC.
    (Thanks to Roman Tudos.)

Bug: 23480367
(cherry-picked from commit 6e7bc700e287f5d46165862a7031236670fa94d5)

Change-Id: I4d82604366e9e30a2100e09433e2772fe6957fff
2015-08-25 20:03:11 +01:00
Neil Fuller
58cf5d6b1d am 53f2abb5: Merge "Update timezone data to 2015f"
* commit '53f2abb5ffc103b9ea7fbe2fee13edead2553f3a':
  Update timezone data to 2015f
2015-08-25 18:55:00 +00:00
Neil Fuller
ff78def4fc am 53f2abb5: Merge "Update timezone data to 2015f"
* commit '53f2abb5ffc103b9ea7fbe2fee13edead2553f3a':
  Update timezone data to 2015f
2015-08-25 18:49:51 +00:00
Neil Fuller
53f2abb5ff Merge "Update timezone data to 2015f" 2015-08-25 18:31:26 +00:00
Neil Fuller
6e7bc700e2 Update timezone data to 2015f
Changes affecting future time stamps

    North Korea switches to +0830 on 2015-08-15.  (Thanks to Steffen Thorsen.)
    The abbreviation remains "KST".  (Thanks to Robert Elz.)

    Uruguay no longer observes DST.  (Thanks to Steffen Thorsen
    and Pablo Camargo.)

  Changes affecting past and future time stamps

    Moldova starts and ends DST at 00:00 UTC, not at 01:00 UTC.
    (Thanks to Roman Tudos.)

Bug: 23480367
Change-Id: I6a46b79be3a547d4af5f3f7ca1452640ed764e1c
2015-08-25 12:46:33 +01:00
Neil Fuller
650e66cd7e am f7286a26: Merge "Move tzdata scripts from bionic to external/icu"
* commit 'f7286a26deba0da370003eb97918176a69b6cfa6':
  Move tzdata scripts from bionic to external/icu
2015-08-25 10:04:12 +00:00
Neil Fuller
7336be0598 am f7286a26: Merge "Move tzdata scripts from bionic to external/icu"
* commit 'f7286a26deba0da370003eb97918176a69b6cfa6':
  Move tzdata scripts from bionic to external/icu
2015-08-25 10:04:11 +00:00
Neil Fuller
f7286a26de Merge "Move tzdata scripts from bionic to external/icu" 2015-08-25 09:22:36 +00:00
Elliott Hughes
1b22327893 am 5bf79420: Merge "Revert "Revert "Use compiler builtins for fabs."""
* commit '5bf7942008287381e6d2aa2216d9ded24f639142':
  Revert "Revert "Use compiler builtins for fabs.""
2015-08-24 23:23:14 +00:00
Elliott Hughes
0ed97d1b5f am 5bf79420: Merge "Revert "Revert "Use compiler builtins for fabs."""
* commit '5bf7942008287381e6d2aa2216d9ded24f639142':
  Revert "Revert "Use compiler builtins for fabs.""
2015-08-24 23:23:02 +00:00
Elliott Hughes
5bf7942008 Merge "Revert "Revert "Use compiler builtins for fabs.""" 2015-08-24 23:12:49 +00:00
Elliott Hughes
f9f4a432ee Revert "Revert "Use compiler builtins for fabs.""
Don't enable the inlines when building libm itself. Otherwise clang gets
upset by seeing both an inline and a non-inline definition.

This reverts commit c5deb0f883cbdca7e5ab75f92f82c31d21367f49.

Change-Id: If7abdb351f5a5549d6a331b33af408e8fcfa9868
2015-08-24 16:05:48 -07:00
Elliott Hughes
66a7be9961 am c868b4c3: Merge "Revert "Use compiler builtins for fabs.""
* commit 'c868b4c35184683fe74ff8c8d780d021c2b07464':
  Revert "Use compiler builtins for fabs."
2015-08-24 21:22:09 +00:00
Elliott Hughes
1a26555846 am c868b4c3: Merge "Revert "Use compiler builtins for fabs.""
* commit 'c868b4c35184683fe74ff8c8d780d021c2b07464':
  Revert "Use compiler builtins for fabs."
2015-08-24 21:22:06 +00:00
Elliott Hughes
c868b4c351 Merge "Revert "Use compiler builtins for fabs."" 2015-08-24 21:08:28 +00:00
Elliott Hughes
c5deb0f883 Revert "Use compiler builtins for fabs."
Use of "extern inline" breaks clang build.

This reverts commit d76f16973a9d06765fb1f482239b9559f893ffd0.

Change-Id: I995d0d38c3776f5c50b060f16770741c92a2acac
2015-08-24 21:08:13 +00:00
Josh Gao
5ad3ebf08d am 0f8f9300: Merge "Add exported __popcount_tab for libgcc compat under compiler-rt."
* commit '0f8f9300b84fff37088218c69cc13bdc489963eb':
  Add exported __popcount_tab for libgcc compat under compiler-rt.
2015-08-24 21:00:03 +00:00
Josh Gao
aad7f33e2a am fad8370c: Merge "Improve .clang-format."
* commit 'fad8370cfbf24c8913fc898950698c3675133e23':
  Improve .clang-format.
2015-08-24 21:00:02 +00:00
Josh Gao
ebcaf389cd am 0f8f9300: Merge "Add exported __popcount_tab for libgcc compat under compiler-rt."
* commit '0f8f9300b84fff37088218c69cc13bdc489963eb':
  Add exported __popcount_tab for libgcc compat under compiler-rt.
2015-08-24 20:59:46 +00:00
Josh Gao
df4492f339 am fad8370c: Merge "Improve .clang-format."
* commit 'fad8370cfbf24c8913fc898950698c3675133e23':
  Improve .clang-format.
2015-08-24 20:59:45 +00:00
Josh Gao
0f8f9300b8 Merge "Add exported __popcount_tab for libgcc compat under compiler-rt." 2015-08-24 20:49:05 +00:00
Josh Gao
fad8370cfb Merge "Improve .clang-format." 2015-08-24 20:47:46 +00:00
Elliott Hughes
b8c08f44ab am a19a9348: Merge "Use compiler builtins for fabs."
* commit 'a19a9348b7160ce967c70a9f4f38afede8dcafa9':
  Use compiler builtins for fabs.
2015-08-24 20:45:59 +00:00
Elliott Hughes
51b0bf03c0 am a19a9348: Merge "Use compiler builtins for fabs."
* commit 'a19a9348b7160ce967c70a9f4f38afede8dcafa9':
  Use compiler builtins for fabs.
2015-08-24 20:45:45 +00:00
Elliott Hughes
a19a9348b7 Merge "Use compiler builtins for fabs." 2015-08-24 20:33:15 +00:00
Elliott Hughes
d76f16973a Use compiler builtins for fabs.
Change-Id: Id3bf761d6dfc187f218b5215c53d76bddc83d50b
2015-08-24 13:32:40 -07:00
Josh Gao
06b3f70cfe Add exported __popcount_tab for libgcc compat under compiler-rt.
Change-Id: I8df09e8f199761edbba290d7f1ea530781054b03
2015-08-24 13:06:10 -07:00
Dan Albert
8c6b0d164e am a80ae8b8: Merge "Add a .clang-format file."
* commit 'a80ae8b84812d69ca63647262ab888b2f40d55a0':
  Add a .clang-format file.
2015-08-24 20:02:15 +00:00
Dan Albert
784ccf07bf am a80ae8b8: Merge "Add a .clang-format file."
* commit 'a80ae8b84812d69ca63647262ab888b2f40d55a0':
  Add a .clang-format file.
2015-08-24 20:00:37 +00:00
Josh Gao
8258cd7c1b Improve .clang-format.
Change-Id: Idfd7879cc3bf1a1cdbe33262c2506fac2f07b428
2015-08-24 13:00:13 -07:00
Dan Albert
a80ae8b848 Merge "Add a .clang-format file." 2015-08-24 19:47:16 +00:00
Dan Albert
6e68c07550 Add a .clang-format file.
Change-Id: I6c4c492d9b571dd654b4993d1de1827813963ce1
2015-08-24 11:27:58 -07:00
Neil Fuller
ac77536b79 Move tzdata scripts from bionic to external/icu
The scripts affect files in external/icu, bionic
and the generated files affect libcore. The files must
be updated together so there is no "obvious" home.

OEM developers seem to want to update ICU
themselves and have been asking how. Moving the
scripts to external/icu and splitting the ICU generation
code into a sub-script they can run makes some sense.

Bug: 23419215
Change-Id: Ia26fa526fd2b560a79f36d327a10e262a85db752
2015-08-24 18:25:05 +01:00
Nick Kralevich
f94b491c2b am 4d7d05bd: Merge "Revert "fix incompatibility with -fstack-protector-strong""
* commit '4d7d05bd60b1d0bc20c95dd764fc2d916a12bb74':
  Revert "fix incompatibility with -fstack-protector-strong"
2015-08-24 07:10:16 +00:00
Nick Kralevich
f17f8157b2 am 4d7d05bd: Merge "Revert "fix incompatibility with -fstack-protector-strong""
* commit '4d7d05bd60b1d0bc20c95dd764fc2d916a12bb74':
  Revert "fix incompatibility with -fstack-protector-strong"
2015-08-24 07:10:15 +00:00
Nick Kralevich
4d7d05bd60 Merge "Revert "fix incompatibility with -fstack-protector-strong"" 2015-08-24 06:59:43 +00:00
Nick Kralevich
3d01422272 Revert "fix incompatibility with -fstack-protector-strong"
Reports of devices not booting with a build range including
this patch. Reverting while I investigate.

This reverts commit 96dd2b6e85e03ca9ab2600c2031490c22d5626ad.

Bug: 23470962
Change-Id: I056f1d8668f52d31412868975f2143249fc7e8f0
2015-08-24 06:58:39 +00:00
Nick Kralevich
51d2579367 am 5f7a5125: Merge "fix incompatibility with -fstack-protector-strong"
* commit '5f7a5125a53951543e27276877fa6b71eb08a5d8':
  fix incompatibility with -fstack-protector-strong
2015-08-24 04:30:22 +00:00
Nick Kralevich
abd1975dcc am 5f7a5125: Merge "fix incompatibility with -fstack-protector-strong"
* commit '5f7a5125a53951543e27276877fa6b71eb08a5d8':
  fix incompatibility with -fstack-protector-strong
2015-08-24 04:29:15 +00:00
Nick Kralevich
5f7a5125a5 Merge "fix incompatibility with -fstack-protector-strong" 2015-08-23 16:21:18 +00:00
Yabin Cui
d54d116352 am 62c26ed9: Merge "add fortified implementations of write/pwrite{,64}"
* commit '62c26ed93e76ca9b3dd265f41eb3685ed2e72808':
  add fortified implementations of write/pwrite{,64}
2015-08-21 03:17:54 +00:00
Yabin Cui
6524806951 am 62c26ed9: Merge "add fortified implementations of write/pwrite{,64}"
* commit '62c26ed93e76ca9b3dd265f41eb3685ed2e72808':
  add fortified implementations of write/pwrite{,64}
2015-08-21 03:17:34 +00:00
Yabin Cui
62c26ed93e Merge "add fortified implementations of write/pwrite{,64}" 2015-08-21 03:03:22 +00:00
Elliott Hughes
21a285029b am 49715dcc: Merge "Fix a mistype in segment overrange checking"
* commit '49715dcc8a8be1b4545b91e453467e1c45343e51':
  Fix a mistype in segment overrange checking
2015-08-20 23:26:37 +00:00
Elliott Hughes
9835b61d63 am 49715dcc: Merge "Fix a mistype in segment overrange checking"
* commit '49715dcc8a8be1b4545b91e453467e1c45343e51':
  Fix a mistype in segment overrange checking
2015-08-20 23:26:19 +00:00
Elliott Hughes
49715dcc8a Merge "Fix a mistype in segment overrange checking" 2015-08-20 23:13:15 +00:00
Daniel Micay
afdd15456a add fortified implementations of write/pwrite{,64}
These are just based on the read/pread{,64} implementations with the
function calls and error messages adjusted as appropriate. The only
difference is that the buffer parameters are const.

Change-Id: Ida1597a903807f583f230d74bcedffdb7b24fcf6
2015-08-20 13:46:51 -04:00
Christopher Ferris
55cd7b0b76 am 079fc833: Merge "Modify ip to get the instr being executed."
* commit '079fc833137d5067c0cd3dc5211e72019314dd80':
  Modify ip to get the instr being executed.
2015-08-19 22:31:02 +00:00
Christopher Ferris
3c0d78d576 am 079fc833: Merge "Modify ip to get the instr being executed."
* commit '079fc833137d5067c0cd3dc5211e72019314dd80':
  Modify ip to get the instr being executed.
2015-08-19 22:20:21 +00:00
skvalex
93ce35434c Fix a mistype in segment overrange checking
Change-Id: Ibea93514aa7ba3b1ac2bc00420f5124fb34f5f66
Signed-off-by: skvalex <skvalex@gmail.com>
2015-08-20 01:06:42 +03:00
Christopher Ferris
079fc83313 Merge "Modify ip to get the instr being executed." 2015-08-19 18:25:38 +00:00
Dan Albert
af86eeecc9 am df0891ad: Merge "Add a TLS slot for TSAN."
* commit 'df0891adcfe97dd8e4c825ea6ea586cc5bd09ef6':
  Add a TLS slot for TSAN.
2015-08-18 22:57:57 +00:00
Dan Albert
4a8f4867fc am df0891ad: Merge "Add a TLS slot for TSAN."
* commit 'df0891adcfe97dd8e4c825ea6ea586cc5bd09ef6':
  Add a TLS slot for TSAN.
2015-08-18 22:55:41 +00:00
Dan Albert
df0891adcf Merge "Add a TLS slot for TSAN." 2015-08-18 22:43:47 +00:00
Christopher Ferris
224bef8ec4 Modify ip to get the instr being executed.
The ip values being reported are always pointing at the next
instruction to execute, not the currently executing instruction.
Change the ip address to point at the currently executing instruction.

This fixes a problem where the next instruction is not actually
part of the same function, so if an addr2line is used, it reports
the wrong value.

This does not modify the ip for mips.

Bug: 22565486
Change-Id: Ie0df4c9727f62ce06948b9a2b0e4b7956eb6e752
2015-08-18 15:41:31 -07:00
Dan Albert
aa23b2ee5e Add a TLS slot for TSAN.
This is so TSAN won't need to rely on pthread_getspecific for finding
the current thread state.

Change-Id: Id3befeabec0a9f7ca77b5549fbc427e22e6aaa34
2015-08-18 15:09:00 -07:00
Christopher Ferris
e6f16b2d7d am e4d51cf3: Merge "Add optimized cortex-a7/cortex-a53 memset/memcpy."
* commit 'e4d51cf37a861e258e423de14619982af51d2527':
  Add optimized cortex-a7/cortex-a53 memset/memcpy.
2015-08-18 17:33:46 +00:00
Christopher Ferris
888ad399ee am e4d51cf3: Merge "Add optimized cortex-a7/cortex-a53 memset/memcpy."
* commit 'e4d51cf37a861e258e423de14619982af51d2527':
  Add optimized cortex-a7/cortex-a53 memset/memcpy.
2015-08-18 17:33:22 +00:00
Christopher Ferris
e4d51cf37a Merge "Add optimized cortex-a7/cortex-a53 memset/memcpy." 2015-08-18 17:18:11 +00:00
Elliott Hughes
4400c1d448 am 4a8c4ce4: Merge "libc: remove bcopy from memmove on 64-bit architectures"
* commit '4a8c4ce403f702c0b8279873fae3d62497c4a123':
  libc: remove bcopy from memmove on 64-bit architectures
2015-08-18 00:39:54 +00:00
Elliott Hughes
37763e7a7a am 4a8c4ce4: Merge "libc: remove bcopy from memmove on 64-bit architectures"
* commit '4a8c4ce403f702c0b8279873fae3d62497c4a123':
  libc: remove bcopy from memmove on 64-bit architectures
2015-08-18 00:39:50 +00:00
Ying Wang
fa20d51e91 am 85197af9: Merge "Don\'t attach linker_asan to linker in module definition."
* commit '85197af92b52dd02caa7146ea5f47fad5cbc0101':
  Don't attach linker_asan to linker in module definition.
2015-08-18 00:24:04 +00:00
Elliott Hughes
4a8c4ce403 Merge "libc: remove bcopy from memmove on 64-bit architectures" 2015-08-18 00:23:49 +00:00
Ying Wang
e46c4212d6 am 85197af9: Merge "Don\'t attach linker_asan to linker in module definition."
* commit '85197af92b52dd02caa7146ea5f47fad5cbc0101':
  Don't attach linker_asan to linker in module definition.
2015-08-18 00:23:29 +00:00
Ying Wang
85197af92b Merge "Don't attach linker_asan to linker in module definition." 2015-08-18 00:07:03 +00:00
Ying Wang
d1afa661af Don't attach linker_asan to linker in module definition.
With this change, we only define the rules to create the symlinks in
this Android.mk but without attaching the symlinks to the module linker.
Instead the core build system will set up the dependency whenever a
module needs these symlinks.

Bug: 22850550
Change-Id: I36c58fd411f1c27f3f638b229699d7dc1d66abb2
2015-08-17 16:17:03 -07:00
Jake Weinstein
2926f9a31e libc: remove bcopy from memmove on 64-bit architectures
* bcopy is deprecated on LP64 by the following commit:

  ce9ce28e5d

Change-Id: I6849916f0ec4a2d0db9a360999ad1dc8edda952b
2015-08-17 22:06:12 +00:00
Christopher Ferris
5930772286 Add optimized cortex-a7/cortex-a53 memset/memcpy.
Add an optimized memset that is ~20% faster for cortex-a7 and
cortex-a53.

Add a 32 bit optimized cortex-a53 memcpy that is about ~20% faster
on cached data.

Fix the cortex-a15 __str{cat,cpy}_chk.S, memcpy_base.S to remove
the phony functions, since they aren't needed any more. Then add
a direct include of these for cortex-a53.

Verified the new functions by stepping through all of the major
paths and verifying the backtrace is still correct.

Bug: 22696180
Change-Id: Iec92a3f82d51243cca76c9aff9f35d920ff865ae
2015-08-17 13:02:03 -07:00
Elliott Hughes
3034028d7a am 6816d8cc: Merge "Use __builtin_* in <math.h>."
* commit '6816d8cc69dc1d142d722686d006f25df94afcd3':
  Use __builtin_* in <math.h>.
2015-08-14 23:47:49 +00:00
Elliott Hughes
6ac9e42958 am 6816d8cc: Merge "Use __builtin_* in <math.h>."
* commit '6816d8cc69dc1d142d722686d006f25df94afcd3':
  Use __builtin_* in <math.h>.
2015-08-14 23:47:34 +00:00
Elliott Hughes
6816d8cc69 Merge "Use __builtin_* in <math.h>." 2015-08-14 22:57:10 +00:00
Elliott Hughes
b662280aaf Use __builtin_* in <math.h>.
Also remove cruft meant to support long-obsolete compilers. More
benchmarks.

Bug: http://b/23195789
Change-Id: Ief538e41e77a77e8013b2f4f359584e8df2c47d8
2015-08-14 15:20:57 -07:00
Elliott Hughes
0ff5dda102 am dd8adc35: Merge "libm: ARM: reorganize a bit to match ARM64"
* commit 'dd8adc35346e671b3c3b2ecb26c13b84c742695c':
  libm: ARM: reorganize a bit to match ARM64
2015-08-14 21:24:04 +00:00
Elliott Hughes
12229387f4 am dd8adc35: Merge "libm: ARM: reorganize a bit to match ARM64"
* commit 'dd8adc35346e671b3c3b2ecb26c13b84c742695c':
  libm: ARM: reorganize a bit to match ARM64
2015-08-14 21:23:32 +00:00
Elliott Hughes
dd8adc3534 Merge "libm: ARM: reorganize a bit to match ARM64" 2015-08-14 21:09:26 +00:00
Jake Weinstein
8d959505bc libm: ARM: reorganize a bit to match ARM64
* Cleaner naming, especially if there are more ARM-specific routines in
  the future.

Change-Id: Id29db728800ccd612a906e86ccb95c1e7620514d
2015-08-13 23:02:10 +00:00
Elliott Hughes
ee6c6845c0 am b4f2112f: Merge "[MIPS] Invalidate cached pid in vfork."
* commit 'b4f2112fa99dab401cd65db4c524d95b1e97614e':
  [MIPS] Invalidate cached pid in vfork.
2015-08-12 03:02:38 +00:00
Elliott Hughes
1789ac90f7 am b4f2112f: Merge "[MIPS] Invalidate cached pid in vfork."
* commit 'b4f2112fa99dab401cd65db4c524d95b1e97614e':
  [MIPS] Invalidate cached pid in vfork.
2015-08-12 03:02:35 +00:00
Elliott Hughes
b4f2112fa9 Merge "[MIPS] Invalidate cached pid in vfork." 2015-08-12 02:28:25 +00:00
Duane Sand
61d9ae5ab1 [MIPS] Invalidate cached pid in vfork.
Bug: http://b/23008979
Change-Id: I43e0c7db42602441313af4607a992caa8c7d6221
2015-08-12 02:28:05 +00:00
Dan Albert
9423fb2375 am f2985ed8: Merge "Fix test steps for 64-bit bionic"
* commit 'f2985ed840af2d5572fafb03074f17afa516d967':
  Fix test steps for 64-bit bionic
2015-08-12 02:14:57 +00:00
Dan Albert
e7cf1de6b9 am f2985ed8: Merge "Fix test steps for 64-bit bionic"
* commit 'f2985ed840af2d5572fafb03074f17afa516d967':
  Fix test steps for 64-bit bionic
2015-08-12 02:11:05 +00:00
Dan Albert
f2985ed840 Merge "Fix test steps for 64-bit bionic" 2015-08-12 01:58:18 +00:00
Dan Albert
4c615501e5 am 2b934924: Merge "Add missing include."
* commit '2b93492478b497181edf51f5829b984c4e904e52':
  Add missing include.
2015-08-12 00:43:41 +00:00
Dan Albert
34afc42ae7 am 2b934924: Merge "Add missing include."
* commit '2b93492478b497181edf51f5829b984c4e904e52':
  Add missing include.
2015-08-12 00:43:03 +00:00
Dan Albert
2b93492478 Merge "Add missing include." 2015-08-12 00:28:07 +00:00
Duane Sand
a40a21110d Fix test steps for 64-bit bionic
Change-Id: Ibe76f22cdb5c0dbc69a24ffd0acffff89686ca35
2015-08-11 17:21:27 -07:00
Dan Albert
3fe1515e38 Add missing include.
libc++ cleaned up a leaky header.

Change-Id: I5ac0f43a075257a9138a82be379c9cffe96e0ab9
2015-08-11 16:46:26 -07:00
Yabin Cui
857336809e am 0660be89: am a6a12a78: am 0fdcdd00: Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev
* commit '0660be899f2d907dedbcb643315b73e652ec9510':
  Fix flaky test time.timer_settime_0.
2015-08-11 19:32:20 +00:00
Yabin Cui
2bcb25c1c3 am 0660be89: am a6a12a78: am 0fdcdd00: Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev
* commit '0660be899f2d907dedbcb643315b73e652ec9510':
  Fix flaky test time.timer_settime_0.
2015-08-11 19:10:33 +00:00
Yabin Cui
0660be899f am a6a12a78: am 0fdcdd00: Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev
* commit 'a6a12a7804402273e193074a58162cc0b3890812':
  Fix flaky test time.timer_settime_0.
2015-08-11 19:05:43 +00:00
Yabin Cui
a6a12a7804 am 0fdcdd00: Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev
* commit '0fdcdd0067af88e7deef73070d0861ceb9f53c37':
  Fix flaky test time.timer_settime_0.
2015-08-11 18:56:43 +00:00
Yabin Cui
0fdcdd0067 Merge "Fix flaky test time.timer_settime_0." into lollipop-mr1-cts-dev 2015-08-11 18:41:17 +00:00
Yabin Cui
bf572d91b5 Fix flaky test time.timer_settime_0.
It fixes the problem reported in https://code.google.com/p/android/issues/detail?id=182395.

Change-Id: Ie16aa04095dac08a62dd0d4c50e763b36526624c
2015-08-11 11:25:02 -07:00
Dan Albert
ee8576d114 am a3c01467: Merge "Move up to C++14."
* commit 'a3c01467ecf31cab1410ce7b8554e2e77dae3309':
  Move up to C++14.
2015-08-11 00:00:14 +00:00
Dan Albert
4b99bef35b am a3c01467: Merge "Move up to C++14."
* commit 'a3c01467ecf31cab1410ce7b8554e2e77dae3309':
  Move up to C++14.
2015-08-10 23:59:12 +00:00
Dan Albert
a3c01467ec Merge "Move up to C++14." 2015-08-10 23:45:48 +00:00
Dan Albert
5341691955 Move up to C++14.
The default standard version is now ahead of us. Stop specifying C++11
so we get that too.

Change-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4
2015-08-10 16:40:06 -07:00
Yabin Cui
b23720dfc4 am ff4afc13: Merge "Omit comment when reading --gtest_list_tests option\'s output."
* commit 'ff4afc136ef5d00d33a611e7bc1950249db9fbcf':
  Omit comment when reading --gtest_list_tests option's output.
2015-08-10 22:22:47 +00:00
Yabin Cui
c23143a5fd am ff4afc13: Merge "Omit comment when reading --gtest_list_tests option\'s output."
* commit 'ff4afc136ef5d00d33a611e7bc1950249db9fbcf':
  Omit comment when reading --gtest_list_tests option's output.
2015-08-10 22:22:04 +00:00
Yabin Cui
ff4afc136e Merge "Omit comment when reading --gtest_list_tests option's output." 2015-08-10 22:01:07 +00:00
Elliott Hughes
23e0bdf7d4 am 182b91f6: Merge "Invalidate cached pid in vfork."
* commit '182b91f62809b03870f561a88135f5453966fe41':
  Invalidate cached pid in vfork.
2015-08-10 20:08:09 +00:00
Elliott Hughes
9a549011ad am 182b91f6: Merge "Invalidate cached pid in vfork."
* commit '182b91f62809b03870f561a88135f5453966fe41':
  Invalidate cached pid in vfork.
2015-08-10 20:08:08 +00:00
Elliott Hughes
182b91f628 Merge "Invalidate cached pid in vfork." 2015-08-10 19:47:11 +00:00
Yabin Cui
bf830ade7f Omit comment when reading --gtest_list_tests option's output.
Gtest add comments when listing typed tests. And we should omit them.

Bug: 23040880
Change-Id: If6034af301337fc06eeab294d2dbe5317a6b7f91
2015-08-10 12:12:39 -07:00
Elliott Hughes
5891abdc66 Invalidate cached pid in vfork.
Bug: http://b/23008979
Change-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5
2015-08-07 19:44:12 -07:00
Andreas Gampe
fd202300d8 am e80369ab: Merge "Bionic: Add a TLS slot for ART for Thread self"
* commit 'e80369ab0c484a99925a49a81ab0675538fab38a':
  Bionic: Add a TLS slot for ART for Thread self
2015-08-04 22:54:42 +00:00
Andreas Gampe
5e64d60690 am e80369ab: Merge "Bionic: Add a TLS slot for ART for Thread self"
* commit 'e80369ab0c484a99925a49a81ab0675538fab38a':
  Bionic: Add a TLS slot for ART for Thread self
2015-08-04 22:51:40 +00:00
Andreas Gampe
e80369ab0c Merge "Bionic: Add a TLS slot for ART for Thread self" 2015-08-04 22:35:34 +00:00
Elliott Hughes
711d7b9f90 am b3db7764: Merge "name the arc4random structure mappings"
* commit 'b3db7764d0757392c73c716423f49dc0809c5a23':
  name the arc4random structure mappings
2015-08-04 01:13:13 +00:00
Elliott Hughes
6a5a09be4e am b3db7764: Merge "name the arc4random structure mappings"
* commit 'b3db7764d0757392c73c716423f49dc0809c5a23':
  name the arc4random structure mappings
2015-08-04 01:12:55 +00:00
Elliott Hughes
b3db7764d0 Merge "name the arc4random structure mappings" 2015-08-04 00:58:57 +00:00
Elliott Hughes
d6edf15728 am f57f7945: Merge "Cherrypick upstream fnmatch.c fix."
* commit 'f57f7945159a0abbca248817d1d4af1e9d89e323':
  Cherrypick upstream fnmatch.c fix.
2015-08-03 21:46:53 +00:00
Elliott Hughes
3926593b36 am 2278d29a: Merge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"
* commit '2278d29ada4cda53d81b87446254cea16e1b24fa':
  [MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment
2015-08-03 19:32:35 +00:00
Elliott Hughes
65941221b5 am f57f7945: Merge "Cherrypick upstream fnmatch.c fix."
* commit 'f57f7945159a0abbca248817d1d4af1e9d89e323':
  Cherrypick upstream fnmatch.c fix.
2015-08-03 18:41:36 +00:00
Elliott Hughes
f57f794515 Merge "Cherrypick upstream fnmatch.c fix." 2015-08-03 18:22:42 +00:00
Elliott Hughes
17379d2b08 Cherrypick upstream fnmatch.c fix.
Bug: http://b/22855370
Change-Id: I3865cff1e2ffeb6709cea092be3770c1bebf1623
2015-08-03 11:11:22 -07:00
Yabin Cui
c028e4aaa3 am 7e919dae: Merge "add a fortified implementation of getcwd"
* commit '7e919daeaad62515ebbbf7b06badc77625a14d90':
  add a fortified implementation of getcwd
2015-08-03 18:02:03 +00:00
Elliott Hughes
dc181dd788 am 2278d29a: Merge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"
* commit '2278d29ada4cda53d81b87446254cea16e1b24fa':
  [MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment
2015-08-03 15:27:07 +00:00
Elliott Hughes
2278d29ada Merge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment" 2015-08-03 15:17:18 +00:00
Daniel Micay
516fcb28f2 name the arc4random structure mappings
Change-Id: I6e150e526f6ceee31aa9bd219fa45317d5a729cb
2015-08-02 19:22:26 -04:00
Elliott Hughes
90acccbd97 am 25907058: Merge "Sync current upstream fnmatch.c."
* commit '259070585820b4900622363dd7f968d6b644d75d':
  Sync current upstream fnmatch.c.
2015-08-01 15:48:05 +00:00
Elliott Hughes
52d8e318f9 am 61c21b63: Merge "Revert "add a fortified implementation of getcwd""
* commit '61c21b63bc1602bce8685757fb1c2a788cc9eb8d':
  Revert "add a fortified implementation of getcwd"
2015-08-01 15:47:56 +00:00
Yabin Cui
f11ff78db5 am 442a3fca: Merge "add a fortified implementation of getcwd"
* commit '442a3fcae68152a95ef481ef99932d1bc001dc08':
  add a fortified implementation of getcwd
2015-08-01 15:47:52 +00:00
Yabin Cui
993a2bee84 am 7e919dae: Merge "add a fortified implementation of getcwd"
* commit '7e919daeaad62515ebbbf7b06badc77625a14d90':
  add a fortified implementation of getcwd
2015-08-01 05:25:13 +00:00
Yabin Cui
7e919daeaa Merge "add a fortified implementation of getcwd" 2015-08-01 05:14:20 +00:00
Daniel Micay
9101b00400 add a fortified implementation of getcwd
Change-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4
2015-08-01 00:42:30 -04:00
Duane Sand
0acb15ead6 [MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment
This corrects an issue with mips32 Art on mips64r6 Android, where
Java ran slowly due to unintended use of kernel-trap emulation of
single-precision floating point registers. This also regressed all
Art tests due to an extra logcat line
    WARNING: linker: Using FRE=1 mode to run "..."

When targeting mips32r6, Art generates modeless or FR=1 floating point
code, same as Android's own native mips32r6 modules. So the trapping was
unneeded. Linker was confusing Art-generated modules with those from
old NDK compilers, which do need that trapping mode.

This linker filename check may become unnecessary, if Art learns how to
generate .MIPS.abiflags segments in its generated elf-like codefiles.

Change-Id: I18069d1234960c680c5df739514da09015a7fdb6
2015-07-31 13:55:42 -07:00
Elliott Hughes
5b916453f3 am 25907058: Merge "Sync current upstream fnmatch.c."
* commit '259070585820b4900622363dd7f968d6b644d75d':
  Sync current upstream fnmatch.c.
2015-07-31 18:16:55 +00:00
Elliott Hughes
2590705858 Merge "Sync current upstream fnmatch.c." 2015-07-31 18:04:38 +00:00
Elliott Hughes
c46c0e960d Sync current upstream fnmatch.c.
Bug: http://b/22855370
Change-Id: I589f849aaede3b69b6b3682989bab7d8649dcd97
2015-07-31 10:57:27 -07:00
Elliott Hughes
9d7c6a7e57 am 61c21b63: Merge "Revert "add a fortified implementation of getcwd""
* commit '61c21b63bc1602bce8685757fb1c2a788cc9eb8d':
  Revert "add a fortified implementation of getcwd"
2015-07-31 17:41:05 +00:00
Elliott Hughes
61c21b63bc Merge "Revert "add a fortified implementation of getcwd"" 2015-07-31 17:33:05 +00:00
Elliott Hughes
4c43aac9a5 Revert "add a fortified implementation of getcwd"
This reverts commit 89a121d43a274131cf9f84b0e685bebf1e70cc1b.

Change-Id: Ib6f6fd424acea68a063777e9f324405450e23316
2015-07-31 17:32:50 +00:00
Yabin Cui
4279bac26a am 442a3fca: Merge "add a fortified implementation of getcwd"
* commit '442a3fcae68152a95ef481ef99932d1bc001dc08':
  add a fortified implementation of getcwd
2015-07-31 17:11:27 +00:00
Yabin Cui
442a3fcae6 Merge "add a fortified implementation of getcwd" 2015-07-31 16:55:12 +00:00
Daniel Micay
89a121d43a add a fortified implementation of getcwd
Change-Id: I95001ae4fe8f206db83e5c44d129ba11310695ce
2015-07-30 17:16:40 -04:00
Elliott Hughes
19a8b3fc82 am 807f27f9: Merge "Stop sending SIGPIPE to debuggerd."
* commit '807f27f9548077f114dc009f60764fb0241a2620':
  Stop sending SIGPIPE to debuggerd.
2015-07-30 15:39:45 +00:00
Elliott Hughes
125481fe3c am 807f27f9: Merge "Stop sending SIGPIPE to debuggerd."
* commit '807f27f9548077f114dc009f60764fb0241a2620':
  Stop sending SIGPIPE to debuggerd.
2015-07-30 15:39:23 +00:00
Elliott Hughes
807f27f954 Merge "Stop sending SIGPIPE to debuggerd." 2015-07-30 15:10:59 +00:00
Elliott Hughes
9f03ed12a6 Stop sending SIGPIPE to debuggerd.
SIGPIPE is a pretty normal way for command-line apps to die, but because
we catch it and report it via debuggerd, we get a lot of bogus bugs. We
could catch SIGPIPE in our tools, but that's not really legit and slightly
misleading.

"But", you say, "catching SIGPIPE is useful for app bugs!". Except a trawl
through buganizer suggests it's misleading there too. Not least because
it's usually an innocent victim that dies --- the problem is usually on the
other end of the pipe (which you learn nothing about because that process
already died, which is what closed the pipe).

We also don't catch SIGALRM, which is another signal that will terminate
your process if you don't catch it, but that one actually represents a
logic error in the crashing process, so there's a stronger argument for
catching that. (Except it too is not a real source of bugs.)

Bug: http://b/20659371
Change-Id: I79820b36573ddaa9a7bad0561a52f23e7a8d15ac
2015-07-29 22:24:13 -07:00
Elliott Hughes
d473681fb1 am 44989174: Merge "Prevent buffer over-read in linker.cpp\'s parse_path."
* commit '4498917406ee543116ea7ed987d26a15b2c1496c':
  Prevent buffer over-read in linker.cpp's parse_path.
2015-07-30 00:51:02 +00:00
Elliott Hughes
73854d9f1a am 44989174: Merge "Prevent buffer over-read in linker.cpp\'s parse_path."
* commit '4498917406ee543116ea7ed987d26a15b2c1496c':
  Prevent buffer over-read in linker.cpp's parse_path.
2015-07-30 00:50:45 +00:00
Elliott Hughes
4498917406 Merge "Prevent buffer over-read in linker.cpp's parse_path." 2015-07-30 00:22:48 +00:00
tony.ys_liu
b447440a4b Prevent buffer over-read in linker.cpp's parse_path.
Also, the old behavior of skipping empty entries doesn't match glibc.

Change-Id: I497774377113ab6c5d962e0f20066e2192748f06
2015-07-29 17:21:30 -07:00
Elliott Hughes
45ea30c472 am 34c5f5ea: Merge "Remove PAGE_SIZE from <limits.h>."
* commit '34c5f5eacdedcea6b987854a4bca07c703495d62':
  Remove PAGE_SIZE from <limits.h>.
2015-07-29 15:58:32 +00:00
Elliott Hughes
89a64c0f2e am 34c5f5ea: Merge "Remove PAGE_SIZE from <limits.h>."
* commit '34c5f5eacdedcea6b987854a4bca07c703495d62':
  Remove PAGE_SIZE from <limits.h>.
2015-07-29 15:58:28 +00:00
Elliott Hughes
34c5f5eacd Merge "Remove PAGE_SIZE from <limits.h>." 2015-07-29 15:18:06 +00:00
Elliott Hughes
5c104603a0 am 374adfee: Merge "Don\'t transitively include <limits.h> from <sys/user.h>."
* commit '374adfee473725994ee2568ce5aba93a7500064e':
  Don't transitively include <limits.h> from <sys/user.h>.
2015-07-29 07:33:28 +00:00
Elliott Hughes
c5de153bc6 am 1ff4094a: Merge "Remove PAGESIZE."
* commit '1ff4094a7f106b3de390acb1e36c45bbb878a153':
  Remove PAGESIZE.
2015-07-29 07:33:25 +00:00
Elliott Hughes
73ca982c97 am 374adfee: Merge "Don\'t transitively include <limits.h> from <sys/user.h>."
* commit '374adfee473725994ee2568ce5aba93a7500064e':
  Don't transitively include <limits.h> from <sys/user.h>.
2015-07-29 07:17:51 +00:00
Elliott Hughes
475b542458 am 1ff4094a: Merge "Remove PAGESIZE."
* commit '1ff4094a7f106b3de390acb1e36c45bbb878a153':
  Remove PAGESIZE.
2015-07-29 07:17:48 +00:00
Elliott Hughes
36443fd542 Remove PAGE_SIZE from <limits.h>.
It turns out that everyone's still getting PAGE_SIZE from <sys/user.h> via
<sys/ucontext.h> via <signal.h> anyway.

glibc has PAGE_SIZE in <sys/user.h> rather than <limits.h> so this part is
good. The bad part is that we have such wide transitive inclusion of
<sys/user.h>!

Bug: http://b/22735893
Change-Id: I363adffe4a27b4ca1eedf695ea621f5dd2d5ca10
2015-07-28 19:54:53 -07:00
Andreas Gampe
9bbb5a7a09 Bionic: Add a TLS slot for ART for Thread self
To improve the performance of Thread::Current(), add a tls slot so
ART can avoid a pthreads call.

Change-Id: Icc86a2b7590734637366f9d5e41a5c6d18cc5772
2015-07-28 19:53:54 -07:00
Elliott Hughes
374adfee47 Merge "Don't transitively include <limits.h> from <sys/user.h>." 2015-07-29 01:02:37 +00:00
Elliott Hughes
5390173ad4 Don't transitively include <limits.h> from <sys/user.h>.
Bug: http://b/22735893
Change-Id: I27d0a1f7e2d477b8038e76bfc7fe05dd7e187344
2015-07-28 17:44:32 -07:00
Elliott Hughes
1ff4094a7f Merge "Remove PAGESIZE." 2015-07-29 00:09:20 +00:00
Elliott Hughes
a3c3a6b2df am c8ba22c8: Merge "Move PAGE_MASK into <sys/user.h>."
* commit 'c8ba22c847bd5bfc97d29a4c565fd32993200a01':
  Move PAGE_MASK into <sys/user.h>.
2015-07-29 00:05:13 +00:00
Elliott Hughes
cd6b01e214 am c8ba22c8: Merge "Move PAGE_MASK into <sys/user.h>."
* commit 'c8ba22c847bd5bfc97d29a4c565fd32993200a01':
  Move PAGE_MASK into <sys/user.h>.
2015-07-29 00:01:51 +00:00
Elliott Hughes
820a86f2df Remove PAGESIZE.
This was pretty much unused, and isn't in glibc.

Bug: http://b/22735893
Change-Id: If17f0dcd931c90ef1ccb134a3950c3b0011a03f4
2015-07-28 16:46:06 -07:00
Elliott Hughes
c8ba22c847 Merge "Move PAGE_MASK into <sys/user.h>." 2015-07-28 23:11:18 +00:00
Elliott Hughes
afab3ffcce Move PAGE_MASK into <sys/user.h>.
I'm removing the TODO on the assumption that being compatible with glibc
is more useful than BSD. The new internal "bionic_page.h" header factors
out some duplication between libc and the linker.

Bug: http://b/22735893
Change-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321
2015-07-28 14:58:37 -07:00
Mark Salyzyn
6f0c9b4827 am 1923d4c0: Merge "deprecate TARGET_USES_LOGD"
* commit '1923d4c03a68c89f304b601545f5e8db026b9be0':
  deprecate TARGET_USES_LOGD
2015-07-28 19:51:17 +00:00
Mark Salyzyn
835a23cc9c am 1923d4c0: Merge "deprecate TARGET_USES_LOGD"
* commit '1923d4c03a68c89f304b601545f5e8db026b9be0':
  deprecate TARGET_USES_LOGD
2015-07-28 19:50:24 +00:00
Mark Salyzyn
1923d4c03a Merge "deprecate TARGET_USES_LOGD" 2015-07-28 17:48:08 +00:00
Mark Salyzyn
667dc75ee1 deprecate TARGET_USES_LOGD
This is not the kernel logger you are looking for

Bug: 22787659
Change-Id: I340d8bb5cdaa73be9565521681ee238b7033934b
2015-07-28 08:51:17 -07:00
Elliott Hughes
c9bee10805 am 4955cde2: Merge "Add a regression test for a fixed strnlen bug."
* commit '4955cde2c55d4860f12039a96d14fc756b1308a3':
  Add a regression test for a fixed strnlen bug.
2015-07-28 15:30:24 +00:00
Elliott Hughes
26ac060046 am 4955cde2: Merge "Add a regression test for a fixed strnlen bug."
* commit '4955cde2c55d4860f12039a96d14fc756b1308a3':
  Add a regression test for a fixed strnlen bug.
2015-07-28 15:27:25 +00:00
Elliott Hughes
4955cde2c5 Merge "Add a regression test for a fixed strnlen bug." 2015-07-28 14:55:50 +00:00
Elliott Hughes
d2a9fb3267 Add a regression test for a fixed strnlen bug.
Bug: https://code.google.com/p/android/issues/detail?id=74741
Change-Id: I78b0114bdbe8e680b0e938af608a634e73c86eda
2015-07-27 20:55:03 -07:00
Chih-hung Hsieh
d3d40b1531 am cebef1a7: Merge "Add one simple thread local storage test."
* commit 'cebef1a7812fe3552f12dd7e885a1f879a9946ed':
  Add one simple thread local storage test.
2015-07-28 02:02:20 +00:00
Chih-hung Hsieh
c11758f2c9 am cebef1a7: Merge "Add one simple thread local storage test."
* commit 'cebef1a7812fe3552f12dd7e885a1f879a9946ed':
  Add one simple thread local storage test.
2015-07-28 02:01:16 +00:00
Chih-hung Hsieh
cebef1a781 Merge "Add one simple thread local storage test." 2015-07-28 01:33:01 +00:00
Chih-Hung Hsieh
7656d0cec0 Add one simple thread local storage test.
This test should pass with gcc and fail with clang,
until clang/llvm supports emutls or Android linker supports
ELF TLS models.

BUG: 21082792
Change-Id: Id8c97da52c68ec230c7d26af703f6ed32d53a4fe
2015-07-27 17:20:19 -07:00
Christopher Ferris
e1f1a6353a am e8ceb95c: Merge "Remove pushes from memsets (krait/cortex-a9)."
* commit 'e8ceb95c680eacc3b5d16644a48a28b45f421e2f':
  Remove pushes from memsets (krait/cortex-a9).
2015-07-28 00:17:16 +00:00
Yabin Cui
0e63c39cca am 8af32633: Merge "add fortified implementations of fread/fwrite"
* commit '8af32633498184e58e6f8d5d75b9f9cdbef5b6be':
  add fortified implementations of fread/fwrite
2015-07-28 00:17:08 +00:00
Christopher Ferris
4f4dd3caae am e8ceb95c: Merge "Remove pushes from memsets (krait/cortex-a9)."
* commit 'e8ceb95c680eacc3b5d16644a48a28b45f421e2f':
  Remove pushes from memsets (krait/cortex-a9).
2015-07-27 23:33:21 +00:00
Yabin Cui
98fc81cf5e am 8af32633: Merge "add fortified implementations of fread/fwrite"
* commit '8af32633498184e58e6f8d5d75b9f9cdbef5b6be':
  add fortified implementations of fread/fwrite
2015-07-27 23:14:45 +00:00
Christopher Ferris
e8ceb95c68 Merge "Remove pushes from memsets (krait/cortex-a9)." 2015-07-27 23:09:32 +00:00
Yabin Cui
8af3263349 Merge "add fortified implementations of fread/fwrite" 2015-07-27 22:46:29 +00:00
Dmitriy Ivanov
e6464678b3 am de0fb393: Restore protection flags for ifunc during relocs.
* commit 'de0fb393ae8136a5958fe17eee0c6285e2f7f91a':
  Restore protection flags for ifunc during relocs.
2015-07-27 22:23:32 +00:00
Elliott Hughes
291c314005 am f16c6e17: Merge "Restore protection flags for ifunc during relocs."
* commit 'f16c6e17b22c278320d0e662d1f1e1213f8fbc71':
  Restore protection flags for ifunc during relocs.
2015-07-27 22:02:23 +00:00
Elliott Hughes
d79de83bfc am f16c6e17: Merge "Restore protection flags for ifunc during relocs."
* commit 'f16c6e17b22c278320d0e662d1f1e1213f8fbc71':
  Restore protection flags for ifunc during relocs.
2015-07-27 22:01:48 +00:00
Dmitriy Ivanov
ab6ca484bd am de0fb393: Restore protection flags for ifunc during relocs.
* commit 'de0fb393ae8136a5958fe17eee0c6285e2f7f91a':
  Restore protection flags for ifunc during relocs.
2015-07-27 21:39:11 +00:00
Elliott Hughes
f16c6e17b2 Merge "Restore protection flags for ifunc during relocs." 2015-07-27 21:34:53 +00:00
Christopher Ferris
8264cbba7e Remove pushes from memsets (krait/cortex-a9).
On the path that only uses r0 in both the krait and cortex-a9
memset, remove the push and use r3 instead.

In addition, for cortex-a9, remove the artificial function since
it's not needed since dwarf unwinding is now supported on arm.

Change-Id: Ia4ed1cc435b03627a7193215e76c8ea3335f949a
2015-07-27 14:07:37 -07:00
Elliott Hughes
9816016893 am bff19682: Merge "name the atexit handler pages"
* commit 'bff196822230b5a8b1f5bafeed88ded821d390a9':
  name the atexit handler pages
2015-07-27 18:50:47 +00:00
Elliott Hughes
fd3cd1cc2a am bff19682: Merge "name the atexit handler pages"
* commit 'bff196822230b5a8b1f5bafeed88ded821d390a9':
  name the atexit handler pages
2015-07-27 18:32:37 +00:00
Elliott Hughes
bff1968222 Merge "name the atexit handler pages" 2015-07-27 18:06:35 +00:00
Daniel Micay
f0a73476a1 name the atexit handler pages
Change-Id: I1718ddee7415a673b5818bc1455b8d90f1e8f9c6
2015-07-27 11:04:58 -07:00
Dmitriy Ivanov
ec83a61c8b Restore protection flags for ifunc during relocs.
IFUNC relocations require executable flag for the load
segment containing .text. When dso has text relocs linker
removes exec which causes crash during ifunc relocations.

This patch fixes this problem by restoring segments protection
for ifunc relocs.

Bug: http://b/22611399
Change-Id: Icbf3be0fec0e42bf805bcad7533e2032a2e11b9c
(cherry picked from commit de0fb393ae8136a5958fe17eee0c6285e2f7f91a)
2015-07-26 08:23:01 -07:00
Dmitriy Ivanov
de0fb393ae Restore protection flags for ifunc during relocs.
IFUNC relocations require executable flag for the load
segment containing .text. When dso has text relocs linker
removes exec which causes crash during ifunc relocations.

This patch fixes this problem by restoring segments protection
for ifunc relocs.

Bug: http://b/22611399
Change-Id: Icbf3be0fec0e42bf805bcad7533e2032a2e11b9c
2015-07-26 07:37:09 -07:00
Elliott Hughes
7835c65ca7 am adc5795f: Merge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)."
* commit 'adc5795fb7b674e6d40d1f190c675607c1379343':
  Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).
2015-07-25 18:58:57 +00:00
Elliott Hughes
e9f23862fe am adc5795f: Merge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)."
* commit 'adc5795fb7b674e6d40d1f190c675607c1379343':
  Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).
2015-07-25 18:56:53 +00:00
Elliott Hughes
adc5795fb7 Merge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)." 2015-07-25 18:32:46 +00:00
Elliott Hughes
189394b885 Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).
Bug: http://b/18342333
Change-Id: Id12ed4e85a0f35d7d27202f7792df42a65a74b4e
2015-07-24 23:22:07 -07:00
Yabin Cui
22091a09ae am b8320b80: Don\'t abort when failed to write tracing message.
* commit 'b8320b8021856ae61b3012b82c2ae96df97e3ec4':
  Don't abort when failed to write tracing message.
2015-07-24 04:16:39 +00:00
Christopher Ferris
dd3eb0862e am a3a61983: Merge "Make all labels local."
* commit 'a3a619835d302f5414883e2307ca48406b15a4a5':
  Make all labels local.
2015-07-24 01:17:28 +00:00
Christopher Ferris
beebbff0a0 am a3a61983: Merge "Make all labels local."
* commit 'a3a619835d302f5414883e2307ca48406b15a4a5':
  Make all labels local.
2015-07-24 01:17:09 +00:00
Christopher Ferris
a3a619835d Merge "Make all labels local." 2015-07-24 00:47:06 +00:00
Daniel Micay
fed2659869 add fortified implementations of fread/fwrite
A __size_mul_overflow utility is used to take advantage of the checked
overflow intrinsics in Clang and GCC (>= 5). The fallback for older
compilers is the optimized but less than ideal overflow checking pattern
used in OpenBSD.

Change-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69
2015-07-23 18:55:46 -04:00
Yabin Cui
0bfe75bc31 am b8320b80: Don\'t abort when failed to write tracing message.
* commit 'b8320b8021856ae61b3012b82c2ae96df97e3ec4':
  Don't abort when failed to write tracing message.
2015-07-23 22:42:23 +00:00
Dan Albert
c9d373e2d9 am 7e52dbe4: Merge "Revert "Stop libc from cross-referencing unwind symbols"" into mnc-dev
* commit '7e52dbe4d24daf61a8bd4bbbd0761c55468c3c7e':
  Revert "Stop libc from cross-referencing unwind symbols"
2015-07-23 21:50:48 +00:00
Yabin Cui
b8320b8021 Don't abort when failed to write tracing message.
Also make the code thread-safe with lock.

Bug: 20666100
Change-Id: I0f331a617b75280f36179c187418450230d713ef
(cherry picked from commit 166112531558a1d4ea179c29147f27db7045db22)
2015-07-23 12:24:42 -07:00
Christopher Ferris
795a8e3d69 Make all labels local.
Change the non-local labels to .L labels.

Change-Id: I720e894f2e311af8f4a0970303d8b86575fb69a5
2015-07-23 12:12:55 -07:00
Yabin Cui
bb65e61f6b am 9e1c862c: Merge "Don\'t abort when failed to write tracing message."
* commit '9e1c862cb649f054aaa1c2141409387bf3d5f3eb':
  Don't abort when failed to write tracing message.
2015-07-23 19:10:22 +00:00
Yabin Cui
b9da7c151d am 9e1c862c: Merge "Don\'t abort when failed to write tracing message."
* commit '9e1c862cb649f054aaa1c2141409387bf3d5f3eb':
  Don't abort when failed to write tracing message.
2015-07-23 18:53:37 +00:00
Yabin Cui
9e1c862cb6 Merge "Don't abort when failed to write tracing message." 2015-07-23 17:20:30 +00:00
Yabin Cui
c0c9704e11 am 2565492d: Merge "Add getgrgid_r/getgrnam_r."
* commit '2565492db0d67b95348cd1c3026ed338ca59aa37':
  Add getgrgid_r/getgrnam_r.
2015-07-23 02:06:56 +00:00
Elliott Hughes
da24f8af38 am 3b49d61a: Merge "libc: arch-x86: implement kernel vdso time functions"
* commit '3b49d61ac2f7a02d5e7f25a24836b060f922f079':
  libc: arch-x86: implement kernel vdso time functions
2015-07-23 02:06:55 +00:00
Ying Wang
9c4f35229d am 86ac443c: Merge "We don\'t have CXX_BARE any more"
* commit '86ac443cd1df83bbef4a18046714e067a9d13247':
  We don't have CXX_BARE any more
2015-07-23 02:06:19 +00:00
Elliott Hughes
2329b7218e am bc0b8ff2: Merge "Use a less misleading name for the code that sets up the main thread."
* commit 'bc0b8ff2fbfb38f73114aef7df8e302025245441':
  Use a less misleading name for the code that sets up the main thread.
2015-07-23 02:06:17 +00:00
Yabin Cui
1661125315 Don't abort when failed to write tracing message.
Also make the code thread-safe with lock.

Bug: 20666100
Change-Id: I0f331a617b75280f36179c187418450230d713ef
2015-07-22 18:24:53 -07:00
Dan Albert
8cc83e5c66 am 7e52dbe4: Merge "Revert "Stop libc from cross-referencing unwind symbols"" into mnc-dev
* commit '7e52dbe4d24daf61a8bd4bbbd0761c55468c3c7e':
  Revert "Stop libc from cross-referencing unwind symbols"
2015-07-22 20:17:30 +00:00
Yabin Cui
758bc0a806 am 2565492d: Merge "Add getgrgid_r/getgrnam_r."
* commit '2565492db0d67b95348cd1c3026ed338ca59aa37':
  Add getgrgid_r/getgrnam_r.
2015-07-22 03:44:16 +00:00
Yabin Cui
2565492db0 Merge "Add getgrgid_r/getgrnam_r." 2015-07-22 03:22:26 +00:00
Yabin Cui
c4786d366b Add getgrgid_r/getgrnam_r.
Bug: 22568551
Change-Id: I3c0772d119d6041063c6be53f5bcc5ea1768f0d5
2015-07-21 19:33:34 -07:00
Elliott Hughes
cf3d602b28 am 3b49d61a: Merge "libc: arch-x86: implement kernel vdso time functions"
* commit '3b49d61ac2f7a02d5e7f25a24836b060f922f079':
  libc: arch-x86: implement kernel vdso time functions
2015-07-22 02:12:02 +00:00
Elliott Hughes
3b49d61ac2 Merge "libc: arch-x86: implement kernel vdso time functions" 2015-07-22 01:51:00 +00:00
Robert Jarzmik
10726d52ac libc: arch-x86: implement kernel vdso time functions
This patch give the possibility of time vdso support on 32bit kernel.
If the 32bit x86 kernel provides gettimeofday() and clock_gettime()
primitives in vdso. In this case make bionic use them. If the kernel
doesn't provide them, fallback to the legacy system call versions.

Change-Id: I87b772a9486fa356903e1f98f486ab9eb0b6f6f7
Signed-off-by: Robert Jarzmik <robert.jarzmik@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2015-07-22 01:31:38 +00:00
Dan Albert
7e52dbe4d2 Merge "Revert "Stop libc from cross-referencing unwind symbols"" into mnc-dev 2015-07-21 23:09:35 +00:00
Ying Wang
788e7c9937 am e39b279b: Merge "We don\'t have CXX_BARE any more" into mnc-dev
* commit 'e39b279bb4971d0c3322214ea977275f1bc58c0b':
  We don't have CXX_BARE any more
2015-07-21 21:50:27 +00:00
Ying Wang
e16cf1d531 am 86ac443c: Merge "We don\'t have CXX_BARE any more"
* commit '86ac443cd1df83bbef4a18046714e067a9d13247':
  We don't have CXX_BARE any more
2015-07-21 21:40:44 +00:00
Ying Wang
86ac443cd1 Merge "We don't have CXX_BARE any more" 2015-07-21 21:10:23 +00:00
Ying Wang
361d4b4c87 We don't have CXX_BARE any more
Now we have split CXX_WRAPPER from TARGET_CXX and CXX_BARE isn't needed
any more.

Bug: 22612634
Change-Id: I52c78b0d1b325910e875a786d17f780731778b4b
(cherry-pick from commit 9d11a7087c860195bf23f2825a7fe70d43ff7b78)
2015-07-21 14:08:42 -07:00
Ying Wang
40e2b72fb3 am e39b279b: Merge "We don\'t have CXX_BARE any more" into mnc-dev
* commit 'e39b279bb4971d0c3322214ea977275f1bc58c0b':
  We don't have CXX_BARE any more
2015-07-21 21:01:46 +00:00
Elliott Hughes
41298d1aae am bc0b8ff2: Merge "Use a less misleading name for the code that sets up the main thread."
* commit 'bc0b8ff2fbfb38f73114aef7df8e302025245441':
  Use a less misleading name for the code that sets up the main thread.
2015-07-21 20:53:23 +00:00
Ying Wang
e39b279bb4 Merge "We don't have CXX_BARE any more" into mnc-dev 2015-07-21 20:51:28 +00:00
Elliott Hughes
bc0b8ff2fb Merge "Use a less misleading name for the code that sets up the main thread." 2015-07-21 20:28:17 +00:00
Christopher Ferris
bbfdd50518 am aa55e7ad: Add support for non-zero vaddr in maps.
* commit 'aa55e7ad249e49025d0507f513a6c45f8491a4e5':
  Add support for non-zero vaddr in maps.
2015-07-21 19:46:36 +00:00
Christopher Ferris
953611bae0 am aa55e7ad: Add support for non-zero vaddr in maps.
* commit 'aa55e7ad249e49025d0507f513a6c45f8491a4e5':
  Add support for non-zero vaddr in maps.
2015-07-21 19:05:24 +00:00
Elliott Hughes
d29486343a Use a less misleading name for the code that sets up the main thread.
Change-Id: I50c1b0a3b633cf8bc40a6bd86f12adb6b91e2888
2015-07-21 11:57:09 -07:00
Christopher Ferris
e47102098b am c99fabb7: Merge "Add support for non-zero vaddr in maps."
* commit 'c99fabb7a097e9aeed49ce03584cce113d086905':
  Add support for non-zero vaddr in maps.
2015-07-21 18:28:52 +00:00
Elliott Hughes
c2b097252a am 3bcfd47c: Merge "Revert "Revert "make vdso function pointers read-only at runtime"""
* commit '3bcfd47c6836a952b2093c64feb9f1e382891256':
  Revert "Revert "make vdso function pointers read-only at runtime""
2015-07-21 18:28:13 +00:00
Christopher Ferris
a41556d398 am c99fabb7: Merge "Add support for non-zero vaddr in maps."
* commit 'c99fabb7a097e9aeed49ce03584cce113d086905':
  Add support for non-zero vaddr in maps.
2015-07-21 18:26:13 +00:00
Elliott Hughes
ded555256d am 3bcfd47c: Merge "Revert "Revert "make vdso function pointers read-only at runtime"""
* commit '3bcfd47c6836a952b2093c64feb9f1e382891256':
  Revert "Revert "make vdso function pointers read-only at runtime""
2015-07-21 18:25:35 +00:00
Christopher Ferris
aa55e7ad24 Add support for non-zero vaddr in maps.
If a map has a non-zero vaddr then it needs to be added to the
computed relative offset.

Bug: 22532054

(cherry picked from commit 70b6e1daffd58ebce006d4b504cd0fb9672b6d07)

Change-Id: I1e98741d6ff3b5bbb7fc5f88cc85b27ace75ee2e
2015-07-21 10:32:28 -07:00
Christopher Ferris
c99fabb7a0 Merge "Add support for non-zero vaddr in maps." 2015-07-21 17:29:10 +00:00
Dan Albert
5905cee174 am f37c237b: Merge "Revert "Stop libc from cross-referencing unwind symbols""
* commit 'f37c237b8b15c00ac748fe2657a50df54fa55d5a':
  Revert "Stop libc from cross-referencing unwind symbols"
2015-07-21 02:35:27 +00:00
Dan Albert
a645ebed9c am f37c237b: Merge "Revert "Stop libc from cross-referencing unwind symbols""
* commit 'f37c237b8b15c00ac748fe2657a50df54fa55d5a':
  Revert "Stop libc from cross-referencing unwind symbols"
2015-07-21 02:34:52 +00:00
Elliott Hughes
3bcfd47c68 Merge "Revert "Revert "make vdso function pointers read-only at runtime""" 2015-07-21 02:15:21 +00:00
Ying Wang
9d11a7087c We don't have CXX_BARE any more
Now we have split CXX_WRAPPER from TARGET_CXX and CXX_BARE isn't needed
any more.

Bug: 22612634
Change-Id: I52c78b0d1b325910e875a786d17f780731778b4b
2015-07-20 18:51:30 -07:00
Dan Albert
d7ce90090f Revert "Stop libc from cross-referencing unwind symbols"
This reverts commit cd13b14e98d4921af126667fae0cf6613a5615c5.

Bug: http://b/19958712
Change-Id: I7cc7f69728c42c37e129aee30d761c4cd7e30e94
(cherry picked from commit 95fd031c4d22b90c542621170bb6d4d05bb94457)
2015-07-20 17:25:26 -07:00
Dan Albert
f37c237b8b Merge "Revert "Stop libc from cross-referencing unwind symbols"" 2015-07-21 00:22:21 +00:00
Dan Albert
95fd031c4d Revert "Stop libc from cross-referencing unwind symbols"
This reverts commit cd13b14e98d4921af126667fae0cf6613a5615c5.

Bug: http://b/19958712
Change-Id: I7cc7f69728c42c37e129aee30d761c4cd7e30e94
2015-07-20 16:57:11 -07:00
Elliott Hughes
613f814508 Revert "Revert "make vdso function pointers read-only at runtime""
This reverts commit 1946856b1f18a27c51ba30bb9e304f25b722ee05.

This goes back to the original scheme of PROT_NONEing a page within
libc. Allocating a new page didn't fail safe for cases where these
functions are called from the dynamic linker.

Bug: http://b/22568628
Change-Id: I3e7241c8b54c27ea4a898bc952375c1e9ae38c80
2015-07-20 15:59:33 -07:00
Dmitriy Ivanov
d2aeefed8e am e70d7a78: Merge "Fix dt_runpath test."
* commit 'e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6':
  Fix dt_runpath test.
2015-07-20 19:17:27 +00:00
Dmitriy Ivanov
8bdf8ab97c am e70d7a78: Merge "Fix dt_runpath test."
* commit 'e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6':
  Fix dt_runpath test.
2015-07-20 19:17:02 +00:00
Elliott Hughes
2733ec035d am e5544ae1: Merge "<sys/time.h> should include [most of] <sys/select.h>."
* commit 'e5544ae1f8a23ae77908e822e83a73ebd4b656ec':
  <sys/time.h> should include [most of] <sys/select.h>.
2015-07-20 18:44:56 +00:00
Elliott Hughes
039b290b9d am 6c9ad82b: Merge "Revert "make vdso function pointers read-only at runtime""
* commit '6c9ad82b1c0f26f5edb5d5ca246b88451c5ea238':
  Revert "make vdso function pointers read-only at runtime"
2015-07-20 18:44:55 +00:00
Elliott Hughes
f8457c2d95 am e5544ae1: Merge "<sys/time.h> should include [most of] <sys/select.h>."
* commit 'e5544ae1f8a23ae77908e822e83a73ebd4b656ec':
  <sys/time.h> should include [most of] <sys/select.h>.
2015-07-20 18:44:00 +00:00
Elliott Hughes
6071a7b9ef am 6c9ad82b: Merge "Revert "make vdso function pointers read-only at runtime""
* commit '6c9ad82b1c0f26f5edb5d5ca246b88451c5ea238':
  Revert "make vdso function pointers read-only at runtime"
2015-07-20 18:43:59 +00:00
Dmitriy Ivanov
e70d7a78f0 Merge "Fix dt_runpath test." 2015-07-20 18:31:09 +00:00
Dmitriy Ivanov
3fef96f827 Fix dt_runpath test.
Bfd linker produces DT_RPATH instead of DT_RUNPATH
unless --enable-new-dtags option is specified.

Bug: http://b/22560945
Change-Id: I71bdc5137b899ab736e55c5a9574cfbba8e1983b
2015-07-20 10:47:49 -07:00
Elliott Hughes
e5544ae1f8 Merge "<sys/time.h> should include [most of] <sys/select.h>." 2015-07-20 17:36:53 +00:00
Elliott Hughes
6c9ad82b1c Merge "Revert "make vdso function pointers read-only at runtime"" 2015-07-20 17:30:50 +00:00
Elliott Hughes
1946856b1f Revert "make vdso function pointers read-only at runtime"
This reverts commit df1a3c6d21702e3e96cfcddadee4a50bfac82110.

This change prevented N9 from booting (http://b/22568628).

Change-Id: I071d6d6a0ae7881d65641839e665acdcf58462b4
2015-07-20 17:30:33 +00:00
Elliott Hughes
a7a87dda4a <sys/time.h> should include [most of] <sys/select.h>.
Found by trying to build c-ares with bionic.

Change-Id: I38684abcb806ef1e8806c68b4a6dd9200f48849e
2015-07-17 19:10:24 -07:00
Elliott Hughes
af584b5e7b am 4f2e1d3b: Merge "Add all the glibc one-line "synonym" header files."
* commit '4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd':
  Add all the glibc one-line "synonym" header files.
2015-07-17 22:04:59 +00:00
Elliott Hughes
ba1c89e9b3 am 4f2e1d3b: Merge "Add all the glibc one-line "synonym" header files."
* commit '4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd':
  Add all the glibc one-line "synonym" header files.
2015-07-17 22:04:41 +00:00
Elliott Hughes
4f2e1d3b1e Merge "Add all the glibc one-line "synonym" header files." 2015-07-17 21:42:03 +00:00
Elliott Hughes
2cc41d3e00 Add all the glibc one-line "synonym" header files.
Ported code keeps needing these one by one, so let's just add the whole
set...

Change-Id: I9662b256aeaa1b0ffb22354130e503f0c4aa472b
2015-07-17 13:59:36 -07:00
Elliott Hughes
87b64fb447 am ca7bc509: Merge "make vdso function pointers read-only at runtime"
* commit 'ca7bc509cf3b321b4721137df1e5407415fc7dd7':
  make vdso function pointers read-only at runtime
2015-07-17 18:39:31 +00:00
Elliott Hughes
4ec3dcf8ec am ca7bc509: Merge "make vdso function pointers read-only at runtime"
* commit 'ca7bc509cf3b321b4721137df1e5407415fc7dd7':
  make vdso function pointers read-only at runtime
2015-07-17 18:39:05 +00:00
Dmitriy Ivanov
436ff890df am a58d2498: Merge "Fix potential race condition on dlopen"
* commit 'a58d24984045b474883ad14500a465ab331db47d':
  Fix potential race condition on dlopen
2015-07-17 18:18:14 +00:00
Dmitriy Ivanov
c6a87cc8cb am a58d2498: Merge "Fix potential race condition on dlopen"
* commit 'a58d24984045b474883ad14500a465ab331db47d':
  Fix potential race condition on dlopen
2015-07-17 18:17:06 +00:00
Elliott Hughes
ca7bc509cf Merge "make vdso function pointers read-only at runtime" 2015-07-17 18:13:31 +00:00
Daniel Micay
df1a3c6d21 make vdso function pointers read-only at runtime
Global, writable function pointers are low-hanging fruit for hijacking
control flow with an overflow from a global buffer or an arbitrary write
vulnerability. This moves the function pointer table into a dedicated
page and makes it read-only at runtime, similar to RELRO.

This increases the memory usage of the library by just under one page.
This could be avoided by having the linker load the vdso by replacing
weak symbols. It's not significant within the Zygote spawning model
though because it's read-only after early init.

Change-Id: Id7a49c96c1b15c2e1926528304b3c54a81e78caf
2015-07-17 11:11:42 -07:00
Dmitriy Ivanov
a58d249840 Merge "Fix potential race condition on dlopen" 2015-07-17 17:49:21 +00:00
Dmitriy Ivanov
e5cfafe344 Fix potential race condition on dlopen
Call to find_containing_library should be guarded.

Change-Id: I985a903da48b83bcd35e957a979158eb9b80e70b
2015-07-17 10:36:10 -07:00
Bertrand SIMONNET
cca803af0c am 60bc9090: Merge "Add timespec/timeval conversion helpers."
* commit '60bc90909a49121789bf86f5d14f63967e8000e0':
  Add timespec/timeval conversion helpers.
2015-07-16 22:27:51 +00:00
Christopher Ferris
70b6e1daff Add support for non-zero vaddr in maps.
If a map has a non-zero vaddr then it needs to be added to the
computed relative offset.

Bug: 22532054
Change-Id: If55015165d25ecc4b530f674b481c8c7ef760a23
2015-07-16 15:25:39 -07:00
Bertrand SIMONNET
df6eee9f85 am 60bc9090: Merge "Add timespec/timeval conversion helpers."
* commit '60bc90909a49121789bf86f5d14f63967e8000e0':
  Add timespec/timeval conversion helpers.
2015-07-16 22:25:25 +00:00
Bertrand SIMONNET
60bc90909a Merge "Add timespec/timeval conversion helpers." 2015-07-16 21:53:26 +00:00
Daniel Micay
96dd2b6e85 fix incompatibility with -fstack-protector-strong
The __libc_init_tls function in libc_init_common.cpp takes a reference
to a local variable so it ends up being protected. Since this happens
before TLS and the stack guard value are initialized, it breaks.

The libc_init_common code needs to be compiled with -fno-stack-protector
and can then be merged into libc_bionic.

Change-Id: Ie95ea2ff533d4af1cfad1c9bc59e49f20a8e119d
2015-07-16 17:07:43 -04:00
Bertrand SIMONNET
0875ba3095 Add timespec/timeval conversion helpers.
TIMESPEC_TO_TIMEVAL and TIMEVAL_TO_TIMESPEC are usually provided by
sys/time.h.

BUG: 22532790

Change-Id: I8b9d7298e3250323faa20b1adf9a7514954c6096
2015-07-16 13:10:50 -07:00
Dmitriy Ivanov
9bd373c4fc am cd588f84: Merge "Add constant for zip separator"
* commit 'cd588f847f3f23a9c60e32ab1e37c170e9f5be57':
  Add constant for zip separator
2015-07-16 16:26:33 +00:00
Dmitriy Ivanov
0ee0dd8b3d am cd588f84: Merge "Add constant for zip separator"
* commit 'cd588f847f3f23a9c60e32ab1e37c170e9f5be57':
  Add constant for zip separator
2015-07-16 16:26:06 +00:00
Dmitriy Ivanov
cd588f847f Merge "Add constant for zip separator" 2015-07-16 15:59:16 +00:00
Dmitriy Ivanov
730ed9dfec Add constant for zip separator
Change-Id: I1dcbb15ac612fc28e922eb3de8148fcaebbc0820
2015-07-16 04:52:06 -07:00
Evgenii Stepanov
fb186d55e8 am b3140904: Merge "Replace spaces with tabs in a Makefile."
* commit 'b31409040f1766d92e76e72bbdc1b346f4bb9d8e':
  Replace spaces with tabs in a Makefile.
2015-07-15 23:58:44 +00:00
Evgenii Stepanov
beaf565cd4 am b3140904: Merge "Replace spaces with tabs in a Makefile."
* commit 'b31409040f1766d92e76e72bbdc1b346f4bb9d8e':
  Replace spaces with tabs in a Makefile.
2015-07-15 23:57:15 +00:00
Evgenii Stepanov
b31409040f Merge "Replace spaces with tabs in a Makefile." 2015-07-15 23:22:39 +00:00
Evgenii Stepanov
d11c3e5c3a Replace spaces with tabs in a Makefile.
Sorry, I undertested my previous change and these guys somehow sneaked in.
This only affects SANITIZE_TARGET builds.

Change-Id: Id6986d89fa3d4965339f7b6fe973e9db73b380da
2015-07-15 16:19:59 -07:00
Evgenii Stepanov
760345a959 am e9774a52: Merge "A special linker for ASan executables."
* commit 'e9774a5227749035dc55357ae3a34edaf545c3b3':
  A special linker for ASan executables.
2015-07-15 17:51:04 +00:00
Evgenii Stepanov
43a783714f am e9774a52: Merge "A special linker for ASan executables."
* commit 'e9774a5227749035dc55357ae3a34edaf545c3b3':
  A special linker for ASan executables.
2015-07-15 17:50:49 +00:00
Evgenii Stepanov
e9774a5227 Merge "A special linker for ASan executables." 2015-07-15 17:24:20 +00:00
Evgenii Stepanov
d640b225ec A special linker for ASan executables.
Setup a /system/bin/linker_asan as a symlink to "linker".
Read the linker name from PT_INTERP, and if it is linker_asan,
switch default library lookup paths to the ASan set, which
starts with the path to the instrumented libraries
(/data/lib), followed by /system/lib as a fallback.

This ensures that ASan binaries prefer ASan libraries, when
available. This approach is way better then RPATH/RUNPATH and even
better than LD_LIBRARY_PATH:
- RUNPATH is per-DSO, while default paths are global.
- LD_LIBRARY_PATH is overwritten by android_update_LD_LIBRARY_PATH.
- neither RUNPATH nor LD_LIBRARY_PATH appear in
  android_get_LD_LIBRARY_PATH which is used to build java.lang.path.
  Having ASan libraries in java.lang.path is a good thing.

Bug: 22355945
Change-Id: I1d2791fbf5740618f18f71a3ae3d873714669d3f
2015-07-14 16:12:27 -07:00
Yabin Cui
a89821abe3 am 60a11dcb: Merge "Add test for an Android kernel bug about prctl."
* commit '60a11dcb44992f610e696fc246c70731012080dd':
  Add test for an Android kernel bug about prctl.
2015-07-14 22:52:49 +00:00
Christopher Ferris
bf8809782e am a8d82f12: Merge "Update to v3.18.18 kernel headers."
* commit 'a8d82f126d1830ebee99e2622d08489a844e3e62':
  Update to v3.18.18 kernel headers.
2015-07-14 22:52:40 +00:00
Christopher Ferris
7236112561 am 5e3dc45a: Merge "Do not hold hash table lock while backtracing."
* commit '5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5':
  Do not hold hash table lock while backtracing.
2015-07-14 21:30:11 +00:00
Yabin Cui
2f54a44110 am 60a11dcb: Merge "Add test for an Android kernel bug about prctl."
* commit '60a11dcb44992f610e696fc246c70731012080dd':
  Add test for an Android kernel bug about prctl.
2015-07-14 20:27:23 +00:00
Christopher Ferris
3b9900d346 am a8d82f12: Merge "Update to v3.18.18 kernel headers."
* commit 'a8d82f126d1830ebee99e2622d08489a844e3e62':
  Update to v3.18.18 kernel headers.
2015-07-14 20:27:06 +00:00
Christopher Ferris
653f4b1504 am 43d35c35: Merge "Do not hold hash table lock while backtracing." into mnc-dev
* commit '43d35c356e2fbe0b022cef52445e93053c4ddbfd':
  Do not hold hash table lock while backtracing.
2015-07-14 17:15:51 +00:00
Yabin Cui
60a11dcb44 Merge "Add test for an Android kernel bug about prctl." 2015-07-14 02:48:45 +00:00
Yabin Cui
91ce715af1 Add test for an Android kernel bug about prctl.
Bug: 20017123

Change-Id: I8c109a06999a8bffcc8e8298b04ee637bb67d878
2015-07-13 19:15:38 -07:00
Christopher Ferris
a8d82f126d Merge "Update to v3.18.18 kernel headers." 2015-07-14 01:29:46 +00:00
Christopher Ferris
dda4fd4644 Update to v3.18.18 kernel headers.
Change-Id: I0a0f423bda89500ad8e13a80582f05ec8bc756ea
2015-07-13 17:21:18 -07:00
Christopher Ferris
287cf2664f am 5e3dc45a: Merge "Do not hold hash table lock while backtracing."
* commit '5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5':
  Do not hold hash table lock while backtracing.
2015-07-13 20:53:02 +00:00
Christopher Ferris
5e3dc45a16 Merge "Do not hold hash table lock while backtracing." 2015-07-13 20:27:38 +00:00
Christopher Ferris
6db9c199a8 am 43d35c35: Merge "Do not hold hash table lock while backtracing." into mnc-dev
* commit '43d35c356e2fbe0b022cef52445e93053c4ddbfd':
  Do not hold hash table lock while backtracing.
2015-07-13 20:25:57 +00:00
Christopher Ferris
3a40a0000a Do not hold hash table lock while backtracing.
There is a deadlock if holding the hash table lock while trying to do
a backtrace. Change the code so that the hash table lock is only held
while actually modifying either g_hash_table, or while modifying an
entry from g_hash_table.

Bug: 22423683
(cherry picked from commit 9fee99b06013787054a312449b94115038e2ad7c)

Change-Id: I72173bfe6f824ceaceea625c24e7851b87467135
2015-07-13 13:18:31 -07:00
Christopher Ferris
43d35c356e Merge "Do not hold hash table lock while backtracing." into mnc-dev 2015-07-13 20:15:30 +00:00
Christopher Ferris
9fee99b060 Do not hold hash table lock while backtracing.
There is a deadlock if holding the hash table lock while trying to do
a backtrace. Change the code so that the hash table lock is only held
while actually modifying either g_hash_table, or while modifying an
entry from g_hash_table.

Bug: 22423683
Change-Id: I604ea56f940f22e99da41ea4dcdf97bedaac268d
2015-07-13 12:17:50 -07:00
Elliott Hughes
45baf0f384 am 147a50d0: Merge "Prevent user-defined basename_r from breaking basename(3)."
* commit '147a50d06e1183e3f39f4f6d0fa28748b33d4aa9':
  Prevent user-defined basename_r from breaking basename(3).
2015-07-11 07:25:20 +00:00
Elliott Hughes
acf2b7bea6 am 147a50d0: Merge "Prevent user-defined basename_r from breaking basename(3)."
* commit '147a50d06e1183e3f39f4f6d0fa28748b33d4aa9':
  Prevent user-defined basename_r from breaking basename(3).
2015-07-11 07:23:37 +00:00
Elliott Hughes
147a50d06e Merge "Prevent user-defined basename_r from breaking basename(3)." 2015-07-11 07:03:54 +00:00
Elliott Hughes
a20a35fdda Prevent user-defined basename_r from breaking basename(3).
LP64 is immune because basename_r is hidden there, but on LP32 a basename_r
defined in the executable breaks basename because its call to basename_r
will resolve to that one rather than the one in libc.

Bug: http://b/22415484
Change-Id: Ied3ca7ad3fb0e744eb705fc924743f893b4ad490
2015-07-10 23:58:59 -07:00
Neil Fuller
c64ed22e9b am 64c82544: Merge "Update timezone data to 2015e" into mnc-dev
* commit '64c825441637b379be56a04622089e8e9b4b0da4':
  Update timezone data to 2015e
2015-07-10 17:00:49 +00:00
Neil Fuller
533efc20b7 am 64c82544: Merge "Update timezone data to 2015e" into mnc-dev
* commit '64c825441637b379be56a04622089e8e9b4b0da4':
  Update timezone data to 2015e
2015-07-10 10:35:23 +00:00
Neil Fuller
64c8254416 Merge "Update timezone data to 2015e" into mnc-dev 2015-07-10 09:47:55 +00:00
Dmitriy Ivanov
db996ae74c am a5bb841d: Fix memory-leak on soinfo_free()
* commit 'a5bb841df799e10e7d0ae3202b097da8a1c23507':
  Fix memory-leak on soinfo_free()
2015-07-10 01:44:15 +00:00
Dmitriy Ivanov
538a4d7029 am a5bb841d: Fix memory-leak on soinfo_free()
* commit 'a5bb841df799e10e7d0ae3202b097da8a1c23507':
  Fix memory-leak on soinfo_free()
2015-07-10 00:59:25 +00:00
Dmitriy Ivanov
a5bb841df7 Fix memory-leak on soinfo_free()
Bug: http://b/22290728
Change-Id: I00747056db2cd3ff8b33936278464daed7236536
(cherry picked from commit 609f11b31ecedc4e9f2a1f6017b60b1f51b15c22)
2015-07-09 17:03:37 -07:00
Dmitriy Ivanov
9d4402a95c am 880a2933: Merge "Fix memory-leak on soinfo_free()"
* commit '880a293390b64da806a072f4ace2c2784b340876':
  Fix memory-leak on soinfo_free()
2015-07-09 23:54:12 +00:00
Dmitriy Ivanov
7974b83443 am 880a2933: Merge "Fix memory-leak on soinfo_free()"
* commit '880a293390b64da806a072f4ace2c2784b340876':
  Fix memory-leak on soinfo_free()
2015-07-09 23:53:33 +00:00
Dmitriy Ivanov
880a293390 Merge "Fix memory-leak on soinfo_free()" 2015-07-09 23:32:19 +00:00
Pirama Arumuga Nainar
a13ece0d6c am d1e10d7d: Merge "Use delete[] to de-allocate pointers from new[]"
* commit 'd1e10d7d168a8461d9eb47e48802ea11d8bd0640':
  Use delete[] to de-allocate pointers from new[]
2015-07-09 23:06:07 +00:00
Pirama Arumuga Nainar
fcd017148b am d1e10d7d: Merge "Use delete[] to de-allocate pointers from new[]"
* commit 'd1e10d7d168a8461d9eb47e48802ea11d8bd0640':
  Use delete[] to de-allocate pointers from new[]
2015-07-09 23:04:30 +00:00
Pirama Arumuga Nainar
d1e10d7d16 Merge "Use delete[] to de-allocate pointers from new[]" 2015-07-09 22:40:51 +00:00
Pirama Arumuga Nainar
4d44675283 Use delete[] to de-allocate pointers from new[]
Upstream clang has a new diagnostic, '-Wmismatched-new-delete' to
generate a warning (that becomes an error with -Werror) when delete is
used to deallocate pointers created with 'new[]'.  This patch fixes
'delete's that trigger this warning/error.

Change-Id: Id7b6f6c2df3e860e576de55e2f61f3d2be3a3986
2015-07-09 10:15:15 -07:00
Dmitriy Ivanov
609f11b31e Fix memory-leak on soinfo_free()
Bug: http://b/22290728
Change-Id: I00747056db2cd3ff8b33936278464daed7236536
2015-07-08 15:26:46 -07:00
Daniel Erat
818295c3f7 am c6f25641: Merge "libc: Add sys/fcntl.h for compatibility."
* commit 'c6f25641eb874cd15f92759beff1ad67cfd8228b':
  libc: Add sys/fcntl.h for compatibility.
2015-07-08 21:45:39 +00:00
Daniel Erat
16d78688b4 am c6f25641: Merge "libc: Add sys/fcntl.h for compatibility."
* commit 'c6f25641eb874cd15f92759beff1ad67cfd8228b':
  libc: Add sys/fcntl.h for compatibility.
2015-07-08 21:44:59 +00:00
Daniel Erat
c6f25641eb Merge "libc: Add sys/fcntl.h for compatibility." 2015-07-08 21:15:23 +00:00
Daniel Erat
e55151472b libc: Add sys/fcntl.h for compatibility.
Add a /usr/include/sys/fcntl.h file that includes <fcntl.h>.

Change-Id: Ie34bf7519607c5aae1fbea7c7dca249c9b7801cc
2015-07-08 15:07:17 -06:00
Evgenii Stepanov
c9bd26e96b am 33ef6c20: Merge "Respect caller DT_RUNPATH in dlopen()."
* commit '33ef6c20f2ddf19b29ed3a4e50139fa391b1a3d4':
  Respect caller DT_RUNPATH in dlopen().
2015-07-08 20:16:59 +00:00
Evgenii Stepanov
b4f5d6d894 am 33ef6c20: Merge "Respect caller DT_RUNPATH in dlopen()."
* commit '33ef6c20f2ddf19b29ed3a4e50139fa391b1a3d4':
  Respect caller DT_RUNPATH in dlopen().
2015-07-08 20:16:35 +00:00
Evgenii Stepanov
33ef6c20f2 Merge "Respect caller DT_RUNPATH in dlopen()." 2015-07-08 19:50:03 +00:00
Christopher Ferris
ce302bff6a am 90de6820: Merge "Replace bx lr with update of pc from the stack."
* commit '90de6820f736de1239b218ea2b63d15c38505e93':
  Replace bx lr with update of pc from the stack.
2015-07-08 19:41:10 +00:00
Christopher Ferris
a2e2c3d2ae am 90de6820: Merge "Replace bx lr with update of pc from the stack."
* commit '90de6820f736de1239b218ea2b63d15c38505e93':
  Replace bx lr with update of pc from the stack.
2015-07-08 19:40:38 +00:00
Christopher Ferris
90de6820f7 Merge "Replace bx lr with update of pc from the stack." 2015-07-08 19:15:38 +00:00
Christopher Ferris
e1e434af12 Replace bx lr with update of pc from the stack.
When there is arm assembler of this format:

ldmxx sp!, {..., lr} or pop {..., lr}
bx lr

It can be replaced with:

ldmxx sp!, {..., pc} or pop {..., pc}

Change-Id: Ic27048c52f90ac4360ad525daf0361a830dc22a3
2015-07-08 11:20:27 -07:00
Evgenii Stepanov
0cdef7e7f3 Respect caller DT_RUNPATH in dlopen().
When dlopen-ing a library, add the caller's DT_RUNPATH to the directory search
list. This fixes dlfcn.dt_runpath in bionic-unit-tests-glibc(32|64).

Bug: 21899363
Change-Id: Ife6a7e192939292cf4dc291b7e6b95945761cde3
2015-07-07 10:56:06 -07:00
Elliott Hughes
b82a5a96f8 am 7a9732d6: Merge "Add some glibc-like #defines for libchrome."
* commit '7a9732d663906bedd8734c9952e35728c2662767':
  Add some glibc-like #defines for libchrome.
2015-07-07 17:26:41 +00:00
Elliott Hughes
049a5ae002 am 7a9732d6: Merge "Add some glibc-like #defines for libchrome."
* commit '7a9732d663906bedd8734c9952e35728c2662767':
  Add some glibc-like #defines for libchrome.
2015-07-07 17:24:48 +00:00
Elliott Hughes
7a9732d663 Merge "Add some glibc-like #defines for libchrome." 2015-07-07 16:56:53 +00:00
Elliott Hughes
7ea817d39e Add some glibc-like #defines for libchrome.
libchrome uses __USE_XOPEN2K8 to decide whether futimens is
available. That's perhaps not the best idea, but there are other
cases where we defined the same feature macros as glibc to aid
portability.

Change-Id: Ie6e04cb181d88698d618e7dbd26cd347a6bf076c
2015-07-07 09:22:32 -07:00
Elliott Hughes
805844ff0c am 65dd8582: Fix alignment after variable-length data.
* commit '65dd858239c4e32a5a1afbc14ac30dbcdd2a50a3':
  Fix alignment after variable-length data.
2015-07-06 23:29:41 +00:00
Elliott Hughes
95997b691f am 89bbb846: Merge "Fix alignment after variable-length data."
* commit '89bbb846b9831f232b87d54a6eeb759ac603cc43':
  Fix alignment after variable-length data.
2015-07-06 22:55:21 +00:00
Elliott Hughes
b6c2d3f30b am 89bbb846: Merge "Fix alignment after variable-length data."
* commit '89bbb846b9831f232b87d54a6eeb759ac603cc43':
  Fix alignment after variable-length data.
2015-07-06 22:54:52 +00:00
Elliott Hughes
a6441ac5bf am 65dd8582: Fix alignment after variable-length data.
* commit '65dd858239c4e32a5a1afbc14ac30dbcdd2a50a3':
  Fix alignment after variable-length data.
2015-07-06 22:32:06 +00:00
Elliott Hughes
89bbb846b9 Merge "Fix alignment after variable-length data." 2015-07-06 21:44:31 +00:00
Elliott Hughes
dbb17b2831 Fix alignment after variable-length data.
In the serialized output from netd, the strings come first. Some code
assumes -- reasonably enough -- that it can do unaligned reads of pointers,
so we need to ensure alignment after all the strings.

(cherrypick of 65dd858239c4e32a5a1afbc14ac30dbcdd2a50a3.)

Bug: http://b/21192318
Change-Id: I456639127db9a2583f7f738e6b8103375d9387fd
2015-07-06 14:43:28 -07:00
Elliott Hughes
65dd858239 Fix alignment after variable-length data.
In the serialized output from netd, the strings come first. Some code
assumes -- reasonably enough -- that it can do unaligned reads of pointers,
so we need to ensure alignment after all the strings.

Bug: http://b/21192318
Change-Id: I456639127db9a2583f7f738e6b8103375d9387fd
2015-07-06 14:37:46 -07:00
Elliott Hughes
6a31a37cc1 am f542b309: Merge "Name the thread stack and signal stack guard pages."
* commit 'f542b30970ae863caceea1f635115f1195461e31':
  Name the thread stack and signal stack guard pages.
2015-07-06 20:22:48 +00:00
Elliott Hughes
4059fcd29b am f542b309: Merge "Name the thread stack and signal stack guard pages."
* commit 'f542b30970ae863caceea1f635115f1195461e31':
  Name the thread stack and signal stack guard pages.
2015-07-06 20:22:43 +00:00
Elliott Hughes
f542b30970 Merge "Name the thread stack and signal stack guard pages." 2015-07-06 19:59:43 +00:00
Elliott Hughes
eeb6b57e75 Name the thread stack and signal stack guard pages.
Bug: http://b/22228722
Change-Id: I1dae672e386e404fb304a34496a29fe21134c784
2015-07-01 23:48:39 -07:00
Dmitriy Ivanov
4bb5ea22bc am f643eb38: Improve personality initialization
* commit 'f643eb38c36eb63f612e20dea09fd43ac6a6b360':
  Improve personality initialization
2015-07-01 17:12:54 +00:00
Elliott Hughes
8d04081196 am 77455f85: Merge "Fixed uchar.h for clang3.6"
* commit '77455f85ab46bed6dc5f7246b474ede44ae9ede2':
  Fixed uchar.h for clang3.6
2015-07-01 15:58:17 +00:00
Elliott Hughes
77455f85ab Merge "Fixed uchar.h for clang3.6" 2015-07-01 15:32:58 +00:00
Neil Fuller
66379bb11d am 86061f39: Merge "Update timezone data to 2015e"
* commit '86061f39c2c5f5a5ee91b349d1c8cb7bf04003a3':
  Update timezone data to 2015e
2015-07-01 10:06:29 +00:00
Neil Fuller
86061f39c2 Merge "Update timezone data to 2015e" 2015-07-01 09:42:22 +00:00
Dmitriy Ivanov
7830dcf1b5 am 416695a7: Merge "Improve personality initialization"
* commit '416695a75c3892dd709a80ea8a640da07082594e':
  Improve personality initialization
2015-07-01 02:36:04 +00:00
Dmitriy Ivanov
416695a75c Merge "Improve personality initialization" 2015-07-01 02:12:53 +00:00
Dmitriy Ivanov
c2247478d5 Improve personality initialization
1. Personality parameter should be unsigned int (not long)
2. Do not reset bits outside of PER_MASK when setting
   personality value.
3. Set personality for static executables.

Bug: http://b/21900686
Change-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303
(cherry picked from commit f643eb38c36eb63f612e20dea09fd43ac6a6b360)
2015-06-30 19:01:24 -07:00
Dmitriy Ivanov
f643eb38c3 Improve personality initialization
1. Personality parameter should be unsigned int (not long)
2. Do not reset bits outside of PER_MASK when setting
   personality value.
3. Set personality for static executables.

Bug: http://b/21900686
Change-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303
2015-06-30 18:45:59 -07:00
Neil Fuller
ae02a0ae00 Update timezone data to 2015e
Changes affecting future time stamps

    Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00,
    not 06-13 and 07-18 as we had guessed.  (Thanks to Milamber.)

    Assume Cayman Islands will observe DST starting next year, using US rules.
    Although it isn't guaranteed, it is the most likely.

Bug: 21836574
Change-Id: I30ab9ba8524c79e389ed0ff8c4af4378b7048265
2015-06-30 16:21:34 +01:00
Neil Fuller
b9f76dc829 Update timezone data to 2015e
Changes affecting future time stamps

    Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00,
    not 06-13 and 07-18 as we had guessed.  (Thanks to Milamber.)

    Assume Cayman Islands will observe DST starting next year, using US rules.
    Although it isn't guaranteed, it is the most likely.

Bug: 21836574
Change-Id: I6eda60c220d5c55d2aa0934544866ec0f1ce62ab
2015-06-30 14:48:06 +01:00
Erik Kline
063670156f am 754f6690: Pass around struct android_net_context for better behaviour
* commit '754f669076ec1edfc0d597aaf89600d4c93f9a7c':
  Pass around struct android_net_context for better behaviour
2015-06-30 06:22:24 +00:00
Erik Kline
754f669076 Pass around struct android_net_context for better behaviour
Group network context elements in to a single struct and
add a version of android_getaddrinfofornet() that accepts it.

The introduction of UID-based routing means that the UID is an
integral part of the network context when evaluating connectivity,
sorting addresses, etc.

Also, introduce a distinction between DNS netids/marks and those
expected to be used by the application.  This can be important
when the network an application is using is not the same as the
network on which DNS queries will be issued.

Additionally, de-duplicate the UDP connect logic (collapse both
_test_connect() and _find_src_addr() into just the latter).

Bug: 19470192
Bug: 20733156
Bug: 21832279
Change-Id: If16c2f4744695f507993afdac078ca105eb5d3e4
(cherry picked from commit 01e37c9665018534c798daaa59d5b0adb408e0a4)
2015-06-30 12:12:08 +09:00
Erik Kline
2ce0969b83 am 7f46cf9a: Merge "Pass around struct android_net_context for better behaviour"
* commit '7f46cf9a5f0b3e54d97fc94a83b955ae4c335a31':
  Pass around struct android_net_context for better behaviour
2015-06-30 02:42:17 +00:00
Erik Kline
7f46cf9a5f Merge "Pass around struct android_net_context for better behaviour" 2015-06-30 02:21:03 +00:00
Dmitriy Ivanov
10b0b96ff6 am f7d5bf33: Lock on dl_interate_phdr
* commit 'f7d5bf334dc4bc5b7399d4c8268e1b0bf676548f':
  Lock on dl_interate_phdr
2015-06-29 22:41:55 +00:00
Dmitriy Ivanov
c66bcd2a3f am 83474cd3: Merge "Lock on dl_interate_phdr"
* commit '83474cd38712c0f955174609a880deabebb27518':
  Lock on dl_interate_phdr
2015-06-29 22:38:20 +00:00
Dmitriy Ivanov
83474cd387 Merge "Lock on dl_interate_phdr" 2015-06-29 22:17:36 +00:00
Dmitriy Ivanov
7271caf93d Lock on dl_interate_phdr
There is possibility of someone dlclosing a library
while dl_iterate_phdr in progress which can lead to
dl_iterate_phdr calling callback with invalid address
if it was unmapped by dlclose.

Bug: http://b/22047255
Change-Id: I3fc0d9fd2c51fb36fd34cb035f37271fa893a7be
(cherry picked from commit f7d5bf334dc4bc5b7399d4c8268e1b0bf676548f)
2015-06-29 15:14:28 -07:00
Dmitriy Ivanov
f7d5bf334d Lock on dl_interate_phdr
There is possibility of someone dlclosing a library
while dl_iterate_phdr in progress which can lead to
dl_iterate_phdr calling callback with invalid address
if it was unmapped by dlclose.

Bug: http://b/22047255
Change-Id: I3fc0d9fd2c51fb36fd34cb035f37271fa893a7be
2015-06-29 14:48:25 -07:00
Dmitriy Ivanov
168ebad960 am 46d24d12: Merge "Replace NULL with nullptr"
* commit '46d24d12e167a0b5afa4ded218aa4db0a477141a':
  Replace NULL with nullptr
2015-06-29 21:34:07 +00:00
Elliott Hughes
6bae84af9b am 25da2d7c: Merge "Add <sysexits.h>."
* commit '25da2d7ca2795156552ed96e1f3c3245330682b0':
  Add <sysexits.h>.
2015-06-29 21:23:22 +00:00
Dmitriy Ivanov
46d24d12e1 Merge "Replace NULL with nullptr" 2015-06-29 21:08:49 +00:00
Elliott Hughes
25da2d7ca2 Merge "Add <sysexits.h>." 2015-06-29 21:01:05 +00:00
Elliott Hughes
59d5854d14 Add <sysexits.h>.
Taken from current upstream OpenBSD.

Bug: http://b/22172963
Change-Id: Ic899e08541335777296fa8ec99e518f35a100144
2015-06-29 13:44:34 -07:00
Yusuke Sato
f7d88aefb8 am 71107cdd: Merge "Rename ZipEntryName to ZipString"
* commit '71107cdd028461c433a39a10eb192edbdf03dede':
  Rename ZipEntryName to ZipString
2015-06-29 18:14:58 +00:00
Yusuke Sato
71107cdd02 Merge "Rename ZipEntryName to ZipString" 2015-06-29 17:49:41 +00:00
egor.kochetov
a05bee544a Fixed uchar.h for clang3.6
The NDK self-test issue64679-prctl failed to build because by default
clang3.6 builds in C11 mode, but the ifdef in the file 'uchar.h' hid the
required char16_t and char32_t declarations based on the GCC version,
which is declared as 4 by clang.

The ifdef is changed so that it is based on C version rather than a
compiler version. This way it is compatible with gcc 4, gcc 5 and clang
which are actually the only used toolchains.

See also: b.android.com/177609

Change-Id: I78c4bdc681c6f8a31b92dbe8ffe35e84ef2eda36
Signed-off-by: Egor Kochetov <egor.kochetov@intel.com>
2015-06-29 13:27:28 +03:00
Erik Kline
01e37c9665 Pass around struct android_net_context for better behaviour
Group network context elements in to a single struct and
add a version of android_getaddrinfofornet() that accepts it.

The introduction of UID-based routing means that the UID is an
integral part of the network context when evaluating connectivity,
sorting addresses, etc.

Also, introduce a distinction between DNS netids/marks and those
expected to be used by the application.  This can be important
when the network an application is using is not the same as the
network on which DNS queries will be issued.

Additionally, de-duplicate the UDP connect logic (collapse both
_test_connect() and _find_src_addr() into just the latter).

Bug: 19470192
Bug: 20733156
Bug: 21832279
Change-Id: If16c2f4744695f507993afdac078ca105eb5d3e4
2015-06-29 18:39:54 +09:00
Dmitriy Ivanov
4b42cb93c9 am 06700b2b: Fix crash when trying to load invalid ELF file.
* commit '06700b2b5e92a365505b15d0d05e2d5b0706c511':
  Fix crash when trying to load invalid ELF file.
2015-06-26 15:09:23 +00:00
Dmitriy Ivanov
61ad0cf24c am eeb9f5e4: Merge "Fix crash when trying to load invalid ELF file."
* commit 'eeb9f5e41662828989f3913d81ec23229a668434':
  Fix crash when trying to load invalid ELF file.
2015-06-26 04:12:23 +00:00
Dmitriy Ivanov
eeb9f5e416 Merge "Fix crash when trying to load invalid ELF file." 2015-06-26 03:51:27 +00:00
Dmitriy Ivanov
3f987f5b3e Fix crash when trying to load invalid ELF file.
Bug: http://b/22047255
Bug: http://b/22091640
Change-Id: I6c51cff43287a6ac4b25fa9ce6a6fc3d232fd047
(cherry picked from commit 06700b2b5e92a365505b15d0d05e2d5b0706c511)
2015-06-25 20:05:50 -07:00
Dmitriy Ivanov
06700b2b5e Fix crash when trying to load invalid ELF file.
Bug: http://b/22047255
Bug: http://b/22091640
Change-Id: I6c51cff43287a6ac4b25fa9ce6a6fc3d232fd047
2015-06-25 17:03:26 -07:00
Yusuke Sato
56f40fbb82 Rename ZipEntryName to ZipString
This is for https://android-review.googlesource.com/#/c/156771/.

Bug: 21957428
Change-Id: Ida30c28c0fff0b2dadddbdb1aa1999ae3250610b
2015-06-25 14:56:07 -07:00
Elliott Hughes
6845f45ef9 am d19c2715: Merge "Fix x86 gdbserver build."
* commit 'd19c271599a4b8881213c7bfbb81f87d8e56a101':
  Fix x86 gdbserver build.
2015-06-25 14:44:51 +00:00
Elliott Hughes
d19c271599 Merge "Fix x86 gdbserver build." 2015-06-25 14:30:22 +00:00
Dimitry Ivanov
a56ecc3405 am 6589febe: Merge "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
* commit '6589febec212bb1d72b7e3d593a1b7fe77692f7f':
  [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
2015-06-25 01:24:07 +00:00
Dimitry Ivanov
6589febec2 Merge "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers" 2015-06-25 01:02:20 +00:00
Elliott Hughes
fef58353f4 Fix x86 gdbserver build.
Add the x86-only elf_fpxregset_t to <sys/procfs.h>, and rename
user_fxsr_struct (the kernel's name) to user_fpxregs_struct (the
userspace name).

Bug: http://b/22068064
Change-Id: Id466096bf02baf6bd49b193f49d9036848d33548
2015-06-24 17:31:24 -07:00
Duane Sand
bc425c73e0 [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
Enables running of older MIPS NDK-built apps on mips64r6.

Works with kernel supporting FRE emulation, and old kernels.

Change-Id: If5e392ed89e9910cd1ccd30e0fd5c4a5acea2c7d
2015-06-24 16:43:19 -07:00
Dimitry Ivanov
ee01bb6374 am c666838a: Merge "Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers""
* commit 'c666838ad6e578f429783a82f9b9a5bbddd3a9a8':
  Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
2015-06-24 21:47:39 +00:00
Dimitry Ivanov
beb609bba8 am fb3357e2: Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
* commit 'fb3357e2eb9366d87a8da96e1a0744c9b1f22af9':
  Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
2015-06-24 21:09:43 +00:00
Dimitry Ivanov
c666838ad6 Merge "Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"" 2015-06-24 20:44:36 +00:00
Dimitry Ivanov
cc83890464 Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
This reverts commit d02ec08427b006e80191ce60690ce48a788fb832.

Bug: http://b/22045439
Change-Id: Iaf10ff1e2948083cce0098f29d5b87b32bfae1b7
2015-06-24 20:43:33 +00:00
Dimitry Ivanov
fb3357e2eb Revert "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
This reverts commit 40d9e7bf842423e328cda58e21ff5fc0cbab5c8a.

Bug: http://b/22045439
Change-Id: Ia9c56f65d35e404332a462f46460335cef39f0a4
2015-06-24 20:42:33 +00:00
Chih-Hung Hsieh
4ab0edac1a am d807b9a1: Merge "Use gcc to build and test x86_64 long double code."
* commit 'd807b9a12d3e49132b095df3d883618452033b51':
  Use gcc to build and test x86_64 long double code.
2015-06-24 00:40:16 +00:00
Chih-Hung Hsieh
d807b9a12d Merge "Use gcc to build and test x86_64 long double code." 2015-06-24 00:15:51 +00:00
Chih-Hung Hsieh
e79d06b0e8 Use gcc to build and test x86_64 long double code.
Clang/llvm x86_64 configuration of long double is still
incompatible with gcc.
https://llvm.org/bugs/show_bug.cgi?id=23897

BUG: 21899249
Change-Id: I47fd6d0ce2daa84ae0035e7885a4d90e4c3056f7
2015-06-23 23:13:39 +00:00
Dmitriy Ivanov
0a9df9a13e am af6ee5b5: Merge "Work around compiler optimization"
* commit 'af6ee5b5bc446ef5a6f2bf41bc4f2e13657978be':
  Work around compiler optimization
2015-06-23 22:17:08 +00:00
Dmitriy Ivanov
af6ee5b5bc Merge "Work around compiler optimization" 2015-06-23 21:51:35 +00:00
Dmitriy Ivanov
aff18fd608 Replace NULL with nullptr
Change-Id: If66d0c5ae1ea1ed371b44e067d4ae59ac54a8842
2015-06-23 13:58:22 -07:00
Dmitriy Ivanov
7d09a8cd11 Work around compiler optimization
This makes bionic-unit-test-glibc64 behave consistently
when testing dlopen from a library with dt_runpath.

Bug: http://b/21899363
Change-Id: I9d446eb6852876975874d6b7761f6f81cc4e9916
2015-06-23 13:47:23 -07:00
Duane Sand
bbac1d19d7 am 40d9e7bf: [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
* commit '40d9e7bf842423e328cda58e21ff5fc0cbab5c8a':
  [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
2015-06-23 20:45:57 +00:00
Elliott Hughes
9209b0a169 am 2b028f5c: Fix bad merge of 64e9e71cdb7d88397e510e1986d494b797ed3b45.
* commit '2b028f5ce47b8d27ca6d3b86e135f7d9b0359547':
  Fix bad merge of 64e9e71cdb7d88397e510e1986d494b797ed3b45.
2015-06-23 18:08:10 +00:00
Duane Sand
40d9e7bf84 [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
Enables running of older MIPS NDK-built apps on mips64r6.

Works with kernel supporting FRE emulation, and old kernels.

Bug: http://b/21555893
Change-Id: I13923fe62cd83ad1d337f13a50f2eda2dfdd906f
(cherry picked from commit d02ec08427b006e80191ce60690ce48a788fb832)
2015-06-23 10:33:37 -07:00
Elliott Hughes
2b028f5ce4 Fix bad merge of 64e9e71cdb7d88397e510e1986d494b797ed3b45.
Bug: http://b/22029751
Change-Id: I6245fe5f274c9af8a632da5eebe50cf9fe29dc4a
2015-06-23 09:14:16 -07:00
Dmitriy Ivanov
3226cad538 am d6d6c0c4: Merge "Remove libdl* tests from bionic-unit-tests-static" into mnc-dev
* commit 'd6d6c0c4f10c047b25b45289f5c30338cd1da239':
  Remove libdl* tests from bionic-unit-tests-static
2015-06-22 19:51:19 +00:00
Dmitriy Ivanov
02102d95f8 am 5fa858c5: Merge "Remove text-relocs support for apps targeting M+" into mnc-dev
* commit '5fa858c5655ed721696719ce07d81a983d4b0f5e':
  Remove text-relocs support for apps targeting M+
2015-06-22 19:51:18 +00:00
Dmitriy Ivanov
6f2bce5b8a am a8993c99: Merge "Remove text-relocs support for apps targeting M+"
* commit 'a8993c994e45ec2dc00dcef15910560e22d67be9':
  Remove text-relocs support for apps targeting M+
2015-06-22 19:50:50 +00:00
Dmitriy Ivanov
c29626c12a am 13cee57d: Merge "Remove libdl* tests from bionic-unit-tests-static"
* commit '13cee57dee4ebd14b57e7b5acd372228eb9c4a37':
  Remove libdl* tests from bionic-unit-tests-static
2015-06-22 19:50:49 +00:00
Dmitriy Ivanov
a8993c994e Merge "Remove text-relocs support for apps targeting M+" 2015-06-22 19:27:34 +00:00
Dmitriy Ivanov
e4ad91f86a Remove text-relocs support for apps targeting M+
Remove support of text-relocations for apps targeting sdk version > 22

Bug: http://b/20013628
Change-Id: I2127739544480c747315e32df15dfbd1b79de4f5
(cherry picked from commit 3e6f7807541bab8157f9c26e55829fd193683349)
2015-06-22 12:26:53 -07:00
Dmitriy Ivanov
d6d6c0c4f1 Merge "Remove libdl* tests from bionic-unit-tests-static" into mnc-dev 2015-06-22 19:25:37 +00:00
Dmitriy Ivanov
5fa858c565 Merge "Remove text-relocs support for apps targeting M+" into mnc-dev 2015-06-22 19:25:15 +00:00
Dmitriy Ivanov
96ebdcdca0 Remove libdl* tests from bionic-unit-tests-static
Bug: http://b/21900592
Change-Id: I907cc15684b121ec2fbdeca49fc584bb6d2eaacc
(cherry picked from commit de4e27e231143e4e1982b4ca9effd03c1ca12d86)
2015-06-22 12:24:36 -07:00
Dmitriy Ivanov
13cee57dee Merge "Remove libdl* tests from bionic-unit-tests-static" 2015-06-22 19:24:15 +00:00
Dmitriy Ivanov
de4e27e231 Remove libdl* tests from bionic-unit-tests-static
Bug: http://b/21900592
Change-Id: I907cc15684b121ec2fbdeca49fc584bb6d2eaacc
2015-06-22 11:54:58 -07:00
Dimitry Ivanov
3ebe2c78e4 am 6a5ead69: Merge "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers"
* commit '6a5ead6990ef16e858309928c4b14e3a5e2d89af':
  [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
2015-06-21 21:46:39 +00:00
Dimitry Ivanov
6a5ead6990 Merge "[MIPS] Support FR=0 emulation on FR=1 64-bit FP registers" 2015-06-21 21:25:54 +00:00
Duane Sand
d02ec08427 [MIPS] Support FR=0 emulation on FR=1 64-bit FP registers
Enables running of older MIPS NDK-built apps on mips64r6.

Works with kernel supporting FRE emulation, and old kernels.

Change-Id: I13923fe62cd83ad1d337f13a50f2eda2dfdd906f
2015-06-21 11:36:57 -07:00
Yabin Cui
1df44bd0a4 am cb060759: am 8beb0c34: am b245bc75: am 0f455612: Merge "Fix flaky test of timer_create_multiple in L." into lollipop-mr1-cts-dev
* commit 'cb0607590341ed2512a55015e66e19e7f7db3723':
  Fix flaky test of timer_create_multiple in L.
2015-06-19 20:29:49 +00:00
David Srbecky
324bd8d0bb am c08c88b5: Merge "Add flag that makes linker honor min(p_vaddr)" into mnc-dev
* commit 'c08c88b5fcec05551858c32bc57f4ae614c0ce5c':
  Add flag that makes linker honor min(p_vaddr)
2015-06-19 20:29:33 +00:00
Yabin Cui
cb06075903 am 8beb0c34: am b245bc75: am 0f455612: Merge "Fix flaky test of timer_create_multiple in L." into lollipop-mr1-cts-dev
* commit '8beb0c34da46a5146a2de8256db8bb42febb283c':
  Fix flaky test of timer_create_multiple in L.
2015-06-19 19:06:22 +00:00
Yabin Cui
8beb0c34da am b245bc75: am 0f455612: Merge "Fix flaky test of timer_create_multiple in L." into lollipop-mr1-cts-dev
* commit 'b245bc750021ce6d220e71625fca66620cdd1f05':
  Fix flaky test of timer_create_multiple in L.
2015-06-19 18:55:51 +00:00
Yabin Cui
b245bc7500 am 0f455612: Merge "Fix flaky test of timer_create_multiple in L." into lollipop-mr1-cts-dev
* commit '0f455612d3325932a851418634a17a61307948c5':
  Fix flaky test of timer_create_multiple in L.
2015-06-19 18:40:59 +00:00
David Srbecky
c08c88b5fc Merge "Add flag that makes linker honor min(p_vaddr)" into mnc-dev 2015-06-19 18:26:21 +00:00
Yabin Cui
a4c422026a am 6cc98af7: Merge "Don\'t use TIMER_ABSTIME in time_test."
* commit '6cc98af72b0c48c58b2ab5fdb5f7abb842175299':
  Don't use TIMER_ABSTIME in time_test.
2015-06-19 18:25:21 +00:00
Yabin Cui
0f455612d3 Merge "Fix flaky test of timer_create_multiple in L." into lollipop-mr1-cts-dev 2015-06-19 18:00:53 +00:00
Yabin Cui
6cc98af72b Merge "Don't use TIMER_ABSTIME in time_test." 2015-06-19 17:56:52 +00:00
Yabin Cui
d1ade7ce02 Don't use TIMER_ABSTIME in time_test.
If TIMER_ABSTIME is used in timer_settime(), the timer is always fired
immediately, which is not the intent of the tests.

Change-Id: I76047dbeb2bdded272ee6d028630b53bfd7d8514
2015-06-19 00:54:34 +00:00
Yabin Cui
410c1adf5f Fix flaky test of timer_create_multiple in L.
Bug: 20677618
Change-Id: I0cb5faf77edce042b10611543180f3e2e73d3d05
2015-06-18 16:19:02 -07:00
Dmitriy Ivanov
34e8e47d32 Add flag that makes linker honor min(p_vaddr)
(cherry picked from commit 8a1162835597be38705b381ac34c07da17932568)

Bug: 21924613
Bug: http://b/21523078
Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
2015-06-18 23:58:34 +01:00
Christopher Ferris
e0e1e91322 resolved conflicts for merge of 7d6410e9 to mnc-dev-plus-aosp
Change-Id: I0f050e4eba3d68907dd6bfa24563f7ddfae1d73e
2015-06-17 18:25:22 -07:00
Dmitriy Ivanov
aac38762a2 am 547fa54e: Merge "Improve library lookup logic"
* commit '547fa54e6d5342f4ce68c7d78bd270595caf4b97':
  Improve library lookup logic
2015-06-18 00:55:37 +00:00
Dmitriy Ivanov
850424716c resolved conflicts for merge of 28154f5c to mnc-dev-plus-aosp
Change-Id: I26d4a341d19b6ef1e430f5365626f3c274ba7320
2015-06-17 17:43:12 -07:00
Dmitriy Ivanov
547fa54e6d Merge "Improve library lookup logic" 2015-06-18 00:30:48 +00:00
Christopher Ferris
7d6410e957 Merge "[MIPS] Add optimized string functions" into mnc-dev 2015-06-18 00:18:40 +00:00
Dmitriy Ivanov
a9703332f6 Improve library lookup logic
Linker tries to open a library even if it can
be found by soname. This only happens if the
library was previously opened under different
target sdk version.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: I7dbbcc3b49933bffd89ca0af55371e1a1f2bf4c2
(cherry picked from commit 28154f5c56dc4a64270cae2374b47a168d1bd7fa)
2015-06-17 17:16:44 -07:00
Christopher Ferris
496a128076 am bfa601a9: Merge "[MIPS] Add optimized string functions"
* commit 'bfa601a9992547147fa66a95273bd5b891723bcc':
  [MIPS] Add optimized string functions
2015-06-18 00:15:29 +00:00
Nikola Veljkovic
1d824c3912 [MIPS] Add optimized string functions
Use same string functions for all MIPS architectures.

Bug: 21555893
(cherry picked from commit 38f2eaa07b0ad2e01a40607d3a0ac240ff53abbf)

Change-Id: I94521f023d0bb136a4672782148a9f6e77cc6f1e
2015-06-17 17:02:11 -07:00
Christopher Ferris
bfa601a999 Merge "[MIPS] Add optimized string functions" 2015-06-17 23:50:56 +00:00
Dmitriy Ivanov
28154f5c56 Improve library lookup logic
Linker tries to open a library even if it can
be found by soname. This only happens if the
library was previously opened under different
target sdk version.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: I7dbbcc3b49933bffd89ca0af55371e1a1f2bf4c2
2015-06-17 16:36:03 -07:00
Dimitry Ivanov
b5bab69239 am 9ae6f794: Merge "Revert "Improve library lookup logic""
* commit '9ae6f794cae7280385dfa172b12b7bd110f24693':
  Revert "Improve library lookup logic"
2015-06-17 21:57:17 +00:00
Dimitry Ivanov
9ae6f794ca Merge "Revert "Improve library lookup logic"" 2015-06-17 21:35:28 +00:00
Dimitry Ivanov
d2c81ed000 Revert "Improve library lookup logic"
This reverts commit 455c145e3c451b2b6dc00663e4040d79acefd496.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: Iad21ddfc1ac749d12bcb52384a8d937b307dd03b
2015-06-17 21:34:25 +00:00
Dmitriy Ivanov
0d9057b153 am f448ef49: Merge "Add versions to libm.so symbols"
* commit 'f448ef491c3d733ca0b5935304b41c9df3ff93d5':
  Add versions to libm.so symbols
2015-06-17 21:12:49 +00:00
Dmitriy Ivanov
a8a1e8112f am 4d0d3147: Add versions to libm.so symbols
* commit '4d0d31475f1584ed7bf4a52ce784c62c30ad522c':
  Add versions to libm.so symbols
2015-06-17 21:07:27 +00:00
Dimitry Ivanov
e4faf3af9f am 6b37515c: Merge "Revert "Improve library lookup logic"" into mnc-dev
* commit '6b37515c38ce1d5701915ffcd3bc6b6840d90fa7':
  Revert "Improve library lookup logic"
2015-06-17 21:07:26 +00:00
Dmitriy Ivanov
4d0d31475f Add versions to libm.so symbols
Bug: http://b/20139821
Change-Id: Ifdfcac62d59eb8f0985990aa8512046ecb87449e
(cherry picked from commit 636f5ddddcd9e0bcfc7139b0905ebc92d4adc40a)
2015-06-17 13:50:37 -07:00
Dmitriy Ivanov
f448ef491c Merge "Add versions to libm.so symbols" 2015-06-17 20:49:44 +00:00
Dimitry Ivanov
6b37515c38 Merge "Revert "Improve library lookup logic"" into mnc-dev 2015-06-17 20:43:23 +00:00
Dimitry Ivanov
1eba2f4ce1 Revert "Improve library lookup logic"
This reverts commit ea4ef52fa46602a5853df0e5b1ddd71b194d54ce.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: I23ddbd69294023c56c9cbabad29d26c8f736ab43
2015-06-17 20:42:20 +00:00
Dmitriy Ivanov
8d8477fd17 am 61cbd02f: Merge "Improve library lookup logic"
* commit '61cbd02f1030132a4a4f0bfc2bbde3311dd620da':
  Improve library lookup logic
2015-06-17 17:45:39 +00:00
Dmitriy Ivanov
df0ebf4e92 am 462df829: Merge "Improve library lookup logic" into mnc-dev
* commit '462df82902e6982f5b5c2ea443e84f39980259e1':
  Improve library lookup logic
2015-06-17 17:38:32 +00:00
Dmitriy Ivanov
61cbd02f10 Merge "Improve library lookup logic" 2015-06-17 17:28:50 +00:00
Elliott Hughes
d1289f8bdb am 3b5a4b0c: Merge "Revert "[MIPS] Do not use compact branches until GDB supports them""
* commit '3b5a4b0c3394e45b766188e0bede4d5acdc0c678':
  Revert "[MIPS] Do not use compact branches until GDB supports them"
2015-06-17 17:19:50 +00:00
Dmitriy Ivanov
455c145e3c Improve library lookup logic
Linker tries to open a library even if it can
be found by soname. This only happens if the
library was previously opened under different
target sdk version.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: I769a04b6b1368a107d43f399297be14050338bbc
(cherry picked from commit ea4ef52fa46602a5853df0e5b1ddd71b194d54ce)
2015-06-17 10:18:28 -07:00
Dmitriy Ivanov
462df82902 Merge "Improve library lookup logic" into mnc-dev 2015-06-17 17:15:06 +00:00
Elliott Hughes
3b5a4b0c33 Merge "Revert "[MIPS] Do not use compact branches until GDB supports them"" 2015-06-17 17:05:14 +00:00
Nikola Veljkovic
dee130f598 Revert "[MIPS] Do not use compact branches until GDB supports them"
This reverts commit 3cec6eca929de5d627a8cc1fbe72c564ba5175cc.
2015-06-17 17:17:54 +02:00
Nikola Veljkovic
38f2eaa07b [MIPS] Add optimized string functions
Use same string functions for all MIPS architectures.

Change-Id: I5575b16f3f66fa3609d7dafd151b6091bfe3517f
2015-06-17 17:02:10 +02:00
Elliott Hughes
2efe8b1fde am d49850d6: Fixes for building gdbserver (and gdb) out of the box.
* commit 'd49850d6abb1b70c34be99a46e383a6a878ae19e':
  Fixes for building gdbserver (and gdb) out of the box.
2015-06-17 00:45:38 +00:00
Elliott Hughes
9f01ac812d am 81b2382d: Merge "Fixes for building gdbserver (and gdb) out of the box."
* commit '81b2382df6985d5e2495797bb4e03fa597340a37':
  Fixes for building gdbserver (and gdb) out of the box.
2015-06-17 00:20:43 +00:00
Elliott Hughes
d49850d6ab Fixes for building gdbserver (and gdb) out of the box.
Bug: http://b/21695943
Change-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36
(cherry picked from commit 895241efbba344c1590b76fcada89c48f4743cf2)
2015-06-16 16:59:49 -07:00
Elliott Hughes
81b2382df6 Merge "Fixes for building gdbserver (and gdb) out of the box." 2015-06-16 23:58:34 +00:00
Dmitriy Ivanov
ea4ef52fa4 Improve library lookup logic
Linker tries to open a library even if it can
be found by soname. This only happens if the
library was previously opened under different
target sdk version.

Bug: http://b/21876587
Bug: http://b/21153477
Bug: http://b/21171302
Bug: https://code.google.com/p/android/issues/detail?id=160921
Change-Id: I769a04b6b1368a107d43f399297be14050338bbc
2015-06-16 16:52:21 -07:00
Elliott Hughes
895241efbb Fixes for building gdbserver (and gdb) out of the box.
Bug: http://b/21695943
Change-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36
2015-06-16 16:04:35 -07:00
Dan Albert
47af493008 am b628b7db: Merge "Use new sanitizer option."
* commit 'b628b7db3952594d06c8063dc863a4dd6eaa8b89':
  Use new sanitizer option.
2015-06-16 21:45:35 +00:00
Tim Murray
16bbd8cbaf am 84827605: Merge "Add support for cortex-a53 in bionic." into mnc-dev
* commit '848276051a24266e1eacf2e508692c62d5a6176d':
  Add support for cortex-a53 in bionic.
2015-06-16 21:26:04 +00:00
Dan Albert
b628b7db39 Merge "Use new sanitizer option." 2015-06-16 21:23:50 +00:00
Dmitriy Ivanov
11fbf03fd3 am 42057469: Add version to libc.so symbols
* commit '420574690cc7096c3f894d5d88a65e8fd13de25c':
  Add version to libc.so symbols
2015-06-16 21:23:47 +00:00
Elliott Hughes
352eb5f628 am 929be688: Hide accidentally-exposed __clock_nanosleep.
* commit '929be68849b7e94caaa7ffe62b8a7b506d2cc042':
  Hide accidentally-exposed __clock_nanosleep.
2015-06-16 21:23:46 +00:00
Dan Albert
11ea08c5cb Use new sanitizer option.
Change-Id: I21b04a1f3be3b10ee557bf9e0caa5db638686364
2015-06-16 13:57:54 -07:00
Tim Murray
848276051a Merge "Add support for cortex-a53 in bionic." into mnc-dev 2015-06-16 20:47:17 +00:00
Tim Murray
c34df8b280 Add support for cortex-a53 in bionic.
allows -mcpu=cortex-a53 to be passed as part of a command line.

Change-Id: Id4203a9fd197f4c3b661bad21ac58c32819fd687
2015-06-16 13:43:19 -07:00
Tim Murray
e6d80afb58 am 9876aa27: Merge "Add support for cortex-a53 in bionic."
* commit '9876aa273da6795aa6d257de5b779a68a0c2eccf':
  Add support for cortex-a53 in bionic.
2015-06-16 19:27:36 +00:00
Tim Murray
9876aa273d Merge "Add support for cortex-a53 in bionic." 2015-06-16 19:04:14 +00:00
Dmitriy Ivanov
2e1f6107fe am 48fa28ba: Merge "Add version to libc.so symbols"
* commit '48fa28bacd7e84651d381e2428944916e45b5508':
  Add version to libc.so symbols
2015-06-16 18:27:09 +00:00
Dmitriy Ivanov
420574690c Add version to libc.so symbols
Bug: http://b/21617095
Bug: http://b/20139821
Change-Id: If3d42d2a0b4a0c49721fd9b9ecbb4f7bee5a1eff
(cherry picked from commit 665607a6b7a7a8f129c30ee73c6606f4a56cea0c)
2015-06-16 11:08:01 -07:00
Dmitriy Ivanov
48fa28bacd Merge "Add version to libc.so symbols" 2015-06-16 18:04:33 +00:00
Elliott Hughes
7e0946a623 am cd1be3b6: Merge "Hide accidentally-exposed __clock_nanosleep."
* commit 'cd1be3b69e1b47ac27ffc5d74e5276aeee688abc':
  Hide accidentally-exposed __clock_nanosleep.
2015-06-16 18:01:27 +00:00
Elliott Hughes
929be68849 Hide accidentally-exposed __clock_nanosleep.
Bug: http://b/21858067
Change-Id: Iaa83a5e17cfff796aed4f641d0d14427614d9399
(cherry picked from commit b1304935b64ffcd59cd787cc9ac83a2d14dc587b)
2015-06-16 10:44:24 -07:00
Elliott Hughes
cd1be3b69e Merge "Hide accidentally-exposed __clock_nanosleep." 2015-06-16 17:43:36 +00:00
Dmitriy Ivanov
665607a6b7 Add version to libc.so symbols
Bug: http://b/21617095
Bug: http://b/20139821
Change-Id: If3d42d2a0b4a0c49721fd9b9ecbb4f7bee5a1eff
2015-06-16 10:32:07 -07:00
Tim Murray
a73b2c961f Add support for cortex-a53 in bionic.
allows -mcpu=cortex-a53 to be passed as part of a command line.

Change-Id: Id4203a9fd197f4c3b661bad21ac58c32819fd687
2015-06-15 21:43:30 -07:00
Elliott Hughes
b1304935b6 Hide accidentally-exposed __clock_nanosleep.
Bug: http://b/21858067
Change-Id: Iaa83a5e17cfff796aed4f641d0d14427614d9399
2015-06-15 19:39:04 -07:00
Elliott Hughes
26501a0ae9 am f1c85411: Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.
* commit 'f1c85411a8edd71366d723bc297d49a52112cb74':
  Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.
2015-06-16 02:21:08 +00:00
Elliott Hughes
41bc5aeb93 am df11f340: Merge "Avoid name collision with user_fpsimd_state in <asm/ptrace.h>."
* commit 'df11f340cac2e7aa5ef69c3180d0f4089f46c96b':
  Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.
2015-06-16 02:14:40 +00:00
Dan Albert
cfbe6014b4 am cce405a1: Add a sys/procfs.h.
* commit 'cce405a134c338ff6b76c56aafe02ef73c93a38c':
  Add a sys/procfs.h.
2015-06-16 02:02:46 +00:00
Elliott Hughes
55a70cd113 am 7051c0f2: Fix two accidentally leaked mips64 symbols.
* commit '7051c0f2a50cb2bafee23182c3cbc9a86d361a13':
  Fix two accidentally leaked mips64 symbols.
2015-06-16 02:02:45 +00:00
Elliott Hughes
f1c85411a8 Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.
We don't want to use <asm/ptrace.h> because (a) it'll drag in a bunch of
namespace pollution and (b) the registers should be "long double" for
userspace, not the kernel's uint128s. So just use a slightly different
name for our struct (which matches the traditional names for these structs
anyway).

Bug: http://b/21695943
Bug: https://code.google.com/p/android/issues/detail?id=86712
Change-Id: I8812ca98cfe6b649dbd31f7d6aea41928ba2acbd
(cherry picked from commit 0577733c2e15a4745d5c75f59e5f56dd179a4aa7)
2015-06-15 19:02:40 -07:00
Dmitriy Ivanov
636f5ddddc Add versions to libm.so symbols
Bug: http://b/20139821
Change-Id: Ifdfcac62d59eb8f0985990aa8512046ecb87449e
2015-06-15 18:52:20 -07:00
Elliott Hughes
df11f340ca Merge "Avoid name collision with user_fpsimd_state in <asm/ptrace.h>." 2015-06-16 01:50:25 +00:00
Elliott Hughes
2309b36b8f am 27f5c37b: Merge "Fix two accidentally leaked mips64 symbols."
* commit '27f5c37b12042dea3d9521b7b0287820c1e669f0':
  Fix two accidentally leaked mips64 symbols.
2015-06-16 01:50:12 +00:00
Elliott Hughes
a7ba695ad0 am 333bdad3: Merge "Add a sys/procfs.h."
* commit '333bdad361b566df2d9d2d5968fb23e8d3983019':
  Add a sys/procfs.h.
2015-06-16 01:50:11 +00:00
Elliott Hughes
0577733c2e Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.
We don't want to use <asm/ptrace.h> because (a) it'll drag in a bunch of
namespace pollution and (b) the registers should be "long double" for
userspace, not the kernel's uint128s. So just use a slightly different
name for our struct (which matches the traditional names for these structs
anyway).

Bug: http://b/21695943
Bug: https://code.google.com/p/android/issues/detail?id=86712
Change-Id: I8812ca98cfe6b649dbd31f7d6aea41928ba2acbd
2015-06-15 18:47:39 -07:00
Dan Albert
cce405a134 Add a sys/procfs.h.
Needed for building gdbserver out of the box.

Bug: http://b/21695943
Bug: https://code.google.com/p/android/issues/detail?id=86712
Change-Id: Ieadda2b595f08bfddfa61fcd68006b8e7c1a438d
(cherry picked from commit bf18c61798d1ae9197ae087ed85e94eef55e8678)
2015-06-15 18:39:02 -07:00
Elliott Hughes
7051c0f2a5 Fix two accidentally leaked mips64 symbols.
Bug: http://b/21857154
Change-Id: Ie1fb63f54c6c527b8c1172e8f6ce48f23fca9b41
(cherry picked from commit 469b418784a01c759a2ddd889437d6e6c18b256e)
2015-06-15 18:36:48 -07:00
Elliott Hughes
27f5c37b12 Merge "Fix two accidentally leaked mips64 symbols." 2015-06-16 01:36:29 +00:00
Elliott Hughes
333bdad361 Merge "Add a sys/procfs.h." 2015-06-16 01:28:48 +00:00
Elliott Hughes
469b418784 Fix two accidentally leaked mips64 symbols.
Bug: http://b/21857154
Change-Id: Ie1fb63f54c6c527b8c1172e8f6ce48f23fca9b41
2015-06-15 17:49:54 -07:00
Dan Albert
bf18c61798 Add a sys/procfs.h.
Needed for building gdbserver out of the box.

Bug: http://b/21695943
Bug: https://code.google.com/p/android/issues/detail?id=86712
Change-Id: Ieadda2b595f08bfddfa61fcd68006b8e7c1a438d
2015-06-15 14:33:54 -07:00
Sharvil Nanavati
f5aba62718 am fdcaeac1: am 00cef820: am 64e9e71c: Define nonportable pthread mutex macros with the _NP suffix.
* commit 'fdcaeac1a91c3e0a1a13498b7d1d8b223e700a86':
  Define nonportable pthread mutex macros with the _NP suffix.
2015-06-15 16:13:36 +00:00
Sharvil Nanavati
fdcaeac1a9 am 00cef820: am 64e9e71c: Define nonportable pthread mutex macros with the _NP suffix.
* commit '00cef82013c0826bb43c11651d25de8b99335618':
  Define nonportable pthread mutex macros with the _NP suffix.
2015-06-15 15:48:00 +00:00
Dmitriy Ivanov
ec7f603cc2 am 713ae464: Merge "Make path to apk compliant with jar url format"
* commit '713ae464abb942dafcafd738d9e00fcc8c3bb601':
  Make path to apk compliant with jar url format
2015-06-13 02:25:50 +00:00
Dmitriy Ivanov
713ae464ab Merge "Make path to apk compliant with jar url format" 2015-06-13 00:44:07 +00:00
Dmitriy Ivanov
3e6f780754 Remove text-relocs support for apps targeting M+
Remove support of text-relocations for apps targeting sdk version > 22

Bug: http://b/20013628
Change-Id: I2127739544480c747315e32df15dfbd1b79de4f5
2015-06-12 15:09:54 -07:00
Sharvil Nanavati
00cef82013 am 64e9e71c: Define nonportable pthread mutex macros with the _NP suffix.
* commit '64e9e71cdb7d88397e510e1986d494b797ed3b45':
  Define nonportable pthread mutex macros with the _NP suffix.
2015-06-12 20:13:46 +00:00
Sharvil Nanavati
64e9e71cdb Define nonportable pthread mutex macros with the _NP suffix.
Change-Id: I1066352e5b2607f64daf6aeb0030d0bbe88ead8d
2015-06-12 10:56:17 -07:00
Dmitriy Ivanov
65126c93a2 am ae1e7545: Merge "Make path to apk compliant with jar url format" into mnc-dev
* commit 'ae1e75458ad281f121116c8c5dfe9d8086e43a2b':
  Make path to apk compliant with jar url format
2015-06-11 22:43:14 +00:00
Dmitriy Ivanov
ae1e75458a Merge "Make path to apk compliant with jar url format" into mnc-dev 2015-06-11 21:55:09 +00:00
Dmitriy Ivanov
402a75060d Make path to apk compliant with jar url format
Bug: http://b/21726698
Bug: http://b/8076853
Change-Id: I8c1942a98fe3119746b4dc9f60a7ff215ea7009c
(cherry picked from commit 524f1f1efe0cb32714c61e26f21701ac952b9e42)
2015-06-11 11:01:23 -07:00
Elliott Hughes
05923bacbc am 9ef26a3c: Merge "Always build libm with clang."
* commit '9ef26a3c4cd2e6d469f771815a07cb820800beb6':
  Always build libm with clang.
2015-06-11 17:20:22 +00:00
Elliott Hughes
9ef26a3c4c Merge "Always build libm with clang." 2015-06-11 16:58:23 +00:00
Dmitriy Ivanov
9edb1a2b31 am 38263dd9: Fix l_addr for the linker
* commit '38263dd91a4b68e2ad0afe458c9a20cb360dafeb':
  Fix l_addr for the linker
2015-06-11 12:52:30 +00:00
Elliott Hughes
173ad0a53e Always build libm with clang.
Change-Id: I00df3b83dfa76a7e12f097fb622ceaec3e2bb5a4
2015-06-10 22:55:09 -07:00
Dmitriy Ivanov
571b01186a am b90e9b71: Merge "Fix l_addr for the linker"
* commit 'b90e9b71835957a5f816b9a6da1c23c3b6db4802':
  Fix l_addr for the linker
2015-06-11 03:24:41 +00:00
Dmitriy Ivanov
38263dd91a Fix l_addr for the linker
Bug: http://b/21765603
Change-Id: I97710ef2436eac2160e29ba3e4521f6e63a1907c
(cherry picked from commit 175dae92d78cc6338125a49ea8dbabbd2f22ddf0)
2015-06-10 20:05:48 -07:00
Dmitriy Ivanov
b90e9b7183 Merge "Fix l_addr for the linker" 2015-06-11 03:05:10 +00:00
Elliott Hughes
351a876407 am 25ac753f: Add process_vm_readv and process_vm_writev.
* commit '25ac753f474492ffa3625ca6b5aae254bb205c33':
  Add process_vm_readv and process_vm_writev.
2015-06-11 02:54:21 +00:00
Elliott Hughes
9165c8579f resolved conflicts for merge of eeb1d33a to mnc-dev-plus-aosp
Change-Id: I5ef79ff7851172189b959bad7d5f8b1431c38b39
2015-06-10 19:49:40 -07:00
Dmitriy Ivanov
175dae92d7 Fix l_addr for the linker
Bug: http://b/21765603
Change-Id: I97710ef2436eac2160e29ba3e4521f6e63a1907c
2015-06-10 19:47:26 -07:00
Elliott Hughes
1a587162a8 am c910de9d: Merge "Add process_vm_readv and process_vm_writev."
* commit 'c910de9d5e6ff5c00356883fb567227ab04e0389':
  Add process_vm_readv and process_vm_writev.
2015-06-11 02:31:54 +00:00
Dmitriy Ivanov
248bb62680 am db68b460: Merge "Fix application_sdk_versions_smoke test"
* commit 'db68b4600d84a213b4714525332f359f3f01c686':
  Fix application_sdk_versions_smoke test
2015-06-11 02:31:43 +00:00
Evgenii Stepanov
98c99d111b am 72af1235: Merge "Support DT_RUNPATH in the linker."
* commit '72af1235e49fa797987dd719e398f53995a50ec4':
  Support DT_RUNPATH in the linker.
2015-06-11 02:31:42 +00:00
Dmitriy Ivanov
e1f3c8b63a am 79b3877a: Fix application_sdk_versions_smoke test
* commit '79b3877a137510946ddd39ab71c0badf1a769c11':
  Fix application_sdk_versions_smoke test
2015-06-11 02:08:30 +00:00
Dmitriy Ivanov
fdf9f04906 am 07f4f5f9: Check if strtab exists before using it
* commit '07f4f5f9edc33d22c41f51224f8be0c0a51e5b6b':
  Check if strtab exists before using it
2015-06-11 02:08:29 +00:00
Elliott Hughes
25ac753f47 Add process_vm_readv and process_vm_writev.
Bug: http://b/21761353
Change-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498
(cherry picked from commit be57a40d2973739c4fb0aa1cfb0014f34aeec2bd)
2015-06-10 18:55:06 -07:00
Elliott Hughes
c910de9d5e Merge "Add process_vm_readv and process_vm_writev." 2015-06-11 01:31:17 +00:00
Elliott Hughes
eeb1d33a31 Merge "Statically linked executables should honor AT_SECURE." into mnc-dev 2015-06-11 00:55:40 +00:00
Elliott Hughes
be57a40d29 Add process_vm_readv and process_vm_writev.
Bug: http://b/21761353
Change-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498
2015-06-10 17:24:20 -07:00
Dmitriy Ivanov
db68b4600d Merge "Fix application_sdk_versions_smoke test" 2015-06-11 00:03:46 +00:00
Dmitriy Ivanov
bd3b961186 Fix application_sdk_versions_smoke test
Bug: http://b/21364029
Change-Id: I9716d6b0ea7fae6483629a290dbe695b68526588
(cherry picked from commit 79b3877a137510946ddd39ab71c0badf1a769c11)
2015-06-10 17:03:12 -07:00
Evgenii Stepanov
72af1235e4 Merge "Support DT_RUNPATH in the linker." 2015-06-10 23:56:03 +00:00
Dmitriy Ivanov
79b3877a13 Fix application_sdk_versions_smoke test
Bug: http://b/21364029
Change-Id: I9716d6b0ea7fae6483629a290dbe695b68526588
2015-06-10 16:55:50 -07:00
Evgenii Stepanov
6865082ca6 Support DT_RUNPATH in the linker.
Only $ORIGIN substitution is supported, but not linux-specific $LIB
or $PLATFORM.

Change-Id: I5814a016c7c91afba080230a547a863686e7c2b9
2015-06-10 16:44:22 -07:00
Elliott Hughes
46019789bb am ba1d40a3: Merge "Statically linked executables should honor AT_SECURE."
* commit 'ba1d40a3f16525e70e4b68c5a82e7cc9f8a4b76a':
  Statically linked executables should honor AT_SECURE.
2015-06-10 23:12:08 +00:00
Elliott Hughes
66c3b2db2f Statically linked executables should honor AT_SECURE.
Bug: http://b/19647373
Change-Id: I10e7682d9cec26a523f1a3597ca5326c3ca42ebe
(cherry picked from commit 1801db3d3fe17df543e721b9fb355e5c882dc6cc)
2015-06-10 16:10:18 -07:00
Dmitriy Ivanov
be98337273 am f3463db7: Merge "Check if strtab exists before using it"
* commit 'f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3':
  Check if strtab exists before using it
2015-06-10 22:53:07 +00:00
Elliott Hughes
ba1d40a3f1 Merge "Statically linked executables should honor AT_SECURE." 2015-06-10 22:49:57 +00:00
Dmitriy Ivanov
f3463db7eb Merge "Check if strtab exists before using it" 2015-06-10 22:26:07 +00:00
Dmitriy Ivanov
07f4f5f9ed Check if strtab exists before using it
Bug: http://b/21696087
Change-Id: I1e22d5fd6fe2faead332249493123c9a085081e9
(cherry picked from commit 624b8f17a1ce9b968f11e73231733442a07ac001)
2015-06-10 15:25:48 -07:00
Christopher Ferris
8cba773269 am 6a494915: Merge "Allow NULL in pthread_mutex_lock/unlock."
* commit '6a494915d795d4f1c4d27aab3da0b65e7e4c0b18':
  Allow NULL in pthread_mutex_lock/unlock.
2015-06-10 20:36:49 +00:00
Christopher Ferris
3c716b1b80 am 511cfd9d: Allow NULL in pthread_mutex_lock/unlock.
* commit '511cfd9dc8cb41bca4920687c7d816ee916ee8e5':
  Allow NULL in pthread_mutex_lock/unlock.
2015-06-10 18:15:04 +00:00
Christopher Ferris
6a494915d7 Merge "Allow NULL in pthread_mutex_lock/unlock." 2015-06-10 17:53:46 +00:00
Christopher Ferris
60907c7f4e Allow NULL in pthread_mutex_lock/unlock.
The pthread_mutex_lock and pthread_mutex_unlock were allowed to
fail silently on L 32 bit devices when passed a NULL. We changed
this to a crash on 32 bit devices, but there are still games that make
these calls and are not likely to be updated. Therefore, once again
allow NULL to be passed in on 32 bit devices.

Bug: 19995172
(cherry picked from commit 511cfd9dc8cb41bca4920687c7d816ee916ee8e5)

Change-Id: I159a99a941cff94297ef3fffda7075f8ef1ae252
2015-06-10 10:50:43 -07:00
Elliott Hughes
1801db3d3f Statically linked executables should honor AT_SECURE.
Bug: http://b/19647373
Change-Id: I10e7682d9cec26a523f1a3597ca5326c3ca42ebe
2015-06-09 20:10:25 -07:00
Christopher Ferris
511cfd9dc8 Allow NULL in pthread_mutex_lock/unlock.
The pthread_mutex_lock and pthread_mutex_unlock were allowed to
fail silently on L 32 bit devices when passed a NULL. We changed
this to a crash on 32 bit devices, but there are still games that make
these calls and are not likely to be updated. Therefore, once again
allow NULL to be passed in on 32 bit devices.

Bug: 19995172
Change-Id: If7e8860075ecd63c0064d80f64e226fad7bd3c26
2015-06-09 18:46:15 -07:00
Dmitriy Ivanov
787d4388e3 am 1cfbd94a: Merge "Add flag that makes linker honor min(p_vaddr)"
* commit '1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5':
  Add flag that makes linker honor min(p_vaddr)
2015-06-09 21:26:04 +00:00
Dmitriy Ivanov
1cfbd94a2f Merge "Add flag that makes linker honor min(p_vaddr)" 2015-06-09 21:02:28 +00:00
Dmitriy Ivanov
524f1f1efe Make path to apk compliant with jar url format
Bug: http://b/21726698
Bug: http://b/8076853
Change-Id: I8c1942a98fe3119746b4dc9f60a7ff215ea7009c
2015-06-09 13:47:46 -07:00
Dmitriy Ivanov
8a11628355 Add flag that makes linker honor min(p_vaddr)
Bug: http://b/21523078
Change-Id: Ice72766fb6ad3bd333c32b496e7870121e17a763
2015-06-09 13:44:31 -07:00
Ying Wang
a950c9ef00 am 866d6fb0: Merge "Fix Mac checkbuild."
* commit '866d6fb09085d5b74670b5c6137fcfe130b6c2ca':
  Fix Mac checkbuild.
2015-06-08 20:08:11 +00:00
Ying Wang
98af7902ee am 26e663d4: (-s ours) Fix Mac checkbuild.
* commit '26e663d4796e74fc40a62b3d2a438b726bbb056e':
  Fix Mac checkbuild.
2015-06-08 19:53:02 +00:00
Ying Wang
866d6fb090 Merge "Fix Mac checkbuild." 2015-06-08 19:26:55 +00:00
Ying Wang
4900f1c4cd Fix Mac checkbuild.
Bug: 21669400
Change-Id: I54691661605a2e2c1871781964aed343840b8560

(cherry-pick from commit 33c2d441b8f816722bed984c6e12b82b888c3ca2)
2015-06-08 12:23:48 -07:00
Ying Wang
26e663d479 Fix Mac checkbuild.
Bug: 21669400
Change-Id: I54691661605a2e2c1871781964aed343840b8560
(cherry-pick from commit 33c2d441b8f816722bed984c6e12b82b888c3ca2)
2015-06-08 12:20:16 -07:00
Nick Kralevich
59e553c7e0 am 12fb28bb: Merge "Add O_PATH support for flistxattr()"
* commit '12fb28bbd85cea72bd951d8263b05e54415780e7':
  Add O_PATH support for flistxattr()
2015-06-08 18:02:31 +00:00
Dmitriy Ivanov
624b8f17a1 Check if strtab exists before using it
Bug: http://b/21696087
Change-Id: I1e22d5fd6fe2faead332249493123c9a085081e9
2015-06-08 10:41:33 -07:00
Nick Kralevich
12fb28bbd8 Merge "Add O_PATH support for flistxattr()" 2015-06-08 17:39:01 +00:00
Christopher Ferris
7a9cfcce43 am e49af9bc: Export two dlmalloc functions everywhere.
* commit 'e49af9bca5706ecbc9c4f3cf15be990294106952':
  Export two dlmalloc functions everywhere.
2015-06-06 21:47:45 +00:00
Christopher Ferris
c9ef605751 am 7a799f2b: Fix a few libc makefile mishaps.
* commit '7a799f2b02ee453a46ee368cd8c41477e0567852':
  Fix a few libc makefile mishaps.
2015-06-06 21:47:44 +00:00
Christopher Ferris
84128f2523 am d9dc13d4: Merge "Export two dlmalloc functions everywhere."
* commit 'd9dc13d4172516342ceebf1b16624ed9fdf3fca2':
  Export two dlmalloc functions everywhere.
2015-06-06 21:05:55 +00:00
Christopher Ferris
e49af9bca5 Export two dlmalloc functions everywhere.
The functions dlmalloc_inspect_all and dlmalloc_trim get
exported on devices that use dlmalloc, so be consistent and
export them everywhere.

Bug: 21640784
(cherry picked from commit f9554a17765fd91d97d1f74913a626f01e880cee)

Change-Id: I1000221423c16c356bb6301e55f726db01c3f209
2015-06-06 13:25:56 -07:00
Christopher Ferris
7a799f2b02 Fix a few libc makefile mishaps.
These are the problems fixed in this CL:

- The ndk_cruft.cpp file was not compiled for 64 bit.
- Some files where not compiled for libc_bionic.a due to a missing
  patch-up-arch-specific-flags call.
- The libc_bionic_ndk.a patch up call was using bionic src, not
  the bionic_ndk_src_files.
- Move mmap.cpp to the ndk src list where it was before because of
  the above errors.

Bug: 21640784
(cherry picked from commit 19fee2ca8beb4fae5b5c142de19757410171dc93)

Change-Id: Ib9a9cfd72720586d3400b11cd7189f021e9a06c6
2015-06-06 13:25:32 -07:00
Christopher Ferris
d9dc13d417 Merge "Export two dlmalloc functions everywhere." 2015-06-06 20:17:27 +00:00
Nick Kralevich
e1d0810cd7 Add O_PATH support for flistxattr()
A continuation of commit 2825f10b7f61558c264231a536cf3affc0d84204.

Add O_PATH compatibility support for flistxattr(). This allows
a process to list out all the extended attributes associated with
O_PATH file descriptors.

Change-Id: Ie2285ac7ad2e4eac427ddba6c2d182d41b130f75
2015-06-06 11:25:41 -07:00
Christopher Ferris
a3ae51aa89 am 966f84b1: Merge "Fix a few libc makefile mishaps."
* commit '966f84b11dca7caf53c67664d811b99567cab7ee':
  Fix a few libc makefile mishaps.
2015-06-06 00:35:17 +00:00
Christopher Ferris
f9554a1776 Export two dlmalloc functions everywhere.
The functions dlmalloc_inspect_all and dlmalloc_trim get
exported on devices that use dlmalloc, so be consistent and
export them everywhere.

Bug: 21640784
Change-Id: I5b8796cd03c8f401d37d9c22823144f766f9c4c7
2015-06-05 17:12:17 -07:00
Christopher Ferris
966f84b11d Merge "Fix a few libc makefile mishaps." 2015-06-06 00:07:58 +00:00
Yabin Cui
eb641b0d4a am e997e915: am 61b040a5: resolved conflicts for merge of ea248d9c to lmp-mr1-ub-dev
* commit 'e997e9155e72f1b0b40d832ac91fd39951acc1b9':
  Make sys_resource test more robust.
2015-06-05 02:43:18 +00:00
Christopher Ferris
19fee2ca8b Fix a few libc makefile mishaps.
These are the problems fixed in this CL:

- The ndk_cruft.cpp file was not compiled for 64 bit.
- Some files where not compiled for libc_bionic.a due to a missing
  patch-up-arch-specific-flags call.
- The libc_bionic_ndk.a patch up call was using bionic src, not
  the bionic_ndk_src_files.
- Move mmap.cpp to the ndk src list where it was before because of
  the above errors.

Bug: 21640784
Change-Id: I31e97bc8bf347c8e584cc17aa4b984a7d122b298
2015-06-04 19:40:50 -07:00
Yabin Cui
e997e9155e am 61b040a5: resolved conflicts for merge of ea248d9c to lmp-mr1-ub-dev
* commit '61b040a57094093cfb090ebb1c321d4a69c20b64':
  Make sys_resource test more robust.
2015-06-05 02:18:45 +00:00
Dmitriy Ivanov
1385421573 am c534603f: Hide __atexit
* commit 'c534603f8d2a03e0ace678adc83d6194a7afdbe9':
  Hide __atexit
2015-06-04 23:07:59 +00:00
Dmitriy Ivanov
ffcd909534 am 12ca831b: Merge "Hide __atexit"
* commit '12ca831b0e03e85a2f5588bdf834dc6046d1ac6c':
  Hide __atexit
2015-06-04 22:14:01 +00:00
Dmitriy Ivanov
c534603f8d Hide __atexit
Bug: http://b/21640806
Change-Id: I778b35c8c7538859179e97fcf5a82db2fcd9e50f
(cherry picked from commit 9cf6fc304bbbfb26911e0b624b80d862c40b0308)
2015-06-04 14:51:26 -07:00
Dmitriy Ivanov
12ca831b0e Merge "Hide __atexit" 2015-06-04 21:50:05 +00:00
Dmitriy Ivanov
9cf6fc304b Hide __atexit
Bug: http://b/21640806
Change-Id: I778b35c8c7538859179e97fcf5a82db2fcd9e50f
2015-06-04 14:33:18 -07:00
Christopher Ferris
16c64d4aa1 am b68b8b4b: Merge "Reorder DIR structure due to bad apps."
* commit 'b68b8b4b95d3e373a8975c0b650cde4d348ff118':
  Reorder DIR structure due to bad apps.
2015-06-04 21:30:25 +00:00
Christopher Ferris
699df5ca48 am f2e86cd9: Merge "Reorder DIR structure due to bad apps." into mnc-dev
* commit 'f2e86cd98038d6239265d936c32774b7289bfdc7':
  Reorder DIR structure due to bad apps.
2015-06-04 21:22:41 +00:00
Christopher Ferris
b68b8b4b95 Merge "Reorder DIR structure due to bad apps." 2015-06-04 21:06:23 +00:00
Christopher Ferris
c062218a9b Reorder DIR structure due to bad apps.
It turns out that apportable apps expect that the DIR structure is
the same as in L and below. Modify the structure to have the same
order, and move the new variable to the end of the structure.

Bug: 21037208
(cherry picked from commit 5edb0f40f654c804d38f1bff43f91719e189c892)

Change-Id: I0c1ab5e295ec8bef638daa4cfea5830aeea602e6
2015-06-04 14:04:16 -07:00
Christopher Ferris
f2e86cd980 Merge "Reorder DIR structure due to bad apps." into mnc-dev 2015-06-04 20:57:57 +00:00
Christopher Ferris
5edb0f40f6 Reorder DIR structure due to bad apps.
It turns out that apportable apps expect that the DIR structure is
the same as in L and below. Modify the structure to have the same
order, and move the new variable to the end of the structure.

Bug: 21037208
Change-Id: Id1258e9dc19423109a2c3a8086d3022965591166
2015-06-04 13:30:45 -07:00
Dmitriy Ivanov
c677d69258 am 34de7f84: Strip version info when extracting symbols
* commit '34de7f849799ea47534d617595ab566690a16f2f':
  Strip version info when extracting symbols
2015-06-04 19:22:21 +00:00
Dmitriy Ivanov
2706592b24 am 5cce2e72: Merge "Strip version info when extracting symbols"
* commit '5cce2e7205c92e6c4199dc5f4155e003f0a5b832':
  Strip version info when extracting symbols
2015-06-04 19:00:32 +00:00
Dmitriy Ivanov
34de7f8497 Strip version info when extracting symbols
Bug: http://b/20139821
Change-Id: I1c1ed1b97a75936407e996698b98b94a7175ac30
(cherry picked from commit 6cda0742895e46aa4ad0e4e8d5637d166f9f46f2)
2015-06-04 11:15:13 -07:00
Dmitriy Ivanov
5cce2e7205 Merge "Strip version info when extracting symbols" 2015-06-04 18:06:03 +00:00
Dmitriy Ivanov
6cda074289 Strip version info when extracting symbols
Bug: http://b/20139821
Change-Id: I1c1ed1b97a75936407e996698b98b94a7175ac30
2015-06-04 17:56:02 +00:00
Dmitriy Ivanov
9fbb73352d am 0c29aaba: Merge "Backward compatibility for dlsym(RTLD_DEFAULT, ...)" into mnc-dev
* commit '0c29aabad25832ec249288c8da3cf080c898ba74':
  Backward compatibility for dlsym(RTLD_DEFAULT, ...)
2015-06-03 02:22:59 +00:00
Dmitriy Ivanov
61e327fdf5 am 3931b6d9: Merge "Backward compatibility for dlsym(RTLD_DEFAULT, ...)"
* commit '3931b6d9b37a47e0921e329ff5846b7fd21cdd7b':
  Backward compatibility for dlsym(RTLD_DEFAULT, ...)
2015-06-03 01:31:48 +00:00
Dmitriy Ivanov
3931b6d9b3 Merge "Backward compatibility for dlsym(RTLD_DEFAULT, ...)" 2015-06-03 01:11:12 +00:00
Dmitriy Ivanov
0c29aabad2 Merge "Backward compatibility for dlsym(RTLD_DEFAULT, ...)" into mnc-dev 2015-06-03 01:09:34 +00:00
Dmitriy Ivanov
1913352c6b Backward compatibility for dlsym(RTLD_DEFAULT, ...)
Do not skip RTLD_LOCAL libraries in dlsym(RTLD_DEFAULT, ...)
 if the library is opened by application with target api level <= 22

Bug: http://b/21565766
Bug: http://b/17512583
Change-Id: Ic45ed1e4f53e84cba9d74cab6b0049c0c7aa8423
(cherry picked from commit 04f7e3e955ba7de5f449c995e667659319dc1cce)
2015-06-02 18:09:23 -07:00
Dmitriy Ivanov
04f7e3e955 Backward compatibility for dlsym(RTLD_DEFAULT, ...)
Do not skip RTLD_LOCAL libraries in dlsym(RTLD_DEFAULT, ...)
 if the library is opened by application with target api level <= 22

Bug: http://b/21565766
Bug: http://b/17512583
Change-Id: Ic45ed1e4f53e84cba9d74cab6b0049c0c7aa8423
2015-06-02 18:06:24 -07:00
Yabin Cui
61b040a570 resolved conflicts for merge of ea248d9c to lmp-mr1-ub-dev
Change-Id: I362ab2e25e3368c71cb1af51cee2e8fb5ce53e61
2015-06-02 16:47:42 -07:00
Nick Kralevich
e587e0c92a am f56bad97: Merge "libc: Add O_PATH support for fgetxattr / fsetxattr" into mnc-dev
* commit 'f56bad974bced86671030b13d99f8ec2f497521e':
  libc: Add O_PATH support for fgetxattr / fsetxattr
2015-06-02 22:21:20 +00:00
Yabin Cui
ea248d9ca8 Merge "Make sys_resource test more robust." into lollipop-cts-dev
automerge: 492a0bf

* commit '492a0bf212973baa1c33d584d57e75395774447f':
  Make sys_resource test more robust.
2015-06-02 22:03:23 +00:00
Nick Kralevich
f56bad974b Merge "libc: Add O_PATH support for fgetxattr / fsetxattr" into mnc-dev 2015-06-02 22:02:43 +00:00
Dmitriy Ivanov
27b002baef am 11b15b23: Merge "Work around for libraries without dt_soname"
* commit '11b15b23aa6044b1fa2ce89744643a0cc072b348':
  Work around for libraries without dt_soname
2015-06-02 21:30:54 +00:00
Dmitriy Ivanov
719278b5e4 am 38c37d67: Work around for libraries without dt_soname
* commit '38c37d6705f420ecac4146c11d79bee6e0ca8a03':
  Work around for libraries without dt_soname
2015-06-02 21:30:11 +00:00
Dmitriy Ivanov
11b15b23aa Merge "Work around for libraries without dt_soname" 2015-06-02 21:09:41 +00:00
Dmitriy Ivanov
75108f4f83 Work around for libraries without dt_soname
Applies only for apps targeting sdk version <= 22

Bug: http://b/21565766
Change-Id: If0bf2229dc1341e9ca09f9a05d0890515273d5a2
(cherry picked from commit 38c37d6705f420ecac4146c11d79bee6e0ca8a03)
2015-06-02 14:02:22 -07:00
Dmitriy Ivanov
38c37d6705 Work around for libraries without dt_soname
Applies only for apps targeting sdk version <= 22

Bug: http://b/21565766
Change-Id: If0bf2229dc1341e9ca09f9a05d0890515273d5a2
2015-06-02 13:45:15 -07:00
Nick Kralevich
c92f9f8069 libc: Add O_PATH support for fgetxattr / fsetxattr
Support O_PATH file descriptors when handling fgetxattr and fsetxattr.
This avoids requiring file read access to pull extended attributes.

This is needed to support O_PATH file descriptors when calling
SELinux's fgetfilecon() call. In particular, this allows the querying
and setting of SELinux file context by using something like the following
code:

  int dirfd = open("/path/to/dir", O_DIRECTORY);
  int fd = openat(dirfd, "file", O_PATH | O_NOFOLLOW);
  char *context;
  fgetfilecon(fd, &context);

This change was motivated by a comment in
https://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c

(cherrypicked from commit 2825f10b7f61558c264231a536cf3affc0d84204)

Change-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf
2015-06-02 10:08:05 -07:00
Dmitriy Ivanov
8d67a598c5 am c4ebe60e: Fix dlsym(handle_of_main_executable, ...)
* commit 'c4ebe60e1a2fc165ff11442765325628e27f2a05':
  Fix dlsym(handle_of_main_executable, ...)
2015-06-02 14:22:58 +00:00
Dmitriy Ivanov
4af36c8d99 am ef55f967: Merge "Fix dlsym(handle_of_main_executable, ...)"
* commit 'ef55f967234f160a4e00a51ca53377fadd17715d':
  Fix dlsym(handle_of_main_executable, ...)
2015-06-02 00:11:05 +00:00
Dmitriy Ivanov
c4ebe60e1a Fix dlsym(handle_of_main_executable, ...)
According to man dlopen(3) and posix docs in the case when si is handle
  of the main executable we need to search not only in the executable and its
  dependencies but also in all libraries loaded with RTLD_GLOBAL.

  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html

Bug: http://b/21528224
Bug: http://b/17512583
Bug: https://code.google.com/p/android/issues/detail?id=173822
Change-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013
(cherry picked from commit f439b5a3186ca0fef1092f45770abc716da9d87a)
2015-06-01 16:57:33 -07:00
Dmitriy Ivanov
ef55f96723 Merge "Fix dlsym(handle_of_main_executable, ...)" 2015-06-01 23:51:24 +00:00
Nick Kralevich
1c9347866f am e7deb145: Merge "libc: Add O_PATH support for fgetxattr / fsetxattr"
* commit 'e7deb145c66cc3434bf0f499de20b2c9d66cb2db':
  libc: Add O_PATH support for fgetxattr / fsetxattr
2015-06-01 23:42:37 +00:00
Dan Albert
0c4314b658 am c5e02eeb: Cleanup ftruncate negative test.
* commit 'c5e02eeb353c3cdd357413f563701d5018fc76a5':
  Cleanup ftruncate negative test.
2015-06-01 23:21:38 +00:00
Dan Albert
654c28e0a3 am 5f3e19db: (-s ours) Fix error handling for negative size in ftruncate.
* commit '5f3e19dbbeb851fff5cf7f9869d344feca479413':
  Fix error handling for negative size in ftruncate.
2015-06-01 23:21:37 +00:00
Nick Kralevich
e7deb145c6 Merge "libc: Add O_PATH support for fgetxattr / fsetxattr" 2015-06-01 23:16:14 +00:00
Nick Kralevich
2825f10b7f libc: Add O_PATH support for fgetxattr / fsetxattr
Support O_PATH file descriptors when handling fgetxattr and fsetxattr.
This avoids requiring file read access to pull extended attributes.

This is needed to support O_PATH file descriptors when calling
SELinux's fgetfilecon() call. In particular, this allows the querying
and setting of SELinux file context by using something like the following
code:

  int dirfd = open("/path/to/dir", O_DIRECTORY);
  int fd = openat(dirfd, "file", O_PATH | O_NOFOLLOW);
  char *context;
  fgetfilecon(fd, &context);

This change was motivated by a comment in
https://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c

Change-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf
2015-06-01 15:51:56 -07:00
Dmitriy Ivanov
f439b5a318 Fix dlsym(handle_of_main_executable, ...)
According to man dlopen(3) and posix docs in the case when si is handle
  of the main executable we need to search not only in the executable and its
  dependencies but also in all libraries loaded with RTLD_GLOBAL.

  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html

Bug: http://b/21528224
Bug: http://b/17512583
Bug: https://code.google.com/p/android/issues/detail?id=173822
Change-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013
2015-06-01 14:33:43 -07:00
Dan Albert
944d901cfd am ef607cda: Merge "Cleanup ftruncate negative test."
* commit 'ef607cdae24363c5e6b6fc72607a4cff78623851':
  Cleanup ftruncate negative test.
2015-06-01 20:45:10 +00:00
Dan Albert
c5e02eeb35 Cleanup ftruncate negative test.
Addresses post-submit comments from
I54692ab8105dd09db6af7a2c0894a17bdd118aa0.

Bug: http://b/21309901
Change-Id: Ie19ee8cdcc4055a65fe7dfc103156e54eafe8977
(cherry picked from commit 9d476a02e9a14e847669a6683c585028175aa322)
2015-06-01 13:24:36 -07:00
Dan Albert
ef607cdae2 Merge "Cleanup ftruncate negative test." 2015-06-01 20:24:15 +00:00
Dan Albert
9d476a02e9 Cleanup ftruncate negative test.
Addresses post-submit comments from
I54692ab8105dd09db6af7a2c0894a17bdd118aa0.

Bug: http://b/21309901
Change-Id: Ie19ee8cdcc4055a65fe7dfc103156e54eafe8977
2015-06-01 13:22:57 -07:00
Dan Albert
5f3e19dbbe Fix error handling for negative size in ftruncate.
Bug: 21309901
Change-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0
(cherry picked from commit c05554ec5c9aff5e0f1e83de9bb62c3569eecca2)
2015-06-01 11:28:13 -07:00
Elliott Hughes
a673ad06c8 am d7089168: Merge "[MIPS] Do not use compact branches until GDB supports them"
* commit 'd70891687d742414d457e41a998726e5eb0a09bd':
  [MIPS] Do not use compact branches until GDB supports them
2015-05-29 05:01:57 +00:00
Elliott Hughes
d70891687d Merge "[MIPS] Do not use compact branches until GDB supports them" 2015-05-29 04:39:24 +00:00
Dmitriy Ivanov
e5744bb553 am 55115510: Merge "Improve some of error/warning messages"
* commit '5511551009c5b8b7495af8278ffe914d4a8147b1':
  Improve some of error/warning messages
2015-05-29 00:04:53 +00:00
Dmitriy Ivanov
d5dd23ad09 am 6c2dba86: Merge "Work around incorrect dt_needed entries"
* commit '6c2dba8651f8cf9e406a5c7879fbaee1b0f29980':
  Work around incorrect dt_needed entries
2015-05-29 00:04:52 +00:00
Dmitriy Ivanov
9843fdd82b am ca10ac6d: Improve some of error/warning messages
* commit 'ca10ac6dd45f73752e8822fee606d83116a5721a':
  Improve some of error/warning messages
2015-05-28 23:29:27 +00:00
Dmitriy Ivanov
87298989ea am 4a7c3af0: Work around incorrect dt_needed entries
* commit '4a7c3af054fdb525c8e458434f57f20696f43e31':
  Work around incorrect dt_needed entries
2015-05-28 23:29:26 +00:00
Dmitriy Ivanov
ca10ac6dd4 Improve some of error/warning messages
Bug: http://b/20464031
Change-Id: I948141c46f9e054fc45f5934153dee56ce3cd558
(cherry picked from commit 087005f37e02b48809746947159d824493885b1e)
2015-05-28 15:28:41 -07:00
Dmitriy Ivanov
5511551009 Merge "Improve some of error/warning messages" 2015-05-28 22:28:13 +00:00
Dmitriy Ivanov
4a7c3af054 Work around incorrect dt_needed entries
This applies for apps targeting sdk<=22 and
  only for lp32 platforms.

Bug: http://b/21364029
Change-Id: I903e81c9ccda2a8beaba1d132d68c77d30a4cdb2
(cherry picked from commit d974e8804689058714dc4fe9adcb57ee9a6996a8)
2015-05-28 15:25:55 -07:00
Dmitriy Ivanov
6c2dba8651 Merge "Work around incorrect dt_needed entries" 2015-05-28 22:25:15 +00:00
Dmitriy Ivanov
d974e88046 Work around incorrect dt_needed entries
This applies for apps targeting sdk<=22 and
  only for lp32 platforms.

Bug: http://b/21364029
Change-Id: I903e81c9ccda2a8beaba1d132d68c77d30a4cdb2
2015-05-28 14:56:42 -07:00
Dmitriy Ivanov
087005f37e Improve some of error/warning messages
Bug: http://b/20464031
Change-Id: I948141c46f9e054fc45f5934153dee56ce3cd558
2015-05-28 11:44:31 -07:00
Dmitriy Ivanov
656d176157 am d8ead181: Add functions to provide target sdk version
* commit 'd8ead18145cba98fdc7256f9a0e69b8c1c90cd1c':
  Add functions to provide target sdk version
2015-05-27 23:50:05 +00:00
Dmitriy Ivanov
d8ead18145 Add functions to provide target sdk version
Bug: http://b/21364029
Change-Id: I8648d1bff6c8fd6e7cd12da7f128e048b9f2829a
(cherry picked from commit 79fd668bb4ddb22432eeda2ebd8d10359013d9a8)
2015-05-27 16:20:16 -07:00
Dmitriy Ivanov
80eded99d3 am d717b1a3: Merge "Add functions to provide target sdk version"
* commit 'd717b1a3e55db9b7625a46bec950e856cc107951':
  Add functions to provide target sdk version
2015-05-27 23:14:48 +00:00
Dmitriy Ivanov
d717b1a3e5 Merge "Add functions to provide target sdk version" 2015-05-27 22:44:28 +00:00
Dmitriy Ivanov
79fd668bb4 Add functions to provide target sdk version
Bug: http://b/21364029
Change-Id: I8648d1bff6c8fd6e7cd12da7f128e048b9f2829a
2015-05-27 14:31:36 -07:00
Simon Baldwin
6fbb7cf4a9 am 560aacee: Merge "Fix unit tests, and extend for other architectures"
* commit '560aacee84ecfd1aa8983d0ab58b81fbbe34911d':
  Fix unit tests, and extend for other architectures
2015-05-27 17:09:45 +00:00
Simon Baldwin
560aacee84 Merge "Fix unit tests, and extend for other architectures" 2015-05-27 16:42:38 +00:00
Simon Baldwin
1011e1a402 Fix unit tests, and extend for other architectures
On unpacking, reinstate any p_align values that packing reduced to
page size.  Ensures a round-trip pack and unpack is bit-equivalent
to the original input.
https://android-review.googlesource.com/#/c/148492/

Extend unit tests to include ia32, x64, and mips32.

Recreate test data for arm32 and arm64.  Generate new test data for
ia32, x64, and mips32.

Bug: http://b/20687795
Bug: http://b/18051137
Change-Id: Ifbca8e206ef447297ba4f19272b813702be27a35
2015-05-27 13:20:00 +01:00
Dmitriy Ivanov
68da29608b am fad15145: Merge "Remove LOCAL_CONLY_FLAGS it is no-op."
* commit 'fad15145f8ee28be45cf2c870d3b87f22a2f07c3':
  Remove LOCAL_CONLY_FLAGS it is no-op.
2015-05-26 21:21:30 +00:00
Dmitriy Ivanov
fad15145f8 Merge "Remove LOCAL_CONLY_FLAGS it is no-op." 2015-05-26 20:56:37 +00:00
Dmitriy Ivanov
41c99cdbb9 Remove LOCAL_CONLY_FLAGS it is no-op.
Change-Id: Ib52b85d176dc9d46d7550f01537b2635e873d6ad
2015-05-26 11:38:59 -07:00
Nikola Veljkovic
3cec6eca92 [MIPS] Do not use compact branches until GDB supports them
GDB does not yet have support for compact branches, and is not able
to set a breakpoint on rtld_db_dlactivity(), which is compiled into
one JIC instruction. Unfortunately, We cannot turn off generation of
JIC compact branch. Instead, add unoptimized FP handling code, so GDB
will have something to land on.

Change-Id: Iddcf40ec018972398179018d049b8323fcd258b7
2015-05-25 16:28:14 +02:00
Dmitriy Ivanov
bd1d447821 am 15309fde: Fix RTLD_NEXT lookup for the local_group
* commit '15309fde91b3989a1af139db422acf68e16a9258':
  Fix RTLD_NEXT lookup for the local_group
2015-05-22 22:45:39 +00:00
Dmitriy Ivanov
e0e07a9f96 am aaafbe12: Merge "Fix RTLD_NEXT lookup for the local_group"
* commit 'aaafbe128f51dff92da3cf4f5fc9b47f04f05261':
  Fix RTLD_NEXT lookup for the local_group
2015-05-22 22:36:32 +00:00
Dmitriy Ivanov
15309fde91 Fix RTLD_NEXT lookup for the local_group
Linker used to skip RTLD_NEXT within local_group when
  caller->next is nullptr (which represents load order
  but not the order within local_group dependency tree)

Bug: http://b/21380474
Change-Id: I178fc4657b19bceb871635b177c1df67855b1708
(cherry picked from commit b96ac41b32e61799c48f3fd07831cc168b95068d)
2015-05-22 15:24:13 -07:00
Dmitriy Ivanov
aaafbe128f Merge "Fix RTLD_NEXT lookup for the local_group" 2015-05-22 22:22:22 +00:00
Dmitriy Ivanov
b96ac41b32 Fix RTLD_NEXT lookup for the local_group
Linker used to skip RTLD_NEXT within local_group when
  caller->next is nullptr (which represents load order
  but not the order within local_group dependency tree)

Bug: http://b/21380474
Change-Id: I178fc4657b19bceb871635b177c1df67855b1708
2015-05-22 19:46:11 +00:00
Dan Albert
4ee60d1c4f am ffe01a3d: Merge "Fix error handling for negative size in ftruncate."
* commit 'ffe01a3de62d17cbe1cdf3b40a91d1ac9a9d36b5':
  Fix error handling for negative size in ftruncate.
2015-05-21 21:03:17 +00:00
Dan Albert
ffe01a3de6 Merge "Fix error handling for negative size in ftruncate." 2015-05-21 20:41:25 +00:00
Yabin Cui
2737227842 am 4fc106d3: Merge "Fix pthread_attr_getstack__main_thread failure on glibc."
* commit '4fc106d34b70da868d194e8a0f0a3cddd1f4c22d':
  Fix pthread_attr_getstack__main_thread failure on glibc.
2015-05-20 23:16:02 +00:00
Yabin Cui
4fc106d34b Merge "Fix pthread_attr_getstack__main_thread failure on glibc." 2015-05-20 22:52:38 +00:00
Yabin Cui
b042c78e36 am c15a9352: am fd20a8c2: resolved conflicts for merge of 473d96c0 to lmp-mr1-ub-dev
* commit 'c15a935202319a41ee0be94afcdbde1d07568ec8':
  Fix timer flaky test in lollipop-mr1-cts-dev.
2015-05-20 22:12:31 +00:00
Yabin Cui
c15a935202 am fd20a8c2: resolved conflicts for merge of 473d96c0 to lmp-mr1-ub-dev
* commit 'fd20a8c2d669b3f2d63e2d33a32b90d1b7f17b82':
  Fix timer flaky test in lollipop-mr1-cts-dev.
2015-05-20 21:48:09 +00:00
Yabin Cui
b0c6f2dba2 Fix pthread_attr_getstack__main_thread failure on glibc.
Move test of bionic specific implementation into bionic ifdef.

Bug: 19805726
Change-Id: Idf369b16e7f41f060c75b0aaf34e05cf3c161aa9
2015-05-20 14:41:15 -07:00
Dan Albert
c05554ec5c Fix error handling for negative size in ftruncate.
Bug: 21309901
Change-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0
2015-05-20 14:20:33 -07:00
Yabin Cui
fd20a8c2d6 resolved conflicts for merge of 473d96c0 to lmp-mr1-ub-dev
Change-Id: I48269218b152054d527d9257d40490b54205140f
2015-05-20 13:36:56 -07:00
Yabin Cui
369208d597 am 7490c5c5: Hide rt_sigqueueinfo.
* commit '7490c5c5944391e99bc6c3564bce03d3cd4a39e0':
  Hide rt_sigqueueinfo.
2015-05-18 21:10:25 +00:00
Yabin Cui
1e63d31e77 am c02bdc76: Merge "Hide rt_sigqueueinfo."
* commit 'c02bdc76a21f6149c7867982e66ab16982e01c1b':
  Hide rt_sigqueueinfo.
2015-05-18 20:46:23 +00:00
Yabin Cui
7490c5c594 Hide rt_sigqueueinfo.
Bug: 19358804
Change-Id: I38a53ad64c81d0eefdd1d24599e769fd8a477a56
(cherry picked from commit 40a8f214a5264efe5feaaffd55cea67fb87d097b)
2015-05-18 13:34:51 -07:00
Yabin Cui
c02bdc76a2 Merge "Hide rt_sigqueueinfo." 2015-05-18 20:29:44 +00:00
Yabin Cui
40a8f214a5 Hide rt_sigqueueinfo.
Bug: 19358804
Change-Id: I38a53ad64c81d0eefdd1d24599e769fd8a477a56
2015-05-18 11:29:20 -07:00
Yabin Cui
f18a9f9662 am 2b5c2285: Remove pthread_detach_no_leak test.
* commit '2b5c2285c0679190b90b954d5e71f7ee8698adba':
  Remove pthread_detach_no_leak test.
2015-05-18 17:56:14 +00:00
Yabin Cui
2b5c2285c0 Remove pthread_detach_no_leak test.
This test has lost its purpose as we are using mmap/munmap for pthread_internal_t. And it is a flaky test.

Bug: 21205574
Bug: 20860440
Change-Id: I7cbb6bc3fd8a2ca430415beab5ee27a856ce4ea7
(cherry picked from commit 2957cc5f1043adf0b9c0f1cdfff2d408952e40f5)
2015-05-18 10:31:20 -07:00
Dmitriy Ivanov
75b7b39e9f am 8557eeb0: Merge "Apply work around b/19059885 to x86" into mnc-dev
* commit '8557eeb0add011ff37edc86f50f423ce681eeb2b':
  Apply work around b/19059885 to x86
2015-05-16 17:19:01 +00:00
Dmitriy Ivanov
dae8ad3da0 am a42b5bcd: Merge "Apply work around b/19059885 to x86"
* commit 'a42b5bcd896daa83b479e7964c0fa8cf1abf5a1d':
  Apply work around b/19059885 to x86
2015-05-16 17:12:03 +00:00
Dmitriy Ivanov
8557eeb0ad Merge "Apply work around b/19059885 to x86" into mnc-dev 2015-05-16 16:57:16 +00:00
Dmitriy Ivanov
a42b5bcd89 Merge "Apply work around b/19059885 to x86" 2015-05-16 16:56:49 +00:00
Dmitriy Ivanov
9185e04f72 Apply work around b/19059885 to x86
Bug: http://b/19059885
Bug: http://b/21203348
Change-Id: Ic375e9f877d68de8f866d17362879a7dde638465
(cherry picked from commit 69a5fb951d69689dedd83cb033ae3dcd0ef05b65)
2015-05-15 18:42:14 -07:00
Dmitriy Ivanov
69a5fb951d Apply work around b/19059885 to x86
Bug: http://b/19059885
Bug: http://b/21203348
Change-Id: Ic375e9f877d68de8f866d17362879a7dde638465
2015-05-15 18:39:16 -07:00
Chih-Hung Hsieh
dea8937f90 am 43850d19: Use unified syntax to compile with both llvm and gcc.
* commit '43850d19f422d4850bebf765607e4f4d4b99df2e':
  Use unified syntax to compile with both llvm and gcc.
2015-05-16 00:21:18 +00:00
Chih-Hung Hsieh
11ebac5e01 resolved conflicts for merge of 22c21c6b to mnc-dev-plus-aosp
Change-Id: I8a3c79c441ec8d1002f20c9d55bffaa5efa01d14
2015-05-15 17:18:22 -07:00
Elliott Hughes
5f13fa2239 am fa7ba622: Don\'t use TEMP_FAILURE_RETRY on close in bionic.
* commit 'fa7ba6227f918dadca787a78ed3269bf86fd234d':
  Don't use TEMP_FAILURE_RETRY on close in bionic.
2015-05-15 23:40:08 +00:00
Elliott Hughes
1d8336d037 am 882283e9: Merge "Don\'t use TEMP_FAILURE_RETRY on close in bionic."
* commit '882283e9e2e64e596f1a244fa25d3586b2dea4da':
  Don't use TEMP_FAILURE_RETRY on close in bionic.
2015-05-15 23:39:38 +00:00
Chih-Hung Hsieh
43850d19f4 Use unified syntax to compile with both llvm and gcc.
All arch-arm and arch-arm64 .S files were compiled
by gcc with and without this patch. The output object files
were identical. When compiled with llvm and this patch,
the output files were also identical to gcc's output.

BUG: 18061004
Change-Id: I458914d512ddf5496e4eb3d288bf032cd526d32b
(cherry picked from commit 33f33515b503b634d9fbc57dda7123ea9cf23fc6)
2015-05-15 16:29:10 -07:00
Chih-Hung Hsieh
22c21c6b4e Fix opcode to compile with both gcc and llvm.
BUG: 17302991

Change-Id: I31febd9ad24312388068803ce247b295bd73b607
(cherry picked from commit 0a93df369cf3f44d40ca1f0cb4a58aeab42fb39c)
2015-05-15 16:28:38 -07:00
Elliott Hughes
fa7ba6227f Don't use TEMP_FAILURE_RETRY on close in bionic.
Bug: http://b/20501816
Change-Id: Id64b5109cc2b165fa0351b6edbb865a5e5058008
(cherry picked from commit 4e8ef698d0d76be3f8d75de32701e6e6327c1fbd)
2015-05-15 16:24:33 -07:00
Elliott Hughes
882283e9e2 Merge "Don't use TEMP_FAILURE_RETRY on close in bionic." 2015-05-15 23:24:12 +00:00
Elliott Hughes
4e8ef698d0 Don't use TEMP_FAILURE_RETRY on close in bionic.
Bug: http://b/20501816
Change-Id: Id64b5109cc2b165fa0351b6edbb865a5e5058008
2015-05-15 16:20:07 -07:00
Dmitriy Ivanov
ad41d7f76b am ff407803: Remove -z global workaround for target x86
* commit 'ff407803dbbee26ab19c02aaece0e75c019534c4':
  Remove -z global workaround for target x86
2015-05-15 20:10:33 +00:00
Dmitriy Ivanov
408023a498 am 1d52b8b0: Merge "Remove -z global workaround for target x86"
* commit '1d52b8b07c327a6ef4936a7b9b08ddd4ee85002e':
  Remove -z global workaround for target x86
2015-05-15 18:05:43 +00:00
Dmitriy Ivanov
ff407803db Remove -z global workaround for target x86
Change-Id: I08e75a1c7437c97e4af59316d2c14c7fa3f65e03
(cherry picked from commit 933332462d37dfa121fa691095cdce218a0139bf)
2015-05-15 10:30:47 -07:00
Dmitriy Ivanov
1d52b8b07c Merge "Remove -z global workaround for target x86" 2015-05-15 17:30:02 +00:00
John Reck
1a7a109409 am b00c23a8: Merge "Fix regression in crash reporting"
* commit 'b00c23a8dbc285673a4124797f8224f42082fd5a':
  Fix regression in crash reporting
2015-05-15 16:57:03 +00:00
John Reck
9f2ae81510 am d7ad443c: Fix regression in crash reporting
* commit 'd7ad443cfd4e1315cdf45210bc94bb68e0564b8f':
  Fix regression in crash reporting
2015-05-15 16:37:57 +00:00
John Reck
b00c23a8db Merge "Fix regression in crash reporting" 2015-05-15 16:29:42 +00:00
John Reck
e77e335b54 Fix regression in crash reporting
Bug: 19532651

Partial revert of be0e43b77676338fd5e6a82c9cc2b6302d579de2

Change-Id: I99e220328aff985facb920ebcd84ac1a016759b5
(cherry picked from commit d7ad443cfd4e1315cdf45210bc94bb68e0564b8f)
2015-05-15 09:28:10 -07:00
John Reck
d7ad443cfd Fix regression in crash reporting
Bug: 19532651

Partial revert of be0e43b77676338fd5e6a82c9cc2b6302d579de2

Change-Id: I99e220328aff985facb920ebcd84ac1a016759b5
2015-05-15 07:48:33 -07:00
Dmitriy Ivanov
933332462d Remove -z global workaround for target x86
Change-Id: I08e75a1c7437c97e4af59316d2c14c7fa3f65e03
2015-05-14 21:28:21 -07:00
Spencer Low
8c5509ee5a am 2a44cfbd: ScopedFd: Don\'t use TEMP_FAILURE_RETRY() with close()
* commit '2a44cfbd7d64596795836e9ae6f6c642869d6d78':
  ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()
2015-05-14 01:45:59 +00:00
Elliott Hughes
f12a2d6708 am 0378d8f6: Merge "ScopedFd: Don\'t use TEMP_FAILURE_RETRY() with close()"
* commit '0378d8f65126b2d94c731f2719a68773e370f615':
  ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()
2015-05-14 00:48:29 +00:00
Spencer Low
2a44cfbd7d ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()
According to the comments in Posix_close(), TEMP_FAILURE_RETRY() should
not be used with close():

462bdac45c%5E%21/#F12

Kill ScopedFd by simplifying the single caller.

Bug: http://b/20501816
Change-Id: I248c40b8c2fc95f1938a6edfc245c81847fc44af
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
(cherry picked from commit 0346ad7a4fb6e253317577ee8b9cc79d958f4349)
2015-05-13 17:47:08 -07:00
Elliott Hughes
0378d8f651 Merge "ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()" 2015-05-14 00:27:46 +00:00
Elliott Hughes
8ba08b634c am 706eafc9: Merge "Fix unused result errors in bionic."
* commit '706eafc9b05b2662e1bf139e678cbc784440cb58':
  Fix unused result errors in bionic.
2015-05-13 21:26:55 +00:00
Elliott Hughes
706eafc9b0 Merge "Fix unused result errors in bionic." 2015-05-13 21:09:42 +00:00
Spencer Low
0346ad7a4f ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()
According to the comments in Posix_close(), TEMP_FAILURE_RETRY() should
not be used with close():

462bdac45c%5E%21/#F12

Kill ScopedFd by simplifying the single caller.

Change-Id: I248c40b8c2fc95f1938a6edfc245c81847fc44af
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-13 13:27:11 -07:00
Elliott Hughes
c217373bd6 Fix unused result errors in bionic.
This lets us use _FORTIFY_SOURCE=2 on the host.

Change-Id: I69f5ff9834bfd595aae6584104bee10c4d8a5eeb
2015-05-13 13:18:04 -07:00
Dmitriy Ivanov
25f9d52810 am fe77d2d0: Merge "Improved dlsym tests and fixes to linker"
* commit 'fe77d2d0036306eec978eccf7b4db81fa424a2f3':
  Improved dlsym tests and fixes to linker
2015-05-13 15:52:28 +00:00
Elliott Hughes
1d6e8f4345 am d0763ba0: Merge "Update NOTICE files (the second time today)."
* commit 'd0763ba07693ec1d56f94e53e615eb4d7019eefa':
  Update NOTICE files (the second time today).
2015-05-13 15:42:00 +00:00
Elliott Hughes
ebd4fc9328 resolved conflicts for merge of 3ff027e5 to mnc-dev-plus-aosp
Change-Id: I2ed217729d8f0d60f9e8e21735bb0a070b6a813f
2015-05-13 08:39:55 -07:00
Elliott Hughes
5a9ab18d94 am 8a330cad: Merge "Simplify three copyright headers."
* commit '8a330cad8db512f5119251f55ac7bf606c552ed0':
  Simplify three copyright headers.
2015-05-13 15:22:09 +00:00
Dmitriy Ivanov
e598be94de am 4bac6ea4: Improved dlsym tests and fixes to linker
* commit '4bac6ea463a8f20793f5c1425965729ded1419fe':
  Improved dlsym tests and fixes to linker
2015-05-12 21:09:22 +00:00
Dmitriy Ivanov
4bac6ea463 Improved dlsym tests and fixes to linker
Answers the question: what if dependent library
 was preloaded with RTLD_LOCAL flag.

 Also add test for RTLD_NEXT within local_group.

Bug: http://b/17512583
Change-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9
(cherry picked from commit 697bd9fd38ab078a117ad9a5777cf286c467b9b9)
2015-05-12 13:49:13 -07:00
Dmitriy Ivanov
fe77d2d003 Merge "Improved dlsym tests and fixes to linker" 2015-05-12 20:48:17 +00:00
Dmitriy Ivanov
697bd9fd38 Improved dlsym tests and fixes to linker
Answers the question: what if dependent library
 was preloaded with RTLD_LOCAL flag.

 Also add test for RTLD_NEXT within local_group.

Bug: http://b/17512583
Change-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9
2015-05-12 13:46:40 -07:00
Elliott Hughes
898685ffd2 am 9cde1dc0: Update NOTICE files (the second time today).
* commit '9cde1dc007c0965c7fd2a63d759e80627ee88f0f':
  Update NOTICE files (the second time today).
2015-05-12 18:10:50 +00:00
Elliott Hughes
fe20ea1547 am dd57029e: Simplify three copyright headers.
* commit 'dd57029ed1dfc9cd3116d3797c40d92d5310594e':
  Simplify three copyright headers.
2015-05-12 17:54:48 +00:00
Elliott Hughes
e38f97ade7 am 97139e6a: Merge "Update NOTICE files." into mnc-dev
* commit '97139e6adc255460a1b12e3ccc7b425d11e05eb1':
  Update NOTICE files.
2015-05-12 17:54:47 +00:00
Elliott Hughes
9cde1dc007 Update NOTICE files (the second time today).
Change-Id: Ifb031d29ee697ee0682bd651e0081493e8016e67
(cherry picked from commit f58ac87182da214c7cdd697a4fa09aeb7b995305)
2015-05-12 10:52:52 -07:00
Elliott Hughes
d0763ba076 Merge "Update NOTICE files (the second time today)." 2015-05-12 17:47:05 +00:00
Elliott Hughes
f58ac87182 Update NOTICE files (the second time today).
Change-Id: Ifb031d29ee697ee0682bd651e0081493e8016e67
2015-05-12 10:44:37 -07:00
Elliott Hughes
3ff027e550 Merge "Update NOTICE files." 2015-05-12 17:43:46 +00:00
Elliott Hughes
dd57029ed1 Simplify three copyright headers.
There's no reason to have multiple years in our own copyright headers,
and given the stupidity of our NOTICE file generation, it just creates
more junk.

Change-Id: I065a3811c2e2584e3b649a18ad9460286bc72b92
(cherry picked from commit c69ace87ec110a91005bdf19dbafeb355f399c06)
2015-05-12 10:34:22 -07:00
Elliott Hughes
7e54c762fc Update NOTICE files.
(cherry-pick of f0bd92db8966b04062fda0986dacf80891e1a378.)
Change-Id: I4e170118abf452dd87ffe79d343ba1e2b53955de
2015-05-12 10:33:20 -07:00
Elliott Hughes
97139e6adc Merge "Update NOTICE files." into mnc-dev 2015-05-12 17:29:25 +00:00
Elliott Hughes
8a330cad8d Merge "Simplify three copyright headers." 2015-05-12 17:27:04 +00:00
Elliott Hughes
c69ace87ec Simplify three copyright headers.
There's no reason to have multiple years in our own copyright headers,
and given the stupidity of our NOTICE file generation, it just creates
more junk.

Change-Id: I065a3811c2e2584e3b649a18ad9460286bc72b92
2015-05-12 10:10:01 -07:00
Elliott Hughes
f0bd92db89 Update NOTICE files.
Change-Id: I4e170118abf452dd87ffe79d343ba1e2b53955de
2015-05-12 10:09:01 -07:00
Chih-Hung Hsieh
2e956c1a26 am 972d7fe6: Merge "Use unified syntax to compile with both llvm and gcc."
* commit '972d7fe63a2e0636b070bec266479c27e0bb8c5f':
  Use unified syntax to compile with both llvm and gcc.
2015-05-12 04:50:28 +00:00
Chih-Hung Hsieh
972d7fe63a Merge "Use unified syntax to compile with both llvm and gcc." 2015-05-12 04:31:10 +00:00
Chih-Hung Hsieh
33f33515b5 Use unified syntax to compile with both llvm and gcc.
All arch-arm and arch-arm64 .S files were compiled
by gcc with and without this patch. The output object files
were identical. When compiled with llvm and this patch,
the output files were also identical to gcc's output.

BUG: 18061004
Change-Id: I458914d512ddf5496e4eb3d288bf032cd526d32b
2015-05-11 17:15:03 -07:00
Elliott Hughes
06d3a9c7dd am c9310266: Merge "Fix various bugs in the check-symbols script."
* commit 'c9310266dcdd65e4c5a55ab85d2f9e67a52750bf':
  Fix various bugs in the check-symbols script.
2015-05-11 20:47:29 +00:00
Elliott Hughes
c9310266dc Merge "Fix various bugs in the check-symbols script." 2015-05-11 20:28:57 +00:00
Elliott Hughes
ec738d9494 Fix various bugs in the check-symbols script.
It had bitrotted away during the last release cycle.

Change-Id: I20f0a3b409af4530b81f26299bef9de01530c9fd
2015-05-11 12:10:40 -07:00
Yabin Cui
473d96c0a8 Merge "Fix timer flaky test in lollipop-mr1-cts-dev." into lollipop-mr1-cts-dev 2015-05-09 00:07:45 +00:00
Andres Morales
e5c9a8e4cf am 75f2dfca: Merge "remove rootdir build.prop"
* commit '75f2dfca653dd57b6f65bf898ec4f45d87d18926':
  remove rootdir build.prop
2015-05-08 22:30:17 +00:00
Andres Morales
75f2dfca65 Merge "remove rootdir build.prop" 2015-05-08 22:13:44 +00:00
Andres Morales
4e8cda641a remove rootdir build.prop
merge with default.prop

Change-Id: I6cff4527dec2b31bdde42ec26c42ef2782f8deb4
2015-05-08 22:13:15 +00:00
Dmitriy Ivanov
7eb944edee am f7009f45: Switch libc/libcstdc++/libm to hash-style=both
* commit 'f7009f450e596dc76352da7ceefc8caeeb74ff14':
  Switch libc/libcstdc++/libm to hash-style=both
2015-05-08 21:36:45 +00:00
Dmitriy Ivanov
1a31d128b9 am 267f39bf: Merge "Switch libc/libcstdc++/libm to hash-style=both"
* commit '267f39bf63044efe734c82c66f25f9b275a63c0b':
  Switch libc/libcstdc++/libm to hash-style=both
2015-05-08 21:33:57 +00:00
Dmitriy Ivanov
267f39bf63 Merge "Switch libc/libcstdc++/libm to hash-style=both" 2015-05-08 21:07:09 +00:00
Yabin Cui
5c0996a969 Fix timer flaky test in lollipop-mr1-cts-dev.
It is partically cherry-pick from https://android-review.googlesource.com/#/c/123410/.
And as lollipop-mr1-cts-dev still uses stlport, <stdatomic.h> is used instead of <atomic>.

Bug: 20677618
Change-Id: I952a6fd074facc4227c955fecf3ecbfbbaec4193
2015-05-08 13:12:01 -07:00
Dmitriy Ivanov
f7009f450e Switch libc/libcstdc++/libm to hash-style=both
Bug: http://b/19059885
Change-Id: Ie42703d91f291fd689a1cf9c35bcab5c487b9a84
(cherry picked from commit 88e777d6f46709abebab88421e8c4ea7a9e3d9c4)
2015-05-08 12:17:21 -07:00
Dmitriy Ivanov
88e777d6f4 Switch libc/libcstdc++/libm to hash-style=both
Bug: http://b/19059885
Change-Id: Ie42703d91f291fd689a1cf9c35bcab5c487b9a84
2015-05-08 12:06:20 -07:00
Dan Albert
e16e0e75e2 am 11fc3f47: Merge "Apply same URL workaround to clean build."
* commit '11fc3f47afa6c9566875df02f880dc317cb94437':
  Apply same URL workaround to clean build.
2015-05-08 17:36:58 +00:00
Dan Albert
d9d0207d56 am 5040aa4c: Merge changes from topic \'blobs\' into mnc-dev
* commit '5040aa4c393b12ea12fde0fc757995559c0c8e5d':
  Revert "Fix volantis boot."
  Revert "Fix clang build."
  Revert "Try again to fix clang build."
2015-05-08 17:24:10 +00:00
Dan Albert
11fc3f47af Merge "Apply same URL workaround to clean build." 2015-05-08 17:15:31 +00:00
Dan Albert
5040aa4c39 Merge changes from topic 'blobs' into mnc-dev
* changes:
  Revert "Fix volantis boot."
  Revert "Fix clang build."
  Revert "Try again to fix clang build."
2015-05-08 17:01:29 +00:00
Dan Albert
8ffddd1725 am a924d4ba: Merge changes from topic \'volantis-blobs\'
* commit 'a924d4ba2673246087b3b16e343e92ad67aefc71':
  Revert "Fix volantis boot."
  Revert "Fix clang build."
  Revert "Try again to fix clang build."
2015-05-08 16:54:37 +00:00
Andres Morales
bc79ee1d45 am 271f0514: Merge "remove rootdir build.prop" into mnc-dev
* commit '271f05148258bfb539099d02856d884aade86ae4':
  remove rootdir build.prop
2015-05-08 16:40:43 +00:00
Dmitriy Ivanov
d950830406 am f41ed6e5: Add definitions of Elf32_Sxword and ELFXX_R_INFO
* commit 'f41ed6e5490864e625c6c3d05d86e3c490602cad':
  Add definitions of Elf32_Sxword and ELFXX_R_INFO
2015-05-08 16:40:12 +00:00
Dan Albert
6b27e6e8e0 Revert "Fix volantis boot."
Bug: http://b/20065774
This reverts commit 76e1cbca75e9fdaf7a7943f2c58e65433b283f4a.

(cherry picked from commit 7c2c01d681d7f2faa256a263996a35ac3edc94b3)
2015-05-08 09:36:03 -07:00
Dan Albert
20db140181 Revert "Fix clang build."
Bug: http://b/20065774
This reverts commit 0975a5d9d29019e764dc0ab2ddc75759bebffb9b.

(cherry picked from commit 6f0d7005f9bc6d293e5cfcd60c13a6af0ffa99fc)
2015-05-08 09:35:54 -07:00
Dan Albert
6accf55bf3 Revert "Try again to fix clang build."
Bug: http://b/20065774
This reverts commit dffd3c58389103d6ee712fac6544217c00c1f315.

Change-Id: I5dd095ff4ab133baa2afcbd4c79fbee55d05c459
(cherry picked from commit f920f821e27c845d2de54c1c92c3ab74587ed31a)
2015-05-08 09:35:48 -07:00
Dan Albert
a924d4ba26 Merge changes from topic 'volantis-blobs'
* changes:
  Revert "Fix volantis boot."
  Revert "Fix clang build."
  Revert "Try again to fix clang build."
2015-05-08 16:35:13 +00:00
Andres Morales
271f051482 Merge "remove rootdir build.prop" into mnc-dev 2015-05-08 15:00:42 +00:00
Dmitriy Ivanov
d7a6c3d2ae am 7d6b8db2: Merge "Add definitions of Elf32_Sxword and ELFXX_R_INFO"
* commit '7d6b8db28ea4607dbefc25a4f799c4fd1bcc7869':
  Add definitions of Elf32_Sxword and ELFXX_R_INFO
2015-05-08 07:08:27 +00:00
Dmitriy Ivanov
f41ed6e549 Add definitions of Elf32_Sxword and ELFXX_R_INFO
Bug: http://b/17056684
Change-Id: If35302245ac3ab40d1c80fb2b04620778c114f87
(cherry picked from commit ce16a53d393512336f30c21a244afd70b7d57cf6)
2015-05-07 23:49:40 -07:00
Dmitriy Ivanov
7d6b8db28e Merge "Add definitions of Elf32_Sxword and ELFXX_R_INFO" 2015-05-08 06:49:05 +00:00
Dmitriy Ivanov
ce16a53d39 Add definitions of Elf32_Sxword and ELFXX_R_INFO
Bug: http://b/17056684
Change-Id: If35302245ac3ab40d1c80fb2b04620778c114f87
2015-05-07 23:10:16 -07:00
Yabin Cui
86af743d96 am f9eeea6d: Merge "Remove pthread_detach_no_leak test."
* commit 'f9eeea6d6531b0dea837027c7e1f47bec837f311':
  Remove pthread_detach_no_leak test.
2015-05-08 01:59:26 +00:00
Yabin Cui
f9eeea6d65 Merge "Remove pthread_detach_no_leak test." 2015-05-08 01:36:30 +00:00
Yabin Cui
2957cc5f10 Remove pthread_detach_no_leak test.
This test has lost its purpose as we are using mmap/munmap for pthread_internal_t. And it is a flaky test.

Bug: 20860440
Change-Id: I7cbb6bc3fd8a2ca430415beab5ee27a856ce4ea7
2015-05-07 16:53:25 -07:00
Dan Albert
ded34ce94f Apply same URL workaround to clean build.
Change-Id: I63e63f6ffb879f49e36ee2d09821fc6fc47952c8
2015-05-07 16:33:42 -07:00
Andres Morales
d3cea8725f remove rootdir build.prop
merge with default.prop

Change-Id: I6cff4527dec2b31bdde42ec26c42ef2782f8deb4
2015-05-07 15:15:46 -07:00
Dan Albert
7c2c01d681 Revert "Fix volantis boot."
Bug: http://b/20065774
This reverts commit 76e1cbca75e9fdaf7a7943f2c58e65433b283f4a.
2015-05-07 15:12:24 -07:00
Dan Albert
6f0d7005f9 Revert "Fix clang build."
Bug: http://b/20065774
This reverts commit 0975a5d9d29019e764dc0ab2ddc75759bebffb9b.
2015-05-07 15:12:16 -07:00
Dan Albert
f920f821e2 Revert "Try again to fix clang build."
Bug: http://b/20065774
This reverts commit dffd3c58389103d6ee712fac6544217c00c1f315.

Change-Id: I5dd095ff4ab133baa2afcbd4c79fbee55d05c459
2015-05-07 15:11:48 -07:00
Dmitriy Ivanov
d48c8ace18 am dc10b077: Merge "Properly align init/fini_arrays for crtend.o"
* commit 'dc10b077ea52baaa1b7be42eb5d2ba05a8a8c860':
  Properly align init/fini_arrays for crtend.o
2015-05-07 20:21:53 +00:00
Dmitriy Ivanov
174bbdbf9e am af7e806c: Properly align init/fini_arrays for crtend.o
* commit 'af7e806cec7088d5d8e9898c13aaa1bbdc07a082':
  Properly align init/fini_arrays for crtend.o
2015-05-07 20:21:48 +00:00
Dmitriy Ivanov
af7e806cec Properly align init/fini_arrays for crtend.o
Also remove them from crtend_so.o

Bug: http://b/20532404
Change-Id: I56a0f80c4b3a83cf11d28bbf17791ff4ce10c5d2
(cherry picked from commit e543c7612e97c4c0f11143b8fcd2fff46364f936)
2015-05-07 12:56:15 -07:00
Dmitriy Ivanov
dc10b077ea Merge "Properly align init/fini_arrays for crtend.o" 2015-05-07 19:55:25 +00:00
Dmitriy Ivanov
cf8231e7a8 am b3c01d05: Use realpath for log and error messages
* commit 'b3c01d05387e8576edcb0df1ad80a326d1d3a418':
  Use realpath for log and error messages
2015-05-07 19:11:31 +00:00
Dmitriy Ivanov
e543c7612e Properly align init/fini_arrays for crtend.o
Also remove them from crtend_so.o

Bug: http://b/20532404
Change-Id: I56a0f80c4b3a83cf11d28bbf17791ff4ce10c5d2
2015-05-07 11:57:53 -07:00
Dmitriy Ivanov
3ab5146c03 am 9c189418: Merge "Use realpath for log and error messages"
* commit '9c1894186cb33391732a6c33bd08e14d7b43cc89':
  Use realpath for log and error messages
2015-05-07 18:27:19 +00:00
Dmitriy Ivanov
b3c01d0538 Use realpath for log and error messages
Bug: http://b/20885931
Change-Id: Ida8ab7982ca75fa73da13c4cb10a6b2e53bc2c8e
(cherry picked from commit 3edb9182ff2fddfa2d835aab0cad151616f2eac5)
2015-05-07 11:04:28 -07:00
Dmitriy Ivanov
9c1894186c Merge "Use realpath for log and error messages" 2015-05-07 17:55:39 +00:00
Dmitriy Ivanov
3edb9182ff Use realpath for log and error messages
Bug: http://b/20885931
Change-Id: Ida8ab7982ca75fa73da13c4cb10a6b2e53bc2c8e
2015-05-07 10:48:00 -07:00
Dmitriy Ivanov
15eabcc295 am fff06e62: Merge "Move pthread_atfork_dlclose test out of static lib"
* commit 'fff06e624db96f1d876627fa0a122cdf65f41698':
  Move pthread_atfork_dlclose test out of static lib
2015-05-07 16:15:44 +00:00
Dmitriy Ivanov
597fd464de am c95a9e9d: Merge "VersionTracker: Ignore libraries without soname"
* commit 'c95a9e9dad126108a0106844f4d572d4cd4ae103':
  VersionTracker: Ignore libraries without soname
2015-05-07 09:00:10 +00:00
Dmitriy Ivanov
4c95c08bca am a60fd09e: Move pthread_atfork_dlclose test out of static lib
* commit 'a60fd09e2692e17c8bfa210d3cb64b490aea4c9d':
  Move pthread_atfork_dlclose test out of static lib
2015-05-07 05:27:54 +00:00
Dmitriy Ivanov
a60fd09e26 Move pthread_atfork_dlclose test out of static lib
Bug: http://b/20858755
Change-Id: I0d84e8b43dc33902d75af18db6b7c8e0b619d718
(cherry picked from commit 5624a6a1e52ff959b0f88765d38f190700422773)
2015-05-06 16:47:54 -07:00
Dmitriy Ivanov
fff06e624d Merge "Move pthread_atfork_dlclose test out of static lib" 2015-05-06 23:47:22 +00:00
Dmitriy Ivanov
ecc4086032 am f3392791: Merge "Fix protected symbol lookups for mips"
* commit 'f3392791bc0f8f3638a04e15cea893c7c102f3c3':
  Fix protected symbol lookups for mips
2015-05-06 22:55:50 +00:00
Dmitriy Ivanov
a8c31a3f5f am 2c3d8d8b: Merge "Do not adjust PT_GNU_STACK segment"
* commit '2c3d8d8b2c77a2439e324f8ef2369589024f33ed':
  Do not adjust PT_GNU_STACK segment
2015-05-06 22:43:57 +00:00
Dmitriy Ivanov
5624a6a1e5 Move pthread_atfork_dlclose test out of static lib
Bug: http://b/20858755
Change-Id: I0d84e8b43dc33902d75af18db6b7c8e0b619d718
2015-05-06 14:15:28 -07:00
Dmitriy Ivanov
84b973ad42 am 8264afb3: VersionTracker: Ignore libraries without soname
* commit '8264afb37778bea2a3c6e9aa7144f4877401c3f8':
  VersionTracker: Ignore libraries without soname
2015-05-06 19:29:32 +00:00
Dmitriy Ivanov
c95a9e9dad Merge "VersionTracker: Ignore libraries without soname" 2015-05-06 19:06:20 +00:00
Dmitriy Ivanov
406d99665c VersionTracker: Ignore libraries without soname
Bug: http://b/20872443
Change-Id: I7bd076885c1feae39af6ea64c9442bcc5ae5a1dc
(cherry picked from commit 8264afb37778bea2a3c6e9aa7144f4877401c3f8)
2015-05-06 12:04:57 -07:00
Dmitriy Ivanov
8264afb377 VersionTracker: Ignore libraries without soname
Bug: http://b/20872443
Change-Id: I7bd076885c1feae39af6ea64c9442bcc5ae5a1dc
2015-05-06 11:06:32 -07:00
Dmitriy Ivanov
e08840c591 am 456afe24: Fix protected symbol lookups for mips
* commit '456afe24b6460f75b3abc296f8f5885f4d8d907a':
  Fix protected symbol lookups for mips
2015-05-05 23:02:59 +00:00
Dmitriy Ivanov
456afe24b6 Fix protected symbol lookups for mips
Bug: http://b/20694161
Change-Id: I5cc58034f9776e1db9cddc34abe48ef85f6048f4
(cherry picked from commit dbe26fdcc7de503539837467299b96c4a93084cc)
2015-05-05 15:39:42 -07:00
Dmitriy Ivanov
f3392791bc Merge "Fix protected symbol lookups for mips" 2015-05-05 22:39:20 +00:00
Dmitriy Ivanov
dbe26fdcc7 Fix protected symbol lookups for mips
Bug: http://b/20694161
Change-Id: I5cc58034f9776e1db9cddc34abe48ef85f6048f4
2015-05-04 19:30:49 -07:00
Dmitriy Ivanov
2531bd8576 am 064a9800: Do not adjust PT_GNU_STACK segment
* commit '064a9800f372b8efd6d7b08150ab5204e5304c84':
  Do not adjust PT_GNU_STACK segment
2015-05-05 01:24:25 +00:00
Dmitriy Ivanov
2c3d8d8b2c Merge "Do not adjust PT_GNU_STACK segment" 2015-05-04 19:35:51 +00:00
Dmitriy Ivanov
4637f3d66d Do not adjust PT_GNU_STACK segment
Bug: http://b/20687795
Bug: http://b/18051137
Change-Id: Ie8af3892cfbebcc0249e7981284c4ad97ff40317
(cherry picked from commit 064a9800f372b8efd6d7b08150ab5204e5304c84)
2015-05-04 12:34:42 -07:00
Dmitriy Ivanov
064a9800f3 Do not adjust PT_GNU_STACK segment
Bug: http://b/20687795
Bug: http://b/18051137
Change-Id: Ie8af3892cfbebcc0249e7981284c4ad97ff40317
2015-05-04 18:35:43 +00:00
Christopher Ferris
ede9292ca2 am 64a86988: Modify test to avoid race condition. automerge: 3da136a
* commit '64a869880921b7e12d092b3fe7adc68fc74f98c6':
2015-05-04 17:08:06 +00:00
Christopher Ferris
64a8698809 Modify test to avoid race condition.
automerge: 3da136a

* commit '3da136aa47e2d1608b98abb2580f024b36f92831':
  Modify test to avoid race condition.
2015-05-04 16:45:13 +00:00
Dmitriy Ivanov
088d6d6756 am dc145b51: Lookup version info when relocating mips got
* commit 'dc145b510640202a60b0dfaef9d56cd8fc1c05a9':
  Lookup version info when relocating mips got
2015-05-01 23:08:49 +00:00
Dmitriy Ivanov
f5724b6001 am f92a417d: Refactoring: move VersionTracker to link_image
* commit 'f92a417d07d70730fda15d7d98d36968a6a7362e':
  Refactoring: move VersionTracker to link_image
2015-05-01 23:08:48 +00:00
Dmitriy Ivanov
2f77ec14e9 am 7fbd6355: Merge changes I28bd3bc4,I6860013d
* commit '7fbd6355ae809089ae9a62d0c738aea200ac20fe':
  Lookup version info when relocating mips got
  Refactoring: move VersionTracker to link_image
2015-05-01 23:05:20 +00:00
Dmitriy Ivanov
dc145b5106 Lookup version info when relocating mips got
Bug: http://b/20693971
Bug: http://b/20139821
Change-Id: I28bd3bc44dafe048761b2c598facfe20320128c4
(cherry picked from commit f39cb63603da949325b4d186e870d0c3de01eb30)
2015-05-01 15:45:51 -07:00
Dmitriy Ivanov
f92a417d07 Refactoring: move VersionTracker to link_image
Use one instance of VersionTracker per link (instead of 2).

Change-Id: I6860013df65f5969975c82ebdae8bd90a82e0a82
(cherry picked from commit 7e4bbbae4a1e2034e6fa47ac2b0e1e7ca970acf0)
2015-05-01 15:44:50 -07:00
Dmitriy Ivanov
7fbd6355ae Merge changes I28bd3bc4,I6860013d
* changes:
  Lookup version info when relocating mips got
  Refactoring: move VersionTracker to link_image
2015-05-01 22:43:36 +00:00
Neil Fuller
49196ee324 am f6fdb79b: Merge "Update to tzdata 2015d" into mnc-dev
* commit 'f6fdb79b4fe2ff6362e82a0380304ac61654396f':
  Update to tzdata 2015d
2015-05-01 09:19:32 +00:00
Neil Fuller
f6fdb79b4f Merge "Update to tzdata 2015d" into mnc-dev 2015-05-01 08:18:15 +00:00
Dmitriy Ivanov
f39cb63603 Lookup version info when relocating mips got
Bug: http://b/20693971
Bug: http://b/20139821
Change-Id: I28bd3bc44dafe048761b2c598facfe20320128c4
2015-04-30 20:17:03 -07:00
Dmitriy Ivanov
7e4bbbae4a Refactoring: move VersionTracker to link_image
Use one instance of VersionTracker per link (instead of 2).

Change-Id: I6860013df65f5969975c82ebdae8bd90a82e0a82
2015-04-30 19:49:19 -07:00
Dmitriy Ivanov
60b30b4090 Merge commit '114bd835' into manualmerge 2015-04-30 18:25:41 -07:00
Dmitriy Ivanov
4026b5d369 am 788ea593: Merge "Refactoring: extract lookup_version_info(..)"
* commit '788ea593ec27f4bb8600c88d5717a914fe79ed8b':
  Refactoring: extract lookup_version_info(..)
2015-05-01 01:03:05 +00:00
Dmitriy Ivanov
114bd835a7 Refactoring: extract lookup_version_info(..)
Change-Id: I47f9c21a1738dc520fd83281c8227dc3a7e79650
(cherry picked from commit 31b408d2c2e070c35838e7859ca4a4e5eb0c45fc)
2015-04-30 17:42:01 -07:00
Dmitriy Ivanov
788ea593ec Merge "Refactoring: extract lookup_version_info(..)" 2015-05-01 00:40:59 +00:00
Dmitriy Ivanov
31b408d2c2 Refactoring: extract lookup_version_info(..)
Change-Id: I47f9c21a1738dc520fd83281c8227dc3a7e79650
2015-04-30 16:12:32 -07:00
Alan Viverette
7ddbffe6fd Merge branch 'mnc-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/bionic into mnc-dev-plus-aosp 2015-04-30 21:21:02 +00:00
Mark Salyzyn
7960fb5600 am 62075bcc: bionic: fortify comments in _system_properties.h
* commit '62075bcc91d60f5269ed6f5b5303662b556a86c4':
  bionic: fortify comments in _system_properties.h
2015-04-30 21:20:41 +00:00
Mark Salyzyn
3d6bdcf285 am 033a68f1: Merge "bionic: fortify comments in _system_properties.h"
* commit '033a68f1acd059dc3c5f656ce16999863d077d8a':
  bionic: fortify comments in _system_properties.h
2015-04-30 21:20:40 +00:00
Mark Salyzyn
62075bcc91 bionic: fortify comments in _system_properties.h
(Cherry pick from commit c3f4c964a3326ba81e1d61ebc47980f787dfcf24)

Change-Id: I2ef8fb7ae5ae03d5d2a50b5a417d585710099760
2015-04-30 14:00:09 -07:00
Mark Salyzyn
033a68f1ac Merge "bionic: fortify comments in _system_properties.h" 2015-04-30 20:57:49 +00:00
Dan Albert
b04c68164d am 6a4c9d9b: Merge "Define char16_t and char32_t to make gcc 5.1 happy"
* commit '6a4c9d9bf9e3d2679394850ab49a42f368e12c2d':
  Define char16_t and char32_t to make gcc 5.1 happy
2015-04-30 19:55:45 +00:00
Dan Albert
6a4c9d9bf9 Merge "Define char16_t and char32_t to make gcc 5.1 happy" 2015-04-30 19:29:47 +00:00
Neil Fuller
3a7ed8f55c Update to tzdata 2015d
Changes affecting future time stamps

    Egypt will not observe DST in 2015 and will consider canceling it
    permanently.  For now, assume no DST indefinitely.
    (Thanks to Ahmed Nazmy and Tim Parenti.)

  Changes affecting past time stamps

    America/Whitehorse switched from UTC-9 to UTC-8 on 1967-05-28, not
    1966-07-01.  Also, Yukon's time zone history is documented better.
    (Thanks to Brian Inglis and Dennis Ferguson.)

  Change affecting past and future time zone abbreviations

    The abbreviations for Hawaii-Aleutian standard and daylight times
    have been changed from HAST/HADT to HST/HDT, as per US Government
    Printing Office style.  This affects only America/Adak since 1983,
    as America/Honolulu was already using the new style.

Bug: 20551453
(cherry-picked from commit 520cbf51b11470d1ca70a4dcd90bc12042c25b8a)

Change-Id: I60d3b683aeccbc44bd038ff6aebd75045809b1c5
2015-04-30 16:48:11 +01:00
Dmitriy Ivanov
e99dce4960 am 126b5efa: Adjust DT_MIPS_RLD_MAP2 value
* commit '126b5efa9d2fa0956a12a66305d7a4dac7feb4f9':
  Adjust DT_MIPS_RLD_MAP2 value
2015-04-30 15:19:51 +00:00
Dmitriy Ivanov
775ef1b68b am df877d7b: Merge "Adjust DT_MIPS_RLD_MAP2 value"
* commit 'df877d7b289543e5a969566e0dcbb6102b08f002':
  Adjust DT_MIPS_RLD_MAP2 value
2015-04-30 05:28:42 +00:00
Dmitriy Ivanov
126b5efa9d Adjust DT_MIPS_RLD_MAP2 value
DT_MIPS_RLD_MAP2 stores the difference between dynamic
  entry address and the address of the _r_debug (used by GDB)
  since the dynamic section and target address are on the
  different sides of the hole it needs to be adjusted accordingly

Bug: http://b/20658994
Bug: http://b/18051137
Change-Id: I4c5e379e8a4c68f029467df6dc660f81a7013a09
(cherry picked from commit 18c935ceabb54a32aff42f99c6d20680ac333157)
2015-04-29 22:10:53 -07:00
Dmitriy Ivanov
df877d7b28 Merge "Adjust DT_MIPS_RLD_MAP2 value" 2015-04-30 05:07:40 +00:00
Dmitriy Ivanov
18c935ceab Adjust DT_MIPS_RLD_MAP2 value
DT_MIPS_RLD_MAP2 stores the difference between dynamic
  entry address and the address of the _r_debug (used by GDB)
  since the dynamic section and target address are on the
  different sides of the hole it needs to be adjusted accordingly

Bug: http://b/20658994
Bug: http://b/18051137
Change-Id: I4c5e379e8a4c68f029467df6dc660f81a7013a09
2015-04-29 19:53:31 -07:00
Dmitriy Ivanov
17d2d7bec5 am f29640c2: Merge "linker: initialize system properties"
* commit 'f29640c2d8920c98f4cfd461d80c297a1cafa86a':
  linker: initialize system properties
2015-04-30 00:10:16 +00:00
Dmitriy Ivanov
bbd88ad57b am 0b9e1c60: linker: initialize system properties
* commit '0b9e1c6051a6c75bf9040fd1da6109988900d0ac':
  linker: initialize system properties
2015-04-30 00:04:23 +00:00
Dmitriy Ivanov
0b9e1c6051 linker: initialize system properties
Bug: http://b/20567629
Bug: https://code.google.com/p/chromium/issues/detail?id=478886
Change-Id: I8d2d89b749015e7fcd6e7ea646911f2e617dd1ba
(cherry picked from commit b4e5067cab9f17fa76bd7695f41a0b5070e10df8)
2015-04-29 16:46:41 -07:00
Dmitriy Ivanov
f29640c2d8 Merge "linker: initialize system properties" 2015-04-29 23:44:57 +00:00
Dmitriy Ivanov
f38aedecb1 am e97d519a: Fix mips relocation to use load_bias as intended
* commit 'e97d519a6b5d5f3272a0c851dff7bcf1f8ac0157':
  Fix mips relocation to use load_bias as intended
2015-04-29 22:29:01 +00:00
Dmitriy Ivanov
1f688c2c2a am c6b9b254: Merge "Fix mips relocation to use load_bias as intended"
* commit 'c6b9b254dc042c9c2b8be72430a9f59803eb0794':
  Fix mips relocation to use load_bias as intended
2015-04-29 22:22:13 +00:00
Dmitriy Ivanov
e97d519a6b Fix mips relocation to use load_bias as intended
Bug: http://b/20658994
Change-Id: I5a15605fe34db359e26d563e13841ae993083c4a
(cherry picked from commit 0373d4f47342e0a6f146af9023a146b0b707442b)
2015-04-29 15:02:50 -07:00
Dmitriy Ivanov
c6b9b254dc Merge "Fix mips relocation to use load_bias as intended" 2015-04-29 21:58:57 +00:00
Dmitriy Ivanov
0373d4f473 Fix mips relocation to use load_bias as intended
Bug: http://b/20658994
Change-Id: I5a15605fe34db359e26d563e13841ae993083c4a
2015-04-29 14:41:06 -07:00
Mark Salyzyn
c3f4c964a3 bionic: fortify comments in _system_properties.h
Change-Id: I2ef8fb7ae5ae03d5d2a50b5a417d585710099760
2015-04-29 13:57:42 -07:00
Neil Fuller
944e97c13d am fa6f6496: Merge "Update to tzdata 2015d"
* commit 'fa6f6496078426fe332a5ae9bba009c98dfabc94':
  Update to tzdata 2015d
2015-04-29 11:04:09 +00:00
Neil Fuller
fa6f649607 Merge "Update to tzdata 2015d" 2015-04-29 10:42:16 +00:00
Dmitriy Ivanov
b452858e47 am 53ba6636: Fix LD_PRELOAD for dlopen()
* commit '53ba6636178b7fb5d837b52aa6b2983263e3df4e':
  Fix LD_PRELOAD for dlopen()
2015-04-29 03:54:24 +00:00
Dmitriy Ivanov
5757a78b4b am e1a61f5e: Merge "Fix LD_PRELOAD for dlopen()"
* commit 'e1a61f5e931461288c931ce0b5a4e3bfef2e104e':
  Fix LD_PRELOAD for dlopen()
2015-04-29 03:43:23 +00:00
Jeff Brown
436f7a6502 am cb73d0e0: Merge "Add float support to binary event log." into mnc-dev
* commit 'cb73d0e0daff3804092efd49abf3aab9a65c05ff':
  Add float support to binary event log.
2015-04-29 02:11:21 +00:00
Mark Salyzyn
2761571dc4 am 123927df: bionic: add __system_property_area_serial()
* commit '123927dffc28018a1feb1d42c625b601cb948f34':
  bionic: add __system_property_area_serial()
2015-04-29 02:11:19 +00:00
Dmitriy Ivanov
143d6dd6ce am 452742d2: Do not pack relocations for libc.so
* commit '452742d2bf4247106055696c11bc4e59ca630f11':
  Do not pack relocations for libc.so
2015-04-29 02:11:16 +00:00
Dmitriy Ivanov
1e4e857d25 am 62a0a63e: linker: use libc\'s environ variable to store envp
* commit '62a0a63e072c97ba7650bb564d87ac6daf767558':
  linker: use libc's environ variable to store envp
2015-04-29 02:11:14 +00:00
Jeff Brown
317b3bf24a am 0bf65037: Merge "Add float support to binary event log."
* commit '0bf650373e963cb772466092fbc5fd5a25b144d0':
  Add float support to binary event log.
2015-04-29 02:09:52 +00:00
Dmitriy Ivanov
53ba663617 Fix LD_PRELOAD for dlopen()
We did not set DF_1_GLOBAL flag for LD_PRELOADed
 libraries which led to the situation when ld_preloads
 where ignored during on dlopen()

Change-Id: I696b3b2506a8ed4c0984ad2c803210a7a4f8e686
(cherry picked from commit f8093a9485402584f75b774ddf2ca051fa9b8aad)
2015-04-28 19:01:01 -07:00
Dmitriy Ivanov
e1a61f5e93 Merge "Fix LD_PRELOAD for dlopen()" 2015-04-29 01:59:53 +00:00
Jeff Brown
0bf650373e Merge "Add float support to binary event log." 2015-04-29 01:42:49 +00:00
Jeff Brown
11331f60dd Add float support to binary event log.
Bug: 20664753
Change-Id: I6e43c07daa727c19d87f5192bb719af63dd93654
2015-04-28 18:20:22 -07:00
Jeff Brown
cb73d0e0da Merge "Add float support to binary event log." into mnc-dev 2015-04-29 01:18:13 +00:00
Dmitriy Ivanov
f8093a9485 Fix LD_PRELOAD for dlopen()
We did not set DF_1_GLOBAL flag for LD_PRELOADed
 libraries which led to the situation when ld_preloads
 where ignored during on dlopen()

Change-Id: I696b3b2506a8ed4c0984ad2c803210a7a4f8e686
2015-04-28 18:09:53 -07:00
Jeff Brown
66fd2a278b Add float support to binary event log.
Bug: 20664753
Change-Id: I6e43c07daa727c19d87f5192bb719af63dd93654
2015-04-28 17:51:45 -07:00
Dmitriy Ivanov
b4e5067cab linker: initialize system properties
Bug: http://b/20567629
Bug: https://code.google.com/p/chromium/issues/detail?id=478886
Change-Id: I8d2d89b749015e7fcd6e7ea646911f2e617dd1ba
2015-04-28 15:52:52 -07:00
Mark Salyzyn
46ba0ac2a0 am b904afa1: Merge "bionic: add __system_property_area_serial()"
* commit 'b904afa16eb02266f4e72c241cc745340698f5fc':
  bionic: add __system_property_area_serial()
2015-04-28 22:30:30 +00:00
Dmitriy Ivanov
0045456336 am 9f0d99d2: Merge "Do not pack relocations for libc.so"
* commit '9f0d99d2983c7692cec8e866514335488a930058':
  Do not pack relocations for libc.so
2015-04-28 22:30:29 +00:00
Mark Salyzyn
123927dffc bionic: add __system_property_area_serial()
Adds a new _internal_ function. Provide a global serial number to
support more efficient private caching algorithms. This allows
to skip re-running the __system_property_find() call on misses until
there is a global change in the properties. This call is a read
barrier, the property data to be read following this call will be
read sequentially and up to date.

(Cherry pick from bfd65279a5a9018b01f71773270e462f1b9a7768)

Bug: 19544788
Change-Id: I58e6a92baa0f3e8e7b9ec79b10af6d56407dab48
2015-04-28 22:20:41 +00:00
Mark Salyzyn
b904afa16e Merge "bionic: add __system_property_area_serial()" 2015-04-28 22:11:52 +00:00
Dmitriy Ivanov
9f0d99d298 Merge "Do not pack relocations for libc.so" 2015-04-28 22:06:43 +00:00
Dmitriy Ivanov
62d6533c1a Do not pack relocations for libc.so
Bug: http://b/20645321
Bug: http://b/20655855
(cherry picked from commit 452742d2bf4247106055696c11bc4e59ca630f11)

Change-Id: Ic9125cc1bc4c9ba9eb20d030de72e3ce1fb86fa6
2015-04-28 15:05:20 -07:00
Dmitriy Ivanov
6253e40251 am bed7a7e5: Merge "linker: use libc\'s environ variable to store envp"
* commit 'bed7a7e5eb4b22dbddd2358f759ad925149b6ed3':
  linker: use libc's environ variable to store envp
2015-04-28 22:02:30 +00:00
Dmitriy Ivanov
452742d2bf Do not pack relocations for libc.so
Bug: http://b/20645321
Bug: http://b/20655855
Change-Id: Ia4470e0a6d388a7f8445c7f7f9a5639689c0fe32
2015-04-28 14:54:11 -07:00
Dmitriy Ivanov
62a0a63e07 linker: use libc's environ variable to store envp
This is to make getenv() work correctly.

Bug: http://b/20567629
(cherry picked from commit a85bcc2e99739420b5b4f9a5c337af1d26ac652b)

Change-Id: I7c2289279b331793335029dc17a792d416efff4b
2015-04-28 14:43:58 -07:00
Dmitriy Ivanov
bed7a7e5eb Merge "linker: use libc's environ variable to store envp" 2015-04-28 21:35:59 +00:00
Christopher Ferris
d3f0a1f3de am 6fa65e7c: Merge "cortex-a9: Fix reference to __memcpy_base_aligned."
* commit '6fa65e7cd54aeffbb2eb2116e30d2d34a5b655a2':
  cortex-a9: Fix reference to __memcpy_base_aligned.
2015-04-28 21:33:40 +00:00
Dmitriy Ivanov
a85bcc2e99 linker: use libc's environ variable to store envp
This is to make getenv() work correctly.

Bug: http://b/20567629
Change-Id: I148627e1efea1649fb0822c95876811652fb4082
2015-04-28 14:21:36 -07:00
Christopher Ferris
6fa65e7cd5 Merge "cortex-a9: Fix reference to __memcpy_base_aligned." 2015-04-28 20:28:42 +00:00
Kyle Repinski
e0905c94d3 cortex-a9: Fix reference to __memcpy_base_aligned.
With a different memcpy, __memcpy_base_aligned ceased to exist.
Instead, point to the name defined by whatever includes memcpy_base.S

Change-Id: I242cf49cbada35337ba155d7f170e86a905ff55f
2015-04-28 14:29:15 -05:00
Neil Fuller
520cbf51b1 Update to tzdata 2015d
Changes affecting future time stamps

    Egypt will not observe DST in 2015 and will consider canceling it
    permanently.  For now, assume no DST indefinitely.
    (Thanks to Ahmed Nazmy and Tim Parenti.)

  Changes affecting past time stamps

    America/Whitehorse switched from UTC-9 to UTC-8 on 1967-05-28, not
    1966-07-01.  Also, Yukon's time zone history is documented better.
    (Thanks to Brian Inglis and Dennis Ferguson.)

  Change affecting past and future time zone abbreviations

    The abbreviations for Hawaii-Aleutian standard and daylight times
    have been changed from HAST/HADT to HST/HDT, as per US Government
    Printing Office style.  This affects only America/Adak since 1983,
    as America/Honolulu was already using the new style.

Bug: 20551453
Change-Id: I02364f15ca4ae20ed1a3b327f8517214bee938e5
2015-04-28 17:11:03 +01:00
Neil Fuller
c9865b656f am 17b602c9: Update to tzdata 2015c
* commit '17b602c903c3199fad6353c43b0e6086c54bcce7':
  Update to tzdata 2015c
2015-04-28 14:55:03 +00:00
Dmitriy Ivanov
652d65a56d am 7936fa65: Reduce p_align for program header to page size.
* commit '7936fa6536934b67b5f9bd836c205f962bd0cea3':
  Reduce p_align for program header to page size.
2015-04-28 14:54:22 +00:00
Neil Fuller
17b602c903 Update to tzdata 2015c
Changes affecting future time stamps

    Egypt's spring-forward transition is at 24:00 on April's last Thursday,
    not 00:00 on April's last Friday.  2015's transition will therefore be on
    Thursday, April 30 at 24:00, not Friday, April 24 at 00:00.  Similar fixes
    apply to 2026, 2037, 2043, etc.  (Thanks to Steffen Thorsen.)

  Changes affecting past time stamps

    The following changes affect some pre-1991 Chile-related time stamps
    in America/Santiago, Antarctica/Palmer, and Pacific/Easter.

      The 1910 transition was January 10, not January 1.

      The 1918 transition was September 10, not September 1.

      The UTC-4 time observed from 1932 to 1942 is now considered to be
      standard time, not year-round DST.

      Santiago observed DST (UTC-3) from 1946-07-15 through 1946-08-31,
      then reverted to standard time, then switched its time zone to
      UTC-5 on 1947-04-01.

      Assume transitions before 1968 were at 00:00, since we have no data
      saying otherwise.

      The spring 1988 transition was 1988-10-09, not 1988-10-02.
      The fall 1990 transition was 1990-03-11, not 1990-03-18.

      Assume no UTC offset change for Pacific/Easter on 1890-01-01,
      and omit all transitions on Pacific/Easter from 1942 through 1946
      since we have no data suggesting that they existed.

    One more zone has been turned into a link, as it differed
    from an existing zone only for older time stamps.  As usual,
    this change affects UTC offsets in pre-1970 time stamps only.
    The zone's old contents have been moved to the 'backzone' file.
    The affected zone is America/Montreal.

Bug: 20287125
(cherry-picked from commit d2177404e28290064e087ecb2655e5fdcb9057e5)

Change-Id: I55224cc63b314a8e4c2f1c83f8bc4921316c8e4d
2015-04-28 10:51:48 +01:00
Dmitriy Ivanov
d583433eea am 42d7468f: Merge "Reduce p_align for program header to page size."
* commit '42d7468f99a49bd598fca9c3cebba33b9bdd0e57':
  Reduce p_align for program header to page size.
2015-04-28 04:10:46 +00:00
Dmitriy Ivanov
7936fa6536 Reduce p_align for program header to page size.
Having p_align > page_size leads to the situation when striping
 packed executables results in unnecessary p_vaddr adjustments.
 And it also may result (with probability 1 - 1/sizeof(uintptr_t)) in
 misaligned segments following .dynstr

Bug: http://b/20629834
Bug: http://b/18051137

(cherry picked from commit b293969c6d4acede62ac7b035dcb598e63574ca0)

Change-Id: I2fb15cf5cb52fada6511d5af93df099fc2cbf7ba
2015-04-27 20:45:04 -07:00
Dmitriy Ivanov
42d7468f99 Merge "Reduce p_align for program header to page size." 2015-04-28 03:38:27 +00:00
Dmitriy Ivanov
b293969c6d Reduce p_align for program header to page size.
Having p_align > page_size leads to the situation when striping
 packed executables results in unnecessary p_vaddr adjustments.
 And it also may result (with probability 1 - 1/sizeof(uintptr_t)) in
 misaligned segments following .dynstr

Bug: http://b/20629834
Bug: http://b/18051137
Change-Id: I1c5da4911e4409d63cb09f6b6b0a16ef54f6501b
2015-04-27 20:37:17 -07:00
Dmitriy Ivanov
f27336f276 am 032907d8: Merge "Remove outdated warning"
* commit '032907d8c7ad7a15798c123114b9c8e7601bb3ae':
  Remove outdated warning
2015-04-27 19:01:06 +00:00
Dmitriy Ivanov
032907d8c7 Merge "Remove outdated warning" 2015-04-27 18:28:31 +00:00
Dmitriy Ivanov
2ea504fed1 Remove outdated warning
It is ok to use malloc in linker.

Bug: http://b/20567629
Change-Id: I54183dbe8ebcd223a44e710e511c339688a65dba
2015-04-27 11:24:36 -07:00
Chih-Hung Hsieh
8f893fdb05 am 59bce688: Merge "Fix opcode to compile with both gcc and llvm."
* commit '59bce688c7edfa2479f63a76268cc30f98d1044c':
  Fix opcode to compile with both gcc and llvm.
2015-04-27 17:50:18 +00:00
Chih-Hung Hsieh
59bce688c7 Merge "Fix opcode to compile with both gcc and llvm." 2015-04-27 17:17:45 +00:00
Mark Salyzyn
bfd65279a5 bionic: add __system_property_area_serial()
Adds a new _internal_ function. Provide a global serial number to
support more efficient private caching algorithms. This allows
to skip re-running the __system_property_find() call on misses until
there is a global change in the properties. This call is a read
barrier, the property data to be read following this call will be
read sequentially and up to date.

Bug: 19544788
Change-Id: I58e6a92baa0f3e8e7b9ec79b10af6d56407dab48
2015-04-27 07:44:03 -07:00
Nick Kralevich
85ae807689 am 9e22d0ff: am bb4961cd: am 1d76f1cc: Merge "add a fortified implementation of realpath"
* commit '9e22d0ff3c12e51c20a72e148112bcbb207f816f':
2015-04-27 12:48:51 +00:00
Neil Fuller
45a92efcf4 am 682a240c: Merge "Update to tzdata 2015c"
* commit '682a240c5d6a479ed3b8187ea99044627bf2394c':
  Update to tzdata 2015c
2015-04-27 09:59:18 +00:00
Neil Fuller
682a240c5d Merge "Update to tzdata 2015c" 2015-04-27 08:19:16 +00:00
Nick Kralevich
c2e2a9ddec am 1d76f1cc: Merge "add a fortified implementation of realpath"
* commit '1d76f1cc8be1f40141adac6147cd51061f1ee0b4':
  add a fortified implementation of realpath
2015-04-26 22:14:54 +00:00
Nick Kralevich
9e22d0ff3c am bb4961cd: am 1d76f1cc: Merge "add a fortified implementation of realpath"
* commit 'bb4961cd4f0348b5e88bdf81dded7b63d1aadb0b':
  add a fortified implementation of realpath
2015-04-26 18:39:37 +00:00
Nick Kralevich
bb4961cd4f am 1d76f1cc: Merge "add a fortified implementation of realpath"
* commit '1d76f1cc8be1f40141adac6147cd51061f1ee0b4':
  add a fortified implementation of realpath
2015-04-26 02:44:29 +00:00
Nick Kralevich
1d76f1cc8b Merge "add a fortified implementation of realpath" 2015-04-26 02:23:04 +00:00
Nick Kralevich
51069872d1 am 73621d02: am 42502d70: Merge "add fortified memchr/memrchr implementations"
* commit '73621d02ec3ff45315ee6ddff534a46309723baf':
  add fortified memchr/memrchr implementations
2015-04-25 22:00:20 +00:00
Nick Kralevich
73621d02ec am 42502d70: Merge "add fortified memchr/memrchr implementations"
* commit '42502d702e1625c9f3337f7a18ea5fc4cfc6090c':
  add fortified memchr/memrchr implementations
2015-04-25 21:41:45 +00:00
Nick Kralevich
42502d702e Merge "add fortified memchr/memrchr implementations" 2015-04-25 21:29:57 +00:00
Dmitriy Ivanov
d14f85df52 am a6441765: am 2eaff078: Merge "Include pthread_atfork.h to mips64 crtbegin"
* commit 'a644176578e73b0ab1bf6adfed6bba944d6e7b00':
  Include pthread_atfork.h to mips64 crtbegin
2015-04-25 20:04:32 +00:00
Dmitriy Ivanov
a644176578 am 2eaff078: Merge "Include pthread_atfork.h to mips64 crtbegin"
* commit '2eaff07839393485fec522fd0bd17bbf1af72ca6':
  Include pthread_atfork.h to mips64 crtbegin
2015-04-25 19:42:22 +00:00
Dmitriy Ivanov
2eaff07839 Merge "Include pthread_atfork.h to mips64 crtbegin" 2015-04-25 19:20:00 +00:00
Dmitriy Ivanov
f327fae69c Include pthread_atfork.h to mips64 crtbegin
Bug: http://b/20339788
Change-Id: I2a8c7881f90a05ca768cb9b4c2f8b07c74c64469
2015-04-25 11:59:32 -07:00
Elliott Hughes
704b3164b3 am ea46b36f: am 9a2744df: Merge "Fix POSIX timer thread naming."
* commit 'ea46b36f894477755487d8caec15a8f35f81ac2c':
  Fix POSIX timer thread naming.
2015-04-25 18:44:05 +00:00
Elliott Hughes
ea46b36f89 am 9a2744df: Merge "Fix POSIX timer thread naming."
* commit '9a2744df301c509ea48361016ab441c792ec6d5a':
  Fix POSIX timer thread naming.
2015-04-25 18:23:51 +00:00
Elliott Hughes
9a2744df30 Merge "Fix POSIX timer thread naming." 2015-04-25 18:01:18 +00:00
Elliott Hughes
d1aea30b2a Fix POSIX timer thread naming.
Spencer Low points out that we never actually set a name because the constant
part of the string was longer than the kernel's maximum, and the kernel
rejects long names rather than truncate.

Shorten the fixed part of the string while still keeping it meaningful. 9999
POSIX timers should be enough for any process...

Bug: https://code.google.com/p/android/issues/detail?id=170089
Change-Id: Ic05f07584c1eac160743519091a540ebbf8d7eb1
2015-04-25 10:05:24 -07:00
Dmitriy Ivanov
988cb3bd69 am f41ab7fa: am 2c256a0f: Merge "Unregister pthread_atfork handlers on dlclose()"
* commit 'f41ab7fa68cfab33881a97d25f1c046e26e35d99':
  Unregister pthread_atfork handlers on dlclose()
2015-04-25 06:14:51 +00:00
Dmitriy Ivanov
f41ab7fa68 am 2c256a0f: Merge "Unregister pthread_atfork handlers on dlclose()"
* commit '2c256a0f0927abd94f2210b37c18ead210d30477':
  Unregister pthread_atfork handlers on dlclose()
2015-04-25 05:52:51 +00:00
Dmitriy Ivanov
2c256a0f09 Merge "Unregister pthread_atfork handlers on dlclose()" 2015-04-25 05:36:07 +00:00
Dmitriy Ivanov
2a1badcfcd am 504e7605: am 440242f0: Merge "Use bfd linker for x86/x86_64 targets"
* commit '504e76055c29a3cb7cdbe1e6f731cd3ca9d1a91e':
  Use bfd linker for x86/x86_64 targets
2015-04-25 04:49:52 +00:00
Dmitriy Ivanov
504e76055c am 440242f0: Merge "Use bfd linker for x86/x86_64 targets"
* commit '440242f03805872a0c62528d763e5e98dad9b580':
  Use bfd linker for x86/x86_64 targets
2015-04-25 04:27:52 +00:00
Dmitriy Ivanov
440242f038 Merge "Use bfd linker for x86/x86_64 targets" 2015-04-25 04:09:43 +00:00
Dmitriy Ivanov
e91e66f223 Use bfd linker for x86/x86_64 targets
ld.gold in current toolchain for x86_64
 does not support -z global.

Change-Id: Iea2b192f0f0aa998a02adb356fd4eec4e10a1739
2015-04-24 21:05:49 -07:00
Dmitriy Ivanov
6a76d3a2fe am 1f4c9067: am ebfb55e4: Merge "Enable dlsym_df_1_global test for arm/arm64"
* commit '1f4c9067af716dc9419cb2e33adc3abf9b2dcb2c':
  Enable dlsym_df_1_global test for arm/arm64
2015-04-25 02:07:39 +00:00
Dmitriy Ivanov
1f4c9067af am ebfb55e4: Merge "Enable dlsym_df_1_global test for arm/arm64"
* commit 'ebfb55e4cdf03473d66eaf5928fb3c3a8b0c2f85':
  Enable dlsym_df_1_global test for arm/arm64
2015-04-25 01:10:54 +00:00
Dmitriy Ivanov
ea295f68f1 Unregister pthread_atfork handlers on dlclose()
Bug: http://b/20339788
Change-Id: I874c87faa377645fa9e0752f4fc166d81fd9ef7e
2015-04-24 17:57:37 -07:00
Dmitriy Ivanov
ebfb55e4cd Merge "Enable dlsym_df_1_global test for arm/arm64" 2015-04-25 00:50:05 +00:00
Dmitriy Ivanov
6612d7a347 Enable dlsym_df_1_global test for arm/arm64
Change-Id: I1fdebced93175cb14053e2239e79f97239fc2dc2
2015-04-24 16:26:03 -07:00
Dmitriy Ivanov
7336ab23ee am 71abd9cc: am 2bb93482: Merge "Exit normally when relocations are already packed."
* commit '71abd9cc2ffb0c75288f5064e5e5d5a223e15a41':
  Exit normally when relocations are already packed.
2015-04-24 21:09:41 +00:00
Dmitriy Ivanov
71abd9cc2f am 2bb93482: Merge "Exit normally when relocations are already packed."
* commit '2bb93482a7793640205ade2f7316db5b3f5cac19':
  Exit normally when relocations are already packed.
2015-04-24 20:05:05 +00:00
Dmitriy Ivanov
2bb93482a7 Merge "Exit normally when relocations are already packed." 2015-04-24 19:42:39 +00:00
Dmitriy Ivanov
b0b9338ff8 Exit normally when relocations are already packed.
Bug: http://b/18051137
Change-Id: Idfffac5fe965e3cdeabe6d3b2dcd8c275c6ae5df
2015-04-24 12:39:14 -07:00
Bernhard Rosenkränzer
6f88821e5d Define char16_t and char32_t to make gcc 5.1 happy
gcc 5.1 doesn't define char16_t and char32_t (unless in C++ mode),
causing compile failures.

Change-Id: I08dcd13cdf8cd59a4a2f191864bedf4c0d1bb313
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2015-04-24 16:21:38 +02:00
Neil Fuller
d2177404e2 Update to tzdata 2015c
Changes affecting future time stamps

    Egypt's spring-forward transition is at 24:00 on April's last Thursday,
    not 00:00 on April's last Friday.  2015's transition will therefore be on
    Thursday, April 30 at 24:00, not Friday, April 24 at 00:00.  Similar fixes
    apply to 2026, 2037, 2043, etc.  (Thanks to Steffen Thorsen.)

  Changes affecting past time stamps

    The following changes affect some pre-1991 Chile-related time stamps
    in America/Santiago, Antarctica/Palmer, and Pacific/Easter.

      The 1910 transition was January 10, not January 1.

      The 1918 transition was September 10, not September 1.

      The UTC-4 time observed from 1932 to 1942 is now considered to be
      standard time, not year-round DST.

      Santiago observed DST (UTC-3) from 1946-07-15 through 1946-08-31,
      then reverted to standard time, then switched its time zone to
      UTC-5 on 1947-04-01.

      Assume transitions before 1968 were at 00:00, since we have no data
      saying otherwise.

      The spring 1988 transition was 1988-10-09, not 1988-10-02.
      The fall 1990 transition was 1990-03-11, not 1990-03-18.

      Assume no UTC offset change for Pacific/Easter on 1890-01-01,
      and omit all transitions on Pacific/Easter from 1942 through 1946
      since we have no data suggesting that they existed.

    One more zone has been turned into a link, as it differed
    from an existing zone only for older time stamps.  As usual,
    this change affects UTC offsets in pre-1970 time stamps only.
    The zone's old contents have been moved to the 'backzone' file.
    The affected zone is America/Montreal.

Bug: 20287125
Change-Id: I8512c4e9ab09725395b256aba59ca34a23d1c995
2015-04-24 13:56:11 +01:00
Dimitry Ivanov
690a87096b am e5d3ad4a: am 6c63ee41: Merge "Revert "Unregister pthread_atfork handlers on dlclose()""
* commit 'e5d3ad4abe6331955c172a2151d19e64f3c39549':
  Revert "Unregister pthread_atfork handlers on dlclose()"
2015-04-24 04:32:20 +00:00
Dimitry Ivanov
e5d3ad4abe am 6c63ee41: Merge "Revert "Unregister pthread_atfork handlers on dlclose()""
* commit '6c63ee41ac5a246fb46c51753cd4d50ccae0dd8f':
  Revert "Unregister pthread_atfork handlers on dlclose()"
2015-04-24 04:07:13 +00:00
Dimitry Ivanov
6c63ee41ac Merge "Revert "Unregister pthread_atfork handlers on dlclose()"" 2015-04-24 03:49:30 +00:00
Dimitry Ivanov
094f58fb2a Revert "Unregister pthread_atfork handlers on dlclose()"
The visibility control in pthread_atfork.h is incorrect.
 It breaks 64bit libc.so by hiding pthread_atfork.

 This reverts commit 6df122f8528f9b9fcf7dfea14ae98b0ef66274e1.

Change-Id: I21e4b344d500c6f6de0ccb7420b916c4e233dd34
2015-04-24 03:46:57 +00:00
Dmitriy Ivanov
08d62b2310 am 83ebe0c3: am 41ebceaf: Merge "Exit normally when packing relocs saves no space."
* commit '83ebe0c37b5338d0940d45497144fe8aa4a4bfea':
  Exit normally when packing relocs saves no space.
2015-04-23 23:44:36 +00:00
Dmitriy Ivanov
e8743e2759 am 24ffcb3e: am e3ecedd3: Merge "Remove jemalloc.a from libc_nomalloc.a"
* commit '24ffcb3ec6e488b469ebe148361915a3d75b9e3d':
  Remove jemalloc.a from libc_nomalloc.a
2015-04-23 23:16:05 +00:00
Elliott Hughes
788b063961 am 347b83ff: am 3da9373f: Merge "Simplify close(2) EINTR handling."
* commit '347b83ff9c6d53322b8bfbaac05f4a71b2855bbb':
  Simplify close(2) EINTR handling.
2015-04-23 23:16:04 +00:00
Dmitriy Ivanov
e80f32521a am 4d9c009f: am dc405b52: Merge "Unregister pthread_atfork handlers on dlclose()"
* commit '4d9c009faeb091766139621be118acd04dd8b1e2':
  Unregister pthread_atfork handlers on dlclose()
2015-04-23 23:16:02 +00:00
Dmitriy Ivanov
83ebe0c37b am 41ebceaf: Merge "Exit normally when packing relocs saves no space."
* commit '41ebceaf3ad392b4a3f40d96d5750d95ef206546':
  Exit normally when packing relocs saves no space.
2015-04-23 23:13:57 +00:00
Dmitriy Ivanov
41ebceaf3a Merge "Exit normally when packing relocs saves no space." 2015-04-23 22:55:34 +00:00
Dmitriy Ivanov
adfcb97317 Exit normally when packing relocs saves no space.
Bug: http://b/18051137
Change-Id: I43ea5678a677e5d39fb54fafcf3a2f3a252c79b0
2015-04-23 22:54:25 +00:00
Dmitriy Ivanov
24ffcb3ec6 am e3ecedd3: Merge "Remove jemalloc.a from libc_nomalloc.a"
* commit 'e3ecedd306ec16ecb31c6b7d6f9fdcb65c03b70f':
  Remove jemalloc.a from libc_nomalloc.a
2015-04-23 22:12:41 +00:00
Dmitriy Ivanov
e3ecedd306 Merge "Remove jemalloc.a from libc_nomalloc.a" 2015-04-23 21:50:15 +00:00
Chih-Hung Hsieh
0a93df369c Fix opcode to compile with both gcc and llvm.
BUG: 17302991

Change-Id: I31febd9ad24312388068803ce247b295bd73b607
2015-04-23 21:40:31 +00:00
Elliott Hughes
347b83ff9c am 3da9373f: Merge "Simplify close(2) EINTR handling."
* commit '3da9373fe0ada19d13c6c3f9831dee93ec0ba7a6':
  Simplify close(2) EINTR handling.
2015-04-23 21:33:07 +00:00
Elliott Hughes
3da9373fe0 Merge "Simplify close(2) EINTR handling." 2015-04-23 21:14:25 +00:00
Dmitriy Ivanov
7280e507b6 Remove jemalloc.a from libc_nomalloc.a
Change-Id: I86edc1a6cf3a26c46e6daef2c859459c1b0f29af
2015-04-23 12:24:43 -07:00
Elliott Hughes
3391a9ff13 Simplify close(2) EINTR handling.
This doesn't affect code like Chrome that correctly ignores EINTR on
close, makes code that tries TEMP_FAILURE_RETRY work (where before it might
have closed a different fd and appeared to succeed, or had a bogus EBADF),
and makes "goto fail" code work (instead of mistakenly assuming that EINTR
means that the close failed).

Who loses? Anyone actively trying to detect that they caught a signal while
in close(2). I don't think those people exist, and I think they have better
alternatives available.

Bug: https://code.google.com/p/chromium/issues/detail?id=269623
Bug: http://b/20501816
Change-Id: I11e2f66532fe5d1b0082b2433212e24bdda8219b
2015-04-23 08:41:45 -07:00
Dmitriy Ivanov
4d9c009fae am dc405b52: Merge "Unregister pthread_atfork handlers on dlclose()"
* commit 'dc405b5230c3d72107b57798a2c23b1a46069f4d':
  Unregister pthread_atfork handlers on dlclose()
2015-04-23 09:56:57 +00:00
Dmitriy Ivanov
dc405b5230 Merge "Unregister pthread_atfork handlers on dlclose()" 2015-04-23 08:05:25 +00:00
Dmitriy Ivanov
6df122f852 Unregister pthread_atfork handlers on dlclose()
Change-Id: I326fdf6bb06bed12743f08980b5c69d849c015b8
2015-04-22 19:19:37 -07:00
Dmitriy Ivanov
f75e6efbe4 am 8f01955d: am ff181089: Merge "Always use signed leb128 decoder"
* commit '8f01955d1ef985d79f581f2913eea30cb0258bb4':
  Always use signed leb128 decoder
2015-04-23 00:56:57 +00:00
Dmitriy Ivanov
eb98813e1a am 511e09c5: am 9ceec1a7: Merge "Always use signed leb128 encoding"
* commit '511e09c5282bdf68c2d3aaa85bc93cbc9ad4449b':
  Always use signed leb128 encoding
2015-04-23 00:06:12 +00:00
Dmitriy Ivanov
8f01955d1e am ff181089: Merge "Always use signed leb128 decoder"
* commit 'ff18108981aa1fa73696d6db1919cdc38788bd4e':
  Always use signed leb128 decoder
2015-04-22 22:38:01 +00:00
Dmitriy Ivanov
ff18108981 Merge "Always use signed leb128 decoder" 2015-04-22 22:16:31 +00:00
Dmitriy Ivanov
18870d350c Always use signed leb128 decoder
Relocation packer no longer encodes relocation tables
  using unsigned leb128: https://android-review.googlesource.com/147745

Bug: http://b/18051137
Change-Id: I620b7188e5f3dd9d5123431aa1fc7feca76be607
2015-04-22 13:29:42 -07:00
Dmitriy Ivanov
511e09c528 am 9ceec1a7: Merge "Always use signed leb128 encoding"
* commit '9ceec1a75dfcc8b032aa3a974b0cfc3bff5a306e':
  Always use signed leb128 encoding
2015-04-22 20:23:01 +00:00
Tao Bao
0223d2c018 am 423a0e91: am 457c34ad: Merge "Update the search path for libclang.so"
* commit '423a0e9123a14f7b716268d7883b61b11ab90152':
  Update the search path for libclang.so
2015-04-22 20:18:52 +00:00
Dmitriy Ivanov
22e7ddd56e am 9f49c34e: am 913fe559: Merge "Statically link libc++ for prebuilts"
* commit '9f49c34eecc7407fce674a82ae3a6126911efa34':
  Statically link libc++ for prebuilts
2015-04-22 20:18:48 +00:00
Dmitriy Ivanov
9ceec1a75d Merge "Always use signed leb128 encoding" 2015-04-22 20:02:04 +00:00
Dmitriy Ivanov
f15ceeb784 Always use signed leb128 encoding
According to runs on /system/lib there using
 unsigned leb128 does not save us any additional
 space. In order to keep packing as simple as
 possible switch to using signed leb128 for
 everything.

Bug: http://b/18051137
Change-Id: I1a47cb9eb2175895b3c3f7c13b4c6b1060de86c0
2015-04-22 12:58:38 -07:00
Tao Bao
423a0e9123 am 457c34ad: Merge "Update the search path for libclang.so"
* commit '457c34ad84093ec45ebe2e2f1ef635e3dcaddbe0':
  Update the search path for libclang.so
2015-04-22 18:55:11 +00:00
Dmitriy Ivanov
9f49c34eec am 913fe559: Merge "Statically link libc++ for prebuilts"
* commit '913fe559f69395aaf160653c1d3994df3272810b':
  Statically link libc++ for prebuilts
2015-04-22 18:46:43 +00:00
Tao Bao
457c34ad84 Merge "Update the search path for libclang.so" 2015-04-22 18:25:45 +00:00
Dmitriy Ivanov
913fe559f6 Merge "Statically link libc++ for prebuilts" 2015-04-22 18:15:27 +00:00
Tao Bao
7592008030 Update the search path for libclang.so
Prebuilt shared libraries (libclang.so, libLLVM.so and etc) have been
moved to prebuilts/sdk/tools/linux/lib64. Update the search path in
cpp.py to match the change.

Bug: 20485471
Change-Id: Ib7784db4d5529d16a1e2bfc07cb0237929bc5a64
2015-04-22 10:47:01 -07:00
Dmitriy Ivanov
2a6342187a Statically link libc++ for prebuilts
Statically link libc++ to relocation_packer in
 order to make it work from prebuilts

Bug: http://b/18051137
Change-Id: I933ed6a0e48780a26b261069eb6a293432824fe7
2015-04-22 10:43:12 -07:00
Chih-Hung Hsieh
76a24d0584 am 7f5d7b2b: am a00a9f0b: Merge "Allow building libc long double code with clang/llvm."
* commit '7f5d7b2b7642cb9f89505fe22e94006628c5efd9':
  Allow building libc long double code with clang/llvm.
2015-04-22 00:23:44 +00:00
Chih-Hung Hsieh
7f5d7b2b76 am a00a9f0b: Merge "Allow building libc long double code with clang/llvm."
* commit 'a00a9f0b7ed39589a768798de6a584a4baae030b':
  Allow building libc long double code with clang/llvm.
2015-04-22 00:05:31 +00:00
Chih-Hung Hsieh
a00a9f0b7e Merge "Allow building libc long double code with clang/llvm." 2015-04-21 23:44:59 +00:00
Dmitriy Ivanov
0eb4326023 am 2cfdac5c: am da3c4f2f: Merge "Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections"
* commit '2cfdac5cb286525f4f2117faddc9ba7b60dde5fb':
  Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections
2015-04-21 23:33:43 +00:00
Dmitriy Ivanov
2cfdac5cb2 am da3c4f2f: Merge "Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections"
* commit 'da3c4f2f0d86b7e249c9b9b6cdf3bc0225b7178e':
  Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections
2015-04-21 23:08:41 +00:00
Chih-Hung Hsieh
6fb8e96e5f Allow building libc long double code with clang/llvm.
This requires fix of clang's Android x86 long double size and format.
That bug has been fixed in https://android-review.git.corp.google.com/#/c/146254/

Change-Id: I182c6c493085212f88c694356659f72227c8b8c7
2015-04-21 21:20:37 +00:00
Dmitriy Ivanov
da3c4f2f0d Merge "Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections" 2015-04-21 19:29:19 +00:00
Dmitriy Ivanov
bb25bbe19e Adjust DT_VERSYM/VERNEED/VERDEF dynamic sections
This is recent addition to bionic linker. The symbol
  versioning was not supported before therefore this bug
  went unnoticed.

  Also normal exit when there is not enought relocations
  to pack. This is to enable integration of relocation_packer
  to android build system.

Bug: http://b/20139821
Bug: http://b/18051137
Change-Id: Iaf36ae11c8e4b15cf785b6dd1712a3bdcf47cc45
2015-04-21 12:28:21 -07:00
Dmitriy Ivanov
94146a09ae am ec44b45a: am 0776f0f6: Merge "Add library name to error message"
* commit 'ec44b45aa7cc55037c0fba12f36e3e723da02885':
  Add library name to error message
2015-04-21 02:13:59 +00:00
Dmitriy Ivanov
ec44b45aa7 am 0776f0f6: Merge "Add library name to error message"
* commit '0776f0f6e2fc926ae90f460ceac2b0e025292363':
  Add library name to error message
2015-04-21 01:17:34 +00:00
Dmitriy Ivanov
0776f0f6e2 Merge "Add library name to error message" 2015-04-21 00:51:36 +00:00
Dmitriy Ivanov
3d7bea1fa0 Add library name to error message
Change-Id: I079e6f1dd95fe9cae2135fcd7358c51f8b584ac9
2015-04-20 17:40:39 -07:00
Daniel Micay
3244d9f07f add a fortified implementation of realpath
Change-Id: Icc59eacd1684f7cddd83d7a2b57dad0c7ada5eb7
2015-04-20 17:31:24 -04:00
Yabin Cui
80e1d86701 am 8b44eab5: am c5bd96ef: Merge "Fix bug in app_id_from_name in stubs.cpp."
* commit '8b44eab5b84c82de204f05291b9551043fd3310c':
  Fix bug in app_id_from_name in stubs.cpp.
2015-04-18 23:38:16 +00:00
Yabin Cui
8b44eab5b8 am c5bd96ef: Merge "Fix bug in app_id_from_name in stubs.cpp."
* commit 'c5bd96efd27f756d07f1a306e4120cede17b39f5':
  Fix bug in app_id_from_name in stubs.cpp.
2015-04-18 23:15:50 +00:00
Yabin Cui
c5bd96efd2 Merge "Fix bug in app_id_from_name in stubs.cpp." 2015-04-18 22:54:35 +00:00
Yabin Cui
72a6fdcdc7 Fix bug in app_id_from_name in stubs.cpp.
It seems that a break statement is missing.

Bug: 19872411
Change-Id: I9362783ab726d01f6eb27418563e716dd95688dc
2015-04-18 14:10:12 -07:00
Nick Kralevich
8db4332814 am 546cf0a0: am af7538b4: Merge "add fortified readlink/readlinkat implementations"
* commit '546cf0a06ff120a8db51ed31eec5a1ff4b3f1446':
  add fortified readlink/readlinkat implementations
2015-04-18 16:12:44 +00:00
Nick Kralevich
546cf0a06f am af7538b4: Merge "add fortified readlink/readlinkat implementations"
* commit 'af7538b49625f1c1c82e984610f26729a18d56bf':
  add fortified readlink/readlinkat implementations
2015-04-18 15:51:28 +00:00
Nick Kralevich
af7538b496 Merge "add fortified readlink/readlinkat implementations" 2015-04-18 15:30:18 +00:00
Dan Albert
906c4bb029 am c269aca7: am 7a8c7c48: Merge "Also send bionicbb logs to a file."
* commit 'c269aca791fe6f01a906135c1104b7eee5214901':
  Also send bionicbb logs to a file.
2015-04-18 01:43:02 +00:00
Dan Albert
09980c4ca3 am 02a25c49: am cb6ae56b: Merge "Merge the two bionicbb services into one."
* commit '02a25c49edc3d6b6b33561fd5740a73dcd1b3440':
  Merge the two bionicbb services into one.
2015-04-18 01:43:00 +00:00
Daniel Micay
4ae773633a add fortified memchr/memrchr implementations
Change-Id: I38c473cc0c608b08f971409a95eb8b853cb2ba1c
2015-04-17 21:17:12 -04:00
Dan Albert
c269aca791 am 7a8c7c48: Merge "Also send bionicbb logs to a file."
* commit '7a8c7c48db11b81bc53c63ddfbaeca12e7f5e8cb':
  Also send bionicbb logs to a file.
2015-04-18 01:10:22 +00:00
Dan Albert
02a25c49ed am cb6ae56b: Merge "Merge the two bionicbb services into one."
* commit 'cb6ae56b3e4ee50e99e9f3335d2676a21000d400':
  Merge the two bionicbb services into one.
2015-04-18 01:10:21 +00:00
Dan Albert
7a8c7c48db Merge "Also send bionicbb logs to a file." 2015-04-18 00:58:23 +00:00
Dan Albert
21988a3b16 Also send bionicbb logs to a file.
Change-Id: If9a6fdbe004e3b4bb7d868b7255f83c232759f80
2015-04-17 17:57:15 -07:00
Dan Albert
cb6ae56b3e Merge "Merge the two bionicbb services into one." 2015-04-18 00:55:31 +00:00
Dan Albert
d3fe4f1229 Merge the two bionicbb services into one.
Change-Id: I6490da1ec96b2e24b330296950be84424e11bd35
2015-04-17 17:39:36 -07:00
Daniel Micay
42281880a8 add fortified readlink/readlinkat implementations
Change-Id: Ia4b1824d20cad3a072b9162047492dade8576779
2015-04-17 18:49:12 -04:00
Dmitriy Ivanov
17dd78472f am d4709744: am 3875744f: Merge "Support symbol versioning"
* commit 'd4709744a26f232500f34c3fd13db21830f29d65':
  Support symbol versioning
2015-04-17 06:13:19 +00:00
Dmitriy Ivanov
d4709744a2 am 3875744f: Merge "Support symbol versioning"
* commit '3875744f89600027c69ea68650fff1eeb4b29723':
  Support symbol versioning
2015-04-17 04:19:39 +00:00
Dmitriy Ivanov
3875744f89 Merge "Support symbol versioning" 2015-04-17 03:57:46 +00:00
Elliott Hughes
84111de007 am 3c35b0a4: am fc4850e3: Merge "Fix clang build."
* commit '3c35b0a427cbc3aa049acfbf9c04084b4c519ed6':
  Fix clang build.
2015-04-17 02:11:32 +00:00
Elliott Hughes
dd44ccdf9d am ea154268: am 31128da2: Merge "add fortified implementations of pread/pread64"
* commit 'ea154268ff7ce0789c5c9093c0a06be44cbf33cf':
  add fortified implementations of pread/pread64
2015-04-17 02:04:28 +00:00
Elliott Hughes
3c35b0a427 am fc4850e3: Merge "Fix clang build."
* commit 'fc4850e37b713eae12d0bde7f6e0b4e9b444bfef':
  Fix clang build.
2015-04-17 01:16:45 +00:00
Elliott Hughes
fc4850e37b Merge "Fix clang build." 2015-04-17 00:57:52 +00:00
Dmitriy Ivanov
2a81536144 Support symbol versioning
Bug: http://b/20139821
Change-Id: I64122a0fb0960c20b2ce614161b7ab048456b681
2015-04-16 17:57:30 -07:00
Elliott Hughes
a9325133aa Fix clang build.
Change-Id: I70a9ebe806cb4f7e23a7d8e486157ddd70ae3008
2015-04-16 17:56:12 -07:00
Elliott Hughes
ea154268ff am 31128da2: Merge "add fortified implementations of pread/pread64"
* commit '31128da28f561152f5b663e6b4849691b3951525':
  add fortified implementations of pread/pread64
2015-04-17 00:54:24 +00:00
Elliott Hughes
31128da28f Merge "add fortified implementations of pread/pread64" 2015-04-17 00:34:26 +00:00
Dan Albert
0a0165e53f am 7e045ce9: am f84a5c6c: Merge "Clean up "logging"."
* commit '7e045ce97cc2c3b27543254e0cdf6f16290502cc':
  Clean up "logging".
2015-04-16 22:53:23 +00:00
Dan Albert
7e045ce97c am f84a5c6c: Merge "Clean up "logging"."
* commit 'f84a5c6c5c5fa2507458086a2f9a077bd9e2c9ec':
  Clean up "logging".
2015-04-16 22:31:49 +00:00
Dan Albert
f84a5c6c5c Merge "Clean up "logging"." 2015-04-16 22:08:39 +00:00
Dan Albert
a4061cddbe Clean up "logging".
Print is bad and I should feel bad. Use the logging module instead.
Will follow up by adding a persistent log destination instead of just
the console.

Change-Id: I396ff10712f88a03f8d8183b6de29ea273815962
2015-04-16 14:20:13 -07:00
Elliott Hughes
e04b476e17 am ecd73583: am 14af27a1: Merge "Remove PROP_PATH_SYSTEM_DEFAULT."
* commit 'ecd73583e16a1337223924e2a9df2185499f5a2b':
  Remove PROP_PATH_SYSTEM_DEFAULT.
2015-04-16 20:43:23 +00:00
Elliott Hughes
ecd73583e1 am 14af27a1: Merge "Remove PROP_PATH_SYSTEM_DEFAULT."
* commit '14af27a147b5e91eeb8632a3f99d4b6cc2ed26dc':
  Remove PROP_PATH_SYSTEM_DEFAULT.
2015-04-16 20:20:31 +00:00
Elliott Hughes
14af27a147 Merge "Remove PROP_PATH_SYSTEM_DEFAULT." 2015-04-16 19:58:00 +00:00
Daniel Micay
e7e1c875b0 add fortified implementations of pread/pread64
Change-Id: Iec39c3917e0bc94371bd81541619392f5abe29b9
2015-04-16 10:33:35 -04:00
Dmitriy Ivanov
9e66105685 am 261ebb63: am a40cb0ca: Merge "Call __cxa_thread_finalize for the main thread."
* commit '261ebb63478e5d30cc3da6c3f37a1ae3e08551da':
  Call __cxa_thread_finalize for the main thread.
2015-04-16 10:02:56 +00:00
Dmitriy Ivanov
261ebb6347 am a40cb0ca: Merge "Call __cxa_thread_finalize for the main thread."
* commit 'a40cb0ca7fe8ddc146831e92ec543be9feb26a65':
  Call __cxa_thread_finalize for the main thread.
2015-04-16 09:40:53 +00:00
Dmitriy Ivanov
a40cb0ca7f Merge "Call __cxa_thread_finalize for the main thread." 2015-04-16 08:06:03 +00:00
Christopher Ferris
80a18851f5 am 22081158: am 12d89027: Merge "Update the number of jemalloc reserved keys."
* commit '22081158da5605e87d5db5c98a1c6d4a24802063':
  Update the number of jemalloc reserved keys.
2015-04-16 05:23:48 +00:00
Christopher Ferris
22081158da am 12d89027: Merge "Update the number of jemalloc reserved keys."
* commit '12d89027457b4d5dce6c3a7fd01a2951f273d9a9':
  Update the number of jemalloc reserved keys.
2015-04-16 05:01:51 +00:00
Christopher Ferris
12d8902745 Merge "Update the number of jemalloc reserved keys." 2015-04-16 04:42:38 +00:00
Yabin Cui
459676c3b3 am 86ad2037: am 2587c6a2: Merge "Change on handling of SIGEV_THREAD timers."
* commit '86ad2037793d1f125d59d115ee90f2f105f94f41':
  Change on handling of SIGEV_THREAD timers.
2015-04-16 01:59:15 +00:00
Yabin Cui
86ad203779 am 2587c6a2: Merge "Change on handling of SIGEV_THREAD timers."
* commit '2587c6a2f0f946bd7c1e526c20b2623c01accd60':
  Change on handling of SIGEV_THREAD timers.
2015-04-16 01:28:28 +00:00
Yabin Cui
2587c6a2f0 Merge "Change on handling of SIGEV_THREAD timers." 2015-04-16 01:08:25 +00:00
Yabin Cui
95f1ee235a Change on handling of SIGEV_THREAD timers.
1. Don't prevent calling callback when SIGEV_THREAD timers are disarmed by timer_settime.
As in POSIX standard: The effect of disarming or resetting a timer with pending
expiration notifications is unspecified. And glibc didn't prevent in this situation, so I
think it is fine to remove the support.
2. Still prevent calling callback when SIGEV_THREAD timers are deleted by timer_delete.
As in POSIX standard: The disposition of pending signals for the deleted timer is unspecified.
However, glibc handles this (although that is not perfect). And some of our tests in
time_test.cpp depend on this feature as described in b/18039727. so I retain the support.
3. Fix some flaky test in time_test.cpp, and make "time*" test pass on bionic-unit-tests-glibcxx.

Bug: 18263854

Change-Id: I8ced184eacdbfcf433fd81b0c69c38824beb8ebc
2015-04-15 17:36:01 -07:00
Christopher Ferris
c0f89283cc Update the number of jemalloc reserved keys.
jemalloc now uses a single key pointing to a structure rather
than multiple keys.

Change-Id: Ib76185a594ab2cd4dc400d9a7a5bc0a57a7ac92d
2015-04-15 17:20:10 -07:00
Elliott Hughes
43e020ce93 Remove PROP_PATH_SYSTEM_DEFAULT.
Change-Id: Ib01d9c2f9d890eb5e7ba1e15bd11767195e84967
2015-04-15 17:03:43 -07:00
Dmitriy Ivanov
a2f29a1375 am 4e8f791b: am c6ccdfaf: Merge "Hide emutls* symbols in libc.so"
* commit '4e8f791b43c0ec44ee884cf90b4241d947bd2b72':
  Hide emutls* symbols in libc.so
2015-04-16 00:00:05 +00:00
Dmitriy Ivanov
4e8f791b43 am c6ccdfaf: Merge "Hide emutls* symbols in libc.so"
* commit 'c6ccdfaf1ff4665ec96962863054263510d73e7b':
  Hide emutls* symbols in libc.so
2015-04-15 23:45:37 +00:00
Dmitriy Ivanov
c6ccdfaf1f Merge "Hide emutls* symbols in libc.so" 2015-04-15 23:27:38 +00:00
Dmitriy Ivanov
163ab8ba86 Call __cxa_thread_finalize for the main thread.
Bug: http://b/20231984
Bug: http://b/16696563
Change-Id: I71cfddd0d404d1d4a593ec8d3bca9741de8cb90f
2015-04-15 16:24:21 -07:00
Dmitriy Ivanov
66aa0b61f7 Hide emutls* symbols in libc.so
Also make thread_local in test static to avoid ld.bfd
 warning for arm64.

Change-Id: I09a3f2aa9b73a4fafa3f3bbc64ddc2a128ad50ee
2015-04-15 14:23:00 -07:00
Christopher Ferris
27b6c01562 am 4a9e3d76: am cafc9480: Merge "Fix addition of extra arg to cfi_restore."
* commit '4a9e3d76a5be7d60e259cb36a2e467ee34c46a26':
  Fix addition of extra arg to cfi_restore.
2015-04-15 00:47:51 +00:00
Christopher Ferris
4a9e3d76a5 am cafc9480: Merge "Fix addition of extra arg to cfi_restore."
* commit 'cafc948069d447aa1e4dde599ee83bf6c0c5d5d8':
  Fix addition of extra arg to cfi_restore.
2015-04-15 00:22:59 +00:00
Christopher Ferris
7707542aa1 am ffecd6ce: am a529efac: Merge "Add missing cfi directives for x86 assembler."
* commit 'ffecd6cef91cbd3d01b1a09737d9e2b3bdfe9818':
  Add missing cfi directives for x86 assembler.
2015-04-15 00:22:44 +00:00
Christopher Ferris
cafc948069 Merge "Fix addition of extra arg to cfi_restore." 2015-04-15 00:07:35 +00:00
Christopher Ferris
940d3122c9 Fix addition of extra arg to cfi_restore.
Change-Id: I8fdcc1ae3e91b69ccbcec756a89e1ccb4fa1be53
2015-04-14 17:02:31 -07:00
Christopher Ferris
ffecd6cef9 am a529efac: Merge "Add missing cfi directives for x86 assembler."
* commit 'a529efac4efa4641186fef5003752cc1c43ec763':
  Add missing cfi directives for x86 assembler.
2015-04-15 00:00:48 +00:00
Christopher Ferris
a529efac4e Merge "Add missing cfi directives for x86 assembler." 2015-04-14 23:43:09 +00:00
Christopher Ferris
605ee81b06 Add missing cfi directives for x86 assembler.
Change-Id: I80d3e33a71bbaeab5f39b667ebe61e865fd54b80
2015-04-14 16:42:10 -07:00
Yabin Cui
530288f1be am c2eac94a: am 8f3f0418: Merge "Prevent using static-allocated pthread keys before creation."
* commit 'c2eac94a8792b621765d102f918103b58bed693e':
  Prevent using static-allocated pthread keys before creation.
2015-04-14 21:53:45 +00:00
Yabin Cui
c2eac94a87 am 8f3f0418: Merge "Prevent using static-allocated pthread keys before creation."
* commit '8f3f04184a5772b421867b59acd3d0dfbc6fa4eb':
  Prevent using static-allocated pthread keys before creation.
2015-04-14 21:00:19 +00:00
Yabin Cui
8f3f04184a Merge "Prevent using static-allocated pthread keys before creation." 2015-04-14 20:35:08 +00:00
Yabin Cui
5ddbb3f936 Prevent using static-allocated pthread keys before creation.
Bug: 19993460

Change-Id: I244dea7f5df3c8384f88aa48d635348fafc9cbaf
2015-04-14 13:32:09 -07:00
Dan Albert
43b59137e7 am 2bd1560e: am 447cd196: Merge "Skip merge-failed messages from Gerrit."
* commit '2bd1560eda2f51bd34d70d56087e59888709753d':
  Skip merge-failed messages from Gerrit.
2015-04-14 03:01:38 +00:00
Dan Albert
2bd1560eda am 447cd196: Merge "Skip merge-failed messages from Gerrit."
* commit '447cd19681cfd0a71282c87d1b32a7757bbaba81':
  Skip merge-failed messages from Gerrit.
2015-04-14 01:52:51 +00:00
Dan Albert
447cd19681 Merge "Skip merge-failed messages from Gerrit." 2015-04-14 01:33:35 +00:00
Dan Albert
a0ecd5b2b4 Skip merge-failed messages from Gerrit.
Change-Id: I2d8055a44cd78f95e64d6cf88e9efdd610a4fa88
2015-04-13 17:33:51 -07:00
Dmitriy Ivanov
2eff46f170 am ffc34e51: am de889741: Merge "Fix dl* tests to run-on-host"
* commit 'ffc34e51f71cbf88230023b7ce1d7a2c5b253c0c':
  Fix dl* tests to run-on-host
2015-04-11 01:06:30 +00:00
Dmitriy Ivanov
ffc34e51f7 am de889741: Merge "Fix dl* tests to run-on-host"
* commit 'de889741201faa338e01babdfd10bbd597769e60':
  Fix dl* tests to run-on-host
2015-04-11 00:45:59 +00:00
Dmitriy Ivanov
de88974120 Merge "Fix dl* tests to run-on-host" 2015-04-11 00:28:05 +00:00
Dan Albert
bdf9bb8fc4 am 1adfe6b2: am c921eb67: Merge "Don\'t build any changes that touch bionicbb."
* commit '1adfe6b20d096b5271b5eef1c15f8fc37e3caaf8':
  Don't build any changes that touch bionicbb.
2015-04-10 04:34:56 +00:00
Dmitriy Ivanov
34ecca9c3c am 1eb37bae: am 9ce9bf5a: Merge "Add Elfxx_Ver* types"
* commit '1eb37baed8b9cb90cf6f59a876f7e9b1c817e45b':
  Add Elfxx_Ver* types
2015-04-10 04:32:44 +00:00
Dan Albert
1adfe6b20d am c921eb67: Merge "Don\'t build any changes that touch bionicbb."
* commit 'c921eb677077f96c09c66ac34cad490356afde6c':
  Don't build any changes that touch bionicbb.
2015-04-10 00:37:47 +00:00
Dan Albert
c921eb6770 Merge "Don't build any changes that touch bionicbb." 2015-04-10 00:25:18 +00:00
Dan Albert
d032378790 Don't build any changes that touch bionicbb.
Right now any changes in here would be innocuous because I manually
update bionicbb, but I'd like to check in the various job
configurations. Once I have we don't want anyone to be able to make
the buildbot run any untrusted code.

Change-Id: Ic050859cd5017615f71c75f995ba21bb45407b05
2015-04-09 17:18:53 -07:00
Dmitriy Ivanov
1eb37baed8 am 9ce9bf5a: Merge "Add Elfxx_Ver* types"
* commit '9ce9bf5aec5ed2ec75acdc05f00a49728563a782':
  Add Elfxx_Ver* types
2015-04-09 22:34:29 +00:00
Dmitriy Ivanov
9ce9bf5aec Merge "Add Elfxx_Ver* types" 2015-04-09 22:14:09 +00:00
Dmitriy Ivanov
ef25592f14 Fix dl* tests to run-on-host
Bug: http://b/20121152
Change-Id: I1e1f41d885c75dbb26f91565a53a15d62ef72ce6
2015-04-09 14:56:26 -07:00
Dmitriy Ivanov
c0e7dbb1db Add Elfxx_Ver* types
Bug: http://b/20139821
Change-Id: I7a367b08faa3bf5c005996c066cd35709f533265
2015-04-09 13:58:53 -07:00
Christopher Ferris
64420c5fd4 am 0b93c0c1: am 0a92ac88: Merge "Use assembly memmove for all arm32 processors."
* commit '0b93c0c19280bc57c732a8f6a93b4735730f91c5':
  Use assembly memmove for all arm32 processors.
2015-04-09 18:27:19 +00:00
Christopher Ferris
0b93c0c192 am 0a92ac88: Merge "Use assembly memmove for all arm32 processors."
* commit '0a92ac884891b167d6393592fbf9ecf26218f9aa':
  Use assembly memmove for all arm32 processors.
2015-04-09 18:02:53 +00:00
Yabin Cui
56cda5cc09 am e29db673: am 9f2c2f53: Merge "Provide writer preference option in rwlock."
* commit 'e29db67312f4e2856a92b11498fc067d7f46dcac':
  Provide writer preference option in rwlock.
2015-04-09 17:52:17 +00:00
Christopher Ferris
0a92ac8848 Merge "Use assembly memmove for all arm32 processors." 2015-04-09 17:41:58 +00:00
Yabin Cui
e29db67312 am 9f2c2f53: Merge "Provide writer preference option in rwlock."
* commit '9f2c2f53d372001ac6565b060a07d4416ca58e47':
  Provide writer preference option in rwlock.
2015-04-09 17:36:48 +00:00
Yabin Cui
9f2c2f53d3 Merge "Provide writer preference option in rwlock." 2015-04-09 17:19:44 +00:00
Neil Fuller
e42cb680a3 am 37eca951: am f9ff2eea: Merge "Upgrade timezone data to 2015b"
* commit '37eca9511be51e2c37ab843b791c9ab52b604954':
  Upgrade timezone data to 2015b
2015-04-09 14:16:45 +00:00
Neil Fuller
37eca9511b am f9ff2eea: Merge "Upgrade timezone data to 2015b"
* commit 'f9ff2eeaeeb841fa9f197ee8b6bc9521e63210dd':
  Upgrade timezone data to 2015b
2015-04-09 14:01:07 +00:00
Neil Fuller
f9ff2eeaee Merge "Upgrade timezone data to 2015b" 2015-04-09 13:45:03 +00:00
Neil Fuller
753e9836ad am 062795f7: am 694282b1: Merge "Update update-tzdata.py tool to generate ICU4J data jars"
* commit '062795f773764b3576f987f2b90a7c04c53ba60a':
  Update update-tzdata.py tool to generate ICU4J data jars
2015-04-09 10:16:59 +00:00
Neil Fuller
aba687a09c Upgrade timezone data to 2015b
Changes affecting future time stamps

    Mongolia will start observing DST again this year, from the last
    Saturday in March at 02:00 to the last Saturday in September at 00:00.
    (Thanks to Ganbold Tsagaankhuu.)

    Palestine will start DST on March 28, not March 27.  Also,
    correct the fall 2014 transition from September 26 to October 24.
    Adjust future predictions accordingly.  (Thanks to Steffen Thorsen.)

  Changes affecting past time stamps

    The 1982 zone shift in Pacific/Easter has been corrected, fixing a 2015a
    regression.  (Thanks to Stuart Bishop for reporting the problem.)

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: America/Antigua, America/Cayman,
    Pacific/Midway, and Pacific/Saipan.

  Changes affecting time zone abbreviations

    Correct the 1992-2010 DST abbreviation in Volgograd from "MSK" to "MSD".
    (Thanks to Hank W.)

Bug: 19887183
Change-Id: I1b4bdc5ae5cf778908a77893d7f8db8a4117e1e1
2015-04-09 11:15:27 +01:00
Neil Fuller
062795f773 am 694282b1: Merge "Update update-tzdata.py tool to generate ICU4J data jars"
* commit '694282b1726a6c5f64df3695594bf23707cf4771':
  Update update-tzdata.py tool to generate ICU4J data jars
2015-04-09 09:56:53 +00:00
Neil Fuller
694282b172 Merge "Update update-tzdata.py tool to generate ICU4J data jars" 2015-04-09 09:39:57 +00:00
Neil Fuller
4d3abcb033 Update update-tzdata.py tool to generate ICU4J data jars
The ICU4J changes are not necessary for use on Android (since
we use the ICU4C .dat file), but updating them ensures that
the .jars in sync with everything else and the jars are currently
required for host tests.

Change-Id: Ie56b31af87e8fbd27a6489af8287e4b6a7be6b8f
2015-04-09 09:38:31 +00:00
Dan Albert
00627f94b4 am b7460a35: am 5cf46f81: Merge "Reject changes with cleanspecs."
* commit 'b7460a352e8456d2f77d990a6e76edc9de102e98':
  Reject changes with cleanspecs.
2015-04-09 01:13:18 +00:00
Dan Albert
b7460a352e am 5cf46f81: Merge "Reject changes with cleanspecs."
* commit '5cf46f81ead958f43178ee8f613432b5f66045e5':
  Reject changes with cleanspecs.
2015-04-09 00:31:59 +00:00
Christopher Ferris
41efc92e35 Use assembly memmove for all arm32 processors.
Bug: 15110993
Change-Id: Ia3dcd6b8c4032f8c72b6f2e628b635ce99667c09
2015-04-08 16:53:16 -07:00
Dan Albert
5cf46f81ea Merge "Reject changes with cleanspecs." 2015-04-08 22:52:44 +00:00
Yabin Cui
76615dae93 Provide writer preference option in rwlock.
Previous implementation of rwlock contains four atomic variables, which
is hard to maintain and change. So I make following changes in this CL:

1. Add pending flags in rwlock.state, so we don't need to synchronize
between different atomic variables. Using compare_and_swap operations
on rwlock.state is enough for all state change.

2. Add pending_lock to protect readers/writers waiting and wake up
operations. As waiting/wakeup is not performance critical, using a
lock is easier to maintain.

3. Add writer preference option.

4. Add unit tests for rwlock.

Bug: 19109156

Change-Id: Idcaa58d695ea401d64445610b465ac5cff23ec7c
2015-04-08 13:11:13 -07:00
Dmitriy Ivanov
8614073ef3 am e2aa8002: am 598493e7: Merge "Stop libc from cross-referencing unwind symbols"
* commit 'e2aa80028999fbb896d40f27c2fe5f0691f992f0':
  Stop libc from cross-referencing unwind symbols
2015-04-07 20:12:59 +00:00
Dmitriy Ivanov
e2aa800289 am 598493e7: Merge "Stop libc from cross-referencing unwind symbols"
* commit '598493e725e0298ae11ddbdee62c3a7007eb503c':
  Stop libc from cross-referencing unwind symbols
2015-04-07 19:39:40 +00:00
Dmitriy Ivanov
598493e725 Merge "Stop libc from cross-referencing unwind symbols" 2015-04-07 19:21:32 +00:00
Neil Fuller
fb2c7ab1f0 am d4451f13: am 957f6188: Merge "Changes to re-enable overrides for tz data"
* commit 'd4451f130c754243f6c98880fa652874c567c4c3':
  Changes to re-enable overrides for tz data
2015-04-07 13:33:42 +00:00
Neil Fuller
d4451f130c am 957f6188: Merge "Changes to re-enable overrides for tz data"
* commit '957f6188fa7494ea8b7701b14df4c9127d27a9ef':
  Changes to re-enable overrides for tz data
2015-04-07 13:16:45 +00:00
Neil Fuller
957f6188fa Merge "Changes to re-enable overrides for tz data" 2015-04-07 12:55:07 +00:00
Dmitriy Ivanov
5f43c7a9bb am 6c4ef816: am 9fbd8fd4: Merge "Fix x86_64 build"
* commit '6c4ef816db5f7b9b4a659f997327d6edee65973b':
  Fix x86_64 build
2015-04-07 02:48:19 +00:00
Dmitriy Ivanov
6c4ef816db am 9fbd8fd4: Merge "Fix x86_64 build"
* commit '9fbd8fd4bc1767b65abd0fdbdb5e35cdc4dafe13':
  Fix x86_64 build
2015-04-07 02:28:57 +00:00
Dmitriy Ivanov
9fbd8fd4bc Merge "Fix x86_64 build" 2015-04-07 02:08:43 +00:00
Dmitriy Ivanov
1dce3ed249 Fix x86_64 build
Change-Id: Id81c059bf3ecdb9cc84d04d16ffda34baaadc5a1
2015-04-06 19:05:58 -07:00
Dmitriy Ivanov
cd13b14e98 Stop libc from cross-referencing unwind symbols
This makes unwind symbols 'protected',
  which should prevent them from relocating
  against libc++.so/libcutls.so.

  This is temporary file and it is going
  to be removed once libc.so stops exporting
  them.

Bug: http://b/19958712
Change-Id: I96a765afe47e68d2e2ceb288870e63a25ca52081
2015-04-07 01:48:35 +00:00
Dmitriy Ivanov
03930d4476 am 0e67ab32: am 8a1007db: Merge "Add realpath for soinfo"
* commit '0e67ab32f2a7ab6685d9e4c5a38c0d5a5396800a':
  Add realpath for soinfo
2015-04-07 00:52:43 +00:00
Dmitriy Ivanov
0e67ab32f2 am 8a1007db: Merge "Add realpath for soinfo"
* commit '8a1007dbababa6c4812c267ca9119cf0765afc3f':
  Add realpath for soinfo
2015-04-07 00:32:46 +00:00
Dmitriy Ivanov
8a1007dbab Merge "Add realpath for soinfo" 2015-04-07 00:14:57 +00:00
Elliott Hughes
53296ddab0 am 04b59972: am 67de2593: Merge "Add a test for getdelim(3) on a directory."
* commit '04b59972814b8d9c93b0fb72cbcaeeaa761894cd':
  Add a test for getdelim(3) on a directory.
2015-04-06 23:14:43 +00:00
Dan Albert
dadac10fcc Reject changes with cleanspecs.
Cleanspecs must not be removed once they have been built. This means
they can't be reverted, or reliably cherry-picked. Just skip any
changes that include them since they make such a mess.

Change-Id: I3df8d81f93651d573485de7a75ecf5c6278c0001
2015-04-06 14:22:37 -07:00
Dmitriy Ivanov
aae859cc3c Add realpath for soinfo
This change adds realpath to soinfo and
  extends limit on filenames from 128 to PATH_MAX.

  It also removes soinfo::name field, linker uses
  dt_soname instead.

Bug: http://b/19818481
Bug: https://code.google.com/p/android/issues/detail?id=80336
Change-Id: I9cff4cb5bda3ee2bc74e1bbded9594ea7fbe2a08
2015-04-06 21:15:43 +00:00
Elliott Hughes
04b5997281 am 67de2593: Merge "Add a test for getdelim(3) on a directory."
* commit '67de2593b3d7e9e94ac8993efd51da4b512c6af5':
  Add a test for getdelim(3) on a directory.
2015-04-06 19:49:26 +00:00
Elliott Hughes
67de2593b3 Merge "Add a test for getdelim(3) on a directory." 2015-04-06 19:36:13 +00:00
Elliott Hughes
694fd2d880 Add a test for getdelim(3) on a directory.
Apparently uClibc has a bug here. We don't, but let's keep it that way.

Bug: http://landley.net/notes.html#21-03-2015
Change-Id: If406df963db9bee47921d7a1c116ebcab08d96bf
2015-04-05 10:51:56 -07:00
Yabin Cui
f297fca177 am 9c4d0941: am 4bd8f963: Merge "Fix bug for recursive/errorcheck mutex on 32-bit devices."
* commit '9c4d0941f985e2ab9ec5fca579dc98d4ad26fec2':
  Fix bug for recursive/errorcheck mutex on 32-bit devices.
2015-04-04 20:07:23 +00:00
Yabin Cui
9c4d0941f9 am 4bd8f963: Merge "Fix bug for recursive/errorcheck mutex on 32-bit devices."
* commit '4bd8f9637daaada333ff35945b00cfe6cb822376':
  Fix bug for recursive/errorcheck mutex on 32-bit devices.
2015-04-04 19:47:57 +00:00
Yabin Cui
4bd8f9637d Merge "Fix bug for recursive/errorcheck mutex on 32-bit devices." 2015-04-04 19:31:55 +00:00
Yabin Cui
f796985923 Fix bug for recursive/errorcheck mutex on 32-bit devices.
Bug: 19216648
Change-Id: I3b43b2d18d25b9bde352da1e35f9568133dec7cf
2015-04-03 19:01:17 -07:00
Dmitriy Ivanov
ccacf7c16a am 5a811bed: am e686df8d: Merge "Add libdl dependency for target libraries"
* commit '5a811bed273651406c91c543eefb19d12a55f9b4':
  Add libdl dependency for target libraries
2015-04-03 23:34:13 +00:00
Dmitriy Ivanov
5a811bed27 am e686df8d: Merge "Add libdl dependency for target libraries"
* commit 'e686df8d839216460f02cf7db6c4e26a13e49afd':
  Add libdl dependency for target libraries
2015-04-03 23:14:29 +00:00
Dmitriy Ivanov
e686df8d83 Merge "Add libdl dependency for target libraries" 2015-04-03 22:54:06 +00:00
Dmitriy Ivanov
45c57131d2 Add libdl dependency for target libraries
Fixed x86_64 target build with gcc 4.9

Change-Id: Id3b1e9286c2bcbb8e3ac117bcef957304db7cfd3
2015-04-03 15:17:52 -07:00
Elliott Hughes
329aefb20f am d7e64284: am cec2ab20: Merge "Try again to fix clang build."
* commit 'd7e64284ca7fa71d298d26e1ba84ce993bb98c92':
  Try again to fix clang build.
2015-04-03 21:19:41 +00:00
Elliott Hughes
d7e64284ca am cec2ab20: Merge "Try again to fix clang build."
* commit 'cec2ab20a0d2b24c15aa289cbac5d4291c856092':
  Try again to fix clang build.
2015-04-03 20:58:48 +00:00
Elliott Hughes
4c8c63a4de am f29f8ae6: am ec8b3a7d: Merge "Fix clang build."
* commit 'f29f8ae6e3fb8af2944cdbb2c0d29894c51cf3e5':
  Fix clang build.
2015-04-03 20:53:13 +00:00
Elliott Hughes
cec2ab20a0 Merge "Try again to fix clang build." 2015-04-03 20:38:15 +00:00
Elliott Hughes
dffd3c5838 Try again to fix clang build.
I got the condition the wrong way round in the previous change.

Bug: http://b/20065774
Change-Id: I218b224b37f5fb2f7c7ec2f9af27472b340c4b15
2015-04-03 13:37:18 -07:00
Elliott Hughes
f29f8ae6e3 am ec8b3a7d: Merge "Fix clang build."
* commit 'ec8b3a7dde3c282c4f9ca5c8bf5a7e1b7469def0':
  Fix clang build.
2015-04-03 20:36:55 +00:00
Dmitriy Ivanov
c461b78e43 am 5057929f: am aea165cb: Merge "Add ANDROID_DLEXT_FORCE_LOAD flag"
* commit '5057929fc8a71feedffaf7a688468d9f8ea1621f':
  Add ANDROID_DLEXT_FORCE_LOAD flag
2015-04-03 20:24:27 +00:00
Elliott Hughes
003b1639bd am 97c78020: am b1f1de4d: Merge "Fix volantis boot."
* commit '97c7802038b3c2472d2377984e749f398eee078c':
  Fix volantis boot.
2015-04-03 20:24:26 +00:00
Elliott Hughes
ec8b3a7dde Merge "Fix clang build." 2015-04-03 20:12:02 +00:00
Elliott Hughes
0975a5d9d2 Fix clang build.
Apparently clang really doesn't want you to take the address of a builtin.
Since this is only a temporary hack, let's just shrug and accept that
clang-built volantis images won't work until we have new NVIDIA blobs.

Bug: http://b/20065774
Change-Id: I4c8e893b15a1af8f9c54d3f89bfef112b63d09b4
2015-04-03 13:10:04 -07:00
Dmitriy Ivanov
5057929fc8 am aea165cb: Merge "Add ANDROID_DLEXT_FORCE_LOAD flag"
* commit 'aea165cb03abceb85062e94f22f72e1c9d9800a4':
  Add ANDROID_DLEXT_FORCE_LOAD flag
2015-04-03 19:59:03 +00:00
Elliott Hughes
97c7802038 am b1f1de4d: Merge "Fix volantis boot."
* commit 'b1f1de4dd4b1a3802abd5284de9ebfe6a98057f1':
  Fix volantis boot.
2015-04-03 19:59:01 +00:00
Dmitriy Ivanov
aea165cb03 Merge "Add ANDROID_DLEXT_FORCE_LOAD flag" 2015-04-03 19:45:24 +00:00
Elliott Hughes
b1f1de4dd4 Merge "Fix volantis boot." 2015-04-03 19:38:31 +00:00
Elliott Hughes
76e1cbca75 Fix volantis boot.
NVIDIA binary blobs are assuming that __cache_clear, _Unwind_Backtrace,
and _Unwind_GetIP are all in some library that they link, but now we've
cleaned up this leakage, they're no longer getting it. Deliberately leak
the symbols from libc.so until we get new blobs.

Bug: http://b/20065774
Change-Id: I92ef07b2bce8d1ad719bf40dab41d745cd6904d4
2015-04-03 12:37:03 -07:00
Dmitriy Ivanov
9b82136b98 Add ANDROID_DLEXT_FORCE_LOAD flag
This flag allows to force loading of the library
  in the case when for some reason multiple ELF files
  share the same filename (because the already-loaded
  library has been removed and overwritten, for example).

Change-Id: I798d44409ee13d63eaa75d685e99c4d028d2b0c1
2015-04-03 10:50:48 -07:00
Dmitriy Ivanov
3eef109c40 am 76832b63: am 06b6e3c5: Merge "Look into local group on dlsym with RTLD_DEFAULT"
* commit '76832b63967c81549a6628f7bd02eada1b11e238':
  Look into local group on dlsym with RTLD_DEFAULT
2015-04-02 22:35:49 +00:00
Dmitriy Ivanov
76832b6396 am 06b6e3c5: Merge "Look into local group on dlsym with RTLD_DEFAULT"
* commit '06b6e3c51d38d70c5ca99f3a3f795697031ac27f':
  Look into local group on dlsym with RTLD_DEFAULT
2015-04-02 22:14:58 +00:00
Dmitriy Ivanov
06b6e3c51d Merge "Look into local group on dlsym with RTLD_DEFAULT" 2015-04-02 21:55:01 +00:00
Dmitriy Ivanov
76ac1acdac Look into local group on dlsym with RTLD_DEFAULT
Fix dlsym to look into local group when called with
  RTLD_DEFAULT and RTLD_NEXT.

Bug: 17512583
Change-Id: I541354e89539c712af2ea4ec751e546913027084
2015-04-02 14:12:45 -07:00
Elliott Hughes
84afcc3e1e am 918415f3: am d619d6ff: Merge "Remove _memset16 and _memset32 from mips/mips64 bionic."
* commit '918415f3dc8590f422fa3540c0c6877360745466':
  Remove _memset16 and _memset32 from mips/mips64 bionic.
2015-04-02 21:08:58 +00:00
Yabin Cui
9e2f2b4d88 am 801bf53a: am 00d1101c: Merge "Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices."
* commit '801bf53a2740fadd23752ce8fdb8484fb478897b':
  Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices.
2015-04-02 21:08:57 +00:00
Elliott Hughes
918415f3dc am d619d6ff: Merge "Remove _memset16 and _memset32 from mips/mips64 bionic."
* commit 'd619d6ffb876de6a8f051c850762a6f7a7e55c76':
  Remove _memset16 and _memset32 from mips/mips64 bionic.
2015-04-02 20:47:54 +00:00
Yabin Cui
801bf53a27 am 00d1101c: Merge "Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices."
* commit '00d1101cc170ce786f26143a897b4a3e3363b55f':
  Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices.
2015-04-02 20:47:53 +00:00
Elliott Hughes
d619d6ffb8 Merge "Remove _memset16 and _memset32 from mips/mips64 bionic." 2015-04-02 20:35:22 +00:00
Yabin Cui
00d1101cc1 Merge "Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices." 2015-04-02 20:27:40 +00:00
Christopher Ferris
9d4c2337b0 am 5c0dc67b: am 618935d2: Merge "gtest_repeat should allow negative values."
* commit '5c0dc67be53100f64e678e4b19ae46ea287c75ea':
  gtest_repeat should allow negative values.
2015-04-02 20:02:35 +00:00
Christopher Ferris
5c0dc67be5 am 618935d2: Merge "gtest_repeat should allow negative values."
* commit '618935d2679e84cc839316c042ee3dde5f7d7097':
  gtest_repeat should allow negative values.
2015-04-02 19:42:49 +00:00
Christopher Ferris
618935d267 Merge "gtest_repeat should allow negative values." 2015-04-02 19:19:38 +00:00
Christopher Ferris
119cb55d43 gtest_repeat should allow negative values.
If you pass in a negative value to gtest_repeat, it should run forever.
The new runner didn't allow this, now it does.

Change-Id: Ie0002c12e2fdad22b264adca37c165cfcfe05c7a
2015-04-02 12:16:00 -07:00
Elliott Hughes
b0cf9288cd Remove _memset16 and _memset32 from mips/mips64 bionic.
These should be in libcutils instead.

Change-Id: Ibbc94755e6da61bf9ce2c8f9a047a082bb9bce24
2015-04-02 10:34:58 -07:00
Nick Kralevich
c68d6bcd8e am 3b84e4bc: am 3cc3f17a: Merge "linker: never mark pages simultaneously writable / executable"
* commit '3b84e4bcd020cb917067fa87e4a60a62c5c42928':
  linker: never mark pages simultaneously writable / executable
2015-04-02 14:21:58 +00:00
Nick Kralevich
3b84e4bcd0 am 3cc3f17a: Merge "linker: never mark pages simultaneously writable / executable"
* commit '3cc3f17aa4b241da7303299032e4269fcf92a4e6':
  linker: never mark pages simultaneously writable / executable
2015-04-02 13:59:26 +00:00
Nick Kralevich
3cc3f17aa4 Merge "linker: never mark pages simultaneously writable / executable" 2015-04-02 13:29:50 +00:00
Yabin Cui
e69c24543d Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices.
Bug: 19216648
Change-Id: I765ecacc9036659c766f5d1f6600e1a65364199b
2015-04-01 21:12:22 -07:00
Dan Albert
5856150605 am 004d0048: am ab7c79e2: Merge "Don\'t export new/delete from libc shared libraries."
* commit '004d004868613b9ad00453661838e0f372958dba':
  Don't export new/delete from libc shared libraries.
2015-04-02 02:59:52 +00:00
Dimitry Ivanov
84f634469b am b3c17a19: am 202af3a2: Merge "Revert "Remove text-relocation support for lp32""
* commit 'b3c17a196222cc09af98f095a0863fc048309fa7':
  Revert "Remove text-relocation support for lp32"
2015-04-02 01:38:57 +00:00
Dan Albert
004d004868 am ab7c79e2: Merge "Don\'t export new/delete from libc shared libraries."
* commit 'ab7c79e22e5495a2aa171047a044ce1037e461a9':
  Don't export new/delete from libc shared libraries.
2015-04-02 01:13:18 +00:00
Nick Kralevich
8fdb3419a5 linker: never mark pages simultaneously writable / executable
When the Android dynamic linker handles a text relocation,
it first relaxes the permissions on the segment being modified,
performs the modifications, and then restores the page permissions.
The relaxation worked by adding PROT_WRITE to whatever protection
bits were set in the section. In effect, the pages were getting set
to PROT_READ|PROT_WRITE|PROT_EXEC, modified, then restored to
PROT_READ|PROT_EXEC

The SELinux kernel code differentiates between 4 different kinds
of executable memory:
* Executable stack (execstack)
* Executable heap (execheap)
* File-based executable code which has been modified (execmod)
* All other executable memory (execmem)

The execmod capability is only triggered by the kernel when a
dirty but non-executable mmap()ed page becomes executable. When that
occurs, an SELinux policy check is done to see if the execmod capability
is provided by policy.

However, if the page is already executable, and PROT_WRITE is added
to the page, it's considered an execmem permission check, not an execmod
permission check.

There are certain circumstances where we may want to distinguish between
execmod and execmem. This change adjusts the dynamic linker to avoid
using RWX pages, so that an RX -> RW -> RX transition will properly
be detected as an execmod permission check instead of an execmem permission
check.

Bug: 20013628
Change-Id: I14d7be29170b156942f9809023f3b2fc1f37846c
2015-04-01 18:05:19 -07:00
Dan Albert
ab7c79e22e Merge "Don't export new/delete from libc shared libraries." 2015-04-01 23:33:53 +00:00
Dan Albert
d6bf3d5e19 Don't export new/delete from libc shared libraries.
This used to be handled by -fvisibility=hidden on libc_cxa, but that
was broken by the resolution of https://llvm.org/PR22419 (introduced
to Android in today's clang update).

Now we just use a version script that prevents these from being
re-exported from our shared libraries.

Change-Id: Ib290e1d0d7426e09ad17a91178162fff6dbdcfa9
2015-04-01 16:31:57 -07:00
Elliott Hughes
08c16b17a1 am d4144fd7: am b023799a: Merge "Fix ftw tests when run as non-root."
* commit 'd4144fd700974911fc28e69174ec526d081ea902':
  Fix ftw tests when run as non-root.
2015-04-01 22:09:30 +00:00
Elliott Hughes
ee7ec71284 am a031e93d: am d227d57d: Merge "Update README.md for running tests on the host."
* commit 'a031e93df3578f46507ce0efa3a40a6a391fd81f':
  Update README.md for running tests on the host.
2015-04-01 22:09:26 +00:00
Dimitry Ivanov
b3c17a1962 am 202af3a2: Merge "Revert "Remove text-relocation support for lp32""
* commit '202af3a23cb23e2571011ea76367ff3e88dfd48e':
  Revert "Remove text-relocation support for lp32"
2015-04-01 21:44:47 +00:00
Dimitry Ivanov
202af3a23c Merge "Revert "Remove text-relocation support for lp32"" 2015-04-01 21:28:29 +00:00
Dimitry Ivanov
56be6ed9e4 Revert "Remove text-relocation support for lp32"
This reverts commit cb00add1b382d1e3045876d7e1ccbee2fdce976b.

Bug: 20020312
Bug: 20013628
Change-Id: I8baa3d4b6c7fef50c9e2531257d5b96762099eb3
2015-04-01 21:18:48 +00:00
Elliott Hughes
d4144fd700 am b023799a: Merge "Fix ftw tests when run as non-root."
* commit 'b023799a6027924aad13b0f91c0b5b7f1b9cfe2d':
  Fix ftw tests when run as non-root.
2015-04-01 19:48:51 +00:00
Elliott Hughes
a031e93df3 am d227d57d: Merge "Update README.md for running tests on the host."
* commit 'd227d57d50f7a5251dbbfa3f2b41d3fe882851fa':
  Update README.md for running tests on the host.
2015-04-01 19:37:45 +00:00
Elliott Hughes
b023799a60 Merge "Fix ftw tests when run as non-root." 2015-04-01 19:32:15 +00:00
Elliott Hughes
0ad256c1b2 Fix ftw tests when run as non-root.
Root can create subdirectories inside non-writable directories, but
other users can't.

Change-Id: I102fe610d1bd2733aebf184b544e58612465287d
2015-04-01 12:22:40 -07:00
Elliott Hughes
d227d57d50 Merge "Update README.md for running tests on the host." 2015-04-01 19:20:09 +00:00
Elliott Hughes
d3d018b2b4 Update README.md for running tests on the host.
Change-Id: Ib360d91bffd269e7acdb20ad33a7bd85345a1475
2015-04-01 12:16:56 -07:00
Dmitriy Ivanov
fd5f718d6e am b3f8daab: am 61a35fa4: Merge "Remove text-relocation support for lp32"
* commit 'b3f8daab591fef3eabb8f9151334bb4a5c6eafda':
  Remove text-relocation support for lp32
2015-04-01 02:32:07 +00:00
Mark Salyzyn
80416cca09 am 64226a48: am 8f41142c: Merge "stubs missing include for string.h"
* commit '64226a48a1e9b25bb6985c9c14097d400039be35':
  stubs missing include for string.h
2015-04-01 02:32:05 +00:00
Elliott Hughes
1fe8a49ed4 am c325dfdd: am 72035734: Merge "Make ThreadLocalBuffer a class rather than a macro."
* commit 'c325dfdd8e44d4124e7122b1435ba66287ef6e08':
  Make ThreadLocalBuffer a class rather than a macro.
2015-04-01 02:32:03 +00:00
Christopher Ferris
0ddef60c42 am 8f604eb4: am 89a4a541: Merge "Upgrade kernel headers to 3.18.10."
* commit '8f604eb4097ae6e0ac89981fe2ff85a9c22d3a4c':
  Upgrade kernel headers to 3.18.10.
2015-04-01 02:32:01 +00:00
Dmitriy Ivanov
b3f8daab59 am 61a35fa4: Merge "Remove text-relocation support for lp32"
* commit '61a35fa40c898dc08c28c9da8b174ba5d5614579':
  Remove text-relocation support for lp32
2015-04-01 01:51:51 +00:00
Mark Salyzyn
64226a48a1 am 8f41142c: Merge "stubs missing include for string.h"
* commit '8f41142cd631bdd8bf02dcfbb599e5edbfcbd67e':
  stubs missing include for string.h
2015-04-01 01:40:57 +00:00
Elliott Hughes
c325dfdd8e am 72035734: Merge "Make ThreadLocalBuffer a class rather than a macro."
* commit '72035734af2d8558a3ccd7e29626216e20aed6f2':
  Make ThreadLocalBuffer a class rather than a macro.
2015-04-01 01:40:56 +00:00
Dmitriy Ivanov
61a35fa40c Merge "Remove text-relocation support for lp32" 2015-04-01 01:37:46 +00:00
Christopher Ferris
8f604eb409 am 89a4a541: Merge "Upgrade kernel headers to 3.18.10."
* commit '89a4a54104d566bbfd226ed1e3abcf047b871690':
  Upgrade kernel headers to 3.18.10.
2015-04-01 01:32:54 +00:00
Mark Salyzyn
8f41142cd6 Merge "stubs missing include for string.h" 2015-04-01 00:55:19 +00:00
Elliott Hughes
72035734af Merge "Make ThreadLocalBuffer a class rather than a macro." 2015-04-01 00:51:57 +00:00
Dmitriy Ivanov
cb00add1b3 Remove text-relocation support for lp32
Bug: 20013628
Change-Id: Idaf8012f00ee1304d429c3b42f9ebc6b648c55b8
2015-03-31 17:42:45 -07:00
Mark Salyzyn
56b2768176 stubs missing include for string.h
stubs.cpp gets string.h inherited from private/android_filesystem_config.h
it should not rely on this in the future. The intent is to move fs_config
function into libcutils and thus deprecate any need for string.h in this
include file.

Change-Id: I946ec1979ef5bbb34fbcb4a99bf2cd79280bb2a3
2015-03-31 16:58:35 -07:00
Dmitriy Ivanov
41b70f5374 am d7d6d13b: am 52a0f014: Merge "Fix long lines and replace macros with functions."
* commit 'd7d6d13be8565a7d2fb43ecc8c60b0d627bb9dc1':
  Fix long lines and replace macros with functions.
2015-03-31 23:01:04 +00:00
Christopher Ferris
89a4a54104 Merge "Upgrade kernel headers to 3.18.10." 2015-03-31 22:37:05 +00:00
Christopher Ferris
e01d32f802 Upgrade kernel headers to 3.18.10.
Change-Id: Iff1f1c830780585990856a5114b559c61282dcd6
2015-03-31 14:57:48 -07:00
Dmitriy Ivanov
d7d6d13be8 am 52a0f014: Merge "Fix long lines and replace macros with functions."
* commit '52a0f01421fde3cd4f879b491a9f491d792fa2d5':
  Fix long lines and replace macros with functions.
2015-03-31 20:28:51 +00:00
Dmitriy Ivanov
52a0f01421 Merge "Fix long lines and replace macros with functions." 2015-03-31 20:19:53 +00:00
Dmitriy Ivanov
20d89cb5b0 Fix long lines and replace macros with functions.
Change-Id: I4e1cab488d5b2c8e4289da617350a86e72a4ba12
2015-03-31 11:49:25 -07:00
Elliott Hughes
6170693e28 Make ThreadLocalBuffer a class rather than a macro.
Bug: 19995392
Change-Id: I497c512648fbe66257da3fb3bcd5c9911f983705
2015-03-31 10:56:58 -07:00
Yabin Cui
934eca1cb4 am e58918f7: am 611fd2cc: Merge "Revert "Revert "add guard pages to the internal signal stacks"""
* commit 'e58918f73aec07d0d3e857718f90e6282ce0056b':
  Revert "Revert "add guard pages to the internal signal stacks""
2015-03-31 04:49:32 +00:00
Yabin Cui
e58918f73a am 611fd2cc: Merge "Revert "Revert "add guard pages to the internal signal stacks"""
* commit '611fd2cc91f79be6759f6e630e1e81998326dfe8':
  Revert "Revert "add guard pages to the internal signal stacks""
2015-03-31 04:36:45 +00:00
Yabin Cui
611fd2cc91 Merge "Revert "Revert "add guard pages to the internal signal stacks""" 2015-03-31 04:24:08 +00:00
Yabin Cui
ef11500301 Revert "Revert "add guard pages to the internal signal stacks""
This reverts commit a3125fd1396a09a7fc4872dc4653f342150a3deb.
And Fix the prctl() problem that cause system crash.

Change-Id: Icc8d12d848cfba881a7984ca2827fd81be41f9fd
2015-03-30 20:51:39 -07:00
Elliott Hughes
558f6b0177 am 85f42bd3: am 8225ad63: Merge "Revert "add guard pages to the internal signal stacks""
* commit '85f42bd31b55b83df7503480673a1d3112e50291':
  Revert "add guard pages to the internal signal stacks"
2015-03-31 03:07:18 +00:00
Elliott Hughes
832253b966 am 0c2b7a72: am 2746b928: Merge "Revert "Fix clang build breakage ("arithmetic on a pointer to void").""
* commit '0c2b7a72af0c64d3d3cf33311be99a4f25e01a29':
  Revert "Fix clang build breakage ("arithmetic on a pointer to void")."
2015-03-31 03:07:16 +00:00
Elliott Hughes
85f42bd31b am 8225ad63: Merge "Revert "add guard pages to the internal signal stacks""
* commit '8225ad63fac7c5cc298884c101a344959b87dc39':
  Revert "add guard pages to the internal signal stacks"
2015-03-31 02:54:14 +00:00
Elliott Hughes
0c2b7a72af am 2746b928: Merge "Revert "Fix clang build breakage ("arithmetic on a pointer to void").""
* commit '2746b9289abc0fd5e38b94fc96d101e5e242d9f2':
  Revert "Fix clang build breakage ("arithmetic on a pointer to void")."
2015-03-31 02:54:11 +00:00
Elliott Hughes
8225ad63fa Merge "Revert "add guard pages to the internal signal stacks"" 2015-03-31 02:42:51 +00:00
Elliott Hughes
a3125fd139 Revert "add guard pages to the internal signal stacks"
This reverts commit 595752f623ae88f7e4193a6e531a0805f1c6c4dc.

Change-Id: Iefa66e9049ca0424e53cd5fc320d161b93556dcb
2015-03-31 02:42:39 +00:00
Elliott Hughes
2746b9289a Merge "Revert "Fix clang build breakage ("arithmetic on a pointer to void")."" 2015-03-31 02:41:33 +00:00
Elliott Hughes
3925f32ffb Revert "Fix clang build breakage ("arithmetic on a pointer to void")."
This reverts commit 16c77212792808b9e4d8229e64c5b42f4327b6dc.

Change-Id: I568dee5400599693b1585ce6d4be7a0b5f37dc74
2015-03-31 02:41:20 +00:00
Elliott Hughes
a134eda3fa am aa23e36c: am 2d84d870: Merge "Fix clang build breakage ("arithmetic on a pointer to void")."
* commit 'aa23e36ceef86f8a73d4c100c8e5a126253c5ff5':
  Fix clang build breakage ("arithmetic on a pointer to void").
2015-03-30 23:14:42 +00:00
Elliott Hughes
ec5998271c am 935967bd: am 373748f4: Merge "add guard pages to the internal signal stacks"
* commit '935967bde1b03fb53e661d8e037819209dee97c9':
  add guard pages to the internal signal stacks
2015-03-30 21:46:07 +00:00
Elliott Hughes
aa23e36cee am 2d84d870: Merge "Fix clang build breakage ("arithmetic on a pointer to void")."
* commit '2d84d870db0e6db54cf09441434bf2f5b28c6492':
  Fix clang build breakage ("arithmetic on a pointer to void").
2015-03-30 21:45:37 +00:00
Elliott Hughes
935967bde1 am 373748f4: Merge "add guard pages to the internal signal stacks"
* commit '373748f4c66bb37e564716590e7b4fc8a64e0884':
  add guard pages to the internal signal stacks
2015-03-30 21:35:56 +00:00
Elliott Hughes
2d84d870db Merge "Fix clang build breakage ("arithmetic on a pointer to void")." 2015-03-30 21:34:07 +00:00
Elliott Hughes
16c7721279 Fix clang build breakage ("arithmetic on a pointer to void").
Change-Id: Ia0953fc1cd0f8ea2d4423b3c6e34f6dc7a9f31e9
2015-03-30 14:33:02 -07:00
Elliott Hughes
373748f4c6 Merge "add guard pages to the internal signal stacks" 2015-03-30 21:24:36 +00:00
Daniel Micay
595752f623 add guard pages to the internal signal stacks
Signal handlers tend to be lean, but can still overflow the (tiny)
stack.

Change-Id: Ia21c6453d92a9f8d1536ad01ff26a1a84c05f8fb
2015-03-30 17:13:20 -04:00
Nick Kralevich
e9311f0b7c am c9397b74: am 203082b8: Merge "linker_environ: clear MALLOC_CONF when AT_SECURE=1"
* commit 'c9397b74a96764a434f2206c4fb8471f382966e3':
  linker_environ: clear MALLOC_CONF when AT_SECURE=1
2015-03-27 23:43:40 +00:00
Dmitriy Ivanov
f57a0367f7 am 267422ac: am 5c136382: Merge "Fix libstdc++.so hash-style."
* commit '267422ac858ae8cb38c655e4ac7b5f755d02881f':
  Fix libstdc++.so hash-style.
2015-03-27 23:43:39 +00:00
Nick Kralevich
c9397b74a9 am 203082b8: Merge "linker_environ: clear MALLOC_CONF when AT_SECURE=1"
* commit '203082b8217cd853eee510ad371b382701960610':
  linker_environ: clear MALLOC_CONF when AT_SECURE=1
2015-03-27 23:22:04 +00:00
Dmitriy Ivanov
267422ac85 am 5c136382: Merge "Fix libstdc++.so hash-style."
* commit '5c136382a6f1ad796a60463898d4c08fadead669':
  Fix libstdc++.so hash-style.
2015-03-27 23:22:02 +00:00
Dmitriy Ivanov
5f1a2f44ea am 85ca90c7: am cd79a59b: Merge "Add test for thread_local keyword."
* commit '85ca90c72e9ca2605640cc94ae1ce45cae02e9e4':
  Add test for thread_local keyword.
2015-03-27 23:21:55 +00:00
Nick Kralevich
203082b821 Merge "linker_environ: clear MALLOC_CONF when AT_SECURE=1" 2015-03-27 22:55:20 +00:00
Nick Kralevich
e001ca3e18 linker_environ: clear MALLOC_CONF when AT_SECURE=1
Clear JE_MALLOC_CONF and MALLOC_CONF

Change-Id: Ia76e263783194ecaa362e8ccafbe13a28a4a1ba6
2015-03-27 15:49:33 -07:00
Dmitriy Ivanov
5c136382a6 Merge "Fix libstdc++.so hash-style." 2015-03-27 22:46:52 +00:00
Dmitriy Ivanov
402d199450 Fix libstdc++.so hash-style.
Bug: 19059885
Bug: 19958712
Change-Id: I167457a54cc688d64912a50f5fb75e4e2f3e3937
2015-03-27 15:27:07 -07:00
Dmitriy Ivanov
85ca90c72e am cd79a59b: Merge "Add test for thread_local keyword."
* commit 'cd79a59b18f8e81b5f37258f376a726dc8acb81a':
  Add test for thread_local keyword.
2015-03-27 21:41:56 +00:00
Dmitriy Ivanov
cd79a59b18 Merge "Add test for thread_local keyword." 2015-03-27 20:07:35 +00:00
Dmitriy Ivanov
947adedebc Add test for thread_local keyword.
For gcc only for the time being.

Bug: 19800080
Bug: 16696563
Change-Id: Ifaa59a131ca2d9030554cee7ce631dcb1d081938
2015-03-27 12:05:36 -07:00
Dmitriy Ivanov
708d0423d9 am 09ffd5b8: am cfd794a9: Merge "Explain why we need objcopy for the linker"
* commit '09ffd5b8d560106759be8fe2b34e5e6e58e27ca5':
  Explain why we need objcopy for the linker
2015-03-27 00:15:01 +00:00
Dmitriy Ivanov
09ffd5b8d5 am cfd794a9: Merge "Explain why we need objcopy for the linker"
* commit 'cfd794a96d0c4f1d97e54b701b408dafdb514d17':
  Explain why we need objcopy for the linker
2015-03-27 00:01:30 +00:00
Dmitriy Ivanov
cfd794a96d Merge "Explain why we need objcopy for the linker" 2015-03-26 23:49:23 +00:00
Dmitriy Ivanov
797bffb760 Explain why we need objcopy for the linker
Change-Id: I646673abc6095b56f72add493b60925375b75b78
2015-03-26 16:47:18 -07:00
Yabin Cui
d6eb84ea2c am 71fe7f4a: am 8f3eb5a4: Merge "Revert "Cause Fatal error when invalid pthread_id is detected.""
* commit '71fe7f4ad7499bb225ec05330288f6bee2dc0ab0':
  Revert "Cause Fatal error when invalid pthread_id is detected."
2015-03-26 19:23:15 +00:00
Simon Baldwin
988d91d384 am 59409c68: am 7c01e3a9: Merge "Fix comment drift in assorted relocation packer modules."
* commit '59409c68ebdc8cdcb3b3ff9f4a5bdee9570c67d0':
  Fix comment drift in assorted relocation packer modules.
2015-03-26 18:29:21 +00:00
Yabin Cui
71fe7f4ad7 am 8f3eb5a4: Merge "Revert "Cause Fatal error when invalid pthread_id is detected.""
* commit '8f3eb5a4e5dbbac1fb431e40e25eec07ecc24ee8':
  Revert "Cause Fatal error when invalid pthread_id is detected."
2015-03-26 18:27:10 +00:00
Dmitriy Ivanov
9dfe17cc7c am 73f4a8b6: am f2d153f8: Merge "Initial implementation of __cxa_thread_atexit_impl"
* commit '73f4a8b616b9a51fcce2b46da526620aa04ae9f4':
  Initial implementation of __cxa_thread_atexit_impl
2015-03-26 18:23:07 +00:00
Simon Baldwin
59409c68eb am 7c01e3a9: Merge "Fix comment drift in assorted relocation packer modules."
* commit '7c01e3a9ba80c85c7e7998d2347885e9a6e3bbf2':
  Fix comment drift in assorted relocation packer modules.
2015-03-26 18:16:10 +00:00
Yabin Cui
8f3eb5a4e5 Merge "Revert "Cause Fatal error when invalid pthread_id is detected."" 2015-03-26 18:14:23 +00:00
Yabin Cui
220b99bdc1 Revert "Cause Fatal error when invalid pthread_id is detected."
Some code like in https://buganizer.corp.google.com/u/0/issues/19942911 need to change first.

This reverts commit 03324780aae9ff28c8acf52debf0ea39120e5ab8.

Change-Id: I13ff1e5b3d0672bae9cde234ffba32fbbf33d338
2015-03-26 18:13:07 +00:00
Dmitriy Ivanov
73f4a8b616 am f2d153f8: Merge "Initial implementation of __cxa_thread_atexit_impl"
* commit 'f2d153f836e529892854b91452fabd2c2fa79c05':
  Initial implementation of __cxa_thread_atexit_impl
2015-03-26 18:08:37 +00:00
Simon Baldwin
7c01e3a9ba Merge "Fix comment drift in assorted relocation packer modules." 2015-03-26 18:01:13 +00:00
Dmitriy Ivanov
f2d153f836 Merge "Initial implementation of __cxa_thread_atexit_impl" 2015-03-26 17:50:23 +00:00
Simon Baldwin
32123dac5f am 20003502: am 7f8d91ea: Merge "Remove unused/unusable relocation packer files."
* commit '20003502df967d15e194bd032f0ccf14f6b71e3f':
  Remove unused/unusable relocation packer files.
2015-03-26 17:46:05 +00:00
Simon Baldwin
569a752689 Fix comment drift in assorted relocation packer modules.
Some of the commentary in relocation packer code is relevant
only to the packing strategy employed by chromium, and no
longer applies here.  This change fixes or deletes it.

Code comment change only; no functional effect.

Change-Id: Id229ee1d802bba608be15b79bc75bf90df557dab
Signed-off-by: Simon Baldwin <simonb@google.com>
2015-03-26 17:13:19 +00:00
Simon Baldwin
20003502df am 7f8d91ea: Merge "Remove unused/unusable relocation packer files."
* commit '7f8d91ea8e24e89db39ae868085913e763e04557':
  Remove unused/unusable relocation packer files.
2015-03-26 16:55:09 +00:00
Simon Baldwin
7f8d91ea8e Merge "Remove unused/unusable relocation packer files." 2015-03-26 16:41:02 +00:00
Yabin Cui
c1033489bf am efe1aff0: am b9232c94: Merge "Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER."
* commit 'efe1aff09daef1b1cbe9d9f37c0922f596f01977':
  Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER.
2015-03-26 16:27:34 +00:00
Yabin Cui
efe1aff09d am b9232c94: Merge "Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER."
* commit 'b9232c94da831d485b3896580a3d1ac9abc46a4f':
  Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER.
2015-03-26 04:36:16 +00:00
Yabin Cui
03717a8adf am 6f9a3522: am 69847bc2: Merge "Hide internal of pthread_mutex_t."
* commit '6f9a35222bccc19dbd66a8a25a0f53b8e53603d9':
  Hide internal of pthread_mutex_t.
2015-03-26 04:28:52 +00:00
Yabin Cui
8cb44aa974 am 0682e44f: am fa3dcecc: Merge "Fix in error handling in pthread_create.cpp."
* commit '0682e44f7c2b961e8e36016829ea4cdca3e0fbe1':
  Fix in error handling in pthread_create.cpp.
2015-03-26 04:28:51 +00:00
Yabin Cui
b9232c94da Merge "Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER." 2015-03-26 04:21:15 +00:00
Yabin Cui
6f9a35222b am 69847bc2: Merge "Hide internal of pthread_mutex_t."
* commit '69847bc298de62917663d22b6733ef75b57124fa':
  Hide internal of pthread_mutex_t.
2015-03-26 04:19:40 +00:00
Yabin Cui
0682e44f7c am fa3dcecc: Merge "Fix in error handling in pthread_create.cpp."
* commit 'fa3dcecc0fd7bbbf04234e41be690a5d33277870':
  Fix in error handling in pthread_create.cpp.
2015-03-26 04:19:39 +00:00
Yabin Cui
377243b78c Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER.
These macros are also not used in glibc. And we should use
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP instead.

Change-Id: I35195e2f499712dcde9305bbb93622d0f7ca874b
2015-03-25 21:02:36 -07:00
Yabin Cui
69847bc298 Merge "Hide internal of pthread_mutex_t." 2015-03-26 02:10:07 +00:00
Dmitriy Ivanov
df79c330d8 Initial implementation of __cxa_thread_atexit_impl
This is initial implementations; does not yet handle
  dlclose - undefined behavior, needs linker support to
  handle it right.

Bug: 19800080
Bug: 16696563
Change-Id: I7a3e21ed7f7ec01e62ea1b7cb2ab253590ea0686
2015-03-25 18:07:59 -07:00
Yabin Cui
17393b06ba Hide internal of pthread_mutex_t.
Bug: 19249079
Change-Id: Iffb79c8d861b698d474f212dc80c638fc2cf1620
2015-03-25 17:54:17 -07:00
Yabin Cui
fa3dcecc0f Merge "Fix in error handling in pthread_create.cpp." 2015-03-26 00:26:59 +00:00
Yabin Cui
55139f17fd am 3ae2774a: am 36d5b6f4: Merge "Cause Fatal error when invalid pthread_id is detected."
* commit '3ae2774aa0b05e0c80d7e0820a33325795c23df2':
  Cause Fatal error when invalid pthread_id is detected.
2015-03-25 23:41:19 +00:00
Yabin Cui
799cb35f45 Fix in error handling in pthread_create.cpp.
It is due to a previous change "Let g_thread_list_lock only protect g_thread_list".
We need to add the newly created thread to thread_list even if
__init_thread fails, so the thread can exit successfully.

Change-Id: I0332df11acfdd181350bcc092b12d90d679057a4
2015-03-25 16:18:21 -07:00
Yabin Cui
3ae2774aa0 am 36d5b6f4: Merge "Cause Fatal error when invalid pthread_id is detected."
* commit '36d5b6f47dd14fd9733d935174d2b8e0deb979c6':
  Cause Fatal error when invalid pthread_id is detected.
2015-03-25 23:04:27 +00:00
Yabin Cui
36d5b6f47d Merge "Cause Fatal error when invalid pthread_id is detected." 2015-03-25 22:53:50 +00:00
Yabin Cui
03324780aa Cause Fatal error when invalid pthread_id is detected.
This is a patch testing whether we can use abort() instead of
returning ESRCH for invalid pthread ids. It is an intermediate
step to remove g_thread_list/g_thread_list_lock.

Bug: 19636317
Change-Id: Idd8e4a346c7ce91e1be0c2ebcb78ce51c0d0a31d
2015-03-25 15:30:39 -07:00
Yabin Cui
6c06d5d4d5 am 2d55dd58: am 0c3b632b: Merge "Add O_APPEND flag for __libc_write_stderr."
* commit '2d55dd58bdbb37e108d22352a7905f6257822ce6':
  Add O_APPEND flag for __libc_write_stderr.
2015-03-25 22:05:51 +00:00
Christopher Ferris
2f7c0b71dd am d35c24e7: am f6364486: Merge "Use ALIAS_SYMBOL for assembler aliasing."
* commit 'd35c24e795216f3a4f5d309d616ed766e0d73086':
  Use ALIAS_SYMBOL for assembler aliasing.
2015-03-25 21:07:52 +00:00
Yabin Cui
2d55dd58bd am 0c3b632b: Merge "Add O_APPEND flag for __libc_write_stderr."
* commit '0c3b632bd6570064bab1055d2b8a51cfb85e60bb':
  Add O_APPEND flag for __libc_write_stderr.
2015-03-25 20:28:51 +00:00
Yabin Cui
0c3b632bd6 Merge "Add O_APPEND flag for __libc_write_stderr." 2015-03-25 20:17:34 +00:00
Yabin Cui
28e69f7508 Add O_APPEND flag for __libc_write_stderr.
For DeathTests, we are testing the output of stderr to check if it is the
death we are expecting. To collect the output, Gtest redirects stderr to
a temporary file. But in __libc_write_stderr in libc_logging.cpp, we are
writing to stderr without a O_APPEND flag, so a new message will overwrite
a previous message.
The above situation makes almost all the DeathTests fail on host. Because
the expected message are always overwritten in host DeathTests. So I add
O_APPEND flag in __libc_write_stderr, which makes all host DeathTests pass.

Change-Id: Ic2f6044fdb181eebe132a6f170b57db43c5c3289
2015-03-25 13:01:23 -07:00
Christopher Ferris
d35c24e795 am f6364486: Merge "Use ALIAS_SYMBOL for assembler aliasing."
* commit 'f6364486fb0fcd2891094a871041a3dc6c2334f8':
  Use ALIAS_SYMBOL for assembler aliasing.
2015-03-25 18:59:06 +00:00
Christopher Ferris
f6364486fb Merge "Use ALIAS_SYMBOL for assembler aliasing." 2015-03-25 17:52:50 +00:00
Simon Baldwin
d2bd5739ed Remove unused/unusable relocation packer files.
Removes:
- src/run_length_encoder.h
    artifact of the original packing tool, not used here
- test_data/generate_elf_file_unittest_relocs.sh
- test_data/generate_elf_file_unittest_relocs.py
    test data generation for chromium/gyp, not usable here
- README.TXT
    because it is now almost entirely outdated

Change-Id: Ic4cd372647d9a365dc52833a6cc1cf66f0c95ec9
2015-03-25 16:23:01 +00:00
Christopher Ferris
24958514b9 Use ALIAS_SYMBOL for assembler aliasing.
Change-Id: I8d04d2da0a1ac440cc9044fc819c9a8eda5ff17d
2015-03-25 09:12:00 -07:00
Neil Fuller
1f95ffecc2 Changes to re-enable overrides for tz data
Bug: 10637303
Change-Id: I5d525b66cf30d34b421803b876445596bed8d64d
2015-03-25 16:08:37 +00:00
Christopher Ferris
7a47d7c12c am 44a6dcc2: am f5e0ba94: Merge "Make gensyscalls.py use the ALIAS_SYMBOL macro."
* commit '44a6dcc2a4a3d5bcdbd51fe385121600ad05657f':
  Make gensyscalls.py use the ALIAS_SYMBOL macro.
2015-03-25 04:43:39 +00:00
Christopher Ferris
44a6dcc2a4 am f5e0ba94: Merge "Make gensyscalls.py use the ALIAS_SYMBOL macro."
* commit 'f5e0ba94d911ef2622ecfd3f7fabc4432a4806d3':
  Make gensyscalls.py use the ALIAS_SYMBOL macro.
2015-03-25 04:31:15 +00:00
Christopher Ferris
f5e0ba94d9 Merge "Make gensyscalls.py use the ALIAS_SYMBOL macro." 2015-03-25 04:20:45 +00:00
Christopher Ferris
fa5faa0ce6 Make gensyscalls.py use the ALIAS_SYMBOL macro.
Change-Id: Ib94c0abb6fc85126ecc5ed3f1962b2b8b90b9952
2015-03-24 21:08:26 -07:00
Dmitriy Ivanov
30d10dba39 am 26bca5b1: am 70cafb16: Merge "Replace fixed arrays with vectors"
* commit '26bca5b14008e576838f9a8f4f617777e24615f0':
  Replace fixed arrays with vectors
2015-03-25 01:34:08 +00:00
Dmitriy Ivanov
26bca5b140 am 70cafb16: Merge "Replace fixed arrays with vectors"
* commit '70cafb16ec9ab23ad65542534af5a1ac7d6e70e4':
  Replace fixed arrays with vectors
2015-03-25 00:55:44 +00:00
Dmitriy Ivanov
70cafb16ec Merge "Replace fixed arrays with vectors" 2015-03-25 00:45:20 +00:00
Dmitriy Ivanov
d165f56fb6 Replace fixed arrays with vectors
This effectively removes limit on length and count
  of LD_LIBRARY_PATH and LD_PRELOAD entries.

Change-Id: Ie7ea34a50d99c4018f9dd1a33aaebc4049a7f424
2015-03-24 16:55:52 -07:00
Dan Albert
7080634340 am 4ca2cda2: am ee4997ec: Merge "Convert result of a call to JSON."
* commit '4ca2cda213c8dacacfd420c70de33862a52f8a67':
  Convert result of a call to JSON.
2015-03-24 22:09:39 +00:00
Dan Albert
4ca2cda213 am ee4997ec: Merge "Convert result of a call to JSON."
* commit 'ee4997ecc3daeb9af110d932ddb27f969cc7271a':
  Convert result of a call to JSON.
2015-03-24 21:41:56 +00:00
Dan Albert
ee4997ecc3 Merge "Convert result of a call to JSON." 2015-03-24 21:28:31 +00:00
Dan Albert
7d57623755 Convert result of a call to JSON.
I still had the service that was relying on this running on top of
local changes, so this hadn't been a problem yet.

Change-Id: I63b45b8c7cf81972dbb7128013c1c777a2342d4c
2015-03-24 11:43:55 -07:00
Yabin Cui
d1c2fad9cc am e39f3200: am 93d44ff2: Merge "Let g_thread_list_lock only protect g_thread_list."
* commit 'e39f3200a926d5bb18fbaec92eed5fc00dad9fb2':
  Let g_thread_list_lock only protect g_thread_list.
2015-03-24 03:25:46 +00:00
Dmitriy Ivanov
67a37cd1a3 am efaf8ff6: am 32b039e4: Merge "RTLD_LAZY is not supported, use RTLD_NOW instead."
* commit 'efaf8ff6e4553c22ee481e873edcccd9d4b36748':
  RTLD_LAZY is not supported, use RTLD_NOW instead.
2015-03-24 03:25:37 +00:00
Yabin Cui
6884bcd02a am ecf010ed: am f8246ac6: Merge "Add test for pthread types alignment check."
* commit 'ecf010ed4138f37d5916961f7aaf52270ba715ea':
  Add test for pthread types alignment check.
2015-03-24 03:25:20 +00:00
Dan Albert
3190c5128d am 7472b500: am 27b38599: Merge "Work around a bug in the Jenkins queue API."
* commit '7472b500a3545b603c56b3fb7f6f7075c3872b84':
  Work around a bug in the Jenkins queue API.
2015-03-24 02:58:59 +00:00
Yabin Cui
e39f3200a9 am 93d44ff2: Merge "Let g_thread_list_lock only protect g_thread_list."
* commit '93d44ff2a6e0febe18d42d5690e85023545318b4':
  Let g_thread_list_lock only protect g_thread_list.
2015-03-24 02:51:53 +00:00
Yabin Cui
93d44ff2a6 Merge "Let g_thread_list_lock only protect g_thread_list." 2015-03-24 02:39:51 +00:00
Yabin Cui
673b15e4ee Let g_thread_list_lock only protect g_thread_list.
As glibc/netbsd don't protect access to thread struct members by a global
lock, we don't want to do it either. This change reduces the
responsibility of g_thread_list_lock to only protect g_thread_list.

Bug: 19636317
Change-Id: I897890710653dac165d8fa4452c7ecf74abdbf2b
2015-03-23 19:03:49 -07:00
Dmitriy Ivanov
efaf8ff6e4 am 32b039e4: Merge "RTLD_LAZY is not supported, use RTLD_NOW instead."
* commit '32b039e46eee4d40b9979eab873a957e86fbf969':
  RTLD_LAZY is not supported, use RTLD_NOW instead.
2015-03-24 01:00:49 +00:00
Dmitriy Ivanov
32b039e46e Merge "RTLD_LAZY is not supported, use RTLD_NOW instead." 2015-03-24 00:48:58 +00:00
Yabin Cui
ecf010ed41 am f8246ac6: Merge "Add test for pthread types alignment check."
* commit 'f8246ac65f1985e23023df12112a6ce47057a4dd':
  Add test for pthread types alignment check.
2015-03-23 23:28:49 +00:00
Yabin Cui
d1fe16f448 am adebbfc9: am 7f1e2068: Merge "Fix alignment error for pthread_internal_t/pthread stack."
* commit 'adebbfc994e56b53e0c8ae420373b6ee57a9d4d3':
  Fix alignment error for pthread_internal_t/pthread stack.
2015-03-23 23:24:18 +00:00
Yabin Cui
f8246ac65f Merge "Add test for pthread types alignment check." 2015-03-23 23:18:27 +00:00
Dmitriy Ivanov
84c10c2e79 RTLD_LAZY is not supported, use RTLD_NOW instead.
Change-Id: Ia08ed6416aef686435224b50b3e58955d09f04e2
2015-03-23 14:58:45 -07:00
Dan Albert
7472b500a3 am 27b38599: Merge "Work around a bug in the Jenkins queue API."
* commit '27b38599dc4b0b4941906d8da30022f516abf143':
  Work around a bug in the Jenkins queue API.
2015-03-23 20:44:52 +00:00
Dan Albert
27b38599dc Merge "Work around a bug in the Jenkins queue API." 2015-03-23 20:32:15 +00:00
Dan Albert
c889f13493 Work around a bug in the Jenkins queue API.
https://issues.jenkins-ci.org/browse/JENKINS-27256

1.601 broke the ability to get a build's URL before the build had
actually started. The bug is pseudo-fixed, but would require
installing a new plugin and fixing the python jenkinsapi plugin for
the time being to use /queuefix/ rather than /queue/.

Just avoiding logging a URL for now.

Change-Id: Ibf90e5887fc4532dac688082ad7729787897da11
2015-03-23 13:29:15 -07:00
Yabin Cui
adebbfc994 am 7f1e2068: Merge "Fix alignment error for pthread_internal_t/pthread stack."
* commit '7f1e206815032aa152e9f181e477ae2a3f128d67':
  Fix alignment error for pthread_internal_t/pthread stack.
2015-03-21 17:11:22 +00:00
Yabin Cui
b584572213 Add test for pthread types alignment check.
Bug: 19249079
Change-Id: I83c4f0d11ec5d82a346ae0057d02a92bb1d519e8
2015-03-20 17:42:09 -07:00
Yabin Cui
7f1e206815 Merge "Fix alignment error for pthread_internal_t/pthread stack." 2015-03-20 23:26:24 +00:00
Yabin Cui
a2db50d5d7 Fix alignment error for pthread_internal_t/pthread stack.
aligned attribute can only control compiler's behavior, but we
are manually allocating pthread_internal_t. So we need to make
sure of alignment manually.

Change-Id: Iea4c46eadf10dfd15dc955c5f41cf6063cfd8536
2015-03-20 14:41:52 -07:00
Dmitriy Ivanov
52d092b140 am e0423890: am 9bc8ce7c: Merge "Limit soinfo compatibility fields to arm32"
* commit 'e0423890778668403562f1f0afc6d3ebec4dc4fa':
  Limit soinfo compatibility fields to arm32
2015-03-20 04:23:44 +00:00
Dmitriy Ivanov
e042389077 am 9bc8ce7c: Merge "Limit soinfo compatibility fields to arm32"
* commit '9bc8ce7c6a8abc09e76b0f35064d881385861537':
  Limit soinfo compatibility fields to arm32
2015-03-20 04:18:23 +00:00
Dmitriy Ivanov
9bc8ce7c6a Merge "Limit soinfo compatibility fields to arm32" 2015-03-20 04:05:51 +00:00
Dmitriy Ivanov
e631f91a01 Limit soinfo compatibility fields to arm32
Change-Id: I3924cd68397c223c0d206295d587f9dd8ebdc086
2015-03-19 17:50:29 -07:00
Yabin Cui
23c719f940 am 2e7617f2: am 4149dc94: Merge "Return EINVAL when calling pthread_detach for joined thread."
* commit '2e7617f2a0a703ae8dd0ba1b090464279482f893':
  Return EINVAL when calling pthread_detach for joined thread.
2015-03-20 00:21:22 +00:00
Yabin Cui
2e7617f2a0 am 4149dc94: Merge "Return EINVAL when calling pthread_detach for joined thread."
* commit '4149dc944bbe3c5f1c14fc998106975e68bdd6bf':
  Return EINVAL when calling pthread_detach for joined thread.
2015-03-20 00:11:58 +00:00
Yabin Cui
4149dc944b Merge "Return EINVAL when calling pthread_detach for joined thread." 2015-03-20 00:00:30 +00:00
Yabin Cui
07d9fe9c16 am 09170b99: am 7875b506: Merge "Fix two errors in pthread_detach.cpp."
* commit '09170b9968ac1c778026777f76d000a2afdd7459':
  Fix two errors in pthread_detach.cpp.
2015-03-19 23:58:51 +00:00
Yabin Cui
09170b9968 am 7875b506: Merge "Fix two errors in pthread_detach.cpp."
* commit '7875b506edfb1fe593034eaf4bc9aa156179fbd2':
  Fix two errors in pthread_detach.cpp.
2015-03-19 23:53:04 +00:00
Yabin Cui
bbb0432a33 Return EINVAL when calling pthread_detach for joined thread.
Change-Id: I717015132187e087e0ad485284a13c8801e25e77
2015-03-19 16:48:19 -07:00
Yabin Cui
7875b506ed Merge "Fix two errors in pthread_detach.cpp." 2015-03-19 23:38:40 +00:00
Yabin Cui
aec2bb5ec6 Fix two errors in pthread_detach.cpp.
The errors are introduced in "Make pthread join_state not protected by g_thread_list_lock".

Bug: 19636317
Change-Id: I58ae9711da94bfbac809abfd81311eeb70301a4b
2015-03-19 23:35:23 +00:00
Dmitriy Ivanov
39b079d25e am cdc02185: am 2e495081: Merge "Move open from zip tests to dlext"
* commit 'cdc02185fe6254ddd68cb7a6c0938892b007f2a7':
  Move open from zip tests to dlext
2015-03-19 17:32:17 +00:00
Dmitriy Ivanov
cdc02185fe am 2e495081: Merge "Move open from zip tests to dlext"
* commit '2e49508187254903943b83df7bb241d5fb6a8593':
  Move open from zip tests to dlext
2015-03-19 17:19:32 +00:00
Dmitriy Ivanov
2e49508187 Merge "Move open from zip tests to dlext" 2015-03-19 17:06:16 +00:00
Dmitriy Ivanov
52393a5633 Move open from zip tests to dlext
To avoid building them for glibc.

 Also replace snprintf with std::string

Change-Id: I12e1d2e4ab46ff5af6c05453da67842e0d838fc5
2015-03-18 22:50:01 -07:00
Yabin Cui
2f251f146f am 436310c3: am 6943f296: Merge "Make __get_thread inlined."
* commit '436310c3d5835725afc498c23a788eab0cf7afc2':
  Make __get_thread inlined.
2015-03-19 03:11:21 +00:00
Yabin Cui
436310c3d5 am 6943f296: Merge "Make __get_thread inlined."
* commit '6943f2968cb6054f8874e30b309985b41a37e2e0':
  Make __get_thread inlined.
2015-03-19 03:03:21 +00:00
Dmitriy Ivanov
b9d1539fa8 am 16ac4ee7: am 6420fb46: Merge "Implement lookup by DT_SONAME"
* commit '16ac4ee7c468d11bb53265a16c7fd16bed3e2232':
  Implement lookup by DT_SONAME
2015-03-19 03:00:36 +00:00
Dmitriy Ivanov
16ac4ee7c4 am 6420fb46: Merge "Implement lookup by DT_SONAME"
* commit '6420fb467f52f7c27c921b1bf53dc95ad5851077':
  Implement lookup by DT_SONAME
2015-03-19 02:53:57 +00:00
Yabin Cui
6943f2968c Merge "Make __get_thread inlined." 2015-03-19 02:50:20 +00:00
Dmitriy Ivanov
6420fb467f Merge "Implement lookup by DT_SONAME" 2015-03-19 02:40:31 +00:00
Yabin Cui
2f836d4989 Make __get_thread inlined.
Bug: 19825434

Change-Id: Ifb672a45a5776b83625a25654ed0d6f7fc368ae3
2015-03-18 19:35:34 -07:00
Dmitriy Ivanov
618f1a36f8 Implement lookup by DT_SONAME
This CL also fixes SEARCH_NAME hack and resolves
  https://code.google.com/p/android/issues/detail?id=6670
  once and for all.

Bug: https://code.google.com/p/android/issues/detail?id=6670
Change-Id: I9b8d6a672cd722f30fbfbb40cdee8d9b39cfe56e
2015-03-18 18:14:30 -07:00
Elliott Hughes
b7e03b98f1 am 6cd7d024: am c6fbbb42: Merge "Hide statfs/fstatfs\' ST_VALID flag from userspace."
* commit '6cd7d02478588069c964ca6c783fa458a718abe7':
  Hide statfs/fstatfs' ST_VALID flag from userspace.
2015-03-18 23:51:15 +00:00
Dmitriy Ivanov
f5e1acef2c am 10d70143: am 0cf2657b: Merge "Fix library lookup for filenames with slash."
* commit '10d70143eac283bf5206d1b6e48170dbd83882c8':
  Fix library lookup for filenames with slash.
2015-03-18 23:50:18 +00:00
Elliott Hughes
6cd7d02478 am c6fbbb42: Merge "Hide statfs/fstatfs\' ST_VALID flag from userspace."
* commit 'c6fbbb42e69bef4f058d0cbfaaaf3cbf51f95694':
  Hide statfs/fstatfs' ST_VALID flag from userspace.
2015-03-18 23:22:56 +00:00
Elliott Hughes
c6fbbb42e6 Merge "Hide statfs/fstatfs' ST_VALID flag from userspace." 2015-03-18 23:11:52 +00:00
Elliott Hughes
fa495d51b0 Hide statfs/fstatfs' ST_VALID flag from userspace.
Spotted while debugging the strace 4.10 upgrade.

Change-Id: I1af1be9c9440151f55f74a835e1df71529b0e4fe
2015-03-18 15:46:48 -07:00
Dmitriy Ivanov
10d70143ea am 0cf2657b: Merge "Fix library lookup for filenames with slash."
* commit '0cf2657bc25242c097d42346d17eaae4107b1d55':
  Fix library lookup for filenames with slash.
2015-03-18 22:22:59 +00:00
Dmitriy Ivanov
0cf2657bc2 Merge "Fix library lookup for filenames with slash." 2015-03-18 22:09:07 +00:00
Dimitry Ivanov
feb41625b4 am 02f528f3: am c0eaa732: Merge "Support loading shared libraries from zip files"
* commit '02f528f3adeaf1227d178e426fca7482e85866af':
  Support loading shared libraries from zip files
2015-03-18 17:46:15 +00:00
Dimitry Ivanov
02f528f3ad am c0eaa732: Merge "Support loading shared libraries from zip files"
* commit 'c0eaa732844a8397d40a7ec82641f709e4b47a61':
  Support loading shared libraries from zip files
2015-03-18 17:37:58 +00:00
Dmitriy Ivanov
e44fffd7f9 Fix library lookup for filenames with slash.
If filename contains a slash, then it is interpreted
  as a (relative or absolute) pathname.

Bug: https://code.google.com/p/android/issues/detail?id=6670
Change-Id: Iba57d638301f3089ad47ba083edca2dd36b801ed
2015-03-18 10:32:11 -07:00
Dimitry Ivanov
c0eaa73284 Merge "Support loading shared libraries from zip files" 2015-03-18 17:25:33 +00:00
Elliott Hughes
bcd0f553b9 am 46950420: am ab12dc70: Merge "Fix _PATH_DEFPATH to correspond to the actual default path."
* commit '469504209489350a4cbf5a9018e74af367aa3acf':
  Fix _PATH_DEFPATH to correspond to the actual default path.
2015-03-18 10:58:19 +00:00
Elliott Hughes
d527e65906 am 45c4ef3c: am b380b7d7: Merge "set errno to ENOENT in getauxval per glibc 2.19"
* commit '45c4ef3cde5529bdaac41ad1f30ca3180361e060':
  set errno to ENOENT in getauxval per glibc 2.19
2015-03-18 10:58:18 +00:00
Elliott Hughes
4695042094 am ab12dc70: Merge "Fix _PATH_DEFPATH to correspond to the actual default path."
* commit 'ab12dc70f3ef551c490dcfede76033e57ceee64d':
  Fix _PATH_DEFPATH to correspond to the actual default path.
2015-03-18 01:24:59 +00:00
Elliott Hughes
45c4ef3cde am b380b7d7: Merge "set errno to ENOENT in getauxval per glibc 2.19"
* commit 'b380b7d78cf4dbd034f51fcf7fc8ebdb037330c3':
  set errno to ENOENT in getauxval per glibc 2.19
2015-03-18 01:18:01 +00:00
Elliott Hughes
ab12dc70f3 Merge "Fix _PATH_DEFPATH to correspond to the actual default path." 2015-03-18 01:15:04 +00:00
Elliott Hughes
b380b7d78c Merge "set errno to ENOENT in getauxval per glibc 2.19" 2015-03-18 01:05:24 +00:00
Elliott Hughes
1101962447 Fix _PATH_DEFPATH to correspond to the actual default path.
This is currently set in init.rc, but I plan on making init
set PATH to _PATH_DEFPATH and removing the line from init.rc...

Bug: 19564110
Change-Id: Ifa7226a3a5a90d141a788d7d6b1ae86245674218
2015-03-17 17:34:14 -07:00
Daniel Micay
ee7649c5ac set errno to ENOENT in getauxval per glibc 2.19
Bionic's getauxval(...) implementation returns zero when entries are
missing. Zero can be a valid value, so there is no unambiguous way of
detecting an error. Since glibc 2.19, errno is set to ENOENT when an
entry is missing to make it possible to detect this. Bionic should match
this behavior as code in the Linux ecosystem will start relying on it to
check for the presence of newly added entries.

Change-Id: Ic1efe29bc45fc87489274c96c4d2193f3a7b8854
Signed-off-by: Daniel Micay <danielmicay@gmail.com>
2015-03-17 19:50:55 -04:00
Yabin Cui
0ce026d9c4 am b1d1d0cc: am d917b20b: Merge "Change name of rwlock benchmark."
* commit 'b1d1d0cc5ba060a292907503e42a40dc158b156d':
  Change name of rwlock benchmark.
2015-03-17 21:40:53 +00:00
Yabin Cui
b1d1d0cc5b am d917b20b: Merge "Change name of rwlock benchmark."
* commit 'd917b20b613fd51e5f1056c8648fe8769ae8161e':
  Change name of rwlock benchmark.
2015-03-17 21:33:33 +00:00
Yabin Cui
d917b20b61 Merge "Change name of rwlock benchmark." 2015-03-17 21:20:52 +00:00
Yabin Cui
dc93db20a9 Change name of rwlock benchmark.
rw_lock is not easy for me to remember, so I prefer changing it to rwlock.

Change-Id: I0784acaca0c3b46c28184a77eb29ffe696f9ea07
2015-03-17 13:38:57 -07:00
Yabin Cui
a10afcc9cc am 46f9b3e7: am a75771e3: Merge "Fix build: pthread_mutex/pthread_detach."
* commit '46f9b3e7662d946d775d30dbe91828e4cb935af5':
  Fix build: pthread_mutex/pthread_detach.
2015-03-17 19:07:03 +00:00
Yabin Cui
48fc08e1e6 am f7dbefb0: am 94babaee: Merge "Make pthread join_state not protected by g_thread_list_lock."
* commit 'f7dbefb08f974a368d19b482997570e375f2bf84':
  Make pthread join_state not protected by g_thread_list_lock.
2015-03-17 19:06:48 +00:00
Yabin Cui
62059a07da am ca7ac7d3: am 5490bebd: Merge "Remove duplication in pthread_mutex.cpp."
* commit 'ca7ac7d36a3f7f31d65d1a4740f95f43de7ab1e4':
  Remove duplication in pthread_mutex.cpp.
2015-03-17 19:06:46 +00:00
Yabin Cui
46f9b3e766 am a75771e3: Merge "Fix build: pthread_mutex/pthread_detach."
* commit 'a75771e3ab429fae2f9af770416150733264a281':
  Fix build: pthread_mutex/pthread_detach.
2015-03-17 18:52:13 +00:00
Yabin Cui
a75771e3ab Merge "Fix build: pthread_mutex/pthread_detach." 2015-03-17 18:40:39 +00:00
Yabin Cui
ecbfb25c50 Fix build: pthread_mutex/pthread_detach.
Change-Id: I9c7b6297d3bf3ab8004d05d44cc4c95159315c9e
2015-03-17 11:37:51 -07:00
Yabin Cui
f7dbefb08f am 94babaee: Merge "Make pthread join_state not protected by g_thread_list_lock."
* commit '94babaee1b6598b15bd807461055d4dcaaa52f10':
  Make pthread join_state not protected by g_thread_list_lock.
2015-03-17 18:21:49 +00:00
Yabin Cui
ca7ac7d36a am 5490bebd: Merge "Remove duplication in pthread_mutex.cpp."
* commit '5490bebd7cdd4406780358f590391b75ab8a7d84':
  Remove duplication in pthread_mutex.cpp.
2015-03-17 18:21:48 +00:00
Yabin Cui
94babaee1b Merge "Make pthread join_state not protected by g_thread_list_lock." 2015-03-17 18:12:59 +00:00
Yabin Cui
5490bebd7c Merge "Remove duplication in pthread_mutex.cpp." 2015-03-17 18:12:32 +00:00
Dmitriy Ivanov
c331d67d1b am 72c6b79d: am 5f8ddf69: Merge "Fix build: align pthread_cond_t to sizeof(long)"
* commit '72c6b79ddb14bbf185cc3b59adf095ab65e77a06':
  Fix build: align pthread_cond_t to sizeof(long)
2015-03-17 14:30:04 +00:00
Simon Baldwin
aef719510a Support loading shared libraries from zip files
Add code to support loading shared libraries directly from within
APK files.

Extends the linker's handling of LD_LIBRARY_PATH, DT_RUNPATH, etc
to allow elements to be either directories as normal, or ZIP
format files.  For ZIP, the ZIP subdirectory string is separated
from the path to file by '!'.

For example, if DT_NEEDED is libchrome.so and Chrome.apk is the
Android ARM APK then the path element

  /system/app/Chrome.apk!lib/armeabi-v7a

would cause the linker to load lib/armeabi-v7a/libchrome.so
directly from inside Chrome.apk.  For loading to succeed,
libchrome.so must be 'stored' and not compressed in Chrome.apk,
and must be page aligned within the file.

Motivation:
  Chromium tracking issue:
  https://code.google.com/p/chromium/issues/detail?id=390618

Bug: 8076853
Change-Id: Ic49046600b1417eae3ee8f37ee98c8ac1ecc19e7
2015-03-16 17:50:50 -07:00
Dmitriy Ivanov
b3ac2145f4 Fix build: align pthread_cond_t to sizeof(long)
(cherry picked from commit b5cd3c7a7503d8155ea17424c00f7e77603252c0)

Change-Id: I69d8feeda2c8e0423c5626bcd40914e7eb9d85e4
2015-03-16 17:44:05 -07:00
Dmitriy Ivanov
72c6b79ddb am 5f8ddf69: Merge "Fix build: align pthread_cond_t to sizeof(long)"
* commit '5f8ddf69e59b13653d016e236599b95daf6501a8':
  Fix build: align pthread_cond_t to sizeof(long)
2015-03-17 00:25:06 +00:00
Dmitriy Ivanov
5f8ddf69e5 Merge "Fix build: align pthread_cond_t to sizeof(long)" 2015-03-17 00:10:49 +00:00
Dmitriy Ivanov
b5cd3c7a75 Fix build: align pthread_cond_t to sizeof(long)
Change-Id: Ieaee6d09089b161ec516ba22cafaee1ecb4342da
2015-03-16 17:06:59 -07:00
Christopher Ferris
28654c922d am 1ffc89e3: am f14fe856: Merge "Add alignment to opaque types."
* commit '1ffc89e301ae167ad5843ae570be0d779e37bec8':
  Add alignment to opaque types.
2015-03-16 23:51:31 +00:00
Christopher Ferris
1ffc89e301 am f14fe856: Merge "Add alignment to opaque types."
* commit 'f14fe856b40afc38540988b408edc508298ec116':
  Add alignment to opaque types.
2015-03-16 23:45:16 +00:00
Christopher Ferris
f14fe856b4 Merge "Add alignment to opaque types." 2015-03-16 23:33:38 +00:00
Christopher Ferris
eb8b122d67 Add alignment to opaque types.
If there is no alignment forced, then the compiler might put these
structures at any alignment.

Change-Id: I6416db72433504e0ec1178bfae6f5b18b6e363fb
2015-03-16 16:28:54 -07:00
Dmitriy Ivanov
c6cc6f6312 am 862b088a: am 3d170a6d: Merge "Remove obsolete test_isolated wrapper function"
* commit '862b088ac30881221500122955fc9e13933cbafd':
  Remove obsolete test_isolated wrapper function
2015-03-16 22:40:08 +00:00
Dmitriy Ivanov
1f5ede0a6e am bca13d41: am 3b7239fe: Merge "General purpose memory allocator for linker."
* commit 'bca13d417798ac3bab751d40da25cc4cfba76397':
  General purpose memory allocator for linker.
2015-03-16 22:40:06 +00:00
Yabin Cui
69929b34e7 am 19631034: am 0f3fcd12: Merge "Fix atomic_load on const variable in pthread_cond_t."
* commit '19631034a4e155f5e5ed061a2dcf30b377a8c04b':
  Fix atomic_load on const variable in pthread_cond_t.
2015-03-16 22:39:33 +00:00
Dan Albert
cc42165788 am f13f9ec1: am 169a84f9: Merge "Revert "Revert "Moving StringPrintf to libbase."""
* commit 'f13f9ec12eb10c94473da34fdd736e0c0ed439d1':
  Revert "Revert "Moving StringPrintf to libbase.""
2015-03-16 22:39:23 +00:00
Dmitriy Ivanov
862b088ac3 am 3d170a6d: Merge "Remove obsolete test_isolated wrapper function"
* commit '3d170a6d6c650cb81260ea9157d6f4df99e41e8c':
  Remove obsolete test_isolated wrapper function
2015-03-16 22:03:53 +00:00
Dmitriy Ivanov
bca13d4177 am 3b7239fe: Merge "General purpose memory allocator for linker."
* commit '3b7239feb9265f0b677e845dec0514583de9c6be':
  General purpose memory allocator for linker.
2015-03-16 22:03:52 +00:00
Yabin Cui
6b865a7a83 am 533bc4a0: am d3e2a207: Merge "Hide content of pthread_cond_t in pthread_cond_internal_t."
* commit '533bc4a09cebbecd1c871f0d8481e9449216f5f5':
  Hide content of pthread_cond_t in pthread_cond_internal_t.
2015-03-16 21:58:43 +00:00
Dmitriy Ivanov
970dd7d985 am a5bd2a10: am 9923c8cd: Merge "Fix typo"
* commit 'a5bd2a1039d545cbcb0fe187f76240ecaa84e45f':
  Fix typo
2015-03-16 21:58:33 +00:00
Dmitriy Ivanov
3d170a6d6c Merge "Remove obsolete test_isolated wrapper function" 2015-03-16 21:50:16 +00:00
Dmitriy Ivanov
3b7239feb9 Merge "General purpose memory allocator for linker." 2015-03-16 21:49:59 +00:00
Yabin Cui
19631034a4 am 0f3fcd12: Merge "Fix atomic_load on const variable in pthread_cond_t."
* commit '0f3fcd12ddde0e10fbeab0a98cf0efb9d64bea76':
  Fix atomic_load on const variable in pthread_cond_t.
2015-03-16 21:43:21 +00:00
Yabin Cui
0f3fcd12dd Merge "Fix atomic_load on const variable in pthread_cond_t." 2015-03-16 21:31:09 +00:00
Yabin Cui
9e6c7bc618 Fix atomic_load on const variable in pthread_cond_t.
Change-Id: I60f55a53294a09332a3fbec669ed793359d1bdf5
2015-03-16 14:26:53 -07:00
Dmitriy Ivanov
cb0443c0fa Remove obsolete test_isolated wrapper function
We already run all of our tests in isolated mode.

Change-Id: I8236baa302b1026a9b4a1c33a4aa65e223771bc7
2015-03-16 14:20:57 -07:00
Dan Albert
f13f9ec12e am 169a84f9: Merge "Revert "Revert "Moving StringPrintf to libbase."""
* commit '169a84f980d7a55c5f829cdd53a3eaba8f968442':
  Revert "Revert "Moving StringPrintf to libbase.""
2015-03-16 21:16:48 +00:00
Yabin Cui
533bc4a09c am d3e2a207: Merge "Hide content of pthread_cond_t in pthread_cond_internal_t."
* commit 'd3e2a207ffcaefedf2d3baaaad3d62be1abdb33c':
  Hide content of pthread_cond_t in pthread_cond_internal_t.
2015-03-16 21:09:26 +00:00
Dan Albert
169a84f980 Merge "Revert "Revert "Moving StringPrintf to libbase.""" 2015-03-16 21:02:51 +00:00
Yabin Cui
d3e2a207ff Merge "Hide content of pthread_cond_t in pthread_cond_internal_t." 2015-03-16 20:58:02 +00:00
Dan Albert
4c1dbb4000 Revert "Revert "Moving StringPrintf to libbase.""
This reverts commit d2dad2b24fb82604f9dbe7a082e630a524f1473d.

(cherry picked from commit 3e87c785434fdfed2fb00496cb391c411a426bdd)
2015-03-16 13:50:15 -07:00
Dmitriy Ivanov
a5bd2a1039 am 9923c8cd: Merge "Fix typo"
* commit '9923c8cd13d1e8305a908ef23712c7d3e4d4131d':
  Fix typo
2015-03-16 20:39:00 +00:00
Dmitriy Ivanov
9923c8cd13 Merge "Fix typo" 2015-03-16 20:30:01 +00:00
Dmitriy Ivanov
b1ada3dd3f Fix typo
Change-Id: Ie6dad7d09873c88f6bbb2d45c2780e3b0c618bd6
2015-03-16 13:20:23 -07:00
Dmitriy Ivanov
19656ce537 General purpose memory allocator for linker.
Add basic general purpose memory allocator to
 linker in order to enable usage of other libraries
 like libziparchive.

Change-Id: I4a680ebb36ed5ba67c61249f81dba9f567808434
2015-03-16 11:19:53 -07:00
Yabin Cui
32651b8e8e Hide content of pthread_cond_t in pthread_cond_internal_t.
Bug: 19249079
Change-Id: I6f55af30bcd6211ce71630c6cacbef0e1663dcee
2015-03-16 11:09:52 -07:00
Dan Albert
3e87c78543 Revert "Revert "Moving StringPrintf to libbase.""
This reverts commit d2dad2b24fb82604f9dbe7a082e630a524f1473d.
2015-03-16 10:06:29 -07:00
Nicolas Geoffray
e5fff0831c am 645621ec: am 11a06c73: Merge "Revert "Moving StringPrintf to libbase.""
* commit '645621ec8bbd8c6ffca7c3b48580b20feb3b76a2':
  Revert "Moving StringPrintf to libbase."
2015-03-16 12:37:10 +00:00
Nicolas Geoffray
645621ec8b am 11a06c73: Merge "Revert "Moving StringPrintf to libbase.""
* commit '11a06c73f6e7d31442429a58a346d881b0a8a441':
  Revert "Moving StringPrintf to libbase."
2015-03-16 12:30:48 +00:00
Nicolas Geoffray
11a06c73f6 Merge "Revert "Moving StringPrintf to libbase."" 2015-03-16 12:20:27 +00:00
Nicolas Geoffray
d2dad2b24f Revert "Moving StringPrintf to libbase."
libbase has been reverted

This reverts commit 7ed5fa1e4d37722a644518594bf2b0e1529c05e9.

Change-Id: I5d8ff8c38ff8c9123e6cee5dc15a101a79e94b2e
2015-03-16 12:19:26 +00:00
Dan Albert
7d332c216c am e63140db: am 83e95878: Merge "Moving StringPrintf to libbase."
* commit 'e63140dbed059ac2042c31762660cced6baac253':
  Moving StringPrintf to libbase.
2015-03-15 22:34:10 +00:00
Christopher Ferris
90cd0a1bf4 am 3abc6d1c: am 593a75ee: Merge "Fix typo in alias symbol."
* commit '3abc6d1c5724d266381b257078bf988f52873fc0':
  Fix typo in alias symbol.
2015-03-15 22:34:09 +00:00
Christopher Ferris
442c6c1d02 am 79641f96: am 83c0028e: Merge "For libm, use a macro for aliasing symbols."
* commit '79641f96eb68fff13f6265abcfd18477cd3650c3':
  For libm, use a macro for aliasing symbols.
2015-03-15 22:34:08 +00:00
Dan Albert
e63140dbed am 83e95878: Merge "Moving StringPrintf to libbase."
* commit '83e95878735a62cea108f3c1f1de1358b5565038':
  Moving StringPrintf to libbase.
2015-03-15 15:44:38 +00:00
Christopher Ferris
3abc6d1c57 am 593a75ee: Merge "Fix typo in alias symbol."
* commit '593a75ee6b9857a452e57b21fb28507da30f89cf':
  Fix typo in alias symbol.
2015-03-15 15:44:37 +00:00
Christopher Ferris
79641f96eb am 83c0028e: Merge "For libm, use a macro for aliasing symbols."
* commit '83c0028e030bad1f7cf54ba3f04962b9a6a9e1e4':
  For libm, use a macro for aliasing symbols.
2015-03-15 15:44:36 +00:00
Dan Albert
83e9587873 Merge "Moving StringPrintf to libbase." 2015-03-14 23:55:10 +00:00
Christopher Ferris
593a75ee6b Merge "Fix typo in alias symbol." 2015-03-14 19:22:29 +00:00
Christopher Ferris
6e86146b85 Fix typo in alias symbol.
Change-Id: I41d2c29bd4a9ba382bbe3440541c8e1506fc5809
2015-03-14 12:17:45 -07:00
Christopher Ferris
83c0028e03 Merge "For libm, use a macro for aliasing symbols." 2015-03-14 17:44:32 +00:00
Christopher Ferris
995b813e91 For libm, use a macro for aliasing symbols.
Change-Id: Ibd42ebc387c2bf3eba9aa96091770915b4b34184
2015-03-13 23:57:15 -07:00
Dan Albert
7ed5fa1e4d Moving StringPrintf to libbase.
Change-Id: I47ef28bb294ffb7c7c065c5624417edf23503b77
2015-03-13 22:34:37 -07:00
Yabin Cui
a7a12565bb am 6c143484: am d2cf59d4: Merge "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t."
* commit '6c1434842a3c29f96c332d12cadc82f9b71746d9':
  Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.
2015-03-14 04:08:32 +00:00
Yabin Cui
6c1434842a am d2cf59d4: Merge "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t."
* commit 'd2cf59d4633d9e731d0342d4f94b6e925589ab1e':
  Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.
2015-03-14 02:51:12 +00:00
Yabin Cui
d2cf59d463 Merge "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t." 2015-03-14 02:38:32 +00:00
Yabin Cui
2fabea47ac Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.
Bug: 19249079
Change-Id: Ifbe634c716b6793bef897ec5134b55eb44c6b8d5
2015-03-13 19:35:05 -07:00
Christopher Ferris
969320874d am 0d54094a: am 81c31bdd: Merge "Add some GNU specific elf constants."
* commit '0d54094a86eded929edaa35a63ac831b1cb95c91':
  Add some GNU specific elf constants.
2015-03-13 21:54:56 +00:00
Dmitriy Ivanov
5a35783fba am 173a61f2: am d7e091ef: Merge "Switch libc and libm to sysv-only hash style"
* commit '173a61f29bb44f70140b9167a7333e79b1d9bf1b':
  Switch libc and libm to sysv-only hash style
2015-03-13 21:54:55 +00:00
Christopher Ferris
0d54094a86 am 81c31bdd: Merge "Add some GNU specific elf constants."
* commit '81c31bdd43e50538fa45f5e7783782a5ae5666e9':
  Add some GNU specific elf constants.
2015-03-13 21:23:43 +00:00
Dmitriy Ivanov
173a61f29b am d7e091ef: Merge "Switch libc and libm to sysv-only hash style"
* commit 'd7e091efc477c17da97415fa944675c6f16dcdb5':
  Switch libc and libm to sysv-only hash style
2015-03-13 21:16:47 +00:00
Christopher Ferris
81c31bdd43 Merge "Add some GNU specific elf constants." 2015-03-13 21:12:07 +00:00
Dmitriy Ivanov
d7e091efc4 Merge "Switch libc and libm to sysv-only hash style" 2015-03-13 21:04:08 +00:00
Dmitriy Ivanov
2e16d2cf1e Switch libc and libm to sysv-only hash style
Bug: 19059885
Change-Id: I60a23dc5f9c756994d566818332ca42b305b4a05
2015-03-13 19:48:03 +00:00
Christopher Ferris
58ea845dd6 am c30d7a67: am f074b531: Merge "Add the optimized implementation of 18 math functions for x86 and x86_64 respectively"
* commit 'c30d7a67e092b95036aba0f0f93e9f382c9e9a8e':
  Add the optimized implementation of 18 math functions for x86 and x86_64 respectively
2015-03-13 17:36:21 +00:00
Christopher Ferris
c94c7ff2bb Add some GNU specific elf constants.
Change-Id: I6c668463a27a641c9a280ce1937857d622344ff8
2015-03-13 10:32:45 -07:00
Christopher Ferris
c30d7a67e0 am f074b531: Merge "Add the optimized implementation of 18 math functions for x86 and x86_64 respectively"
* commit 'f074b531d266deb63c17e1d3bff751f3f3740d9d':
  Add the optimized implementation of 18 math functions for x86 and x86_64 respectively
2015-03-13 17:27:43 +00:00
Christopher Ferris
f074b531d2 Merge "Add the optimized implementation of 18 math functions for x86 and x86_64 respectively" 2015-03-13 17:18:21 +00:00
Yabin Cui
a4a914b522 am 1e795957: am 5507deda: Merge "Make gtest_main exit 1 when some test are failed."
* commit '1e795957f44bff53b27dad686ed56b26d85f84b0':
  Make gtest_main exit 1 when some test are failed.
2015-03-13 17:12:53 +00:00
Yabin Cui
1e795957f4 am 5507deda: Merge "Make gtest_main exit 1 when some test are failed."
* commit '5507dedaeb43e01edfab4b0e2cc290622b20e678':
  Make gtest_main exit 1 when some test are failed.
2015-03-13 17:09:14 +00:00
Yabin Cui
5507dedaeb Merge "Make gtest_main exit 1 when some test are failed." 2015-03-13 17:02:19 +00:00
Mark Salyzyn
8e2d61963d am ee7b80d7: am f6f96df5: Merge "syslog.h: missing LOG_MAKEPRI definition"
* commit 'ee7b80d7cf09c32ea806dfbaa401ba5790670064':
  syslog.h: missing LOG_MAKEPRI definition
2015-03-13 07:20:41 +00:00
Yabin Cui
64a9c4f697 Make gtest_main exit 1 when some test are failed.
This is the gtest behavior, which I think can make test status
judgement more convenient.

Change-Id: I7d3c210d1744b954a4148cd905dd5c353207fce8
2015-03-12 23:36:29 -07:00
Yabin Cui
5b8e7cd957 Remove duplication in pthread_mutex.cpp.
Also add unit tests about thread woken up by pthread_mutex_unlock.

Bug: 19216648

Change-Id: I8bde8105b00186c52a2f41d92458ae4a5eb90426
2015-03-12 21:54:41 -07:00
Yabin Cui
58cf31b506 Make pthread join_state not protected by g_thread_list_lock.
1. Move the representation of thread join_state from pthread.attr.flag
   to pthread.join_state. This clarifies thread state change.
2. Use atomic operations for pthread.join_state. So we don't need to
   protect it by g_thread_list_lock. g_thread_list_lock will be reduced
   to only protect g_thread_list or even removed in further changes.

Bug: 19636317
Change-Id: I31fb143a7c69508c7287307dd3b0776993ec0f43
2015-03-12 21:39:49 -07:00
Mark Salyzyn
ee7b80d7cf am f6f96df5: Merge "syslog.h: missing LOG_MAKEPRI definition"
* commit 'f6f96df5b031b0bf79eb8ad49bd73a3ceab87db5':
  syslog.h: missing LOG_MAKEPRI definition
2015-03-12 21:39:12 +00:00
Mark Salyzyn
f6f96df5b0 Merge "syslog.h: missing LOG_MAKEPRI definition" 2015-03-12 20:33:25 +00:00
Mark Salyzyn
c4a586da49 syslog.h: missing LOG_MAKEPRI definition
Bug: 19681572
Change-Id: Ice5f5cb1f71522ffc47b2243a8dc4c277c2a288f
2015-03-12 13:21:35 -07:00
Elliott Hughes
8ae530ca63 am 59e911c7: am be86f877: Merge "Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>."
* commit '59e911c7fda705ca50d558c73bae9decdcf1b040':
  Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>.
2015-03-12 15:35:54 +00:00
Dmitriy Ivanov
3e7d8d200f am 452ddd02: am e8107b66: Merge "Rename LinkerAllocator and LinkerAllocatorPage"
* commit '452ddd0245d9fb790d55206fc9535d02665c28fa':
  Rename LinkerAllocator and LinkerAllocatorPage
2015-03-11 23:02:18 +00:00
Dmitriy Ivanov
714a70f692 am 36927c79: am 57e800d5: Merge "Refactoring: rename linker_allocator files"
* commit '36927c796b26f6c4f9771e4935615e9edf2205c3':
  Refactoring: rename linker_allocator files
2015-03-11 23:02:17 +00:00
Dimitry Ivanov
bc6aa41dd7 am 1f2b704c: am e842dc0d: am c16c8368: Merge "Generate gnu hash for arm only"
* commit '1f2b704ccf5102ca759f0721f0612bcf84fd5cc9':
  Generate gnu hash for arm only
2015-03-11 20:09:29 +00:00
Elliott Hughes
59e911c7fd am be86f877: Merge "Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>."
* commit 'be86f87711ee71ff971da2e2ae7a092081177951':
  Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>.
2015-03-11 16:56:26 +00:00
Elliott Hughes
be86f87711 Merge "Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>." 2015-03-11 16:42:49 +00:00
Elliott Hughes
ba87fe5145 Add the UMOUNT_NOFOLLOW flag to <sys/mount.h>.
Change-Id: I2b81cfc3147d9a0a6ac2a8f064e6d9864fa7e04d
2015-03-11 09:32:25 -07:00
Dmitriy Ivanov
452ddd0245 am e8107b66: Merge "Rename LinkerAllocator and LinkerAllocatorPage"
* commit 'e8107b66c56509a8d1b1d21f217e4e71a9f74bee':
  Rename LinkerAllocator and LinkerAllocatorPage
2015-03-11 03:19:21 +00:00
Dmitriy Ivanov
36927c796b am 57e800d5: Merge "Refactoring: rename linker_allocator files"
* commit '57e800d534b43bda849858ed4bb47d556469032f':
  Refactoring: rename linker_allocator files
2015-03-11 03:19:20 +00:00
Dmitriy Ivanov
e8107b66c5 Merge "Rename LinkerAllocator and LinkerAllocatorPage" 2015-03-11 00:38:49 +00:00
Dmitriy Ivanov
57e800d534 Merge "Refactoring: rename linker_allocator files" 2015-03-11 00:35:22 +00:00
Dmitriy Ivanov
600bc3cb93 Rename LinkerAllocator and LinkerAllocatorPage
Change-Id: I87d80fbcd4ec26c0ee4f601b9c4c64f600418dd9
2015-03-10 15:43:50 -07:00
Dmitriy Ivanov
c9ce70d783 Refactoring: rename linker_allocator files
Change-Id: Ifc08e64b3a85205f072b7abab1149c7ab71e2f75
2015-03-10 15:30:26 -07:00
Dmitriy Ivanov
88f587421d am 6d0735fa: am dca2fadd: am a94cf791: Merge "Generate sysv hash for libc, libstdc++ and libm"
* commit '6d0735fa2bd9690252c0f26cafffb7614ffd3556':
  Generate sysv hash for libc, libstdc++ and libm
2015-03-10 22:04:33 +00:00
Yabin Cui
3b18a6510e am 981fdd0e: am 50119cec: am 37c71b14: Merge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink."
* commit '981fdd0e5580f5a51e52dc1105fa95ec6705d017':
  Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.
2015-03-10 22:04:32 +00:00
Dmitriy Ivanov
eed4cb3869 am 240a7910: am 8af6a7b3: am 017f94d3: Merge "Store fields for gnu_hash separately"
* commit '240a7910ab46bc1f247270c3edafbb4e18616f60':
  Store fields for gnu_hash separately
2015-03-10 18:15:58 +00:00
Dimitry Ivanov
1f2b704ccf am e842dc0d: am c16c8368: Merge "Generate gnu hash for arm only"
* commit 'e842dc0de5ce5f9950e323ae8805909f60867bf6':
  Generate gnu hash for arm only
2015-03-10 17:48:29 +00:00
Dimitry Ivanov
e842dc0de5 am c16c8368: Merge "Generate gnu hash for arm only"
* commit 'c16c8368773452e2d18d761a7b3ea6f249dc2ac5':
  Generate gnu hash for arm only
2015-03-10 17:41:18 +00:00
Dimitry Ivanov
c16c836877 Merge "Generate gnu hash for arm only" 2015-03-10 17:34:51 +00:00
Goran Jakovljevic
1156508265 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
2015-03-10 10:01:50 -07:00
Dmitriy Ivanov
6d0735fa2b am dca2fadd: am a94cf791: Merge "Generate sysv hash for libc, libstdc++ and libm"
* commit 'dca2fadd8252a5c0664d2811187bc39bd7916aa4':
  Generate sysv hash for libc, libstdc++ and libm
2015-03-10 15:12:09 +00:00
Yabin Cui
981fdd0e55 am 50119cec: am 37c71b14: Merge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink."
* commit '50119cec8d872df02547af39a3a85aea9125299b':
  Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.
2015-03-10 15:12:07 +00:00
Dmitriy Ivanov
dca2fadd82 am a94cf791: Merge "Generate sysv hash for libc, libstdc++ and libm"
* commit 'a94cf791c1c9b93d49f5573716de93348757ae15':
  Generate sysv hash for libc, libstdc++ and libm
2015-03-10 15:03:35 +00:00
Yabin Cui
50119cec8d am 37c71b14: Merge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink."
* commit '37c71b14e51c53b0cb5daa19bf38559d063453dc':
  Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.
2015-03-10 15:03:34 +00:00
Dmitriy Ivanov
a94cf791c1 Merge "Generate sysv hash for libc, libstdc++ and libm" 2015-03-10 04:41:02 +00:00
Yabin Cui
37c71b14e5 Merge "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink." 2015-03-10 04:14:12 +00:00
Dmitriy Ivanov
4a55c46d30 Generate sysv hash for libc, libstdc++ and libm
Bug: 19059885
Change-Id: I35e2a9cd0bb3914d9d0c82d163bfaf0fff844667
2015-03-09 19:38:56 -07:00
Yabin Cui
c6e5874a4c 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
2015-03-09 18:13:15 -07:00
Dmitriy Ivanov
240a7910ab am 8af6a7b3: am 017f94d3: Merge "Store fields for gnu_hash separately"
* commit '8af6a7b38e1ce134d537f359d8cf4780ed9d8f58':
  Store fields for gnu_hash separately
2015-03-09 21:15:50 +00:00
Dmitriy Ivanov
8af6a7b38e am 017f94d3: Merge "Store fields for gnu_hash separately"
* commit '017f94d34eedfaca1c62cb35a65b8436f04b8f62':
  Store fields for gnu_hash separately
2015-03-09 21:11:02 +00:00
Dmitriy Ivanov
017f94d34e Merge "Store fields for gnu_hash separately" 2015-03-09 21:05:52 +00:00
Dmitriy Ivanov
3597b8055d 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
2015-03-09 21:01:01 +00:00
Jingwei Zhang
5d4f0e6a26 Add the optimized implementation of 18 math functions for x86 and x86_64 respectively
Change-Id: I31bf601448a9427f825517f3a0ff24de47f49bfa
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2015-03-09 13:19:08 -07:00
Nick Kralevich
7a507ba202 am 563fd91a: am 9e08606c: am edc1d3e3: Merge "linker: Allow an app to update it\'s own LD_LIBRARY_PATH"
* commit '563fd91a314958ae0fec09471056e6071e71f72a':
  linker: Allow an app to update it's own LD_LIBRARY_PATH
2015-03-08 00:18:04 +00:00
Christopher Ferris
da597738d8 am 0e2b8b80: am 5c329e45: am 9afb08dd: Merge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64"
* commit '0e2b8b800036c79bf05760e28896041028a2fa3c':
  libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64
2015-03-08 00:18:03 +00:00
Dmitriy Ivanov
5e05683975 am 7d62778c: am 2bf9f30a: am 536ec735: Merge changes I796a4ce8,I6165d062,I66c95d90,Ia67fa11d
* commit '7d62778c0f7b404961361e0a1745ff8f880ec805':
  Add support for packed relocations.
  Refactoring: introduce reloc_iterators
  Generalize compression tool
  Import relocation packer from chromium repo
2015-03-08 00:18:02 +00:00
Yabin Cui
a01387a16b am 7db2acbb: am 2bb873ae: am e86a86f9: Merge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD."
* commit '7db2acbb694871da2b02ccf2261c01e0faf812ae':
  Remove PTHREAD_ATTR_FLAG_MAIN_THREAD.
2015-03-08 00:18:01 +00:00
Yabin Cui
a2d3511e36 am 39416d70: am a1d1f658: am 45ee73a7: Merge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp."
* commit '39416d701cdbcff68d7ed11720b61d8a4a9e66bd':
  Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.
2015-03-08 00:18:00 +00:00
Yabin Cui
1493be412e am 185d511b: am af1ad422: am fe4f2a67: Merge "Use pthread_once for g_uselocale_key creation."
* commit '185d511bf827d864397e8ac2dd886ae19618f71d':
  Use pthread_once for g_uselocale_key creation.
2015-03-08 00:17:59 +00:00
Nick Kralevich
563fd91a31 am 9e08606c: am edc1d3e3: Merge "linker: Allow an app to update it\'s own LD_LIBRARY_PATH"
* commit '9e08606c8353b543f414625a475aaab390de161f':
  linker: Allow an app to update it's own LD_LIBRARY_PATH
2015-03-08 00:08:43 +00:00
Christopher Ferris
0e2b8b8000 am 5c329e45: am 9afb08dd: Merge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64"
* commit '5c329e45dc5b4216be673459bcc7c5abcce5f2d3':
  libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64
2015-03-08 00:08:32 +00:00
Dmitriy Ivanov
7d62778c0f am 2bf9f30a: am 536ec735: Merge changes I796a4ce8,I6165d062,I66c95d90,Ia67fa11d
* commit '2bf9f30a3ae9892660b7f7f64fd4d60bae712ed6':
  Add support for packed relocations.
  Refactoring: introduce reloc_iterators
  Generalize compression tool
  Import relocation packer from chromium repo
2015-03-08 00:08:30 +00:00
Yabin Cui
7db2acbb69 am 2bb873ae: am e86a86f9: Merge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD."
* commit '2bb873aee94db4f317a62480b07f6d4d1d33da6d':
  Remove PTHREAD_ATTR_FLAG_MAIN_THREAD.
2015-03-08 00:08:29 +00:00
Yabin Cui
39416d701c am a1d1f658: am 45ee73a7: Merge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp."
* commit 'a1d1f658b5ed0508a21c87008a13830530660eba':
  Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.
2015-03-08 00:07:50 +00:00
Yabin Cui
185d511bf8 am af1ad422: am fe4f2a67: Merge "Use pthread_once for g_uselocale_key creation."
* commit 'af1ad4220885bc37a347086cac15863fe9bbe16e':
  Use pthread_once for g_uselocale_key creation.
2015-03-08 00:07:22 +00:00
Nick Kralevich
9e08606c83 am edc1d3e3: Merge "linker: Allow an app to update it\'s own LD_LIBRARY_PATH"
* commit 'edc1d3e3c6266eadcd05a9aa7bcdec701ba060aa':
  linker: Allow an app to update it's own LD_LIBRARY_PATH
2015-03-07 23:38:35 +00:00
Nick Kralevich
edc1d3e3c6 Merge "linker: Allow an app to update it's own LD_LIBRARY_PATH" 2015-03-07 23:31:32 +00:00
Nick Kralevich
6bb01b6e63 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
2015-03-07 13:37:05 -08:00
Christopher Ferris
5c329e45dc am 9afb08dd: Merge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64"
* commit '9afb08dd0984acea49da5aae21b41522cb805dac':
  libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64
2015-03-07 17:13:22 +00:00
Dmitriy Ivanov
2bf9f30a3a am 536ec735: Merge changes I796a4ce8,I6165d062,I66c95d90,Ia67fa11d
* commit '536ec7359eb951655e389443aa918a4bb16b2d8b':
  Add support for packed relocations.
  Refactoring: introduce reloc_iterators
  Generalize compression tool
  Import relocation packer from chromium repo
2015-03-07 17:13:21 +00:00
Yabin Cui
2bb873aee9 am e86a86f9: Merge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD."
* commit 'e86a86f9f24df7028d2596c69ff008cf88e039e4':
  Remove PTHREAD_ATTR_FLAG_MAIN_THREAD.
2015-03-07 17:13:21 +00:00
Christopher Ferris
9afb08dd09 Merge "libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64" 2015-03-07 16:46:27 +00:00
Dmitriy Ivanov
536ec7359e 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
2015-03-07 07:08:51 +00:00
Dmitriy Ivanov
18a6956b76 Add support for packed relocations.
Change-Id: I796a4ce86d3fccb8361c19889419c96147ee3c9f
2015-03-06 17:12:47 -08:00
James Rose
45789b63db 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>
2015-03-06 16:48:30 -08:00
Yabin Cui
e86a86f9f2 Merge "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD." 2015-03-06 23:21:12 +00:00
Yabin Cui
9d0c79304d 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
2015-03-06 15:16:44 -08:00
Dmitriy Ivanov
fa26eee776 Refactoring: introduce reloc_iterators
Replace rel/rela array with reloc_iterators.

Change-Id: I6165d062e0390b6bc60da2e8279aabbedf828ec9
2015-03-06 13:01:08 -08:00
Dmitriy Ivanov
f8ff6b103b 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
2015-03-06 13:01:08 -08:00
Dmitriy Ivanov
87a0617ebe Import relocation packer from chromium repo
Bug: 18051137
Change-Id: Ia67fa11da8247e3f86f70a8ce99e6695f2c05423
2015-03-06 13:01:08 -08:00
Yabin Cui
a1d1f658b5 am 45ee73a7: Merge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp."
* commit '45ee73a7fbe98cba2ccb007b60c027d27dfca1cb':
  Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.
2015-03-06 21:00:16 +00:00
Yabin Cui
45ee73a7fb Merge "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp." 2015-03-06 20:52:31 +00:00
Yabin Cui
af1ad42208 am fe4f2a67: Merge "Use pthread_once for g_uselocale_key creation."
* commit 'fe4f2a6734ed3ace50606900143e84993f450caf':
  Use pthread_once for g_uselocale_key creation.
2015-03-06 05:34:31 +00:00
Yabin Cui
fe4f2a6734 Merge "Use pthread_once for g_uselocale_key creation." 2015-03-06 05:28:24 +00:00
Yabin Cui
f7e3b3e48a Use pthread_once for g_uselocale_key creation.
Bug: 19625804
Change-Id: I57ec4c965067dc0c157c795c1f7217a3ca403286
2015-03-05 20:39:10 -08:00
Christopher Ferris
bef6cbbe79 am 35e88f9b: am e953f3cf: am 71bf8379: Merge "libm: arm: add arm specific sqrt and sqrtf"
* commit '35e88f9b8bf51b75bb4fe7a72d43875bfed228f6':
  libm: arm: add arm specific sqrt and sqrtf
2015-03-05 22:43:24 +00:00
Christopher Ferris
35e88f9b8b am e953f3cf: am 71bf8379: Merge "libm: arm: add arm specific sqrt and sqrtf"
* commit 'e953f3cf985e810071d707bcc296b20ec6e2e8dd':
  libm: arm: add arm specific sqrt and sqrtf
2015-03-05 22:35:46 +00:00
Christopher Ferris
e953f3cf98 am 71bf8379: Merge "libm: arm: add arm specific sqrt and sqrtf"
* commit '71bf837982446b31f435031ed2d10aa1c8c15988':
  libm: arm: add arm specific sqrt and sqrtf
2015-03-05 21:59:08 +00:00
Christopher Ferris
71bf837982 Merge "libm: arm: add arm specific sqrt and sqrtf" 2015-03-05 21:55:21 +00:00
Yabin Cui
120a29749d am 807c623b: am 9ecb7f40: am c3307dc4: Merge "Better control of pthread keys used in bionic."
* commit '807c623b58c7020e8419057fac0c58f0a7099bbe':
  Better control of pthread keys used in bionic.
2015-03-05 19:26:31 +00:00
Yabin Cui
807c623b58 am 9ecb7f40: am c3307dc4: Merge "Better control of pthread keys used in bionic."
* commit '9ecb7f40d01d7ee258d11277944cc2415635ea17':
  Better control of pthread keys used in bionic.
2015-03-05 18:39:22 +00:00
Yabin Cui
9ecb7f40d0 am c3307dc4: Merge "Better control of pthread keys used in bionic."
* commit 'c3307dc43b2526c4031837738b139d22831c5d09':
  Better control of pthread keys used in bionic.
2015-03-05 18:33:31 +00:00
Yabin Cui
c3307dc43b Merge "Better control of pthread keys used in bionic." 2015-03-05 18:26:44 +00:00
Yabin Cui
93e094f9c3 am 4710b5fb: am 917cb395: am 5d400204: Merge "Fix fortify compilation test in x86_64."
* commit '4710b5fb5d0939c2212769b054d700152f7fd885':
  Fix fortify compilation test in x86_64.
2015-03-05 08:59:33 +00:00
Yabin Cui
4710b5fb5d am 917cb395: am 5d400204: Merge "Fix fortify compilation test in x86_64."
* commit '917cb395bc7c71b34d3a4feca0c619d2aaf89fd8':
  Fix fortify compilation test in x86_64.
2015-03-05 08:53:16 +00:00
Yabin Cui
917cb395bc am 5d400204: Merge "Fix fortify compilation test in x86_64."
* commit '5d400204589ceb781fa11864c2e8f3001e5dc96f':
  Fix fortify compilation test in x86_64.
2015-03-05 08:47:12 +00:00
Yabin Cui
24e8871faa Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.
Bug: 19234260
Change-Id: Ife27ca13eeae317739eda25b40dd2a08606d6d6f
2015-03-05 00:46:18 -08:00
Yabin Cui
5d40020458 Merge "Fix fortify compilation test in x86_64." 2015-03-05 08:40:58 +00:00
Yabin Cui
d9647594de Fix fortify compilation test in x86_64.
Change-Id: Ic243f6583e4f435899d01c7845dddacacbfc916e
2015-03-05 00:39:09 -08:00
Yabin Cui
97bd338e55 am 3801fb1e: am f9b3f25e: am 1c78181a: Merge "Fix fortify compilation test on x86."
* commit '3801fb1e8bbaeef23f6a0cf8709ecd60d4ec5f6a':
  Fix fortify compilation test on x86.
2015-03-05 06:51:36 +00:00
Yabin Cui
3801fb1e8b am f9b3f25e: am 1c78181a: Merge "Fix fortify compilation test on x86."
* commit 'f9b3f25e0ba641cc59a741492737f4712f2d798a':
  Fix fortify compilation test on x86.
2015-03-05 06:44:02 +00:00
Yabin Cui
f9b3f25e0b am 1c78181a: Merge "Fix fortify compilation test on x86."
* commit '1c78181a9da19778dbbcc162854f9564a51243bf':
  Fix fortify compilation test on x86.
2015-03-05 06:39:55 +00:00
Yabin Cui
1c78181a9d Merge "Fix fortify compilation test on x86." 2015-03-05 06:36:47 +00:00
Yabin Cui
94545eba37 Fix fortify compilation test on x86.
Change-Id: I9b88cbcec51b6f1dbac2780a9bf82851bd6cc87c
2015-03-04 22:35:13 -08:00
Yabin Cui
2295b54492 am 9336f832: am c2917ec7: am 5ad57ce6: Merge "Fix fortify compilation test on mips."
* commit '9336f83244956c9dcea2ecb0c7a2768b85a953be':
  Fix fortify compilation test on mips.
2015-03-05 06:02:53 +00:00
Yabin Cui
9336f83244 am c2917ec7: am 5ad57ce6: Merge "Fix fortify compilation test on mips."
* commit 'c2917ec702d25955c6d139d76cfb7d607079141e':
  Fix fortify compilation test on mips.
2015-03-05 05:55:57 +00:00
Yabin Cui
c2917ec702 am 5ad57ce6: Merge "Fix fortify compilation test on mips."
* commit '5ad57ce6ab95a12ab738eb7cd3595745ddd60d8d':
  Fix fortify compilation test on mips.
2015-03-05 05:50:33 +00:00
Yabin Cui
5ad57ce6ab Merge "Fix fortify compilation test on mips." 2015-03-05 05:46:16 +00:00
Yabin Cui
f3bd305b8f Fix fortify compilation test on mips.
Change-Id: Icff5b859ae58067bfa34430d3f5684335fe063b4
2015-03-04 21:43:14 -08:00
Yabin Cui
de40b37882 am 8e91a1ff: am 80aa71aa: am e1c0213b: Merge "Switch pthread_rwlock_t to stdatomic."
* commit '8e91a1ff73b865f9ed5f8ee4a493394e8b3ba302':
  Switch pthread_rwlock_t to stdatomic.
2015-03-05 05:00:35 +00:00
Yabin Cui
8e91a1ff73 am 80aa71aa: am e1c0213b: Merge "Switch pthread_rwlock_t to stdatomic."
* commit '80aa71aa71033fa8c03f8b7a9032643294f60006':
  Switch pthread_rwlock_t to stdatomic.
2015-03-05 04:54:37 +00:00
Yabin Cui
80aa71aa71 am e1c0213b: Merge "Switch pthread_rwlock_t to stdatomic."
* commit 'e1c0213be3f0c2c4e310cbc262da88835a2e5d86':
  Switch pthread_rwlock_t to stdatomic.
2015-03-05 04:48:48 +00:00
Yabin Cui
e1c0213be3 Merge "Switch pthread_rwlock_t to stdatomic." 2015-03-05 04:42:35 +00:00
Yabin Cui
08ee8d2030 Switch pthread_rwlock_t to stdatomic.
Bug: 19099838
Change-Id: Ie82967a60b5cec61a8bdd1e0e4a03738d01944f8
2015-03-04 18:16:20 -08:00
Yabin Cui
4a2891d8c8 Better control of pthread keys used in bionic.
Change-Id: I1e1bc77c0e7879baead6c3417282ce549a1153b5
2015-03-04 16:53:23 -08:00
Yabin Cui
eb050b0c4d am ea0cbb9a: am 821653e6: am dec9501a: Merge "Add fortify compile test."
* commit 'ea0cbb9a274e2b9294545b7ab877906ed4c3d202':
  Add fortify compile test.
2015-03-05 00:10:17 +00:00
Yabin Cui
ea0cbb9a27 am 821653e6: am dec9501a: Merge "Add fortify compile test."
* commit '821653e65f481b65c608bb3eb89190f7a85356c7':
  Add fortify compile test.
2015-03-05 00:06:03 +00:00
Yabin Cui
821653e65f am dec9501a: Merge "Add fortify compile test."
* commit 'dec9501af2ee4d7cec3a163310d42e8ea1b8c58f':
  Add fortify compile test.
2015-03-04 23:55:21 +00:00
Yabin Cui
dec9501af2 Merge "Add fortify compile test." 2015-03-04 23:25:42 +00:00
Christopher Ferris
fdc33dcfaf am 59c32458: am 1edafd56: am 86ac7341: Merge "Add aarch64 instructions wherever possible"
* commit '59c324581f58243564ec6db1688e5e1c3e220750':
  Add aarch64 instructions wherever possible
2015-03-04 23:24:45 +00:00
Christopher Ferris
59c324581f am 1edafd56: am 86ac7341: Merge "Add aarch64 instructions wherever possible"
* commit '1edafd561aefe07dd39273c1c09a9dbb308549d6':
  Add aarch64 instructions wherever possible
2015-03-04 22:51:40 +00:00
Christopher Ferris
1edafd561a am 86ac7341: Merge "Add aarch64 instructions wherever possible"
* commit '86ac734142a4d0765ceb589e7dcc3af1a4f4a8dd':
  Add aarch64 instructions wherever possible
2015-03-04 22:44:43 +00:00
Shu Zhang
c78fa26d47 libm: arm: add arm specific sqrt and sqrtf
Add arm specific optimized sqrt and sqrtf.

Change-Id: I8ea417fc98a800c8cf4f47a0c6668c51d927b1dc
2015-03-04 14:07:35 -08:00
Christopher Ferris
86ac734142 Merge "Add aarch64 instructions wherever possible" 2015-03-04 21:52:01 +00:00
Yabin Cui
20f2268d61 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
2015-03-04 13:10:38 -08:00
Amaury Le Leyzour
32936c895d Add aarch64 instructions wherever possible
fma, sqrt and various rounding functions have aarch64 instruction equivalent

Change-Id: I1284f31b9f78f914281e5563b8d44db8362b627d
2015-03-04 12:18:52 -08:00
Yabin Cui
cdf7bf3e7d am 01351a72: am c210e84f: am e1edd301: Merge "Refactor pthread_key.cpp to be lock-free."
* commit '01351a728935bd52d1cb10d10c4c6aa686305053':
  Refactor pthread_key.cpp to be lock-free.
2015-03-04 02:09:32 +00:00
Yabin Cui
01351a7289 am c210e84f: am e1edd301: Merge "Refactor pthread_key.cpp to be lock-free."
* commit 'c210e84f28633d15f84a66a0652a4485c5fbc24d':
  Refactor pthread_key.cpp to be lock-free.
2015-03-04 02:00:43 +00:00
Yabin Cui
c210e84f28 am e1edd301: Merge "Refactor pthread_key.cpp to be lock-free."
* commit 'e1edd301d2a722e0a0687a7a3a87081c8cb956d3':
  Refactor pthread_key.cpp to be lock-free.
2015-03-04 01:53:46 +00:00
Yabin Cui
e1edd301d2 Merge "Refactor pthread_key.cpp to be lock-free." 2015-03-04 01:49:20 +00:00
Yabin Cui
5e2bd719d7 Refactor pthread_key.cpp to be lock-free.
Change-Id: I20dfb9d3cdc40eed10ea12ac34f03caaa94f7a49
2015-03-03 15:46:53 -08:00
Yabin Cui
8dbabd8494 am 92cadb19: am 62b6d11b: am d5c2745c: Merge "Lose bionic_atomic stuff."
* commit '92cadb19fba4bdcfa009ee8cbdf41a282a6b76b0':
  Lose bionic_atomic stuff.
2015-03-03 03:12:55 +00:00
Yabin Cui
92cadb19fb am 62b6d11b: am d5c2745c: Merge "Lose bionic_atomic stuff."
* commit '62b6d11b2de06db8ed26dc4b2b175443110748fe':
  Lose bionic_atomic stuff.
2015-03-03 03:07:06 +00:00
Yabin Cui
62b6d11b2d am d5c2745c: Merge "Lose bionic_atomic stuff."
* commit 'd5c2745ca8664b987d737e4a32922b6c9fe7c628':
  Lose bionic_atomic stuff.
2015-03-03 03:00:42 +00:00
Yabin Cui
d5c2745ca8 Merge "Lose bionic_atomic stuff." 2015-03-03 02:56:19 +00:00
Mark Salyzyn
5e6d3f49e2 am ef5cc0b8: am 1f3ac62b: am ceb9c182: Merge "bionic: deprecate _PATH_MEM"
* commit 'ef5cc0b8d71ed74129b010550a35d0a3a97f913a':
  bionic: deprecate _PATH_MEM
2015-03-02 22:45:45 +00:00
Mark Salyzyn
ef5cc0b8d7 am 1f3ac62b: am ceb9c182: Merge "bionic: deprecate _PATH_MEM"
* commit '1f3ac62b447f67fc60620bd3254761b1d73297ba':
  bionic: deprecate _PATH_MEM
2015-03-02 19:47:36 +00:00
Mark Salyzyn
1f3ac62b44 am ceb9c182: Merge "bionic: deprecate _PATH_MEM"
* commit 'ceb9c182dbb9752004a3d61d872fb3f0cc1c3f9c':
  bionic: deprecate _PATH_MEM
2015-03-02 19:41:53 +00:00
Mark Salyzyn
ceb9c182db Merge "bionic: deprecate _PATH_MEM" 2015-03-02 18:57:59 +00:00
Mark Salyzyn
c09268a3fe 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
2015-03-02 18:44:11 +00:00
Christopher Ferris
e8fdf3e792 am 219ce296: am df14d8ef: am 2ae7c1e3: Merge "Fix fread returning bad data."
* commit '219ce2968b42ff4019d7eea2e8728505851ba475':
  Fix fread returning bad data.
2015-02-28 18:47:26 +00:00
Christopher Ferris
219ce2968b am df14d8ef: am 2ae7c1e3: Merge "Fix fread returning bad data."
* commit 'df14d8ef9884d85987e9810ae44837b659e1f82a':
  Fix fread returning bad data.
2015-02-28 18:41:27 +00:00
Christopher Ferris
df14d8ef98 am 2ae7c1e3: Merge "Fix fread returning bad data."
* commit '2ae7c1e336af3dd2901e90608be3adeb577659a7':
  Fix fread returning bad data.
2015-02-28 18:36:18 +00:00
Christopher Ferris
2ae7c1e336 Merge "Fix fread returning bad data." 2015-02-28 18:31:01 +00:00
Christopher Ferris
cc9ca1051d Fix fread returning bad data.
Bug: 19172514
Change-Id: I05016577858a02aca7d14e75e6ec28abc925037c
2015-02-27 18:22:45 -08:00
Christopher Ferris
5741d528ce am e30073f2: am d957bd08: am e6a33cef: Merge "libm: arm: Add arm specific floor() optimization"
* commit 'e30073f2a54d4f3ca072c7d28ee5b0209c8532a8':
  libm: arm: Add arm specific floor() optimization
2015-02-27 20:46:53 +00:00
Christopher Ferris
e30073f2a5 am d957bd08: am e6a33cef: Merge "libm: arm: Add arm specific floor() optimization"
* commit 'd957bd08b08685da987ebf609f87c3806b4455bc':
  libm: arm: Add arm specific floor() optimization
2015-02-27 20:40:46 +00:00
Christopher Ferris
d957bd08b0 am e6a33cef: Merge "libm: arm: Add arm specific floor() optimization"
* commit 'e6a33cefe4b3759fb77d9e69356cb50a97ea7e54':
  libm: arm: Add arm specific floor() optimization
2015-02-27 20:28:36 +00:00
Christopher Ferris
e6a33cefe4 Merge "libm: arm: Add arm specific floor() optimization" 2015-02-27 20:23:15 +00:00
Yabin Cui
7a42cd224c am 0d282fc5: am 09ee78ae: am b220c4b6: Merge "Make bionic gtest main be compatible with gtest output format for cts test."
* commit '0d282fc57291cf392f6322e34769c50d815085e7':
  Make bionic gtest main be compatible with gtest output format for cts test.
2015-02-27 18:49:54 +00:00
Yabin Cui
0d282fc572 am 09ee78ae: am b220c4b6: Merge "Make bionic gtest main be compatible with gtest output format for cts test."
* commit '09ee78ae010a1aa91ed5c12f8da80829837df944':
  Make bionic gtest main be compatible with gtest output format for cts test.
2015-02-27 18:42:52 +00:00
Yabin Cui
09ee78ae01 am b220c4b6: Merge "Make bionic gtest main be compatible with gtest output format for cts test."
* commit 'b220c4b609270cc6b76c4635d91d1f851aa63e57':
  Make bionic gtest main be compatible with gtest output format for cts test.
2015-02-27 18:36:08 +00:00
Yabin Cui
b220c4b609 Merge "Make bionic gtest main be compatible with gtest output format for cts test." 2015-02-27 18:29:48 +00:00
Yabin Cui
f6237470a3 Make bionic gtest main be compatible with gtest output format for cts test.
Bug: 17589740
Change-Id: Ifab521da379a33bf0a7bf11c21386f936f0d494c
2015-02-26 19:03:54 -08:00
Yabin Cui
ce751b3536 Lose bionic_atomic stuff.
Bug: 17177189
Change-Id: Ie1f5d7af359d31b14f58e53ec89c72111362d7ec
2015-02-26 13:45:06 -08:00
Christopher Ferris
99491a2988 am 21ddfa23: am e6c7e294: am f8eec1e5: Merge "Allow wildcards to match arg values."
* commit '21ddfa23f67cd0a9db7eff0c8a4ada5df1931f15':
  Allow wildcards to match arg values.
2015-02-26 04:04:42 +00:00
Yabin Cui
76f0031e4d am 8a661472: am 00ba42b9: am 7355d29b: Merge "Make getgrent deprecated."
* commit '8a6614726802170a19e5e68543a06117596def06':
  Make getgrent deprecated.
2015-02-26 04:04:41 +00:00
Christopher Ferris
21ddfa23f6 am e6c7e294: am f8eec1e5: Merge "Allow wildcards to match arg values."
* commit 'e6c7e294820a3b6c3569decad57d29eac31254b3':
  Allow wildcards to match arg values.
2015-02-26 03:58:38 +00:00
Yabin Cui
8a66147268 am 00ba42b9: am 7355d29b: Merge "Make getgrent deprecated."
* commit '00ba42b9f509baa706c93f648c8ad7c84c89d6d0':
  Make getgrent deprecated.
2015-02-26 03:58:37 +00:00
Christopher Ferris
e6c7e29482 am f8eec1e5: Merge "Allow wildcards to match arg values."
* commit 'f8eec1e54fbfb7b0304b73cb9ce2de44760a672e':
  Allow wildcards to match arg values.
2015-02-26 03:52:35 +00:00
Yabin Cui
00ba42b9f5 am 7355d29b: Merge "Make getgrent deprecated."
* commit '7355d29bbd106bd4ab3f5be1b743fb73e8c3b4da':
  Make getgrent deprecated.
2015-02-26 03:52:34 +00:00
Christopher Ferris
f8eec1e54f Merge "Allow wildcards to match arg values." 2015-02-26 03:47:12 +00:00
Yabin Cui
7355d29bbd Merge "Make getgrent deprecated." 2015-02-26 03:46:41 +00:00
Yabin Cui
d2f0f768e5 am 0a2db6e2: am 253fcfe7: am 398ef152: Merge "Move endpwent to ndk_cruft.cpp."
* commit '0a2db6e26f3a605df3d6c62e90b86b894be6f64b':
  Move endpwent to ndk_cruft.cpp.
2015-02-26 03:06:26 +00:00
Yabin Cui
072a326231 am f244b6d6: am fbff0fd5: am f1b4a5d5: Merge "Make tempnam/mktemp deprecated."
* commit 'f244b6d6920bdc9e7d2b597b0ac790759b603f72':
  Make tempnam/mktemp deprecated.
2015-02-26 03:06:24 +00:00
Yabin Cui
b8b5a72f41 Make getgrent deprecated.
Bug: 19340053
Change-Id: Ie8b97f840d9e87555e6a3d591fc87bc08c2d6820
2015-02-25 19:05:37 -08:00
Yabin Cui
0a2db6e26f am 253fcfe7: am 398ef152: Merge "Move endpwent to ndk_cruft.cpp."
* commit '253fcfe70e1bb87ca66e2886d90f6906e8d27f12':
  Move endpwent to ndk_cruft.cpp.
2015-02-26 02:58:56 +00:00
Yabin Cui
f244b6d692 am fbff0fd5: am f1b4a5d5: Merge "Make tempnam/mktemp deprecated."
* commit 'fbff0fd516a5d6499b3417eb194b0631ae50094a':
  Make tempnam/mktemp deprecated.
2015-02-26 02:58:50 +00:00
Yabin Cui
253fcfe70e am 398ef152: Merge "Move endpwent to ndk_cruft.cpp."
* commit '398ef152d50854fccb21086e30b5cc24641b3e2a':
  Move endpwent to ndk_cruft.cpp.
2015-02-26 02:52:36 +00:00
Yabin Cui
fbff0fd516 am f1b4a5d5: Merge "Make tempnam/mktemp deprecated."
* commit 'f1b4a5d510c693d7cffc76cade9ab049f7dfed07':
  Make tempnam/mktemp deprecated.
2015-02-26 02:52:35 +00:00
Yabin Cui
398ef152d5 Merge "Move endpwent to ndk_cruft.cpp." 2015-02-26 02:23:08 +00:00
Yabin Cui
f1b4a5d510 Merge "Make tempnam/mktemp deprecated." 2015-02-26 02:17:17 +00:00
Yabin Cui
9b4f77f5cf Make tempnam/mktemp deprecated.
Bug: 19340053
Change-Id: Ib02c65814ef97cd1758fd8142b73736cc8bc1700
2015-02-25 15:42:01 -08:00
Yabin Cui
52d7f1a94f Move endpwent to ndk_cruft.cpp.
Bug: 19109159
Change-Id: I3683a247643006ea6d6bcf3845f57d1908d457d7
2015-02-25 14:58:08 -08:00
Christopher Ferris
339ac378ca Allow wildcards to match arg values.
Change-Id: I38230b500bb8f8f69af0d7c740855a401cd12898
2015-02-25 14:56:32 -08:00
Yabin Cui
b448acfdba am 561d57a2: am f5d4f322: am 448a8596: Merge "Switch system_properties.cpp from bionic atomic operations to stdatomic."
* commit '561d57a246179d7148781eea4659fa960e93df02':
  Switch system_properties.cpp from bionic atomic operations to stdatomic.
2015-02-25 21:21:25 +00:00
Yabin Cui
561d57a246 am f5d4f322: am 448a8596: Merge "Switch system_properties.cpp from bionic atomic operations to stdatomic."
* commit 'f5d4f322bbea9e5a5a1ec4025a0289123c667e5f':
  Switch system_properties.cpp from bionic atomic operations to stdatomic.
2015-02-25 21:14:44 +00:00
Yabin Cui
f5d4f322bb am 448a8596: Merge "Switch system_properties.cpp from bionic atomic operations to stdatomic."
* commit '448a85968da1e4622e829bb48fd888a38f9f6c49':
  Switch system_properties.cpp from bionic atomic operations to stdatomic.
2015-02-25 21:10:42 +00:00
Yabin Cui
448a85968d Merge "Switch system_properties.cpp from bionic atomic operations to stdatomic." 2015-02-25 21:04:56 +00:00
Yabin Cui
baeac9b294 am e4093959: am a1e4a4a3: am 8c41eae6: Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."
* commit 'e4093959c06ee37f28461a460f553882eb010c4f':
  Move getusershell/endusershell/setusershell to ndk_cruft.cpp.
2015-02-25 17:04:56 +00:00
Yabin Cui
2955985437 am d16844ab: am 4600bdac: am af3ba5c8: Merge "Make all output of child test go to parent process in gtest_main."
* commit 'd16844abcea1cc50a64694367d6571c084c6a745':
  Make all output of child test go to parent process in gtest_main.
2015-02-25 17:04:55 +00:00
Nick Kralevich
328ab034c2 am fccf68ac: am e93bc6bb: am d91ded81: Merge "Fix "faccessat ignores flags""
* commit 'fccf68ace95348338e8b19afd6101581588a4f83':
  Fix "faccessat ignores flags"
2015-02-25 17:04:53 +00:00
Yabin Cui
e4093959c0 am a1e4a4a3: am 8c41eae6: Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."
* commit 'a1e4a4a3c68fc99958cc7a6e6fb7fed58feeaae8':
  Move getusershell/endusershell/setusershell to ndk_cruft.cpp.
2015-02-25 16:52:39 +00:00
Yabin Cui
d16844abce am 4600bdac: am af3ba5c8: Merge "Make all output of child test go to parent process in gtest_main."
* commit '4600bdac709969408ac446507d85881db55b0ca7':
  Make all output of child test go to parent process in gtest_main.
2015-02-25 16:52:35 +00:00
Nick Kralevich
fccf68ace9 am e93bc6bb: am d91ded81: Merge "Fix "faccessat ignores flags""
* commit 'e93bc6bbe8ce180187e3914d0a7494cfe84f6255':
  Fix "faccessat ignores flags"
2015-02-25 16:52:22 +00:00
Yabin Cui
a1e4a4a3c6 am 8c41eae6: Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."
* commit '8c41eae6fcdb6cad1f6c46ae01708ead6b734060':
  Move getusershell/endusershell/setusershell to ndk_cruft.cpp.
2015-02-25 00:05:52 +00:00
Yabin Cui
8c41eae6fc Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp." 2015-02-25 00:00:51 +00:00
Yabin Cui
4600bdac70 am af3ba5c8: Merge "Make all output of child test go to parent process in gtest_main."
* commit 'af3ba5c87319e19c10be6755b37af92521f702c2':
  Make all output of child test go to parent process in gtest_main.
2015-02-24 23:48:02 +00:00
Yabin Cui
af3ba5c873 Merge "Make all output of child test go to parent process in gtest_main." 2015-02-24 23:40:31 +00:00
Yabin Cui
7fb680bfda Move getusershell/endusershell/setusershell to ndk_cruft.cpp.
Bug: 19108648
Change-Id: I65134040345398dde612c4325d902db58f3bd2be
2015-02-24 14:46:59 -08:00
Yabin Cui
ea9c933f36 Make all output of child test go to parent process in gtest_main.
Change-Id: Iad460e89755051cdb99593cbf42c97d9a359f32b
2015-02-24 14:44:51 -08:00
Nick Kralevich
e93bc6bbe8 am d91ded81: Merge "Fix "faccessat ignores flags""
* commit 'd91ded81376a10a1c89f7a5ae3c462ae3b24188e':
  Fix "faccessat ignores flags"
2015-02-24 21:52:36 +00:00
Nick Kralevich
d91ded8137 Merge "Fix "faccessat ignores flags"" 2015-02-24 21:49:09 +00:00
Nick Kralevich
35778253a5 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
2015-02-24 13:40:43 -08:00
Yabin Cui
b8ce474217 Switch system_properties.cpp from bionic atomic operations to stdatomic.
Bug: 17177189
Change-Id: I42e05ad1c490cc7a8040138151afc0ee72a9b63f
2015-02-24 10:41:53 -08:00
Elliott Hughes
df93bc50fc am 549aab61: am 4ec60a01: am 2aef607b: Merge "Fix dup2 in the case where the two fds are equal."
* commit '549aab610a36b696a4586e33c4b709a29a668c1a':
  Fix dup2 in the case where the two fds are equal.
2015-02-24 06:06:43 +00:00
Elliott Hughes
549aab610a am 4ec60a01: am 2aef607b: Merge "Fix dup2 in the case where the two fds are equal."
* commit '4ec60a017859b39d490cfeb089ed30da09863def':
  Fix dup2 in the case where the two fds are equal.
2015-02-24 06:03:02 +00:00
Elliott Hughes
4ec60a0178 am 2aef607b: Merge "Fix dup2 in the case where the two fds are equal."
* commit '2aef607b25c463baed5ae70d14212e24ea7bcf2b':
  Fix dup2 in the case where the two fds are equal.
2015-02-24 05:59:52 +00:00
Elliott Hughes
2aef607b25 Merge "Fix dup2 in the case where the two fds are equal." 2015-02-24 05:55:37 +00:00
Elliott Hughes
be52e65817 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
2015-02-23 21:52:56 -08:00
Elliott Hughes
7d85c81f31 am aced654f: am 491c09e0: am 393bdb15: Merge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX."
* commit 'aced654f583682074db54b10706511453a7521da':
  Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.
2015-02-24 04:54:26 +00:00
Elliott Hughes
aced654f58 am 491c09e0: am 393bdb15: Merge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX."
* commit '491c09e0d5921edd57da2efb0c8ed4f32df93fe2':
  Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.
2015-02-23 22:52:54 +00:00
Elliott Hughes
491c09e0d5 am 393bdb15: Merge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX."
* commit '393bdb156d5024a03f03425a977d0518c84dbb98':
  Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.
2015-02-23 22:45:14 +00:00
Elliott Hughes
393bdb156d Merge "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX." 2015-02-23 22:36:06 +00:00
Elliott Hughes
6af62e0d50 Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.
Change-Id: Ia6be76460bfcf852832325c5f36cb272f49a4b87
2015-02-23 13:41:40 -08:00
Elliott Hughes
1d0ded2116 am c0e7f55d: am 07e218a4: am 3d83b189: Merge "[MIPS64] Fix mips64 build."
* commit 'c0e7f55d9b89c7d80083842223c941c413bc3942':
  [MIPS64] Fix mips64 build.
2015-02-23 16:19:21 +00:00
Elliott Hughes
c0e7f55d9b am 07e218a4: am 3d83b189: Merge "[MIPS64] Fix mips64 build."
* commit '07e218a484d8a1ac71c3b9317e86f5ba39aae919':
  [MIPS64] Fix mips64 build.
2015-02-23 16:12:38 +00:00
Elliott Hughes
07e218a484 am 3d83b189: Merge "[MIPS64] Fix mips64 build."
* commit '3d83b18970f32467596830845793b18a858f59e6':
  [MIPS64] Fix mips64 build.
2015-02-23 16:09:17 +00:00
Elliott Hughes
3d83b18970 Merge "[MIPS64] Fix mips64 build." 2015-02-23 16:04:20 +00:00
Nikola Veljkovic
daf8911079 [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
2015-02-23 16:21:31 +01:00
Greg Hackmann
f937761134 am 973ceef6: am 4602d8c7: am 04bbef37: Merge "Fix 64-bit benchmark build"
* commit '973ceef6869a7dad02195389547bf6177bb6cb34':
  Fix 64-bit benchmark build
2015-02-20 19:30:41 +00:00
Greg Hackmann
973ceef686 am 4602d8c7: am 04bbef37: Merge "Fix 64-bit benchmark build"
* commit '4602d8c7621ffd87e32f53c8f7e8ac5453a404ca':
  Fix 64-bit benchmark build
2015-02-20 19:27:13 +00:00
Greg Hackmann
4602d8c762 am 04bbef37: Merge "Fix 64-bit benchmark build"
* commit '04bbef377b9941bf6d67d9c515b6640a314fb032':
  Fix 64-bit benchmark build
2015-02-20 19:21:19 +00:00
Greg Hackmann
04bbef377b Merge "Fix 64-bit benchmark build" 2015-02-20 19:16:49 +00:00
Greg Hackmann
567bfb3779 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>
2015-02-20 11:07:38 -08:00
Elliott Hughes
3f89ed1b47 am 5bf236e9: am 6421f8f5: am c39eef71: Merge "valgrind can\'t find syscall because we didn\'t put it in <unistd.h>."
* commit '5bf236e95f75de0169abbb22fc083c767ec681a6':
  valgrind can't find syscall because we didn't put it in <unistd.h>.
2015-02-20 17:15:16 +00:00
Elliott Hughes
5bf236e95f am 6421f8f5: am c39eef71: Merge "valgrind can\'t find syscall because we didn\'t put it in <unistd.h>."
* commit '6421f8f5b21357b3f956f4b20c3622f96863a219':
  valgrind can't find syscall because we didn't put it in <unistd.h>.
2015-02-20 17:08:47 +00:00
Elliott Hughes
6421f8f5b2 am c39eef71: Merge "valgrind can\'t find syscall because we didn\'t put it in <unistd.h>."
* commit 'c39eef71a7f66b69e2216a51d0e7fbc1796d0696':
  valgrind can't find syscall because we didn't put it in <unistd.h>.
2015-02-20 17:02:25 +00:00
Elliott Hughes
c39eef71a7 Merge "valgrind can't find syscall because we didn't put it in <unistd.h>." 2015-02-20 16:56:58 +00:00
Elliott Hughes
4c5891d93d valgrind can't find syscall because we didn't put it in <unistd.h>.
Change-Id: I1e47291d4476bd2816138a8cf58f29d4986d39e3
2015-02-19 22:49:44 -08:00
Christopher Ferris
1e0f763c9a am e84dff9a: am 479070c5: am 324313a9: Merge "Refactor the benchmark code."
* commit 'e84dff9a1f1d583c428e137cf0120fdd4ce315ce':
  Refactor the benchmark code.
2015-02-20 01:10:48 +00:00
Christopher Ferris
e84dff9a1f am 479070c5: am 324313a9: Merge "Refactor the benchmark code."
* commit '479070c51e34f9f9f809df4daa8184e5b2947f14':
  Refactor the benchmark code.
2015-02-20 01:03:22 +00:00
Christopher Ferris
479070c51e am 324313a9: Merge "Refactor the benchmark code."
* commit '324313a9e58c0e8d2546d124d8fcf04306a114f5':
  Refactor the benchmark code.
2015-02-20 00:59:18 +00:00
Christopher Ferris
324313a9e5 Merge "Refactor the benchmark code." 2015-02-20 00:53:25 +00:00
Bill Yi
c390f2eae6 am f5700e1f: am a6395dda: Merge commit \'9d7f68ebfd79b1ce54dc56bceb7346f34615e5a1\' into HEAD
* commit 'f5700e1fd4eb70f3458b3bd508a9bf945561d22a':
2015-02-20 00:26:52 +00:00
Bill Yi
f5700e1fd4 am a6395dda: Merge commit \'9d7f68ebfd79b1ce54dc56bceb7346f34615e5a1\' into HEAD
* commit 'a6395dda54057170fc66faf00410e983202aa7e0':
2015-02-20 00:22:45 +00:00
Christopher Ferris
df4942c04a 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
2015-02-19 14:58:24 -08:00
Christopher Ferris
cd4e501223 am 4379016a: Revert "Modify test to avoid race condition."
* commit '4379016a20131740e25b33b2b09a2caef0aa62bd':
  Revert "Modify test to avoid race condition."
2015-02-19 22:36:17 +00:00
Bill Yi
a6395dda54 Merge commit '9d7f68ebfd79b1ce54dc56bceb7346f34615e5a1' into HEAD 2015-02-19 14:30:25 -08:00
Christopher Ferris
4379016a20 Revert "Modify test to avoid race condition."
This reverts commit 3da136aa47e2d1608b98abb2580f024b36f92831.

This change is not needed any where but lmp mr1.

Change-Id: I3f38e2e8e418959a487bc0c4148d3238743e4626
2015-02-19 13:35:47 -08:00
Elliott Hughes
77a24e14c3 am 4dc261b1: am d071b814: am 97484d3a: Merge "Add GNU extensions mempcpy and wmemcpy."
* commit '4dc261b13c351edf26efd18aca448aa98f925d41':
  Add GNU extensions mempcpy and wmemcpy.
2015-02-19 20:27:25 +00:00
Dan Albert
60787a931f am c2c319b2: am 43379c9c: am 3e1b5f46: Merge "Parameterize use of clang in libc_ndk."
* commit 'c2c319b2cb5dc3a7928121ecdd4312331dfb0496':
  Parameterize use of clang in libc_ndk.
2015-02-19 20:26:35 +00:00
Christopher Ferris
d2c65d8815 am 9ccce5d7: am 3da136aa: Modify test to avoid race condition.
* commit '9ccce5d7efde606914ec0b88fa50785b21ea672b':
  Modify test to avoid race condition.
2015-02-19 20:26:26 +00:00
Elliott Hughes
8c43e225dd am 0f13eac9: am 1cb009fb: am d3fa31a5: Merge "[MIPS] Fix setjmp signals"
* commit '0f13eac957c71e827e282fdd69de2dabeba28780':
  [MIPS] Fix setjmp signals
2015-02-19 17:36:33 +00:00
Elliott Hughes
4dc261b13c am d071b814: am 97484d3a: Merge "Add GNU extensions mempcpy and wmemcpy."
* commit 'd071b814ac5674ca032c05f369b2606cf3520332':
  Add GNU extensions mempcpy and wmemcpy.
2015-02-19 16:01:31 +00:00
Elliott Hughes
d071b814ac am 97484d3a: Merge "Add GNU extensions mempcpy and wmemcpy."
* commit '97484d3a9d0d822aeaaa1547aeb76d7669076082':
  Add GNU extensions mempcpy and wmemcpy.
2015-02-19 15:55:12 +00:00
Elliott Hughes
97484d3a9d Merge "Add GNU extensions mempcpy and wmemcpy." 2015-02-19 15:49:53 +00:00
Elliott Hughes
3cfb52aab2 Add GNU extensions mempcpy and wmemcpy.
Used by elfutils. On the bright side, they stopped using __mempcpy.

Bug: 18374026
Change-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb
2015-02-18 22:02:56 -08:00
Dan Albert
c2c319b2cb am 43379c9c: am 3e1b5f46: Merge "Parameterize use of clang in libc_ndk."
* commit '43379c9cfd7416e448b9b2834dd4f7b80697942a':
  Parameterize use of clang in libc_ndk.
2015-02-19 02:44:25 +00:00
Dan Albert
43379c9cfd am 3e1b5f46: Merge "Parameterize use of clang in libc_ndk."
* commit '3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0':
  Parameterize use of clang in libc_ndk.
2015-02-19 02:37:21 +00:00
Dan Albert
3e1b5f46c0 Merge "Parameterize use of clang in libc_ndk." 2015-02-19 02:33:08 +00:00
Christopher Ferris
9ccce5d7ef am 3da136aa: Modify test to avoid race condition.
* commit '3da136aa47e2d1608b98abb2580f024b36f92831':
  Modify test to avoid race condition.
2015-02-19 02:12:45 +00:00
Christopher Ferris
3da136aa47 Modify test to avoid race condition.
There is a possible race if a timer is set to trigger at nearly the same
time as it is set. Since nobody uses the timers like this, modify the test
so this doesn't happen. The race that this can provoke has been fixed in
aosp.

Bug: 19423618
Change-Id: I21084c99da5ae46f404936d673dae6bad7c82caa
2015-02-18 17:45:50 -08:00
Dan Albert
2c678e6644 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
2015-02-18 17:37:52 -08:00
Elliott Hughes
0f13eac957 am 1cb009fb: am d3fa31a5: Merge "[MIPS] Fix setjmp signals"
* commit '1cb009fb5eb513e838085d75617db676fcfa7aa7':
  [MIPS] Fix setjmp signals
2015-02-19 01:12:41 +00:00
Elliott Hughes
1cb009fb5e am d3fa31a5: Merge "[MIPS] Fix setjmp signals"
* commit 'd3fa31a55d542d51fc3f2df46af7c1b701ecb86e':
  [MIPS] Fix setjmp signals
2015-02-19 01:06:06 +00:00
Elliott Hughes
d3fa31a55d Merge "[MIPS] Fix setjmp signals" 2015-02-19 01:00:19 +00:00
Yabin Cui
ed806d772a am 82a36f31: am 37197363: am 4add77b9: Merge "Make gets() deprecated."
* commit '82a36f31c08ca890a30863dc68819566e26b0495':
  Make gets() deprecated.
2015-02-18 23:04:28 +00:00
Elliott Hughes
d0051b8585 am 4a19d12b: am 08148bc9: am 1dbc6bb0: Merge "Implement _FILE_OFFSET_BITS (mostly)."
* commit '4a19d12b49bd19e38c136cf6e586a13095bcca72':
  Implement _FILE_OFFSET_BITS (mostly).
2015-02-18 23:04:27 +00:00
Yabin Cui
82a36f31c0 am 37197363: am 4add77b9: Merge "Make gets() deprecated."
* commit '371973633c579a32125c4b01c4235eb5f529cb4e':
  Make gets() deprecated.
2015-02-18 22:57:05 +00:00
Elliott Hughes
4a19d12b49 am 08148bc9: am 1dbc6bb0: Merge "Implement _FILE_OFFSET_BITS (mostly)."
* commit '08148bc9825ea337168819f3d92a0c7ef4ffe1f9':
  Implement _FILE_OFFSET_BITS (mostly).
2015-02-18 22:57:04 +00:00
Yabin Cui
371973633c am 4add77b9: Merge "Make gets() deprecated."
* commit '4add77b93c0c61381faa9d4d8dc62f81cafcc69a':
  Make gets() deprecated.
2015-02-18 22:50:54 +00:00
Elliott Hughes
08148bc982 am 1dbc6bb0: Merge "Implement _FILE_OFFSET_BITS (mostly)."
* commit '1dbc6bb02521ba1535748826eeaf28404160d788':
  Implement _FILE_OFFSET_BITS (mostly).
2015-02-18 22:50:32 +00:00
Yabin Cui
4add77b93c Merge "Make gets() deprecated." 2015-02-18 21:33:02 +00:00
Yabin Cui
913fcb274f Make gets() deprecated.
gets is already deprecated in glibc. Others with __warnattr are not deprecated.

Change-Id: I80a276d2b5964630218be47f1c94b146c0d31151
2015-02-18 12:20:32 -08:00
Elliott Hughes
1dbc6bb025 Merge "Implement _FILE_OFFSET_BITS (mostly)." 2015-02-18 18:01:05 +00:00
Neil Fuller
5bef299799 am f4d84ade: am 77f3c847: am 9ec37c7f: Merge "Update tzdata to tzdata2015a"
* commit 'f4d84ade1a334ca4869663a919a0399eb3e71474':
  Update tzdata to tzdata2015a
2015-02-18 11:39:28 +00:00
Dan Albert
8aa73e6441 am c69654ea: am a9751801: am 5890ec3e: Merge "Update NDK compatlib for 4.1.2."
* commit 'c69654ea602987b08eaa2015c782daefc425241c':
  Update NDK compatlib for 4.1.2.
2015-02-18 11:38:31 +00:00
Dan Albert
e554758063 am d66e5725: am 814bce07: am 21ba1d4c: Merge "Update the NDK compatlib for 4.4.4 and ToT."
* commit 'd66e57257c4538e1b8569a5ef65af6a6ddf29770':
  Update the NDK compatlib for 4.4.4 and ToT.
2015-02-18 11:38:30 +00:00
Neil Fuller
f4d84ade1a am 77f3c847: am 9ec37c7f: Merge "Update tzdata to tzdata2015a"
* commit '77f3c847c4b04c8d28f81b3cb0c2782fadf928f9':
  Update tzdata to tzdata2015a
2015-02-18 10:18:10 +00:00
Neil Fuller
77f3c847c4 am 9ec37c7f: Merge "Update tzdata to tzdata2015a"
* commit '9ec37c7fa979c573e5743c343d38370cab1a67e4':
  Update tzdata to tzdata2015a
2015-02-18 10:13:59 +00:00
Neil Fuller
9ec37c7fa9 Merge "Update tzdata to tzdata2015a" 2015-02-18 09:42:33 +00:00
Elliott Hughes
68dc20d411 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
2015-02-17 19:54:43 -08:00
Dan Albert
c69654ea60 am a9751801: am 5890ec3e: Merge "Update NDK compatlib for 4.1.2."
* commit 'a9751801481e112bbe1fe97e7300a395f418b96a':
  Update NDK compatlib for 4.1.2.
2015-02-18 01:17:12 +00:00
Dan Albert
d66e57257c am 814bce07: am 21ba1d4c: Merge "Update the NDK compatlib for 4.4.4 and ToT."
* commit '814bce074dac0359a7251904000d2f89ad6164a4':
  Update the NDK compatlib for 4.4.4 and ToT.
2015-02-18 01:17:11 +00:00
Dan Albert
a975180148 am 5890ec3e: Merge "Update NDK compatlib for 4.1.2."
* commit '5890ec3e229cbe115308e103111fec471f2319b7':
  Update NDK compatlib for 4.1.2.
2015-02-18 01:10:42 +00:00
Dan Albert
814bce074d am 21ba1d4c: Merge "Update the NDK compatlib for 4.4.4 and ToT."
* commit '21ba1d4ce43b1619e0d0a8248f6249810cabe374':
  Update the NDK compatlib for 4.4.4 and ToT.
2015-02-18 01:10:41 +00:00
Dan Albert
5890ec3e22 Merge "Update NDK compatlib for 4.1.2." 2015-02-18 01:05:48 +00:00
Dan Albert
21ba1d4ce4 Merge "Update the NDK compatlib for 4.4.4 and ToT." 2015-02-18 01:05:44 +00:00
Dan Albert
a6395e1fd0 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
2015-02-17 17:02:42 -08:00
Dan Albert
9a9ea3a280 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
2015-02-17 17:02:34 -08:00
Yabin Cui
0b45632bb8 am 3c1904fc: am faf5e195: am 0e61c2c0: Merge "Revert "Move use of __warnattr to __deprecated.""
* commit '3c1904fc527229b1c0b20e6b81fb92fb7564928e':
  Revert "Move use of __warnattr to __deprecated."
2015-02-18 00:40:15 +00:00
Yabin Cui
c4ab9e443b am 89838e6f: am 0769bb4f: am b5c23796: Merge "Move use of __warnattr to __deprecated."
* commit '89838e6f3468d9e01db30ee0d53265d2bf2b0432':
  Move use of __warnattr to __deprecated.
2015-02-18 00:30:31 +00:00
Christopher Ferris
47e1fe7191 am 6ead5855: am 2f86c3de: am 54b61b7c: Merge "Accuracy tests for libm"
* commit '6ead5855cbe9792b49c248dc649ec94ac4658b5c':
  Accuracy tests for libm
2015-02-18 00:28:43 +00:00
Yabin Cui
8a35be9efb am 7b07204d: am 515c1f23: am 89dad68e: Merge "Change getgrent error declaration message to proper style."
* commit '7b07204d0c56c92660463e9a968e874efc746564':
  Change getgrent error declaration message to proper style.
2015-02-18 00:28:42 +00:00
Elliott Hughes
6bf7862eb5 am e64fd0c6: am 5a973492: am c2085138: Merge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX."
* commit 'e64fd0c6c49b4db875a3b14652dd8c2a4b534aaf':
  Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.
2015-02-18 00:28:35 +00:00
Yabin Cui
3c1904fc52 am faf5e195: am 0e61c2c0: Merge "Revert "Move use of __warnattr to __deprecated.""
* commit 'faf5e195e1a06f8c738b34cc939e6432535c8ff3':
  Revert "Move use of __warnattr to __deprecated."
2015-02-18 00:03:45 +00:00
Yabin Cui
faf5e195e1 am 0e61c2c0: Merge "Revert "Move use of __warnattr to __deprecated.""
* commit '0e61c2c0ea201e157d0d3d3c04564588bcfb7c66':
  Revert "Move use of __warnattr to __deprecated."
2015-02-17 23:59:58 +00:00
Yabin Cui
0e61c2c0ea Merge "Revert "Move use of __warnattr to __deprecated."" 2015-02-17 23:56:29 +00:00
Yabin Cui
784de4e50a Revert "Move use of __warnattr to __deprecated."
This reverts commit 4645c4f62df49d1ece5aabb7c9fa44ca34d30272.

Change-Id: I6c1062d54a4e2c4f41ce7a403e4e7840e6339146
2015-02-17 23:54:40 +00:00
Yabin Cui
89838e6f34 am 0769bb4f: am b5c23796: Merge "Move use of __warnattr to __deprecated."
* commit '0769bb4fcf5dfcc346330430a7f649d3be8f2346':
  Move use of __warnattr to __deprecated.
2015-02-17 23:20:55 +00:00
Yabin Cui
0769bb4fcf am b5c23796: Merge "Move use of __warnattr to __deprecated."
* commit 'b5c23796872dee26d7fa88f0a41801dcc6090d99':
  Move use of __warnattr to __deprecated.
2015-02-17 23:16:01 +00:00
Yabin Cui
b5c2379687 Merge "Move use of __warnattr to __deprecated." 2015-02-17 23:10:31 +00:00
Yabin Cui
4645c4f62d 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
2015-02-17 14:14:45 -08:00
Christopher Ferris
6ead5855cb am 2f86c3de: am 54b61b7c: Merge "Accuracy tests for libm"
* commit '2f86c3deb52bfd46614b16b9debbadac41baec89':
  Accuracy tests for libm
2015-02-17 21:50:27 +00:00
Yabin Cui
7b07204d0c am 515c1f23: am 89dad68e: Merge "Change getgrent error declaration message to proper style."
* commit '515c1f234bade0ad63d25c07cf57f058fa5934ea':
  Change getgrent error declaration message to proper style.
2015-02-17 21:46:39 +00:00
Christopher Ferris
2f86c3deb5 am 54b61b7c: Merge "Accuracy tests for libm"
* commit '54b61b7ca7d7c9c7474e2beb35d20a9ab635529f':
  Accuracy tests for libm
2015-02-17 21:46:38 +00:00
Christopher Ferris
54b61b7ca7 Merge "Accuracy tests for libm" 2015-02-17 21:41:41 +00:00
Yabin Cui
515c1f234b am 89dad68e: Merge "Change getgrent error declaration message to proper style."
* commit '89dad68efb07ef0868c2ac35737a4b2c83aea326':
  Change getgrent error declaration message to proper style.
2015-02-17 21:36:33 +00:00
Elliott Hughes
e64fd0c6c4 am 5a973492: am c2085138: Merge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX."
* commit '5a9734920c25ebb1aed389fd87fa9a26904aa239':
  Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.
2015-02-17 21:32:28 +00:00
Yabin Cui
89dad68efb Merge "Change getgrent error declaration message to proper style." 2015-02-17 21:29:27 +00:00
Elliott Hughes
5a9734920c am c2085138: Merge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX."
* commit 'c20851380cf5466a8bc422e7c26d3868a95423a9':
  Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.
2015-02-17 21:26:25 +00:00
Elliott Hughes
c20851380c Merge "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX." 2015-02-17 21:20:39 +00:00
Yabin Cui
62533de98e Change getgrent error declaration message to proper style.
Bug: 19340053
Change-Id: I9c47a2016f356d171a5f2082acb8391d81e019b2
2015-02-17 11:33:42 -08:00
Elliott Hughes
dd9798b0fa am ebaf7a25: am f8a49b04: am fb48c682: Merge "Fix memchr overflow."
* commit 'ebaf7a250f6a9913e109a2ef9939c6d54de9cb63':
  Fix memchr overflow.
2015-02-17 18:11:12 +00:00
Elliott Hughes
ebaf7a250f am f8a49b04: am fb48c682: Merge "Fix memchr overflow."
* commit 'f8a49b04a981d867c4deda6f27deaf702711cfc1':
  Fix memchr overflow.
2015-02-17 18:04:53 +00:00
Elliott Hughes
f8a49b04a9 am fb48c682: Merge "Fix memchr overflow."
* commit 'fb48c68221afb1f9e7c63a15a20cca0857d1b9f9':
  Fix memchr overflow.
2015-02-17 17:58:51 +00:00
Elliott Hughes
be6a44566a Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.
Change-Id: I656f613166bd604f35b31e5ec042a5230c6b82b8
2015-02-17 09:55:58 -08:00
Elliott Hughes
fb48c68221 Merge "Fix memchr overflow." 2015-02-17 17:54:40 +00:00
Elliott Hughes
46e1da2dee am ea3fe53a: am 1084911f: am 40d06b25: Merge "POSIX says flock is in <sys/file.h>, not <unistd.h>."
* commit 'ea3fe53ac520971a26330c355aaf9854f45e60b3':
  POSIX says flock is in <sys/file.h>, not <unistd.h>.
2015-02-17 17:29:53 +00:00
Elliott Hughes
ea3fe53ac5 am 1084911f: am 40d06b25: Merge "POSIX says flock is in <sys/file.h>, not <unistd.h>."
* commit '1084911fc297b262600a5caed9a94d6ddde7cc66':
  POSIX says flock is in <sys/file.h>, not <unistd.h>.
2015-02-17 17:23:26 +00:00
Elliott Hughes
1084911fc2 am 40d06b25: Merge "POSIX says flock is in <sys/file.h>, not <unistd.h>."
* commit '40d06b25ac86260e9c1701540420c9634bab8bad':
  POSIX says flock is in <sys/file.h>, not <unistd.h>.
2015-02-17 17:19:06 +00:00
Elliott Hughes
40d06b25ac Merge "POSIX says flock is in <sys/file.h>, not <unistd.h>." 2015-02-17 17:09:35 +00:00
Elliott Hughes
92b9c6ff3e POSIX says flock is in <sys/file.h>, not <unistd.h>.
Bug: 19392265
Change-Id: I14d0b56883f0354e13db04a1d140b8f60dae08d7
2015-02-17 09:08:24 -08:00
Neil Fuller
094a8ae078 Update tzdata to tzdata2015a
Time Zone Data v. 2015a (Released 2015-01-29)
http://www.iana.org/time-zones/repository/releases/tzdata2015a.tar.gz

Information from NEWS:

Release 2015a - 2015-01-29 22:35:20 -0800

  Changes affecting future time stamps

    The Mexican state of Quintana Roo, represented by America/Cancun,
    will shift from Central Time with DST to Eastern Time without DST
    on 2015-02-01 at 02:00.  (Thanks to Steffen Thorsen and Gwillim Law.)

    Chile will not change clocks in April or thereafter; its new standard time
    will be its old daylight saving time.  This affects America/Santiago,
    Pacific/Easter, and Antarctica/Palmer.  (Thanks to Juan Correa.)

    New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49.
    (Thanks to Tim Parenti.)

  Changes affecting past time stamps

    Iceland observed DST in 1919 and 1921, and its 1939 fallback
    transition was Oct. 29, not Nov. 29.  Remove incorrect data from
    Shanks about time in Iceland between 1837 and 1908.

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Asia/Aden, Asia/Bahrain, Asia/Kuwait,
    and Asia/Muscat.

Bug: 19212588
(cherry-picked from commit 700eb048fb6df8805245097d73a87384108fdf67)

Change-Id: I23d94982f634889ab9dcef28cf4a8853224bfd9c
2015-02-17 17:05:48 +00:00
Elliott Hughes
0b8bed7f18 am a822795f: am 66d53434: am dd5c92d4: Merge "Regression test for NDK bug 80199."
* commit 'a822795f53ac52294c637f8aa4be65610ba18cc9':
  Regression test for NDK bug 80199.
2015-02-15 00:30:15 +00:00
Elliott Hughes
a822795f53 am 66d53434: am dd5c92d4: Merge "Regression test for NDK bug 80199."
* commit '66d534347748cec93ea214ebc8d2291b59b58b8d':
  Regression test for NDK bug 80199.
2015-02-15 00:26:58 +00:00
Elliott Hughes
66d5343477 am dd5c92d4: Merge "Regression test for NDK bug 80199."
* commit 'dd5c92d4b0cb6c43002112ab50c1df73d06ab2aa':
  Regression test for NDK bug 80199.
2015-02-15 00:24:03 +00:00
Elliott Hughes
dd5c92d4b0 Merge "Regression test for NDK bug 80199." 2015-02-15 00:18:23 +00:00
Elliott Hughes
e1f9ddaf0d Regression test for NDK bug 80199.
Bionic never had this bug, but since the proposed fix is to remove the NDK's
broken code, we should add a regression test here.

Bug: https://code.google.com/p/android/issues/detail?id=80199
Change-Id: I4de21b5da9913cef990bc4d05a7e27562a71a02b
2015-02-14 14:11:50 -08:00
Elliott Hughes
41ef902379 Fix memchr overflow.
The overflow's actually in the generic C implementation of memchr.

While I'm here, let's switch our generic memrchr to the OpenBSD version too.

Bug: https://code.google.com/p/android/issues/detail?id=147048
Change-Id: I296ae06a1ee196d2c77c95a22f11ee4d658962da
2015-02-14 13:21:22 -08:00
Yabin Cui
882c3305ab am 9d7f68eb: am 4812bdf1: am 4181cc69: Merge "Declare getgrent/setgrent/endgrent as missing."
* commit '9d7f68ebfd79b1ce54dc56bceb7346f34615e5a1':
  Declare getgrent/setgrent/endgrent as missing.
2015-02-14 02:52:50 +00:00
Yabin Cui
9d7f68ebfd am 4812bdf1: am 4181cc69: Merge "Declare getgrent/setgrent/endgrent as missing."
* commit '4812bdf1b160fb803dd86a393daf2ae725029c2e':
  Declare getgrent/setgrent/endgrent as missing.
2015-02-14 02:46:43 +00:00
Yabin Cui
4812bdf1b1 am 4181cc69: Merge "Declare getgrent/setgrent/endgrent as missing."
* commit '4181cc691e36546c556274d46d389d7e0cb9cfab':
  Declare getgrent/setgrent/endgrent as missing.
2015-02-14 02:42:32 +00:00
Yabin Cui
4181cc691e Merge "Declare getgrent/setgrent/endgrent as missing." 2015-02-14 02:37:19 +00:00
Dmitriy Ivanov
b3ea70d7d1 am 39c9f7bc: am 88117127: am b81a871c: Merge changes I88827aa0,Ib0b0987a
* commit '39c9f7bc65a56287e54f6ce4a090113c1109c7ef':
  Fix: DT_DEBUG was acting as DT_REL on mips64
  Add missing SHT_LOOS/SHT_HIOS values
2015-02-14 00:52:39 +00:00
Dmitriy Ivanov
39c9f7bc65 am 88117127: am b81a871c: Merge changes I88827aa0,Ib0b0987a
* commit '88117127defa6aeb26840ec8547486aefd5edd73':
  Fix: DT_DEBUG was acting as DT_REL on mips64
  Add missing SHT_LOOS/SHT_HIOS values
2015-02-14 00:49:33 +00:00
Dmitriy Ivanov
88117127de am b81a871c: Merge changes I88827aa0,Ib0b0987a
* commit 'b81a871cbb2d99168bdb8380b6142139135f418f':
  Fix: DT_DEBUG was acting as DT_REL on mips64
  Add missing SHT_LOOS/SHT_HIOS values
2015-02-14 00:43:56 +00:00
Dmitriy Ivanov
b81a871cbb Merge changes I88827aa0,Ib0b0987a
* changes:
  Fix: DT_DEBUG was acting as DT_REL on mips64
  Add missing SHT_LOOS/SHT_HIOS values
2015-02-14 00:38:04 +00:00
Dmitriy Ivanov
c6292ea39c Fix: DT_DEBUG was acting as DT_REL on mips64
Change-Id: I88827aa07d75d06d606c987e6270fcca3ae6216f
2015-02-13 16:34:50 -08:00
Dmitriy Ivanov
13ed3f0af1 Add missing SHT_LOOS/SHT_HIOS values
Change-Id: Ib0b0987a7e85af7863c6ef894263b5980e32344d
2015-02-13 16:34:38 -08:00
Colin Cross
1b8ff453e0 am 15c60ccf: am d6a9f804: am 150403ca: Merge "Make .note.android.ident section type SH_NOTE"
* commit '15c60ccfb100423fb76470ee12642bf4c7072eac':
  Make .note.android.ident section type SH_NOTE
2015-02-13 20:34:29 +00:00
Colin Cross
15c60ccfb1 am d6a9f804: am 150403ca: Merge "Make .note.android.ident section type SH_NOTE"
* commit 'd6a9f804a9c95942bddc9afa243c339d72371008':
  Make .note.android.ident section type SH_NOTE
2015-02-13 20:29:34 +00:00
Colin Cross
d6a9f804a9 am 150403ca: Merge "Make .note.android.ident section type SH_NOTE"
* commit '150403caa8135bef5d5df37e288276ac4f95a234':
  Make .note.android.ident section type SH_NOTE
2015-02-13 20:23:24 +00:00
Yabin Cui
c9d09431b9 Declare getgrent/setgrent/endgrent as missing.
Bug: 19340053
Change-Id: I42bfeda95e6f262e2e74ab47336ea346c2de7e4a
2015-02-13 10:52:35 -08:00
Colin Cross
150403caa8 Merge "Make .note.android.ident section type SH_NOTE" 2015-02-13 18:38:03 +00:00
Jingwei Zhang
56b2b2916b Accuracy tests for libm
This patch adds more tests for math functions to address coverage
issue of math functions discussed in:
https://android-review.googlesource.com/#/c/49653/
https://android-review.googlesource.com/#/c/94780/

These are data sets used in regression tests for the Intel the math library (libm). They were collected over a long period of testing various libm implementations.
The data sets contain function specific data (special and corner cases such as +/-0, maximum/minimum normalized numbers, +/-infinity, QNaN/SNaN, maximum/minimum denormal numbers, arguments that would produce close to overflow/underflow results, known hard-to-round cases, etc), implementation specific data (arguments close to table look-up values for different polynomial approximations, worst cases for range reduction algorithms) and other data with interesting bit patterns.
The reference values are computed with Maple and were converted into hexadecimal format.

Change-Id: I7177c282937369eae98f25d02134e4fc3beadde8
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2015-02-14 00:56:46 +08:00
Colin Cross
e09ab2cc2f Make .note.android.ident section type SH_NOTE
The .note.android.ident section is only used by GDB, which doesn't
care what section type the section is, but it would be convenient
for readelf -n to be able to find the section too.

The old way of getting the .note.android.ident section to be of type
SH_NOTE involved compiling from .c to .s using gcc, running sed to
change progbits to note, and then compiling from .s to .o using gcc.
Since crtbrand.c only contains a section containing data, a
crtbrand.S can be checked in that will compile on all platforms,
avoiding the need for sed.

Also add crtbrand.o to crtbegin_so.o so that libraries also get
the note, and to the crt workaround in arm libc.so.

Change-Id: Ica71942a6af4553b56978ceaa288b3f4c15ebfa2
2015-02-12 21:37:20 -08:00
Shu Zhang
3a629af0ad libm: arm: Add arm specific floor() optimization
Add arm specific floor() implementation which avoids VMSR and VMRS
instructions.

Change-Id: Ibd4cd7147aa2f98c9b5bbaf74948843ea619dba4
2015-02-12 18:27:58 -08:00
Mark Salyzyn
90126d434a am 233c0da3: am fdea643a: am f9fb52ab: Merge "bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait"
* commit '233c0da3ef17592ddd3eb05c2e0b2729fd16f947':
  bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait
2015-02-12 21:36:29 +00:00
Mark Salyzyn
233c0da3ef am fdea643a: am f9fb52ab: Merge "bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait"
* commit 'fdea643af96379b5a19968d91ba6dc1758d8dcdf':
  bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait
2015-02-12 21:03:12 +00:00
Mark Salyzyn
fdea643af9 am f9fb52ab: Merge "bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait"
* commit 'f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024':
  bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait
2015-02-12 20:57:41 +00:00
Mark Salyzyn
f9fb52ab30 Merge "bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait" 2015-02-12 20:52:57 +00:00
Colin Cross
2b6e722023 am 71721a31: am baf16422: am 362d6779: Merge "Remove no-op sed step when compiling crtbrand.o"
* commit '71721a31d02ec0f6946b7924cee9d461971512c0':
  Remove no-op sed step when compiling crtbrand.o
2015-02-12 19:30:44 +00:00
Colin Cross
71721a31d0 am baf16422: am 362d6779: Merge "Remove no-op sed step when compiling crtbrand.o"
* commit 'baf164221b1356fe13091c2ca4b357da9a4e237c':
  Remove no-op sed step when compiling crtbrand.o
2015-02-12 18:26:53 +00:00
Colin Cross
baf164221b am 362d6779: Merge "Remove no-op sed step when compiling crtbrand.o"
* commit '362d677924a5f92190884ff225fe64820ad5d997':
  Remove no-op sed step when compiling crtbrand.o
2015-02-12 18:23:08 +00:00
Colin Cross
362d677924 Merge "Remove no-op sed step when compiling crtbrand.o" 2015-02-12 18:16:48 +00:00
Mark Salyzyn
5d064464f1 bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait
This test reports the overhead of sem_post to sem_wake for a low thread count
and a high thread count.

Change-Id: Ic30dcc8a78d754979117446bf3a28b7575cabac7
2015-02-12 09:43:58 -08:00
Colin Cross
24958ae4ef Remove no-op sed step when compiling crtbrand.o
crtbrand.c was compiled to a .s file, run through a sed script
to translate a %progbits to %note, and the compiled to .o.
However, when the sed command was copied from the original source
it was not updated to use the new name of the section (.note.ABI-tag
to .note.android.ident), so it didn't modify the file.  Since the
section has been generated with type %progbits instead of %note for
two years, just delete the whole sed step.

Change-Id: Id78582e9b43b628afec4eed22a088283132f0742
2015-02-11 17:40:45 -08:00
Duane Sand
b6d301f42d [MIPS] Fix setjmp signals
Include full 16-byte Mips sigset_t signal mask within jump buffer.
Call sigprocmask instead of sigblockmask/sigsetmask to get/set full signal mask.
Include sigsetjmp's savesigs arg inside jmp_buf, instead of following it.
Reserve room for future extensions.
Preserve historically-large mips32 _JBLEN size.
Eliminate redundancy: code setjmp and _setjmp as tail calls into sigsetjmp,
and make longjmp and _longjmp aliases of siglongjmp.

Change-Id: Ie79137cf059228c1a51344ebb20d3a9a40b4a252
2015-02-11 15:15:53 -08:00
Christopher Ferris
719a38a5d4 am afccaadc: am 2c0e462f: am 0046c39f: Merge "[MIPS] Fix Mips64 build of libm"
* commit 'afccaadc927fd1a5c7e85288d8ea0c63c205846a':
  [MIPS] Fix Mips64 build of libm
2015-02-11 22:59:35 +00:00
Christopher Ferris
afccaadc92 am 2c0e462f: am 0046c39f: Merge "[MIPS] Fix Mips64 build of libm"
* commit '2c0e462f9819587b6376ed90f315e4d6c0b13612':
  [MIPS] Fix Mips64 build of libm
2015-02-11 21:21:48 +00:00
Christopher Ferris
2c0e462f98 am 0046c39f: Merge "[MIPS] Fix Mips64 build of libm"
* commit '0046c39f9ed6d7335f06e4d866df5ae0e7b4d485':
  [MIPS] Fix Mips64 build of libm
2015-02-11 21:15:45 +00:00
Christopher Ferris
0046c39f9e Merge "[MIPS] Fix Mips64 build of libm" 2015-02-11 21:07:46 +00:00
Duane Sand
3d535d2312 [MIPS] Fix Mips64 build of libm
Change-Id: Ib742b408d4f21d5ec8d455a3fea7c08165c7f321
2015-02-11 12:51:42 -08:00
Elliott Hughes
9fb1938171 am a6754cf2: am fac5e95c: am ddae78fb: Merge "Fix our ftw tests."
* commit 'a6754cf2d88cc411591d2d212e905bfb5e37c8af':
  Fix our ftw tests.
2015-02-11 02:55:05 +00:00
Yabin Cui
fe4c12af73 am 8dc24ee5: am 3a31e697: am ee17e880: Merge "Define MAXHOSTNAMELEN explicitly in source files."
* commit '8dc24ee55e05cfb54af5ef29d9f8a19ef65462c1':
  Define MAXHOSTNAMELEN explicitly in source files.
2015-02-11 02:50:46 +00:00
Mark Salyzyn
3ba3d98add am 37529bc8: am 445c2020: am a57fd419: Merge "bionic: benchmarks: Add BM_semaphore_sem_post"
* commit '37529bc8451dbb4adbcc93234d064e576c456324':
  bionic: benchmarks: Add BM_semaphore_sem_post
2015-02-11 02:49:09 +00:00
Christopher Ferris
b45b7605a4 am 2cfbcb63: am 6fd3bcf6: am 6d99da04: Merge "Cleanup the libm makefile."
* commit '2cfbcb6364492ae95bda724fb7f4256014b11ccc':
  Cleanup the libm makefile.
2015-02-11 02:49:08 +00:00
Yabin Cui
c8711825a4 am c9f8c073: am fa592b2a: am e375ecaa: Merge "Switch pthread_cond_t to <stdatomic.h>."
* commit 'c9f8c07373b2a71d682e3214c65e0c14c7c3f875':
  Switch pthread_cond_t to <stdatomic.h>.
2015-02-11 02:49:06 +00:00
Yabin Cui
edc274cd8b am 88c0719f: am 6a32443a: am a4fc89ba: Merge "Stop including <linux/param.h> in <sys/param.h>."
* commit '88c0719f8fa7c4127ffdf1a304716e3a63117bf7':
  Stop including <linux/param.h> in <sys/param.h>.
2015-02-11 02:49:05 +00:00
Narayan Kamath
665e5daec9 am 17710068: am e163cb28: am f69139e1: Merge "Remove stray log line."
* commit '1771006863186e19ddfcc55f5f870dc56c650177':
  Remove stray log line.
2015-02-11 02:49:03 +00:00
Elliott Hughes
a6754cf2d8 am fac5e95c: am ddae78fb: Merge "Fix our ftw tests."
* commit 'fac5e95c218381cb0c5748aadf70adfcc9414f83':
  Fix our ftw tests.
2015-02-10 23:46:48 +00:00
Elliott Hughes
fac5e95c21 am ddae78fb: Merge "Fix our ftw tests."
* commit 'ddae78fba1ef7291d6a84bce11b0b8fff46f3547':
  Fix our ftw tests.
2015-02-10 23:40:39 +00:00
Elliott Hughes
ddae78fba1 Merge "Fix our ftw tests." 2015-02-10 23:34:19 +00:00
Elliott Hughes
7f925097e8 Fix our ftw tests.
SELinux denies access to some files in /sys, so we can't just trawl
through that asserting general truths. Instead, create a small known
tree.

Sadly neither ftw nor nftw takes user callback data, otherwise it would
be nice to assert that we visit all the expected nodes.

Bug: 19252748
Change-Id: Ib5309c38aaef53e6030281191a265a8d5a619044
2015-02-10 14:15:33 -08:00
Yabin Cui
8dc24ee55e am 3a31e697: am ee17e880: Merge "Define MAXHOSTNAMELEN explicitly in source files."
* commit '3a31e697ca3c1207bfec64b555bcff7b129348a3':
  Define MAXHOSTNAMELEN explicitly in source files.
2015-02-10 18:09:57 +00:00
Yabin Cui
3a31e697ca am ee17e880: Merge "Define MAXHOSTNAMELEN explicitly in source files."
* commit 'ee17e8800418a74e21dba11658234363cf6f6032':
  Define MAXHOSTNAMELEN explicitly in source files.
2015-02-10 18:00:39 +00:00
Yabin Cui
ee17e88004 Merge "Define MAXHOSTNAMELEN explicitly in source files." 2015-02-10 17:51:33 +00:00
Mark Salyzyn
37529bc845 am 445c2020: am a57fd419: Merge "bionic: benchmarks: Add BM_semaphore_sem_post"
* commit '445c202073f4fd35e1171dc11bcd13a7accf7018':
  bionic: benchmarks: Add BM_semaphore_sem_post
2015-02-10 16:54:32 +00:00
Christopher Ferris
2cfbcb6364 am 6fd3bcf6: am 6d99da04: Merge "Cleanup the libm makefile."
* commit '6fd3bcf6ce2290f4e44547fb875af4ac3c741130':
  Cleanup the libm makefile.
2015-02-10 16:53:33 +00:00
Yabin Cui
c9f8c07373 am fa592b2a: am e375ecaa: Merge "Switch pthread_cond_t to <stdatomic.h>."
* commit 'fa592b2a903a6e5110c6daf0959cc7211fc476d7':
  Switch pthread_cond_t to <stdatomic.h>.
2015-02-10 16:53:28 +00:00
Yabin Cui
88c0719f8f am 6a32443a: am a4fc89ba: Merge "Stop including <linux/param.h> in <sys/param.h>."
* commit '6a32443aa3e2544000314adf80d4e081d36d170d':
  Stop including <linux/param.h> in <sys/param.h>.
2015-02-10 16:51:48 +00:00
Narayan Kamath
1771006863 am e163cb28: am f69139e1: Merge "Remove stray log line."
* commit 'e163cb28b9b89f315000c1c480ee0cb2b3c26744':
  Remove stray log line.
2015-02-10 16:51:44 +00:00
Mark Salyzyn
445c202073 am a57fd419: Merge "bionic: benchmarks: Add BM_semaphore_sem_post"
* commit 'a57fd419bc56add6752cd9fa6f53fe2b43dff019':
  bionic: benchmarks: Add BM_semaphore_sem_post
2015-02-10 15:24:48 +00:00
Mark Salyzyn
a57fd419bc Merge "bionic: benchmarks: Add BM_semaphore_sem_post" 2015-02-10 15:16:34 +00:00
Yabin Cui
2d8f9b5aea Define MAXHOSTNAMELEN explicitly in source files.
Bug: 19093777
Bug: 19092844
Change-Id: I0778507ca2d5c008abb9a6d6315d0909263a8817
2015-02-09 19:56:47 -08:00
Mark Salyzyn
7e50fb2a68 bionic: benchmarks: Add BM_semaphore_sem_post
This test tries its best to report the producer side underlying futex
wake syscall overhead wthin sem_post. It does not measure the time it
takes for the wakeup to propagate to the consumer. It suffers from
clock_gettime syscall overhead, so subtract that. Lock the CPU speed
for consistent results as we may not reach >50% cpu utilization.

Change-Id: I02fa9dab2e6ac27202f0290115150bd3c8de00f2
2015-02-09 17:05:20 -08:00
Christopher Ferris
6fd3bcf6ce am 6d99da04: Merge "Cleanup the libm makefile."
* commit '6d99da0477f8589df01307067823c3925e40bd91':
  Cleanup the libm makefile.
2015-02-10 00:38:39 +00:00
Christopher Ferris
6d99da0477 Merge "Cleanup the libm makefile." 2015-02-10 00:31:06 +00:00
Yabin Cui
fa592b2a90 am e375ecaa: Merge "Switch pthread_cond_t to <stdatomic.h>."
* commit 'e375ecaa39213ec01464dac9d0ffebaac70b4e9d':
  Switch pthread_cond_t to <stdatomic.h>.
2015-02-10 00:18:47 +00:00
Yabin Cui
e375ecaa39 Merge "Switch pthread_cond_t to <stdatomic.h>." 2015-02-10 00:10:45 +00:00
Yabin Cui
e5f816c017 Switch pthread_cond_t to <stdatomic.h>.
Bug: 17574458
Change-Id: Ic7f79861df4fe751cfa6c6b20b71123cc31e7114
2015-02-09 15:54:22 -08:00
Christopher Ferris
d40d1a08cd Cleanup the libm makefile.
Change-Id: I3d95f75da24ee3b064a9cce67586b0e6f32272d8
2015-02-09 14:09:49 -08:00
Yabin Cui
6a32443aa3 am a4fc89ba: Merge "Stop including <linux/param.h> in <sys/param.h>."
* commit 'a4fc89badf4ef4d42df0927340c6f0d02167a3d6':
  Stop including <linux/param.h> in <sys/param.h>.
2015-02-09 19:52:51 +00:00
Yabin Cui
a4fc89badf Merge "Stop including <linux/param.h> in <sys/param.h>." 2015-02-09 19:46:46 +00:00
Narayan Kamath
e163cb28b9 am f69139e1: Merge "Remove stray log line."
* commit 'f69139e105ef32199afdf35027e9dfc48ad215d7':
  Remove stray log line.
2015-02-09 19:05:16 +00:00
Narayan Kamath
f69139e105 Merge "Remove stray log line." 2015-02-09 18:57:51 +00:00
Narayan Kamath
421608550d Remove stray log line.
Change-Id: Id948ae37a91dadd9d40e91de97f18774bdccfc78
2015-02-09 18:01:45 +00:00
Christopher Ferris
6e01e50787 am e66b2780: am 6880ec44: am d687905f: Merge "Display errors instead of running infinitely."
* commit 'e66b2780a77ecbe1eaa1273dd5555e261ef0dfd5':
  Display errors instead of running infinitely.
2015-02-09 04:15:11 +00:00
Tao Bao
84e323f11d am 5690237c: am 35947160: am bc64d1d1: Merge "Switch kernel header parsing to python libclang"
* commit '5690237c6f95afec3460f7f5e7d6c2ab6bfc608a':
  Switch kernel header parsing to python libclang
2015-02-09 04:13:35 +00:00
Colin Cross
9667f1be1b am fa8a43e6: am 0ef78e38: am 44e88db1: Merge "Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs"
* commit 'fa8a43e6dffab323f9c0b8ad91df8e6e76832b85':
  Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs
2015-02-09 04:13:31 +00:00
Christopher Ferris
e66b2780a7 am 6880ec44: am d687905f: Merge "Display errors instead of running infinitely."
* commit '6880ec44c339a720ebc9128fb6a11362ca7d5634':
  Display errors instead of running infinitely.
2015-02-07 02:30:28 +00:00
Christopher Ferris
6880ec44c3 am d687905f: Merge "Display errors instead of running infinitely."
* commit 'd687905f11102a7f6bad461b6f501dc870c59999':
  Display errors instead of running infinitely.
2015-02-07 02:24:36 +00:00
Christopher Ferris
d687905f11 Merge "Display errors instead of running infinitely." 2015-02-07 02:18:39 +00:00
Christopher Ferris
05d26211d8 Display errors instead of running infinitely.
When there is an error detected, the code runs forever and then times
out without any indication of what happened. Change it so that error
messages are printed and the test fails.

Change-Id: Id3160fc2f394984de0157356594fd8b40de66b4a
2015-02-06 18:05:58 -08:00
Tao Bao
5690237c6f am 35947160: am bc64d1d1: Merge "Switch kernel header parsing to python libclang"
* commit '35947160f96931a6464a9425b04f79232b389ed0':
  Switch kernel header parsing to python libclang
2015-02-06 23:39:23 +00:00
Tao Bao
35947160f9 am bc64d1d1: Merge "Switch kernel header parsing to python libclang"
* commit 'bc64d1d1fd12a0b43bcfe3f88698f29185ab63e0':
  Switch kernel header parsing to python libclang
2015-02-06 23:32:43 +00:00
Colin Cross
fa8a43e6df am 0ef78e38: am 44e88db1: Merge "Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs"
* commit '0ef78e3840b3bfcc07a13d7ffa69dfdd8313e80c':
  Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs
2015-02-06 23:31:35 +00:00
Tao Bao
bc64d1d1fd Merge "Switch kernel header parsing to python libclang" 2015-02-06 23:25:29 +00:00
Colin Cross
0ef78e3840 am 44e88db1: Merge "Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs"
* commit '44e88db185cc65b49373dd76d8ed27264b7299ed':
  Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs
2015-02-06 22:53:18 +00:00
Tao Bao
d7db594b8d Switch kernel header parsing to python libclang
Replace the tokenizer in cpp.py with libclang.

Bug: 18937958
Change-Id: I27630904c6d2849418cd5ca3d3c612ec3078686d
2015-02-06 14:48:41 -08:00
Colin Cross
44e88db185 Merge "Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs" 2015-02-06 22:45:59 +00:00
Colin Cross
91b403cef6 Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs
Change-Id: If61d6faae5d91c3bbe198e733e5922cd877ba353
2015-02-06 14:16:17 -08:00
Yabin Cui
29f9bcf2ee am b69e9f1f: am da73dac7: am bda85a12: Merge "Add path separator in bionic-unit-tests program path."
* commit 'b69e9f1fe1599c6e914586c5e3d16cedee94337a':
  Add path separator in bionic-unit-tests program path.
2015-02-05 22:14:34 +00:00
Yabin Cui
b69e9f1fe1 am da73dac7: am bda85a12: Merge "Add path separator in bionic-unit-tests program path."
* commit 'da73dac7acce09b76bd6d811c8be694e69acbd17':
  Add path separator in bionic-unit-tests program path.
2015-02-05 22:08:49 +00:00
Yabin Cui
da73dac7ac am bda85a12: Merge "Add path separator in bionic-unit-tests program path."
* commit 'bda85a12392b10555dc03ac377c8450b8f0790d6':
  Add path separator in bionic-unit-tests program path.
2015-02-05 22:01:41 +00:00
Yabin Cui
bda85a1239 Merge "Add path separator in bionic-unit-tests program path." 2015-02-05 21:55:19 +00:00
Elliott Hughes
726679ab3e am ec56d962: am 87c44930: am 9dfb00c1: Merge "Use the libcxxabi __cxa_demangle."
* commit 'ec56d962add687914fd98f04732840613b62df8c':
  Use the libcxxabi __cxa_demangle.
2015-02-05 20:39:12 +00:00
Elliott Hughes
6bef9bd7f0 am 4aa6d06d: am 1ec1bbda: am 9a9b6357: Merge "Apparently, logd does need the NULs."
* commit '4aa6d06d7b64493b3757abc584e3cc0437ebb948':
  Apparently, logd does need the NULs.
2015-02-05 20:39:12 +00:00
Elliott Hughes
ec56d962ad am 87c44930: am 9dfb00c1: Merge "Use the libcxxabi __cxa_demangle."
* commit '87c44930486af960de27996d94b742f19399b82b':
  Use the libcxxabi __cxa_demangle.
2015-02-05 20:31:07 +00:00
Elliott Hughes
4aa6d06d7b am 1ec1bbda: am 9a9b6357: Merge "Apparently, logd does need the NULs."
* commit '1ec1bbda7f254266653a0db470f6e5d699a0cad1':
  Apparently, logd does need the NULs.
2015-02-05 20:31:06 +00:00
Elliott Hughes
87c4493048 am 9dfb00c1: Merge "Use the libcxxabi __cxa_demangle."
* commit '9dfb00c1d48545a2627c2aded62d3a79749351fb':
  Use the libcxxabi __cxa_demangle.
2015-02-05 20:26:21 +00:00
Elliott Hughes
1ec1bbda7f am 9a9b6357: Merge "Apparently, logd does need the NULs."
* commit '9a9b635745dc776dcfeec51d68b85ca7e8cdbe7d':
  Apparently, logd does need the NULs.
2015-02-05 20:22:39 +00:00
Elliott Hughes
9dfb00c1d4 Merge "Use the libcxxabi __cxa_demangle." 2015-02-05 20:21:35 +00:00
Yabin Cui
a4cf89acd9 am 78c9743d: am ffcabed4: am 63826658: Merge "Add signal handling in bionic gtest main."
* commit '78c9743de62463244bffeedeee557533e8f377f1':
  Add signal handling in bionic gtest main.
2015-02-05 20:15:14 +00:00
Dimitry Ivanov
b76a613b93 am e4c93e88: am a1d3aa1f: am 8e5f9bc8: Merge "linker: Use load_bias to adjust search address in elf_addr_lookup"
* commit 'e4c93e889475e4702092d2bebc1459b1f9a637d7':
  linker: Use load_bias to adjust search address in elf_addr_lookup
2015-02-05 20:15:13 +00:00
Colin Cross
d6e87b1903 am 08f6d7c9: am 427d438d: am da2c0a70: Merge changes Ib87855e8,I4b46ae20,I66364a5c,Id3fcf680
* commit '08f6d7c9eb5fbd921b44ab6a6c63b4eb9fa3ac95':
  Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures
  Fix typo in cpu variant makefile depenendency for arm64
  Remove libc_static_common_src_files
  Share LP32 makefile settings between arches
2015-02-05 20:15:12 +00:00
Yabin Cui
f23174dab2 am c249e7d6: am e760a1eb: am 17976019: Merge "Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test."
* commit 'c249e7d6c9f9bfa8e9499eacbd0630bf3bff9ec4':
  Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test.
2015-02-05 20:15:11 +00:00
Elliott Hughes
9a9b635745 Merge "Apparently, logd does need the NULs." 2015-02-05 20:05:46 +00:00
Elliott Hughes
6e54c3e519 Use the libcxxabi __cxa_demangle.
Bug: 18930951
Change-Id: If2ea3633ac6dfd4ec975c0f16bdf3dd58e05c614
2015-02-05 12:05:34 -08:00
Elliott Hughes
aba6f712d4 Apparently, logd does need the NULs.
Change-Id: I04b834e65c26c5821b952f78a0de7f92527cbdba
2015-02-05 12:02:04 -08:00
Yabin Cui
78c9743de6 am ffcabed4: am 63826658: Merge "Add signal handling in bionic gtest main."
* commit 'ffcabed4bf8555e721c215a5140e2c8120add8af':
  Add signal handling in bionic gtest main.
2015-02-05 18:47:26 +00:00
Dimitry Ivanov
e4c93e8894 am a1d3aa1f: am 8e5f9bc8: Merge "linker: Use load_bias to adjust search address in elf_addr_lookup"
* commit 'a1d3aa1f9579eaf579f579b43f836635fc9a5674':
  linker: Use load_bias to adjust search address in elf_addr_lookup
2015-02-05 18:47:07 +00:00
Colin Cross
08f6d7c9eb am 427d438d: am da2c0a70: Merge changes Ib87855e8,I4b46ae20,I66364a5c,Id3fcf680
* commit '427d438dd44bb79dad87d51ad60593872391e7a7':
  Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures
  Fix typo in cpu variant makefile depenendency for arm64
  Remove libc_static_common_src_files
  Share LP32 makefile settings between arches
2015-02-05 18:47:07 +00:00
Yabin Cui
c249e7d6c9 am e760a1eb: am 17976019: Merge "Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test."
* commit 'e760a1eb30804df478640b2176fc798ab6e7db9b':
  Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test.
2015-02-05 18:47:06 +00:00
Yabin Cui
ead08148bd Add path separator in bionic-unit-tests program path.
Bug: 19220800
Change-Id: I4245b1270363544cd5f083fe7ea7d9b11b46cdc0
2015-02-05 10:39:37 -08:00
Yabin Cui
ffcabed4bf am 63826658: Merge "Add signal handling in bionic gtest main."
* commit '63826658f4bcfff4f3a87fe651f22cc9b35fe8b9':
  Add signal handling in bionic gtest main.
2015-02-05 04:24:43 +00:00
Yabin Cui
63826658f4 Merge "Add signal handling in bionic gtest main." 2015-02-05 04:21:03 +00:00
Yabin Cui
1d4c780a2e Add signal handling in bionic gtest main.
The two bugs are very closely related and code amount is very small,
So I think they may be fixed in one change.

Bug: 19128558
Bug: 19129994
Change-Id: I44a35398e64dfca7e9676428cb8f4026e8f6e488
2015-02-04 19:06:07 -08:00
Dimitry Ivanov
a1d3aa1f95 am 8e5f9bc8: Merge "linker: Use load_bias to adjust search address in elf_addr_lookup"
* commit '8e5f9bc8a46872e3f0ac4799558fdfd5999f9c20':
  linker: Use load_bias to adjust search address in elf_addr_lookup
2015-02-05 02:30:48 +00:00
Colin Cross
427d438dd4 am da2c0a70: Merge changes Ib87855e8,I4b46ae20,I66364a5c,Id3fcf680
* commit 'da2c0a708ed6c0091f3f89fd8838292579dad800':
  Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures
  Fix typo in cpu variant makefile depenendency for arm64
  Remove libc_static_common_src_files
  Share LP32 makefile settings between arches
2015-02-05 02:30:47 +00:00
Yabin Cui
e760a1eb30 am 17976019: Merge "Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test."
* commit '17976019a13a94ae428849bfe297f8e531f95013':
  Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test.
2015-02-05 02:30:46 +00:00
Dimitry Ivanov
8e5f9bc8a4 Merge "linker: Use load_bias to adjust search address in elf_addr_lookup" 2015-02-05 02:23:34 +00:00
Colin Cross
da2c0a708e Merge changes Ib87855e8,I4b46ae20,I66364a5c,Id3fcf680
* changes:
  Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures
  Fix typo in cpu variant makefile depenendency for arm64
  Remove libc_static_common_src_files
  Share LP32 makefile settings between arches
2015-02-05 01:57:28 +00:00
Colin Cross
5b869c0bbf Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures
LOCAL_LDFLAGS_<arch> was being set for arm64, mips64, and x86_64.
Use LOCAL_LDFLAGS_64 instead.

Change-Id: Ib87855e8a7783f82461b707fffa7f1663e6be9c8
2015-02-04 17:40:29 -08:00
Colin Cross
a6b6ed5fe9 Fix typo in cpu variant makefile depenendency for arm64
cpu_variank_mk -> cpu_variant_mk

Change-Id: I4b46ae20de72ed2dc8820d62ac35ddc6b915a195
2015-02-04 17:38:27 -08:00
Colin Cross
7dc502d012 Remove libc_static_common_src_files
libc_static_common_src_files is never set after
c3f114037dbf028896310609fd28cf2b3da99c4d, remove the remaining
references to it.

Change-Id: I66364a5c1b031ad69d608f6f44244049192944f6
2015-02-04 17:37:23 -08:00
Colin Cross
1742a32aea Share LP32 makefile settings between arches
Add <var>_32 to patch-up-arch-specific-flags, and move the LP32
cruft varaibles from the 32-bit arch specific makefiles into the
top level Android.mk.

Change-Id: Id3fcf6805d4af048c2524c94b1295416ebe7d057
2015-02-04 17:35:49 -08:00
Chris Dearman
8e55381939 linker: Use load_bias to adjust search address in elf_addr_lookup
load_bias is the delta between a symbols address in memory and the value
contained in the symbol table.

Change-Id: I35c87b69025b64f7e4a1418ca766618f4533fb3e
2015-02-04 17:16:27 -08:00
Yabin Cui
17976019a1 Merge "Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test." 2015-02-05 01:14:32 +00:00
Yabin Cui
5e52226f02 Stop including <linux/param.h> in <sys/param.h>.
Bug: 19092844
Change-Id: I1a4a0c84a196a187ea32e58491de744cf3c0f404
2015-02-04 14:59:58 -08:00
Yabin Cui
f4fe6937aa Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test.
Bug: 19220800
Change-Id: Ie75c640183c4a41a499556fefb4f824a134a5fb1
2015-02-04 12:27:06 -08:00
Neil Fuller
1ed2acad2d am 0abb17dd: am 6d632af3: am 2151f09f: Merge "Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data."
* commit '0abb17dd29cddb62c79e7770fddff203800846ff':
  Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data.
2015-02-04 18:59:01 +00:00
Yabin Cui
773c2e21b4 am 5ace71de: am dcf371f5: am 7e1b3d3e: Merge "Switch sem_t from bionic atomics to stdatomic.h."
* commit '5ace71de3f6280f086ac4a1b9bb403b88472953a':
  Switch sem_t from bionic atomics to stdatomic.h.
2015-02-04 18:56:59 +00:00
Neil Fuller
0abb17dd29 am 6d632af3: am 2151f09f: Merge "Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data."
* commit '6d632af3b04e505a88aa0b73f95a873dcbd472f7':
  Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data.
2015-02-04 16:45:04 +00:00
Neil Fuller
6d632af3b0 am 2151f09f: Merge "Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data."
* commit '2151f09fbfc2f6084366587df10132e93f4d818c':
  Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data.
2015-02-04 16:39:06 +00:00
Neil Fuller
2151f09fbf Merge "Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data." 2015-02-04 16:33:01 +00:00
Fredrik Roubert
bdd8452472 Set INCLUDE_UNI_CORE_DATA=1 when rebuilding ICU4C time zone data.
This is now necessary to build .dat files that are useable for ICU4J as
well, and will need to be used for any future updates of the .dat file:

https://android.googlesource.com/platform/external/icu/+/6b52738

Change-Id: Ifa3a7469a66ab932db20876697e45814f0c5ddc3
2015-02-04 17:17:34 +01:00
Yabin Cui
5ace71de3f am dcf371f5: am 7e1b3d3e: Merge "Switch sem_t from bionic atomics to stdatomic.h."
* commit 'dcf371f5e7142e548b8f422bf45db14d15d86b62':
  Switch sem_t from bionic atomics to stdatomic.h.
2015-02-04 02:49:41 +00:00
Yabin Cui
dcf371f5e7 am 7e1b3d3e: Merge "Switch sem_t from bionic atomics to stdatomic.h."
* commit '7e1b3d3e68f7430322a88be06f6b53c358fd14bf':
  Switch sem_t from bionic atomics to stdatomic.h.
2015-02-04 02:45:44 +00:00
Yabin Cui
7e1b3d3e68 Merge "Switch sem_t from bionic atomics to stdatomic.h." 2015-02-04 02:42:16 +00:00
Yabin Cui
a3d97da4c5 Switch sem_t from bionic atomics to stdatomic.h.
Bug: 17572887
Change-Id: If66851ba9b831cdd698b9f1303289bb14448bd03
2015-02-03 16:35:57 -08:00
Yabin Cui
ae46973d25 am 70ad54d8: am 2d988187: am 11829be3: Merge "Add test about pthread_mutex_t owner tid limit."
* commit '70ad54d8c0cdcffa476e671554afcfb5fd385090':
  Add test about pthread_mutex_t owner tid limit.
2015-02-03 22:56:43 +00:00
Yabin Cui
70ad54d8c0 am 2d988187: am 11829be3: Merge "Add test about pthread_mutex_t owner tid limit."
* commit '2d988187712f52773b89421d139b266c8b58f769':
  Add test about pthread_mutex_t owner tid limit.
2015-02-03 22:40:46 +00:00
Yabin Cui
2d98818771 am 11829be3: Merge "Add test about pthread_mutex_t owner tid limit."
* commit '11829be3e1a9e9e2271ba64a78c327bde6e044eb':
  Add test about pthread_mutex_t owner tid limit.
2015-02-03 22:34:58 +00:00
Yabin Cui
11829be3e1 Merge "Add test about pthread_mutex_t owner tid limit." 2015-02-03 22:28:56 +00:00
Nick Kralevich
98d37866e2 am 3ce62609: am 72c3071d: am f00f484c: Merge "Ensure raw fchmod/fchmodat syscalls are hidden."
* commit '3ce62609f2693f167e1771f66cee0ed986f7aabb':
  Ensure raw fchmod/fchmodat syscalls are hidden.
2015-02-03 20:39:28 +00:00
Nick Kralevich
3ce62609f2 am 72c3071d: am f00f484c: Merge "Ensure raw fchmod/fchmodat syscalls are hidden."
* commit '72c3071d548ee3bf3711abf13dce25042ccc3cea':
  Ensure raw fchmod/fchmodat syscalls are hidden.
2015-02-03 20:32:59 +00:00
Nick Kralevich
72c3071d54 am f00f484c: Merge "Ensure raw fchmod/fchmodat syscalls are hidden."
* commit 'f00f484cb59c1d599242daecbf833397aa3ba5d8':
  Ensure raw fchmod/fchmodat syscalls are hidden.
2015-02-03 20:24:53 +00:00
Yabin Cui
140f3678f0 Add test about pthread_mutex_t owner tid limit.
Bug: 19216648
Change-Id: I7b12955bdcad31c13bf8ec2740ff88ba15223ec0
2015-02-03 12:20:46 -08:00
Nick Kralevich
f00f484cb5 Merge "Ensure raw fchmod/fchmodat syscalls are hidden." 2015-02-03 20:17:33 +00:00
Nick Kralevich
00490ae3f3 Ensure raw fchmod/fchmodat syscalls are hidden.
In https://android-review.googlesource.com/#/c/127908/5/libc/SYSCALLS.TXT@116
Elliott said:

  for LP64 these will be hidden. for LP32 we were cowards and left
  them all public for compatibility (though i don't think we ever
  dremeled to see whether it was needed). we don't have an easy
  way to recognize additions, though, so we can't prevent adding
  new turds.

Add a mechanism to prevent the adding of new turds, and use that
mechanism on the fchmod/fchmodat system calls.

Bug: 19233951
Change-Id: I98f98345970b631a379f348df57858f9fc3d57c0
2015-02-03 12:10:30 -08:00
Neil Fuller
4937f42f14 am f0e556a2: am 4177bd8d: Fixes to the update-tzdata.py tool
* commit 'f0e556a2f96843b08dfdffc013a34730a0104eca':
  Fixes to the update-tzdata.py tool
2015-02-03 15:05:45 +00:00
Neil Fuller
249f8159f6 am d3ef8fbd: am 700eb048: Update tzdata to tzdata2015a
* commit 'd3ef8fbdf746588e5c4a1ef2961f25ceabec8e42':
  Update tzdata to tzdata2015a
2015-02-03 15:05:44 +00:00
Neil Fuller
f0e556a2f9 am 4177bd8d: Fixes to the update-tzdata.py tool
* commit '4177bd8d16e0dc2d0d541fc54f81518c57651e55':
  Fixes to the update-tzdata.py tool
2015-02-03 15:00:20 +00:00
Neil Fuller
d3ef8fbdf7 am 700eb048: Update tzdata to tzdata2015a
* commit '700eb048fb6df8805245097d73a87384108fdf67':
  Update tzdata to tzdata2015a
2015-02-03 15:00:18 +00:00
Hans Boehm
1a3a354993 am da3a4490: am 0cddad0f: am d57bf449: Merge "Switch pthread_mutex_t from bionic atomics to <stdatomic.h>."
* commit 'da3a449043036e29f9295eb71d85a9d2f3e9b204':
  Switch pthread_mutex_t from bionic atomics to <stdatomic.h>.
2015-02-03 03:00:28 +00:00
Hans Boehm
da3a449043 am 0cddad0f: am d57bf449: Merge "Switch pthread_mutex_t from bionic atomics to <stdatomic.h>."
* commit '0cddad0fd17274575abe2e25484c909def51d7e3':
  Switch pthread_mutex_t from bionic atomics to <stdatomic.h>.
2015-02-03 02:53:31 +00:00
Hans Boehm
0cddad0fd1 am d57bf449: Merge "Switch pthread_mutex_t from bionic atomics to <stdatomic.h>."
* commit 'd57bf449fe6c2dcf35d90d6e4098038ac8a24ecb':
  Switch pthread_mutex_t from bionic atomics to <stdatomic.h>.
2015-02-03 02:48:20 +00:00
Hans Boehm
d57bf449fe Merge "Switch pthread_mutex_t from bionic atomics to <stdatomic.h>." 2015-02-03 02:42:53 +00:00
Elliott Hughes
2d082af4c6 am ea31751e: am aa916c8d: am c5999c1e: Merge "Clean up SEEK_SET definitions."
* commit 'ea31751e4b61adeaad1cf186b1774df4591012e2':
  Clean up SEEK_SET definitions.
2015-02-03 02:00:45 +00:00
Elliott Hughes
ea31751e4b am aa916c8d: am c5999c1e: Merge "Clean up SEEK_SET definitions."
* commit 'aa916c8db85b01389b929f060f232b3e06448e79':
  Clean up SEEK_SET definitions.
2015-02-03 01:31:08 +00:00
Elliott Hughes
aa916c8db8 am c5999c1e: Merge "Clean up SEEK_SET definitions."
* commit 'c5999c1e0382c40286cc631c6a53e7781bc03154':
  Clean up SEEK_SET definitions.
2015-02-03 01:25:23 +00:00
Elliott Hughes
c5999c1e03 Merge "Clean up SEEK_SET definitions." 2015-02-03 01:21:17 +00:00
Yabin Cui
86fc96f733 Switch pthread_mutex_t from bionic atomics to <stdatomic.h>.
Bug: 17574456
Change-Id: I5ce3d3dc07e804e9ce55c42920f47531b56e04de
2015-02-02 15:00:01 -08:00
Nick Kralevich
62b98b3ce6 am 4c8a50ba: am 0cb8abc6: am d80ec661: Merge "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support"
* commit '4c8a50ba5d966981f8d88e61e0975cd8532b9db5':
  Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support
2015-02-02 22:17:41 +00:00
Nick Kralevich
4c8a50ba5d am 0cb8abc6: am d80ec661: Merge "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support"
* commit '0cb8abc6207d7484ecbc9698064c1f24b9b668d5':
  Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support
2015-02-02 22:10:53 +00:00
Nick Kralevich
0cb8abc620 am d80ec661: Merge "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support"
* commit 'd80ec66121b5af96c6b3d07ba34353b3d517f5b3':
  Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support
2015-02-02 22:07:35 +00:00
Nick Kralevich
d80ec66121 Merge "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support" 2015-02-02 22:03:41 +00:00
Elliott Hughes
1ed337dbdf Clean up SEEK_SET definitions.
If we lose the #ifndef, the compiler will tell us if the definitions
of SEEK_SET and friends ever get out of sync.

Change-Id: I357cabec7c9cd451c604342344f210bba20fb6bc
2015-02-02 14:02:09 -08:00
Nick Kralevich
3cbc6c627f Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support
Many libc functions have an option to not follow symbolic
links. This is useful to avoid security sensitive code
from inadvertantly following attacker supplied symlinks
and taking inappropriate action on files it shouldn't.
For example, open() has O_NOFOLLOW, chown() has
lchown(), stat() has lstat(), etc.

There is no such equivalent function for chmod(), such as lchmod().
To address this, POSIX introduced fchmodat(AT_SYMLINK_NOFOLLOW),
which is intended to provide a way to perform a chmod operation
which doesn't follow symlinks.

Currently, the Linux kernel doesn't implement AT_SYMLINK_NOFOLLOW.
In GLIBC, attempting to use the AT_SYMLINK_NOFOLLOW flag causes
fchmodat to return ENOTSUP. Details are in "man fchmodat".

Bionic currently differs from GLIBC in that AT_SYMLINK_NOFOLLOW
is silently ignored and treated as if the flag wasn't present.

This patch provides a userspace implementation of
AT_SYMLINK_NOFOLLOW for bionic. Using open(O_PATH | O_NOFOLLOW),
we can provide a way to atomically change the permissions on
files without worrying about race conditions.

As part of this change, we add support for fchmod on O_PATH
file descriptors, because it's relatively straight forward
and could be useful in the future.

The basic idea behind this implementation comes from
https://sourceware.org/bugzilla/show_bug.cgi?id=14578 , specifically
comment #10.

Change-Id: I1eba0cdb2c509d9193ceecf28f13118188a3cfa7
2015-02-02 13:17:17 -08:00
Elliott Hughes
f4911f19aa am 671b7eb2: am 815fc9bc: am c57b5c50: Merge "Small logging cleanup."
* commit '671b7eb288df3816b108871b5349c79f86d23be8':
  Small logging cleanup.
2015-02-02 21:14:14 +00:00
Elliott Hughes
671b7eb288 am 815fc9bc: am c57b5c50: Merge "Small logging cleanup."
* commit '815fc9bc9ecf96dd478c0800fdb9c4e9200320be':
  Small logging cleanup.
2015-02-02 20:54:27 +00:00
Elliott Hughes
815fc9bc9e am c57b5c50: Merge "Small logging cleanup."
* commit 'c57b5c5094f915ff975a256e086d58e2e7cfedf1':
  Small logging cleanup.
2015-02-02 20:46:39 +00:00
Elliott Hughes
c57b5c5094 Merge "Small logging cleanup." 2015-02-02 20:36:29 +00:00
Elliott Hughes
42084a2653 Small logging cleanup.
Don't send the trailing NUL bytes to the logger, call strlen if we already
know the length, or cast more specifically than we need to.

Change-Id: I68c9388a22bddea49120a1022dda8db8991360c1
2015-02-02 12:24:46 -08:00
Elliott Hughes
e2ce66764c am c8820e61: am 6c1252de: am 530aaecc: Merge "Explicitly check that the reason fortify tests abort is fortify."
* commit 'c8820e61d1b6eafb7aad2095c6a1c742cf31ee15':
  Explicitly check that the reason fortify tests abort is fortify.
2015-02-02 19:55:05 +00:00
Elliott Hughes
c8820e61d1 am 6c1252de: am 530aaecc: Merge "Explicitly check that the reason fortify tests abort is fortify."
* commit '6c1252decba273087411cd9e480d0422eabec6ef':
  Explicitly check that the reason fortify tests abort is fortify.
2015-02-02 19:40:41 +00:00
Elliott Hughes
6c1252decb am 530aaecc: Merge "Explicitly check that the reason fortify tests abort is fortify."
* commit '530aaeccd875f708918f59cd5ff8b076c156adab':
  Explicitly check that the reason fortify tests abort is fortify.
2015-02-02 19:32:44 +00:00
Elliott Hughes
af3ded9c8e am 2e02769a: am 5f7819d6: am 7f0f30c6: Merge "Fix clang build."
* commit '2e02769aa145b6ca1890174b96be9bcd5cf33bc6':
  Fix clang build.
2015-02-02 19:31:01 +00:00
Elliott Hughes
530aaeccd8 Merge "Explicitly check that the reason fortify tests abort is fortify." 2015-02-02 19:25:58 +00:00
Elliott Hughes
d036e94bb3 Explicitly check that the reason fortify tests abort is fortify.
Change-Id: I95291e2febf7b497c1d9f37fd7fa9acdd21e86a4
2015-02-02 11:18:58 -08:00
Elliott Hughes
2e02769aa1 am 5f7819d6: am 7f0f30c6: Merge "Fix clang build."
* commit '5f7819d6f1b2cb706d818e3083d45337e35d386b':
  Fix clang build.
2015-02-02 18:50:43 +00:00
Elliott Hughes
5f7819d6f1 am 7f0f30c6: Merge "Fix clang build."
* commit '7f0f30c6e20c1bf04bec05077eef2d779e7a32df':
  Fix clang build.
2015-02-02 18:36:22 +00:00
Elliott Hughes
7f0f30c6e2 Merge "Fix clang build." 2015-02-02 18:23:28 +00:00
Elliott Hughes
30fbf5f44c Fix clang build.
Change-Id: I863137b5d35602267b4ef3a74399cf394c9994d6
2015-02-02 10:21:39 -08:00
Neil Fuller
677aea1bda am 575bceb2: am 0a302e01: am d514d9bb: Merge "Fixes to the update-tzdata.py tool"
* commit '575bceb28190006eccfccb663100f0efb59838af':
  Fixes to the update-tzdata.py tool
2015-02-02 18:10:11 +00:00
Elliott Hughes
4b48f637f4 am 5372b83e: am 20f2e4f7: am 5940f98a: Merge "Fortify poll and ppoll."
* commit '5372b83eab9d9e5bd6bec18a832858c9dd18c432':
  Fortify poll and ppoll.
2015-02-02 18:10:10 +00:00
Neil Fuller
575bceb281 am 0a302e01: am d514d9bb: Merge "Fixes to the update-tzdata.py tool"
* commit '0a302e0174da4432da4a6ad5ce126dc27e4a86de':
  Fixes to the update-tzdata.py tool
2015-02-02 18:03:11 +00:00
Elliott Hughes
5372b83eab am 20f2e4f7: am 5940f98a: Merge "Fortify poll and ppoll."
* commit '20f2e4f7ad9d9f816be13f6509e602d4344a018d':
  Fortify poll and ppoll.
2015-02-02 18:03:10 +00:00
Neil Fuller
0a302e0174 am d514d9bb: Merge "Fixes to the update-tzdata.py tool"
* commit 'd514d9bbae354da72fcb43349f0157378e52004d':
  Fixes to the update-tzdata.py tool
2015-02-02 17:57:22 +00:00
Elliott Hughes
20f2e4f7ad am 5940f98a: Merge "Fortify poll and ppoll."
* commit '5940f98a35d64f9ca249536bb8cdcdbfe43e9bc3':
  Fortify poll and ppoll.
2015-02-02 17:57:21 +00:00
Neil Fuller
4177bd8d16 Fixes to the update-tzdata.py tool
We build one too many times. Creating a missing directory
is sufficient.

The tz2icu needs some files in the CWD. Added symlinks.

Bug: 19230091
(cherry-pick of commit 0662c3e5b33840e19f4c14b85bf619c33b3a0d0f)
Change-Id: Ie21d848f1b776ec745473b9122e003fdf0acf105
2015-02-02 17:53:19 +00:00
Neil Fuller
d514d9bbae Merge "Fixes to the update-tzdata.py tool" 2015-02-02 17:52:48 +00:00
Elliott Hughes
5940f98a35 Merge "Fortify poll and ppoll." 2015-02-02 17:51:50 +00:00
Neil Fuller
0662c3e5b3 Fixes to the update-tzdata.py tool
We build one too many times. Creating a missing directory
is sufficient.

The tz2icu needs some files in the CWD. Added symlinks.

Bug: 19230091
Change-Id: I58f9817af68b229f48139e56503f50a2b6dbb4fe
2015-02-02 17:42:41 +00:00
Elliott Hughes
4674e3899a Fortify poll and ppoll.
And remove the test for FD_ZERO fortification, which never made much
sense anyway.

Change-Id: Id1009c5298d461fa4722189e8ecaf22f0c529536
2015-02-02 09:15:19 -08:00
Neil Fuller
700eb048fb Update tzdata to tzdata2015a
Time Zone Data v. 2015a (Released 2015-01-29)
http://www.iana.org/time-zones/repository/releases/tzdata2015a.tar.gz

Information from NEWS:

Release 2015a - 2015-01-29 22:35:20 -0800

  Changes affecting future time stamps

    The Mexican state of Quintana Roo, represented by America/Cancun,
    will shift from Central Time with DST to Eastern Time without DST
    on 2015-02-01 at 02:00.  (Thanks to Steffen Thorsen and Gwillim Law.)

    Chile will not change clocks in April or thereafter; its new standard time
    will be its old daylight saving time.  This affects America/Santiago,
    Pacific/Easter, and Antarctica/Palmer.  (Thanks to Juan Correa.)

    New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49.
    (Thanks to Tim Parenti.)

  Changes affecting past time stamps

    Iceland observed DST in 1919 and 1921, and its 1939 fallback
    transition was Oct. 29, not Nov. 29.  Remove incorrect data from
    Shanks about time in Iceland between 1837 and 1908.

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Asia/Aden, Asia/Bahrain, Asia/Kuwait,
    and Asia/Muscat.

  Changes affecting code

    tzalloc now scrubs time zone abbreviations compatibly with the way
    that tzset always has, by replacing invalid bytes with '_' and by
    shortening too-long abbreviations.

    tzselect ports to POSIX awk implementations, no longer mishandles
    POSIX TZ settings when GNU awk is used, and reports POSIX TZ
    settings to the user.  (Thanks to Stefan Kuhn.)

  Changes affecting build procedure

    'make check' now checks for links to links in the data.
    One such link (for Africa/Asmera) has been fixed.
    (Thanks to Stephen Colebourne for pointing out the problem.)

  Changes affecting commentary

    The leapseconds file commentary now mentions the expiration date.
    (Problem reported by Martin Burnicki.)

    Update Mexican Library of Congress URL.

Bug: 19212588
Change-Id: Idc07ac862901500d4a1dbd0f4aadcfd0aa9d10b8
2015-02-02 11:32:10 +00:00
Elliott Hughes
e0277717f8 am a5d743a6: am 9843afd6: am ffbda83b: Merge "Add the fortify tests back into the glibc tests."
* commit 'a5d743a6bf44b4fdb7c9de469a75f825a1ffb6c2':
  Add the fortify tests back into the glibc tests.
2015-02-02 06:40:36 +00:00
Elliott Hughes
a5d743a6bf am 9843afd6: am ffbda83b: Merge "Add the fortify tests back into the glibc tests."
* commit '9843afd62982516974fdc3c4481d36007527825a':
  Add the fortify tests back into the glibc tests.
2015-02-02 06:07:15 +00:00
Elliott Hughes
9843afd629 am ffbda83b: Merge "Add the fortify tests back into the glibc tests."
* commit 'ffbda83b302e3c3970135013d2bb92402e040fe5':
  Add the fortify tests back into the glibc tests.
2015-02-02 06:01:10 +00:00
Elliott Hughes
ffbda83b30 Merge "Add the fortify tests back into the glibc tests." 2015-02-02 05:56:27 +00:00
Elliott Hughes
b6e3e800d2 Add the fortify tests back into the glibc tests.
Change-Id: I4426d0c7c1bfe3b0028a674f72d1c3b9d883d6af
2015-01-31 21:32:10 -08:00
Elliott Hughes
c5152a5217 am 9b96dd6b: am d2d63740: am 21cdd22f: Merge "Include <malloc.h> for struct mallinfo."
* commit '9b96dd6b173a8d5752ddfd1e9179b141aca0c58c':
  Include <malloc.h> for struct mallinfo.
2015-01-31 08:34:02 +00:00
Elliott Hughes
74c5abbd5d am a26423f2: am fd10c019: am 09c33824: Merge "Break two incorrect transitive includes."
* commit 'a26423f22c3d92d7944e7e1706d3a347db78baf3':
  Break two incorrect transitive includes.
2015-01-31 08:34:01 +00:00
Elliott Hughes
9b96dd6b17 am d2d63740: am 21cdd22f: Merge "Include <malloc.h> for struct mallinfo."
* commit 'd2d63740b78459a414e293efdb16e7a9ac089d5c':
  Include <malloc.h> for struct mallinfo.
2015-01-31 07:49:25 +00:00
Elliott Hughes
a26423f22c am fd10c019: am 09c33824: Merge "Break two incorrect transitive includes."
* commit 'fd10c019fab50c06f391b6a765b0904ce477d3b7':
  Break two incorrect transitive includes.
2015-01-31 07:49:24 +00:00
Elliott Hughes
d2d63740b7 am 21cdd22f: Merge "Include <malloc.h> for struct mallinfo."
* commit '21cdd22f035efd50902b7780fc6ea53bd1684357':
  Include <malloc.h> for struct mallinfo.
2015-01-31 06:21:34 +00:00
Elliott Hughes
fd10c019fa am 09c33824: Merge "Break two incorrect transitive includes."
* commit '09c3382433ae94ada45780312a2a9fd082ad1478':
  Break two incorrect transitive includes.
2015-01-31 06:21:33 +00:00
Elliott Hughes
21cdd22f03 Merge "Include <malloc.h> for struct mallinfo." 2015-01-31 04:37:11 +00:00
Elliott Hughes
cb0e70389e Include <malloc.h> for struct mallinfo.
GCC doesn't seem to care, but clang does.

Change-Id: I9884820339a9e6f142862928c357f1a538184ae0
2015-01-30 20:33:31 -08:00
Elliott Hughes
09c3382433 Merge "Break two incorrect transitive includes." 2015-01-31 04:18:10 +00:00
Dan Albert
2fde9c03db am 3c68e194: am 18dd2f3b: am 94335cc8: Merge "Put back inline definitions if using an old API."
* commit '3c68e1946ae61fc0bbd18c718d9be441f4d3c350':
  Put back inline definitions if using an old API.
2015-01-30 21:28:05 +00:00
Elliott Hughes
c7a528a19a am 0772f933: am 6cf2cf8b: am 542b94d9: Merge "Remove unused CONFIG_SECONDS."
* commit '0772f933a4e5e7659c7dbc37d784a5f25a2ce94b':
  Remove unused CONFIG_SECONDS.
2015-01-30 21:28:04 +00:00
Dan Albert
3c68e1946a am 18dd2f3b: am 94335cc8: Merge "Put back inline definitions if using an old API."
* commit '18dd2f3b918af8233dc63ad6efa780a26c8ae79c':
  Put back inline definitions if using an old API.
2015-01-30 21:16:35 +00:00
Elliott Hughes
0772f933a4 am 6cf2cf8b: am 542b94d9: Merge "Remove unused CONFIG_SECONDS."
* commit '6cf2cf8bf26b99b7318791c75cbccfd95893b04e':
  Remove unused CONFIG_SECONDS.
2015-01-30 21:16:34 +00:00
Dan Albert
18dd2f3b91 am 94335cc8: Merge "Put back inline definitions if using an old API."
* commit '94335cc8e2f32638d9e38741ddabfd19a38e0840':
  Put back inline definitions if using an old API.
2015-01-30 19:44:02 +00:00
Elliott Hughes
6cf2cf8bf2 am 542b94d9: Merge "Remove unused CONFIG_SECONDS."
* commit '542b94d9bf7eb3838b0582c02d7a1bf2e270af5a':
  Remove unused CONFIG_SECONDS.
2015-01-30 19:44:01 +00:00
Dan Albert
94335cc8e2 Merge "Put back inline definitions if using an old API." 2015-01-30 17:18:49 +00:00
Elliott Hughes
542b94d9bf Merge "Remove unused CONFIG_SECONDS." 2015-01-30 06:21:55 +00:00
Elliott Hughes
4dcfccff8d Remove unused CONFIG_SECONDS.
Bug: https://code.google.com/p/android/issues/detail?id=65951
Change-Id: I8ae7057c68e16618de6dd06cf052426c6cad8a3d
2015-01-29 21:47:37 -08:00
Elliott Hughes
5038b19cef Break two incorrect transitive includes.
Change-Id: I95519caa5258cf5c6b8053f1c7e08ade2a824e49
2015-01-29 20:12:13 -08:00
Dan Albert
466dbe4444 Put back inline definitions if using an old API.
All these inlines were turned in to out of line definitions in L.
This brings us a step closer to being able to just use the current
bionic headers for the NDK, rather than having many old versions of
them.

Change-Id: Ie010bc727d78d3742abc577c70f6578db2e68625
2015-01-29 17:30:40 -08:00
Dan Albert
82292221a0 am 36aad393: am c9af0e9a: am cd1959b0: Merge "Add primitive CPPLINT.cfg."
* commit '36aad393dba7ac1870e36e6e75a71154cd6a8213':
  Add primitive CPPLINT.cfg.
2015-01-29 22:26:14 +00:00
Dan Albert
36aad393db am c9af0e9a: am cd1959b0: Merge "Add primitive CPPLINT.cfg."
* commit 'c9af0e9a2d215b60a128643b6bdddd671e33864b':
  Add primitive CPPLINT.cfg.
2015-01-29 22:06:28 +00:00
Dan Albert
c9af0e9a2d am cd1959b0: Merge "Add primitive CPPLINT.cfg."
* commit 'cd1959b0c506cfa9e89ac7deb56bdb6461b28c3a':
  Add primitive CPPLINT.cfg.
2015-01-29 21:59:51 +00:00
Dan Albert
cd1959b0c5 Merge "Add primitive CPPLINT.cfg." 2015-01-29 21:54:55 +00:00
Yabin Cui
436d4e9566 am f63ae055: am 508d5579: am 782aa39f: Merge "Rewrite __cxa_guard.cpp with <stdatomic.h>."
* commit 'f63ae0553e16171e49d34616d42fc525fadf58a0':
  Rewrite __cxa_guard.cpp with <stdatomic.h>.
2015-01-29 20:57:43 +00:00
Yabin Cui
f63ae0553e am 508d5579: am 782aa39f: Merge "Rewrite __cxa_guard.cpp with <stdatomic.h>."
* commit '508d5579cd0d3723662755ab418ac3085e9f30cd':
  Rewrite __cxa_guard.cpp with <stdatomic.h>.
2015-01-29 20:35:44 +00:00
Yabin Cui
508d5579cd am 782aa39f: Merge "Rewrite __cxa_guard.cpp with <stdatomic.h>."
* commit '782aa39f704e3d597c0ec869ec1b9701bc90a5c9':
  Rewrite __cxa_guard.cpp with <stdatomic.h>.
2015-01-29 20:29:23 +00:00
Yabin Cui
782aa39f70 Merge "Rewrite __cxa_guard.cpp with <stdatomic.h>." 2015-01-29 20:22:25 +00:00
Dan Albert
6ac4dd8ba9 Add primitive CPPLINT.cfg.
We'll add more things to this as we discover other warnings we don't
care about.

Change-Id: I408f688827cab0f74e055d8f1778069163663f0b
2015-01-29 11:41:59 -08:00
Yabin Cui
6a3ff01cd4 Rewrite __cxa_guard.cpp with <stdatomic.h>.
Bug: 19180923
Change-Id: If4912d01db43c72ef12f4b04270ddb5d76d09462
2015-01-29 11:19:15 -08:00
Elliott Hughes
f807e20934 am dbfcf000: am e40b4eb3: am 7f17aea2: Merge "Add missing includes."
* commit 'dbfcf000c077ba97d22d957647eabb3b45d015cf':
  Add missing includes.
2015-01-29 17:22:39 +00:00
Yabin Cui
c4798e81b2 am 5d7fb6f0: am 38dfc222: am 017da8bc: Merge "Add --gtest-filter as synonym for --gtest_filter in bionic gtest main."
* commit '5d7fb6f054de7525b737f6c755b81e9244c581b9':
  Add --gtest-filter as synonym for --gtest_filter in bionic gtest main.
2015-01-29 17:22:22 +00:00
Christopher Ferris
e6399d68d3 am 1d72a38d: am 2633dfa5: am 43606bc1: Merge "Only one crashing thread should contact debuggerd."
* commit '1d72a38dbb40b0096cf205fcdf0e3c2eca28f7f5':
  Only one crashing thread should contact debuggerd.
2015-01-29 17:22:08 +00:00
Elliott Hughes
f1fa1002fd am 4f2e2a9d: am 8661b092: am a9c3d056: Merge "Modify MIPS64 stat structure to match a generic one in AOSP."
* commit '4f2e2a9d703f1999bb638aebae5800906c94beed':
  Modify MIPS64 stat structure to match a generic one in AOSP.
2015-01-29 17:22:02 +00:00
Elliott Hughes
dbfcf000c0 am e40b4eb3: am 7f17aea2: Merge "Add missing includes."
* commit 'e40b4eb35a6f8ae5c286f53abb920b452b7b6792':
  Add missing includes.
2015-01-29 03:33:42 +00:00
Elliott Hughes
e40b4eb35a am 7f17aea2: Merge "Add missing includes."
* commit '7f17aea2fc21aaf657824a023a4b7582fb74a2d9':
  Add missing includes.
2015-01-29 03:27:56 +00:00
Elliott Hughes
7f17aea2fc Merge "Add missing includes." 2015-01-29 03:23:35 +00:00
Elliott Hughes
05fc1d7050 Add missing includes.
Change-Id: Ibf549266a19a67eb9158d341a69dddfb654be669
2015-01-28 19:23:11 -08:00
Yabin Cui
5d7fb6f054 am 38dfc222: am 017da8bc: Merge "Add --gtest-filter as synonym for --gtest_filter in bionic gtest main."
* commit '38dfc222adb557b95e3fe7d606d3532de56c998a':
  Add --gtest-filter as synonym for --gtest_filter in bionic gtest main.
2015-01-29 02:40:24 +00:00
Yabin Cui
38dfc222ad am 017da8bc: Merge "Add --gtest-filter as synonym for --gtest_filter in bionic gtest main."
* commit '017da8bc58ba07be92dd371020e9dc3fe26f481b':
  Add --gtest-filter as synonym for --gtest_filter in bionic gtest main.
2015-01-29 02:33:59 +00:00
Yabin Cui
017da8bc58 Merge "Add --gtest-filter as synonym for --gtest_filter in bionic gtest main." 2015-01-29 02:30:25 +00:00
Christopher Ferris
1d72a38dbb am 2633dfa5: am 43606bc1: Merge "Only one crashing thread should contact debuggerd."
* commit '2633dfa5f6f453dc56b1a08917dd6f51b619681c':
  Only one crashing thread should contact debuggerd.
2015-01-29 02:01:05 +00:00
Christopher Ferris
2633dfa5f6 am 43606bc1: Merge "Only one crashing thread should contact debuggerd."
* commit '43606bc1ce974e4ba42d7d2c3682ad5182e6fc96':
  Only one crashing thread should contact debuggerd.
2015-01-29 01:53:49 +00:00
Christopher Ferris
43606bc1ce Merge "Only one crashing thread should contact debuggerd." 2015-01-29 01:49:21 +00:00
Elliott Hughes
4f2e2a9d70 am 8661b092: am a9c3d056: Merge "Modify MIPS64 stat structure to match a generic one in AOSP."
* commit '8661b092fe24c6b56426e07c6f02f5d83daae172':
  Modify MIPS64 stat structure to match a generic one in AOSP.
2015-01-29 01:42:06 +00:00
Elliott Hughes
8661b092fe am a9c3d056: Merge "Modify MIPS64 stat structure to match a generic one in AOSP."
* commit 'a9c3d0569f3b9511af445457cd455a7bb967b60e':
  Modify MIPS64 stat structure to match a generic one in AOSP.
2015-01-29 01:35:38 +00:00
Elliott Hughes
a9c3d0569f Merge "Modify MIPS64 stat structure to match a generic one in AOSP." 2015-01-29 01:31:59 +00:00
Christopher Ferris
8ea53fa87e Only one crashing thread should contact debuggerd.
If two or more threads crash at the same time, only let one talk to
debuggerd. It's possible for a race to occur that two threads send
data to debuggerd, the second one will cause errors in debuggerd since
the process will die once debuggerd lets the crashing pid start again.

Bug: 19183955
Change-Id: I17dfce46102117ab4a870f7381bd526488d37fb5
2015-01-28 16:20:26 -08:00
Raghu Gandham
86d2feef9f Modify MIPS64 stat structure to match a generic one in AOSP.
The kernel version of the stat structure is used during the syscalls. After the syscall,
the kernel stat structure is converted to match the generic one. Eventually we would like
the generic stat structure and related syscalls be added to MIPS64 kernel, removing the
thunks added to AOSP.

Change-Id: I7764e80278c1cc8254754c3531ec2dda7544a8ec
2015-01-28 16:12:17 -08:00
Yabin Cui
11c4353cdd Add --gtest-filter as synonym for --gtest_filter in bionic gtest main.
Bug: 19130480
Change-Id: I0d3df70ee8f692581cc4b9b742c5f347259fd0d2
2015-01-28 14:28:14 -08:00
Yabin Cui
44e8578c03 am c6438cd4: am 3c95c887: am 9e82c4be: Merge "Switch pthread_once_t to stdatomic.h."
* commit 'c6438cd4b0d4304e61c895941f68325efc6d9996':
  Switch pthread_once_t to stdatomic.h.
2015-01-28 22:08:38 +00:00
Yabin Cui
c6438cd4b0 am 3c95c887: am 9e82c4be: Merge "Switch pthread_once_t to stdatomic.h."
* commit '3c95c887820018cff06039e1dc35afe585e661c1':
  Switch pthread_once_t to stdatomic.h.
2015-01-28 21:27:32 +00:00
Yabin Cui
3c95c88782 am 9e82c4be: Merge "Switch pthread_once_t to stdatomic.h."
* commit '9e82c4be359a4637f21988b66b6d25abbfb79ddb':
  Switch pthread_once_t to stdatomic.h.
2015-01-28 21:20:54 +00:00
Yabin Cui
9e82c4be35 Merge "Switch pthread_once_t to stdatomic.h." 2015-01-28 21:16:05 +00:00
Dimitry Ivanov
b9bd15cc07 am c6c624fc: am 18661cd8: am 3780aba6: Merge "Fix mips64 build. Replace explicit cast with static_cast"
* commit 'c6c624fc37dc6240a41bbc7d550980f79295796b':
  Fix mips64 build. Replace explicit cast with static_cast
2015-01-28 17:49:14 +00:00
Dimitry Ivanov
c6c624fc37 am 18661cd8: am 3780aba6: Merge "Fix mips64 build. Replace explicit cast with static_cast"
* commit '18661cd8881dfce34306242011198128867777bb':
  Fix mips64 build. Replace explicit cast with static_cast
2015-01-28 17:42:47 +00:00
Dimitry Ivanov
18661cd888 am 3780aba6: Merge "Fix mips64 build. Replace explicit cast with static_cast"
* commit '3780aba6352affc7d2dcdad0737cb4254448fcae':
  Fix mips64 build. Replace explicit cast with static_cast
2015-01-28 17:39:01 +00:00
Dimitry Ivanov
3780aba635 Merge "Fix mips64 build. Replace explicit cast with static_cast" 2015-01-28 17:34:51 +00:00
Nikola Veljkovic
db3078d97b Fix mips64 build. Replace explicit cast with static_cast
Change-Id: Ib08fbe8bb832884a3eb33904fe4d490759116cb2
2015-01-28 16:19:18 +01:00
Yabin Cui
80e6d6d825 Switch pthread_once_t to stdatomic.h.
Bug: 17574610

Change-Id: I653f2aa4b5b38dbdaffe4a6c3deccfe6ad3b0e74
2015-01-27 19:49:12 -08:00
Yabin Cui
030ac03c2b am c10cfc05: am d13e6268: am 385c07a7: Merge "Fix parse of gtest_filter in bionic gtest main."
* commit 'c10cfc052043b0b70e6a3153e93dabc73764b58f':
  Fix parse of gtest_filter in bionic gtest main.
2015-01-28 00:42:21 +00:00
Elliott Hughes
8d71a40c79 am 63c74b2c: am 6c55034a: am 86d98962: Merge "Fix mips build."
* commit '63c74b2c2281b605f7946c707f756835ce83bd44':
  Fix mips build.
2015-01-27 23:42:53 +00:00
Elliott Hughes
57e41c6a45 am f6083836: am aa0b88f7: am acc06a0b: Merge "Add a test for float registers across setjmp/logjmp."
* commit 'f6083836a71179cc3a222e7a22af010bdc05bad6':
  Add a test for float registers across setjmp/logjmp.
2015-01-27 23:42:50 +00:00
Elliott Hughes
2cea48a77e am 4bdc2a61: am ca3396ef: am 192e169a: Merge "x86 has an assembler bcopy implementation."
* commit '4bdc2a6105c7f91d780c62a05e02ccb2a75a8837':
  x86 has an assembler bcopy implementation.
2015-01-27 23:31:36 +00:00
Yabin Cui
ba8f594152 am 67266eac: am a8041f9b: am b518836e: Merge "Rename "TIMEWARN" to "SLOW" in bionic gtest."
* commit '67266eacf603a1dae7cfd81e24d55c9bff1cc61a':
  Rename "TIMEWARN" to "SLOW" in bionic gtest.
2015-01-27 23:31:35 +00:00
Elliott Hughes
d83cd1924b am 0dadeb81: am 2bb5664f: am 643a9be8: Merge "[Arm64] Fix overlapping fp fields in jmp_buf"
* commit '0dadeb8134147ac07723e5047003485654b2bcc7':
  [Arm64] Fix overlapping fp fields in jmp_buf
2015-01-27 23:31:31 +00:00
Elliott Hughes
2aa82b5804 am 5bf4a172: am dedacf10: am 5c7964c5: Merge "Clean up <stdlib.h> slightly."
* commit '5bf4a1729ad35356c8c18b77842e9bac0f1ea0b2':
  Clean up <stdlib.h> slightly.
2015-01-27 23:31:30 +00:00
Yabin Cui
c10cfc0520 am d13e6268: am 385c07a7: Merge "Fix parse of gtest_filter in bionic gtest main."
* commit 'd13e626817cfd552bf082fb35019177274147449':
  Fix parse of gtest_filter in bionic gtest main.
2015-01-27 22:13:28 +00:00
Yabin Cui
d13e626817 am 385c07a7: Merge "Fix parse of gtest_filter in bionic gtest main."
* commit '385c07a74ca5438a6f7fe0ada2b461f880563073':
  Fix parse of gtest_filter in bionic gtest main.
2015-01-27 22:05:40 +00:00
Yabin Cui
385c07a74c Merge "Fix parse of gtest_filter in bionic gtest main." 2015-01-27 22:00:35 +00:00
Elliott Hughes
63c74b2c22 am 6c55034a: am 86d98962: Merge "Fix mips build."
* commit '6c55034a1d24caa82cb7e5a6c0ca71e9697c0f12':
  Fix mips build.
2015-01-27 19:51:12 +00:00
Elliott Hughes
6c55034a1d am 86d98962: Merge "Fix mips build."
* commit '86d9896273e81941d16034fdbf781a3f2bf94b81':
  Fix mips build.
2015-01-27 19:43:32 +00:00
Elliott Hughes
86d9896273 Merge "Fix mips build." 2015-01-27 19:39:37 +00:00
Yabin Cui
0bc4e9697e Fix parse of gtest_filter in bionic gtest main.
Bug: 19130330
Change-Id: Id6a60570a8aab6ae7259ff228b3801285b378f77
2015-01-27 11:22:46 -08:00
Elliott Hughes
f6083836a7 am aa0b88f7: am acc06a0b: Merge "Add a test for float registers across setjmp/logjmp."
* commit 'aa0b88f7a8a96bef2cec739678ceb69c3f9f1ce1':
  Add a test for float registers across setjmp/logjmp.
2015-01-27 19:19:38 +00:00
Elliott Hughes
aa0b88f7a8 am acc06a0b: Merge "Add a test for float registers across setjmp/logjmp."
* commit 'acc06a0b74e41728c6067280134a59d8b700d535':
  Add a test for float registers across setjmp/logjmp.
2015-01-27 19:13:23 +00:00
Elliott Hughes
e6099098a5 Fix mips build.
Move various mips-only things into the arch-mips directory. As soon as mips
writes assembler replacements, we can remove these.

Change-Id: Ia7308559bc361f5c8df3e1d456b381865e060b93
2015-01-27 11:09:27 -08:00
Elliott Hughes
acc06a0b74 Merge "Add a test for float registers across setjmp/logjmp." 2015-01-27 19:08:33 +00:00
Lorenzo Colitti
80fee21ada am ecbeee61: am 329db346: am f2d02c38: Merge "Make bionic compile even if resolver debugging is enabled."
* commit 'ecbeee61ede2b1100e6ff8f3e1d181e7049242c2':
  Make bionic compile even if resolver debugging is enabled.
2015-01-27 18:33:16 +00:00
Christopher Ferris
5bf95c10cf am 99272d40: am 85ecef2c: am 5d428bba: Merge "Do not build host benchmark code on macs."
* commit '99272d40cb989744a5518eed22c71979c35d05b3':
  Do not build host benchmark code on macs.
2015-01-27 18:33:00 +00:00
Yabin Cui
f0de5f8ae6 am 2a79e882: am 65b227b0: am 0e6af17a: Merge "Support --gtest_ouput option in bionic gtest main."
* commit '2a79e8820521d1d6b4fa64599e12d22b358dad7a':
  Support --gtest_ouput option in bionic gtest main.
2015-01-27 18:32:59 +00:00
Elliott Hughes
4bdc2a6105 am ca3396ef: am 192e169a: Merge "x86 has an assembler bcopy implementation."
* commit 'ca3396ef2d08777f83362c72939aed7cfd4f6edf':
  x86 has an assembler bcopy implementation.
2015-01-27 05:59:07 +00:00
Elliott Hughes
ca3396ef2d am 192e169a: Merge "x86 has an assembler bcopy implementation."
* commit '192e169a404fee48483335ed988788924266ff5d':
  x86 has an assembler bcopy implementation.
2015-01-27 05:52:55 +00:00
Elliott Hughes
192e169a40 Merge "x86 has an assembler bcopy implementation." 2015-01-27 05:46:56 +00:00
Elliott Hughes
1edfd9e36a x86 has an assembler bcopy implementation.
Change-Id: I4ed7af3c5b104f86550120401f773150c460f37b
2015-01-26 21:45:56 -08:00
Yabin Cui
67266eacf6 am a8041f9b: am b518836e: Merge "Rename "TIMEWARN" to "SLOW" in bionic gtest."
* commit 'a8041f9b1db0ea8e232bbd98eeb98b7395fca0e6':
  Rename "TIMEWARN" to "SLOW" in bionic gtest.
2015-01-27 05:43:37 +00:00
Yabin Cui
a8041f9b1d am b518836e: Merge "Rename "TIMEWARN" to "SLOW" in bionic gtest."
* commit 'b518836e8c8aa8fce933d59705a24543672bf238':
  Rename "TIMEWARN" to "SLOW" in bionic gtest.
2015-01-27 05:38:20 +00:00
Yabin Cui
b518836e8c Merge "Rename "TIMEWARN" to "SLOW" in bionic gtest." 2015-01-27 05:32:52 +00:00
Elliott Hughes
0dadeb8134 am 2bb5664f: am 643a9be8: Merge "[Arm64] Fix overlapping fp fields in jmp_buf"
* commit '2bb5664f5e73221bbc14def1721bb541c901b277':
  [Arm64] Fix overlapping fp fields in jmp_buf
2015-01-27 05:05:56 +00:00
Elliott Hughes
5bf4a1729a am dedacf10: am 5c7964c5: Merge "Clean up <stdlib.h> slightly."
* commit 'dedacf109b35e74d76594c29560a09f4ef3eb94d':
  Clean up <stdlib.h> slightly.
2015-01-27 05:00:11 +00:00
Elliott Hughes
2bb5664f5e am 643a9be8: Merge "[Arm64] Fix overlapping fp fields in jmp_buf"
* commit '643a9be82e4a9897f22cee6dcb6070ee102107d6':
  [Arm64] Fix overlapping fp fields in jmp_buf
2015-01-27 04:59:51 +00:00
Yabin Cui
4a82ede754 Rename "TIMEWARN" to "SLOW" in bionic gtest.
Bug: 19109188.
Change-Id: Idfe769ac652bf37642da24e4abb6061ca861d57e
2015-01-26 20:56:20 -08:00
Elliott Hughes
643a9be82e Merge "[Arm64] Fix overlapping fp fields in jmp_buf" 2015-01-27 04:56:20 +00:00
Elliott Hughes
dedacf109b am 5c7964c5: Merge "Clean up <stdlib.h> slightly."
* commit '5c7964c5f159bc3e1bbc577c7ace52177f399b21':
  Clean up <stdlib.h> slightly.
2015-01-27 04:54:07 +00:00
Elliott Hughes
87dd503018 Add a test for float registers across setjmp/logjmp.
Change-Id: I17cc056b185755e0b91de096b5ceefee4f4e0b3a
2015-01-26 20:52:34 -08:00
Elliott Hughes
5c7964c5f1 Merge "Clean up <stdlib.h> slightly." 2015-01-27 04:49:07 +00:00
Lorenzo Colitti
ecbeee61ed am 329db346: am f2d02c38: Merge "Make bionic compile even if resolver debugging is enabled."
* commit '329db346f54c629e0c9fcc98c21c19619a573e9b':
  Make bionic compile even if resolver debugging is enabled.
2015-01-27 04:14:09 +00:00
Lorenzo Colitti
329db346f5 am f2d02c38: Merge "Make bionic compile even if resolver debugging is enabled."
* commit 'f2d02c38fb7a7b91ddbb7e54fffa1e9c6c0c7449':
  Make bionic compile even if resolver debugging is enabled.
2015-01-27 04:07:10 +00:00
Lorenzo Colitti
f2d02c38fb Merge "Make bionic compile even if resolver debugging is enabled." 2015-01-27 04:02:42 +00:00
Christopher Ferris
99272d40cb am 85ecef2c: am 5d428bba: Merge "Do not build host benchmark code on macs."
* commit '85ecef2c6b7a624ba9db066ebefcfd0d394da6af':
  Do not build host benchmark code on macs.
2015-01-27 02:18:49 +00:00
Yabin Cui
2a79e88205 am 65b227b0: am 0e6af17a: Merge "Support --gtest_ouput option in bionic gtest main."
* commit '65b227b02e8239ee6a72c3c26f0b1937f80b8027':
  Support --gtest_ouput option in bionic gtest main.
2015-01-27 02:18:17 +00:00
Christopher Ferris
85ecef2c6b am 5d428bba: Merge "Do not build host benchmark code on macs."
* commit '5d428bbab4d5a1124186a75bef6a4fb008682e43':
  Do not build host benchmark code on macs.
2015-01-27 01:37:45 +00:00
Christopher Ferris
5d428bbab4 Merge "Do not build host benchmark code on macs." 2015-01-27 01:32:06 +00:00
Yabin Cui
65b227b02e am 0e6af17a: Merge "Support --gtest_ouput option in bionic gtest main."
* commit '0e6af17a35b1e5e6e8c4a22dcb934bb641a92488':
  Support --gtest_ouput option in bionic gtest main.
2015-01-27 01:21:06 +00:00
Yabin Cui
0e6af17a35 Merge "Support --gtest_ouput option in bionic gtest main." 2015-01-27 01:01:05 +00:00
Christopher Ferris
941a1a191f Do not build host benchmark code on macs.
Macs don't have clock_gettime, and it doesn't seem worth getting this
to run on the host for mac.

Change-Id: I59d9939acc2ede1308b24a60c4242d45355d967d
2015-01-26 16:54:40 -08:00
Yabin Cui
657b1f9bef Support --gtest_ouput option in bionic gtest main.
Bug: 19109500
Change-Id: Ib18f90ad522e66ea62dd4e02e314585d9b36e15f
2015-01-26 16:53:05 -08:00
Duane Sand
dbaab26021 [Arm64] Fix overlapping fp fields in jmp_buf
Change-Id: I9be9f118108f3f6e2bb02a5b01e0420fbfd15d85
2015-01-26 16:20:05 -08:00
Elliott Hughes
76f8916b90 Clean up <stdlib.h> slightly.
Interestingly, this mostly involves cleaning up our implementation of
various <string.h> functions.

Change-Id: Ifaef49b5cb997134f7bc0cc31bdac844bdb9e089
2015-01-26 14:28:41 -08:00
Christopher Ferris
15f382585c am 62c51518: am a5af57d3: am 419ed122: Merge "Update kernel headers to v3.18.3."
* commit '62c51518abc6f05b37efc4fdda4637e62de9ee3f':
  Update kernel headers to v3.18.3.
2015-01-26 22:09:47 +00:00
Elliott Hughes
6660e98965 am 46bed722: am e3c350f8: am 247cfe03: Merge "Add <error.h>."
* commit '46bed722eb4726cef7bccfa266dc32ab9d3f2886':
  Add <error.h>.
2015-01-26 22:09:35 +00:00
Christopher Ferris
62c51518ab am a5af57d3: am 419ed122: Merge "Update kernel headers to v3.18.3."
* commit 'a5af57d3e6e8cccf32d0e84eb148b5f4b9db3552':
  Update kernel headers to v3.18.3.
2015-01-26 21:45:15 +00:00
Christopher Ferris
a5af57d3e6 am 419ed122: Merge "Update kernel headers to v3.18.3."
* commit '419ed122aa21cf04334f21baab135ac4f9f49840':
  Update kernel headers to v3.18.3.
2015-01-26 21:33:55 +00:00
Christopher Ferris
419ed122aa Merge "Update kernel headers to v3.18.3." 2015-01-26 21:27:52 +00:00
Elliott Hughes
46bed722eb am e3c350f8: am 247cfe03: Merge "Add <error.h>."
* commit 'e3c350f8c8a3be0637e4894639b14a3965a1b312':
  Add <error.h>.
2015-01-26 20:53:58 +00:00
Elliott Hughes
e3c350f8c8 am 247cfe03: Merge "Add <error.h>."
* commit '247cfe03825f46e38371954d04fcb90a8b36c824':
  Add <error.h>.
2015-01-26 20:46:58 +00:00
Elliott Hughes
247cfe0382 Merge "Add <error.h>." 2015-01-26 20:38:46 +00:00
Elliott Hughes
b8a8cf0d1a Add <error.h>.
Bug: https://code.google.com/p/android/issues/detail?id=79170
Change-Id: Id91765fac45124545e2674a5b2c814707c1a448b
2015-01-26 11:57:11 -08:00
Christopher Ferris
82d7504cd7 Update kernel headers to v3.18.3.
Bug: 19127803
Change-Id: I67fa0832322ddd0032d909476047578be052bcf2
2015-01-26 10:57:07 -08:00
Lorenzo Colitti
616344d169 Make bionic compile even if resolver debugging is enabled.
The code now compiles with all combinations of DEBUG and
DEBUG_DATA except DEBUG_DATA=1, DEBUG=0, which is unsupported.

Change-Id: I9035a65c649df73092f1fc0864ae1cdd9a14aa3b
2015-01-26 16:05:27 +09:00
Dan Albert
5dd626840b am 7102d69e: am 2991f2a3: am 6eb5dc1d: Merge "Fix coverage build after adding clang coverage."
* commit '7102d69ef1d3e264e63fcd75d078231c11daa4d3':
  Fix coverage build after adding clang coverage.
2015-01-25 23:09:57 +00:00
Dan Albert
7102d69ef1 am 2991f2a3: am 6eb5dc1d: Merge "Fix coverage build after adding clang coverage."
* commit '2991f2a3d92f54757c0e726a3dcaa103cd8fed9e':
  Fix coverage build after adding clang coverage.
2015-01-25 23:05:47 +00:00
Dan Albert
2991f2a3d9 am 6eb5dc1d: Merge "Fix coverage build after adding clang coverage."
* commit '6eb5dc1d9c38ff8f717b70a2f66417c599aeb08c':
  Fix coverage build after adding clang coverage.
2015-01-25 22:55:24 +00:00
Dan Albert
6eb5dc1d9c Merge "Fix coverage build after adding clang coverage." 2015-01-25 22:51:37 +00:00
Dan Albert
6e9e6ad3bf Fix coverage build after adding clang coverage.
Static libraries are painful. Details are in the comment. I'll try to
get prebuilts in to the tree so I can fix this on Monday. Until then,
this isn't actually a regression because we've not had coverage
available for this library until now anyway.

Bug: 17574078
Change-Id: I7505c8a94007203e15a6cf192caa06004849d7d9
2015-01-25 14:27:51 -08:00
Elliott Hughes
2e747a65c0 am a028ab9e: am c7aaf228: am f108bbba: Merge "Remove obsolete BUILD_TINY_ANDROID."
* commit 'a028ab9e09fc08d7551fe20514d197f7fa4cb86f':
  Remove obsolete BUILD_TINY_ANDROID.
2015-01-25 21:00:53 +00:00
Elliott Hughes
a028ab9e09 am c7aaf228: am f108bbba: Merge "Remove obsolete BUILD_TINY_ANDROID."
* commit 'c7aaf228beddc4c68a3e4f3986aee40c568c208c':
  Remove obsolete BUILD_TINY_ANDROID.
2015-01-25 20:42:50 +00:00
Elliott Hughes
c7aaf228be am f108bbba: Merge "Remove obsolete BUILD_TINY_ANDROID."
* commit 'f108bbbaf7a11c3226780d0424fa123155e30f36':
  Remove obsolete BUILD_TINY_ANDROID.
2015-01-25 05:17:29 +00:00
Elliott Hughes
f108bbbaf7 Merge "Remove obsolete BUILD_TINY_ANDROID." 2015-01-25 05:09:21 +00:00
Elliott Hughes
14152b9f31 Remove obsolete BUILD_TINY_ANDROID.
Change-Id: If2fc97134340fd09ec2583b666ace2f673cbdf66
2015-01-24 19:01:58 -08:00
Elliott Hughes
e361dbb8fc am 9e4827de: am 7eed99da: am 66eeec8e: Merge "Reduce <stdlib.h> namespace pollution."
* commit '9e4827de125e37bec0bc2a2c02b65176b30129f9':
  Reduce <stdlib.h> namespace pollution.
2015-01-24 23:57:37 +00:00
Elliott Hughes
9e4827de12 am 7eed99da: am 66eeec8e: Merge "Reduce <stdlib.h> namespace pollution."
* commit '7eed99dad95003b8b40e6a1136bd83ac68dc54dc':
  Reduce <stdlib.h> namespace pollution.
2015-01-24 23:53:11 +00:00
Elliott Hughes
7eed99dad9 am 66eeec8e: Merge "Reduce <stdlib.h> namespace pollution."
* commit '66eeec8e160feddc2b35c4ff9d20de92f37331dd':
  Reduce <stdlib.h> namespace pollution.
2015-01-24 23:47:36 +00:00
Elliott Hughes
66eeec8e16 Merge "Reduce <stdlib.h> namespace pollution." 2015-01-24 23:44:27 +00:00
Elliott Hughes
c5dc02a91e Reduce <stdlib.h> namespace pollution.
<stdlib.h> shouldn't drag in all of <string.h>.

Change-Id: I949172f7ff17e329e411e5054e50f79c13775444
2015-01-24 15:22:57 -08:00
Elliott Hughes
568ecb2314 am fe1709bd: am 12144696: am 62d20fb2: Merge "Reduce <signal.h> namespace pollution."
* commit 'fe1709bdca1a335df315ba11efcdfec96e71658f':
  Reduce <signal.h> namespace pollution.
2015-01-24 22:55:16 +00:00
Elliott Hughes
fe1709bdca am 12144696: am 62d20fb2: Merge "Reduce <signal.h> namespace pollution."
* commit '12144696ac9b53462fbfb0fb4f1a181e10df7437':
  Reduce <signal.h> namespace pollution.
2015-01-24 22:47:01 +00:00
Elliott Hughes
12144696ac am 62d20fb2: Merge "Reduce <signal.h> namespace pollution."
* commit '62d20fb21948d7a31d453ec08ed5abc02d3dd1d3':
  Reduce <signal.h> namespace pollution.
2015-01-24 22:41:01 +00:00
Elliott Hughes
62d20fb219 Merge "Reduce <signal.h> namespace pollution." 2015-01-24 22:34:51 +00:00
Elliott Hughes
ddc4c8f8ec am cf936c1e: am 61a80735: am 6e15edcc: Merge "Say "Bad file descriptor" rather than "Bad file number"."
* commit 'cf936c1e43456d50f9d58444442e31609ff75256':
  Say "Bad file descriptor" rather than "Bad file number".
2015-01-24 22:24:27 +00:00
Elliott Hughes
6466292a7e Reduce <signal.h> namespace pollution.
<signal.h> shouldn't drag in all of <string.h>.

Change-Id: I57aea36dad5e89ea2f9541c35594ca6225e532be
2015-01-24 14:18:16 -08:00
Elliott Hughes
cf936c1e43 am 61a80735: am 6e15edcc: Merge "Say "Bad file descriptor" rather than "Bad file number"."
* commit '61a8073565dd9870f4f93a96f91881955833757b':
  Say "Bad file descriptor" rather than "Bad file number".
2015-01-24 22:18:09 +00:00
Elliott Hughes
61a8073565 am 6e15edcc: Merge "Say "Bad file descriptor" rather than "Bad file number"."
* commit '6e15edcca5f5b35221b33e9994c236f148cb3c38':
  Say "Bad file descriptor" rather than "Bad file number".
2015-01-24 22:12:06 +00:00
Elliott Hughes
6e15edcca5 Merge "Say "Bad file descriptor" rather than "Bad file number"." 2015-01-24 22:08:20 +00:00
Elliott Hughes
851f09de5d am e5cfda5b: am 94a4a173: am 59936a3b: Merge "Fix optimized fread."
* commit 'e5cfda5b5d372ef674e8f8c36faded2d653c10b5':
  Fix optimized fread.
2015-01-24 21:43:05 +00:00
Elliott Hughes
d309877eee Say "Bad file descriptor" rather than "Bad file number".
This text is actually in POSIX (though it's not mandatory) and it's what glibc
says. Who says "file number" anyway?

Change-Id: Icc91ac24587c2bc692e0b97c19d32ac1bdda4ea7
2015-01-24 13:38:57 -08:00
Elliott Hughes
e5cfda5b5d am 94a4a173: am 59936a3b: Merge "Fix optimized fread."
* commit '94a4a173d24ce8feac5c49fb5ad209a836d41439':
  Fix optimized fread.
2015-01-24 21:38:15 +00:00
Elliott Hughes
94a4a173d2 am 59936a3b: Merge "Fix optimized fread."
* commit '59936a3b51474fc3216659f089ff6543ac31ab4e':
  Fix optimized fread.
2015-01-24 21:31:09 +00:00
Elliott Hughes
59936a3b51 Merge "Fix optimized fread." 2015-01-24 21:25:06 +00:00
Elliott Hughes
e6bb5a2776 Fix optimized fread.
gcov does writes after reads on the same stream, but the bulk read optimization
was clobbering the FILE _flags, causing fwrite to fail.

Bug: 19129055
Change-Id: I9650cb7de4bb173a706b502406266ed0d2b654d7
2015-01-24 12:35:41 -08:00
Dmitriy Ivanov
844b4e1638 am ebbf3b0e: am 37043dff: am 31005ca4: Merge "Minimize calls to mprotect"
* commit 'ebbf3b0ec22d729b9531ed562322655844676df4':
  Minimize calls to mprotect
2015-01-24 16:58:12 +00:00
Dan Albert
849f23c594 am 1042afe6: am e6ad1630: am 305be18d: Merge "Allow make to set a timeout for the host tests."
* commit '1042afe618c7b2f06d520f9cadc4482124e5c875':
  Allow make to set a timeout for the host tests.
2015-01-24 16:58:03 +00:00
Chih-Hung Hsieh
791081c37b am 54ab69d3: am 75bce066: am f5ae7e91: Merge "Add comments about the -shared flag."
* commit '54ab69d33fb39c4e97e401087e384a944345d1e4':
  Add comments about the -shared flag.
2015-01-24 16:57:51 +00:00
Dmitriy Ivanov
ebbf3b0ec2 am 37043dff: am 31005ca4: Merge "Minimize calls to mprotect"
* commit '37043dff1d2d7ea475cea1ef5728fbf88f6fb321':
  Minimize calls to mprotect
2015-01-24 00:59:54 +00:00
Dmitriy Ivanov
37043dff1d am 31005ca4: Merge "Minimize calls to mprotect"
* commit '31005ca4c8562f3e6dfbed079eeaff8361ff8cdc':
  Minimize calls to mprotect
2015-01-24 00:51:09 +00:00
Dmitriy Ivanov
31005ca4c8 Merge "Minimize calls to mprotect" 2015-01-24 00:45:25 +00:00
Dmitriy Ivanov
279a22f96e Minimize calls to mprotect
Implement refcounter based data protection guard
  to avoid unnecessary calls to mprotect when dlopen/dlclose
  is called from a constructor.

Bug: 19124318
Big: 7941716
Change-Id: Id221b84ce75443094f99756dc9950b0a1dc87222
2015-01-23 16:30:34 -08:00
Dan Albert
1042afe618 am e6ad1630: am 305be18d: Merge "Allow make to set a timeout for the host tests."
* commit 'e6ad16304d054a9e6fff25693153a03455808bde':
  Allow make to set a timeout for the host tests.
2015-01-24 00:13:54 +00:00
Dan Albert
e6ad16304d am 305be18d: Merge "Allow make to set a timeout for the host tests."
* commit '305be18d10254df4a9444f8505f569e94718f488':
  Allow make to set a timeout for the host tests.
2015-01-24 00:07:20 +00:00
Chih-Hung Hsieh
54ab69d33f am 75bce066: am f5ae7e91: Merge "Add comments about the -shared flag."
* commit '75bce0660ad558577dd5a2913f8fbcd39da1cbb6':
  Add comments about the -shared flag.
2015-01-24 00:04:17 +00:00
Dan Albert
305be18d10 Merge "Allow make to set a timeout for the host tests." 2015-01-24 00:01:40 +00:00
Chih-Hung Hsieh
75bce0660a am f5ae7e91: Merge "Add comments about the -shared flag."
* commit 'f5ae7e91ea2c3364d6423ef4d54f5f295197335f':
  Add comments about the -shared flag.
2015-01-23 23:41:01 +00:00
Chih-Hung Hsieh
f5ae7e91ea Merge "Add comments about the -shared flag." 2015-01-23 23:33:54 +00:00
Elliott Hughes
ed78e5f883 am 590641b0: am cf744fc8: am 7f3d65de: Merge "Add a log message to make the transition from linker to user code clear."
* commit '590641b0ad90d88c99cf965036d3c806f381d879':
  Add a log message to make the transition from linker to user code clear.
2015-01-23 19:57:07 +00:00
Dan Albert
4ce907d2ce Allow make to set a timeout for the host tests.
Change-Id: Icc2ebf64bd1da1687bf313fe7a5640155c5795d8
2015-01-23 11:35:48 -08:00
Elliott Hughes
590641b0ad am cf744fc8: am 7f3d65de: Merge "Add a log message to make the transition from linker to user code clear."
* commit 'cf744fc89a7bac815bb42802dcfce73101ddbe1d':
  Add a log message to make the transition from linker to user code clear.
2015-01-23 19:14:16 +00:00
Elliott Hughes
cf744fc89a am 7f3d65de: Merge "Add a log message to make the transition from linker to user code clear."
* commit '7f3d65de8cf2920981d73adee278c0d7bee79170':
  Add a log message to make the transition from linker to user code clear.
2015-01-23 18:59:45 +00:00
Elliott Hughes
7f3d65de8c Merge "Add a log message to make the transition from linker to user code clear." 2015-01-23 18:55:30 +00:00
Elliott Hughes
611f95689e Add a log message to make the transition from linker to user code clear.
Handy when looking at strace output for seeing "where does my code start?",
though you'll need to set LD_DEBUG=1 (or greater) and constructors will
already have run (but you can set LD_DEBUG to a higher value to track that).

Change-Id: I82d53a7123b39febf5b2a956de83c8a30f229651
2015-01-23 10:43:58 -08:00
Dmitriy Ivanov
39b7bc3167 am 4d2dcb89: am 8e2b0e55: am bb3b1303: Merge "Enable -Wold-style-cast warnings for linker"
* commit '4d2dcb896abcf3e13972665d3eaf179365bc799f':
  Enable -Wold-style-cast warnings for linker
2015-01-23 04:19:50 +00:00
Dmitriy Ivanov
4d2dcb896a am 8e2b0e55: am bb3b1303: Merge "Enable -Wold-style-cast warnings for linker"
* commit '8e2b0e550a8e64da23c95fe265dbea7c6701e7c1':
  Enable -Wold-style-cast warnings for linker
2015-01-23 03:28:02 +00:00
Dmitriy Ivanov
8e2b0e550a am bb3b1303: Merge "Enable -Wold-style-cast warnings for linker"
* commit 'bb3b1303e1167a662218c9686977b379964e0072':
  Enable -Wold-style-cast warnings for linker
2015-01-23 03:14:35 +00:00
Dan Albert
3e41329e62 am 2e7715b2: am f908b21a: am ab58559a: Merge "Add a basic NDK compatibility library."
* commit '2e7715b29fc7e2e96c997eb005343cd8563fff36':
  Add a basic NDK compatibility library.
2015-01-23 03:12:17 +00:00
Elliott Hughes
c6f3ed2db4 am 682d5d8b: am 9c8a5265: am b161fe27: Merge "There\'s no such thing as LOCAL_CXXFLAGS."
* commit '682d5d8b826a8b4fec181dde264caa699955aecd':
  There's no such thing as LOCAL_CXXFLAGS.
2015-01-23 03:10:40 +00:00
Elliott Hughes
08c18b67f8 am 4adced31: am 25437c59: am ae095a73: Merge "Fix the stdio.fread_EOF test."
* commit '4adced31e84d299a907e8ffa0f8ff9840a1ce5ee':
  Fix the stdio.fread_EOF test.
2015-01-23 03:10:39 +00:00
Elliott Hughes
903dbf99a0 am 0f7f31f8: am a0313e04: am d5d9221b: Merge "Fix fread_EOF test name."
* commit '0f7f31f8193ffb61d73d3a3f2c89e437f81a0245':
  Fix fread_EOF test name.
2015-01-23 03:10:38 +00:00
Dmitriy Ivanov
bb3b1303e1 Merge "Enable -Wold-style-cast warnings for linker" 2015-01-23 03:09:22 +00:00
Chih-Hung Hsieh
306ea7ebe5 Add comments about the -shared flag.
Must build this linker as a shared object.
A statically linked module does not load during init.

BUG: 18008984

Change-Id: I5f0411129024edcb9381c473ea4e741a075e9184
2015-01-22 19:09:20 -08:00
Dan Albert
2e7715b29f am f908b21a: am ab58559a: Merge "Add a basic NDK compatibility library."
* commit 'f908b21a5cdb68184907ac6cb1475dfe771c28cf':
  Add a basic NDK compatibility library.
2015-01-23 00:54:53 +00:00
Dan Albert
f908b21a5c am ab58559a: Merge "Add a basic NDK compatibility library."
* commit 'ab58559a9cc40766c0636c6e97a93dfd5e74d923':
  Add a basic NDK compatibility library.
2015-01-23 00:51:39 +00:00
Elliott Hughes
682d5d8b82 am 9c8a5265: am b161fe27: Merge "There\'s no such thing as LOCAL_CXXFLAGS."
* commit '9c8a5265c9a2262735214a1310b5fc0246873bc9':
  There's no such thing as LOCAL_CXXFLAGS.
2015-01-23 00:50:32 +00:00
Elliott Hughes
4adced31e8 am 25437c59: am ae095a73: Merge "Fix the stdio.fread_EOF test."
* commit '25437c598473a22a697b8cae009a897df80f38e6':
  Fix the stdio.fread_EOF test.
2015-01-23 00:50:31 +00:00
Dan Albert
ab58559a9c Merge "Add a basic NDK compatibility library." 2015-01-23 00:46:54 +00:00
Elliott Hughes
0f7f31f819 am a0313e04: am d5d9221b: Merge "Fix fread_EOF test name."
* commit 'a0313e04b368c3af4152c573780549477b0ec5f8':
  Fix fread_EOF test name.
2015-01-23 00:46:45 +00:00
Dmitriy Ivanov
1649e7ee5b Enable -Wold-style-cast warnings for linker
And fix old style casts.

Change-Id: I37e7a3e3fd852528ea76f02d967c7bd8cd5b06c9
2015-01-22 16:33:30 -08:00
Elliott Hughes
9c8a5265c9 am b161fe27: Merge "There\'s no such thing as LOCAL_CXXFLAGS."
* commit 'b161fe27433b899b896b5685571373df4a1f8a21':
  There's no such thing as LOCAL_CXXFLAGS.
2015-01-22 23:41:35 +00:00
Elliott Hughes
25437c5984 am ae095a73: Merge "Fix the stdio.fread_EOF test."
* commit 'ae095a730d6b3af69dc5eff662c5609cde6f5d70':
  Fix the stdio.fread_EOF test.
2015-01-22 23:41:34 +00:00
Elliott Hughes
b161fe2743 Merge "There's no such thing as LOCAL_CXXFLAGS." 2015-01-22 23:40:08 +00:00
Elliott Hughes
62284dd2cc There's no such thing as LOCAL_CXXFLAGS.
Change-Id: Iad70e6bd4cb7cec9e0ece500a540e4dadc83d92e
2015-01-22 15:36:24 -08:00
Elliott Hughes
ae095a730d Merge "Fix the stdio.fread_EOF test." 2015-01-22 23:35:48 +00:00
Elliott Hughes
0ed7e08cda Fix the stdio.fread_EOF test.
Another sizeof/strlen screwup caused by trying to be too clever. Use
std::string instead.

Also fix all the ASSERT_STREQ calls in this file that had the arguments
the right^Wwrong way round. If I ever see Kent Beck...

Change-Id: I47a1bdfee99cf4e7bed9b398f3158a308fbcf1e8
2015-01-22 15:28:48 -08:00
Elliott Hughes
a0313e04b3 am d5d9221b: Merge "Fix fread_EOF test name."
* commit 'd5d9221b9c96a8213b0a83dde468653d49e76dd8':
  Fix fread_EOF test name.
2015-01-22 22:28:23 +00:00
Elliott Hughes
d5d9221b9c Merge "Fix fread_EOF test name." 2015-01-22 22:24:53 +00:00
Elliott Hughes
bcb378d643 Fix fread_EOF test name.
Change-Id: I53a7f1428fd27c0b2a5c80f2e8af4845d17f5b4b
2015-01-22 14:18:35 -08:00
Dan Albert
d75ff6c9ea am b874754c: am 579fda5f: am d2806754: Merge "Add support for building other architectures."
* commit 'b874754c2b3e46017e6af222e8f0f77d08948968':
  Add support for building other architectures.
2015-01-22 22:16:37 +00:00
Dan Albert
b874754c2b am 579fda5f: am d2806754: Merge "Add support for building other architectures."
* commit '579fda5f0d9db0042cec9741f0cd8a68c57dfaaf':
  Add support for building other architectures.
2015-01-22 22:10:49 +00:00
Dan Albert
579fda5f0d am d2806754: Merge "Add support for building other architectures."
* commit 'd280675405e605d47c74c037b0d2b4f06826ed4d':
  Add support for building other architectures.
2015-01-22 22:04:48 +00:00
Dan Albert
d280675405 Merge "Add support for building other architectures." 2015-01-22 22:00:37 +00:00
Elliott Hughes
08aec8cbd3 am 9455d3b7: am d4517fb3: am 53df4bfc: Merge "Use a more specific return type for app_id_from_name."
* commit '9455d3b7a07628bed4cb36b25f1a6e5af84ce881':
  Use a more specific return type for app_id_from_name.
2015-01-22 20:32:15 +00:00
Elliott Hughes
7647f16284 am f7b64d09: am 69838daa: am d1668a71: Merge "Turn on -Wold-style-cast and fix the errors."
* commit 'f7b64d09002b22fade3ab703cf31c7b140ea9cd1':
  Turn on -Wold-style-cast and fix the errors.
2015-01-22 20:32:15 +00:00
Elliott Hughes
9455d3b7a0 am d4517fb3: am 53df4bfc: Merge "Use a more specific return type for app_id_from_name."
* commit 'd4517fb37ce5d306fa3d6f65e0fcfe949e7fd6fd':
  Use a more specific return type for app_id_from_name.
2015-01-22 20:26:36 +00:00
Elliott Hughes
d4517fb37c am 53df4bfc: Merge "Use a more specific return type for app_id_from_name."
* commit '53df4bfce81d8a6cfd4b5d991f5299f18dc4c958':
  Use a more specific return type for app_id_from_name.
2015-01-22 20:21:30 +00:00
Elliott Hughes
53df4bfce8 Merge "Use a more specific return type for app_id_from_name." 2015-01-22 20:15:04 +00:00
Elliott Hughes
c56af08c21 Use a more specific return type for app_id_from_name.
I suspect we can simplify this code, but I don't know enough about it
to get involved now.

Change-Id: I1c39761ae31beb70d41ffa6f0e396a4f17529d46
2015-01-22 11:02:59 -08:00
Dan Albert
9c3fd59b00 Add a basic NDK compatibility library.
We know we can safely statically link `libm`, since it doesn't have
any dependencies on the OS or the layout of a data type that has
changed between releases (like `pthread_t`).

We can safely statically link `libc_syscalls` because the user can
check for and handle `ENOSYS`.

Update `ndk_missing_symbols.py` to account for symbols that are in the
compatibility library.

Improve `symbols.py` to be able to pull symbols from a static library.

Change-Id: Ifb0ede1e8b4a8f0f33865d9fed72fb8b4d443fbc
2015-01-21 18:12:15 -08:00
Dan Albert
2b6c99b6e2 am 0855e923: am c673a2fe: am 4f11c59b: Merge "Add ndk_missing_symbols.py."
* commit '0855e923f6ff268632a9529caf44ae526953842a':
  Add ndk_missing_symbols.py.
2015-01-22 02:07:36 +00:00
Elliott Hughes
f7b64d0900 am 69838daa: am d1668a71: Merge "Turn on -Wold-style-cast and fix the errors."
* commit '69838daa8764eb4d008df679e961fb510a37687b':
  Turn on -Wold-style-cast and fix the errors.
2015-01-22 02:02:46 +00:00
Elliott Hughes
563fbe2863 am 0edffb85: am a2e5d98b: am 2a8c929a: Merge "Implement __fsetlocking."
* commit '0edffb85fa40987c00dd078111c6218efd5aded7':
  Implement __fsetlocking.
2015-01-22 01:59:21 +00:00
Christopher Ferris
6d37015dfd am 0a45cc25: am 0930323e: am 8476b8ed: Merge "Contact proper debuggerd when crashing."
* commit '0a45cc25566049860f3f38ab174569964af6ac6a':
  Contact proper debuggerd when crashing.
2015-01-22 01:59:21 +00:00
Dan Albert
a91ab8f2c5 am f0de7d6c: am a6e2e070: am fbc70d38: Merge "Report 404 errors from Gerrit and continue."
* commit 'f0de7d6c6973b0c2e268fac4373bfd5765b49dc1':
  Report 404 errors from Gerrit and continue.
2015-01-22 01:59:20 +00:00
Elliott Hughes
69838daa87 am d1668a71: Merge "Turn on -Wold-style-cast and fix the errors."
* commit 'd1668a71df761eb1644496f3e2c77c16fd54bb06':
  Turn on -Wold-style-cast and fix the errors.
2015-01-22 01:55:33 +00:00
Dan Albert
0855e923f6 am c673a2fe: am 4f11c59b: Merge "Add ndk_missing_symbols.py."
* commit 'c673a2fea9246665ff87d619c48e882800a0793d':
  Add ndk_missing_symbols.py.
2015-01-22 01:54:29 +00:00
Elliott Hughes
d1668a71df Merge "Turn on -Wold-style-cast and fix the errors." 2015-01-22 01:52:06 +00:00
Dan Albert
c673a2fea9 am 4f11c59b: Merge "Add ndk_missing_symbols.py."
* commit '4f11c59b3f3acffe6c8e359296a9e38c4b7edfb6':
  Add ndk_missing_symbols.py.
2015-01-22 01:31:42 +00:00
Dan Albert
4f11c59b3f Merge "Add ndk_missing_symbols.py." 2015-01-22 01:25:57 +00:00
Elliott Hughes
8b5df3920f Turn on -Wold-style-cast and fix the errors.
A couple of dodgy cases where we cast away const, but otherwise pretty boring.

Change-Id: Ibc39ebd525377792b5911464be842121c20f03b9
2015-01-21 17:09:58 -08:00
Dan Albert
169eb66451 Add ndk_missing_symbols.py.
ndk_missing_symbols.py pulls libc.so and libm.so off a running device
or emulator and shows the list of symbols that are in the current
bionic that aren't available on the target.

Change-Id: Ia92c315a6a0ce2e5c33db0b62c8fab41c08a4c31
2015-01-21 17:09:50 -08:00
Elliott Hughes
0edffb85fa am a2e5d98b: am 2a8c929a: Merge "Implement __fsetlocking."
* commit 'a2e5d98b641bef4c5611f6aba5defff74abcad93':
  Implement __fsetlocking.
2015-01-22 00:13:10 +00:00
Christopher Ferris
0a45cc2556 am 0930323e: am 8476b8ed: Merge "Contact proper debuggerd when crashing."
* commit '0930323e98e88157b567dab3b1c75618229dd281':
  Contact proper debuggerd when crashing.
2015-01-22 00:13:09 +00:00
Dan Albert
f0de7d6c69 am a6e2e070: am fbc70d38: Merge "Report 404 errors from Gerrit and continue."
* commit 'a6e2e070f2add9869e2160e3c0ca4454cac7bb7b':
  Report 404 errors from Gerrit and continue.
2015-01-22 00:13:08 +00:00
Elliott Hughes
a2e5d98b64 am 2a8c929a: Merge "Implement __fsetlocking."
* commit '2a8c929aaf8d34d2b6e89ed9c8b6da163316143e':
  Implement __fsetlocking.
2015-01-21 22:58:17 +00:00
Christopher Ferris
0930323e98 am 8476b8ed: Merge "Contact proper debuggerd when crashing."
* commit '8476b8ed9e290d79cd00e7801c505268f0e8ec15':
  Contact proper debuggerd when crashing.
2015-01-21 22:58:11 +00:00
Dan Albert
a6e2e070f2 am fbc70d38: Merge "Report 404 errors from Gerrit and continue."
* commit 'fbc70d3899a58e6aff7d3e94803fcdc80629de5a':
  Report 404 errors from Gerrit and continue.
2015-01-21 22:58:07 +00:00
Elliott Hughes
2a8c929aaf Merge "Implement __fsetlocking." 2015-01-21 19:42:44 +00:00
Christopher Ferris
8476b8ed9e Merge "Contact proper debuggerd when crashing." 2015-01-21 18:39:59 +00:00
Elliott Hughes
8c4994bbc1 Implement __fsetlocking.
The old __isthreaded hack was never very useful on Android because all user
code runs in a VM where there are lots of threads running. But __fsetlocking
lets a caller say "I'll worry about the locking for this FILE*", which is
useful for the normal case where you don't share a FILE* between threads
so you don't need any locking.

Bug: 17154740
Bug: 18593728
Change-Id: I2a8dddc29d3edff39a3d7d793387f2253608a68d
2015-01-21 10:33:30 -08:00
Dan Albert
fbc70d3899 Merge "Report 404 errors from Gerrit and continue." 2015-01-21 18:25:40 +00:00
Dan Albert
2b87351063 Report 404 errors from Gerrit and continue.
Currently, we get a 404 from Gerrit in the event that two projects
have the same Change-Id. We should be able to handle this and actually
cherry-pick each change so we can check multi-project changes, but for
now just skip these changes.

Change-Id: I7bc63208998d58beec83b71b302450d9be3ea026
2015-01-21 09:56:28 -08:00
Elliott Hughes
d170e58b7c am eb1ac69d: am 45bdcf89: am f3743584: Merge "Fix signed/unsigned comparison that was upsetting clang."
* commit 'eb1ac69d453c586192f1fff8bb8604f9c54a718e':
  Fix signed/unsigned comparison that was upsetting clang.
2015-01-21 02:25:41 +00:00
Elliott Hughes
74ed6c32cb am e574a70d: am c4f1cfc9: am a779719d: Merge "Add TEMP_FAILURE_RETRY to stdio\'s low-level read/write functions."
* commit 'e574a70d1e3dca32893ded21ae043221a1f9882a':
  Add TEMP_FAILURE_RETRY to stdio's low-level read/write functions.
2015-01-21 02:25:39 +00:00
Elliott Hughes
0514b6be04 am 6428c625: am 7d196768: am 927d8be7: Merge "Fix build error when XLOG is enabled"
* commit '6428c625e8012cbb7a367e900d2a9c31439c6ebf':
  Fix build error when XLOG is enabled
2015-01-21 02:25:38 +00:00
Elliott Hughes
288e599eb8 am 822fe55e: am 06645218: am c053a428: Merge "Optimized fread."
* commit '822fe55ea982326c91df79ef2e8eeed4f8052d3a':
  Optimized fread.
2015-01-21 02:25:37 +00:00
Elliott Hughes
eb1ac69d45 am 45bdcf89: am f3743584: Merge "Fix signed/unsigned comparison that was upsetting clang."
* commit '45bdcf895b7f4cd6b4741fe33bc7a56d40fb220a':
  Fix signed/unsigned comparison that was upsetting clang.
2015-01-21 02:21:59 +00:00
Elliott Hughes
e574a70d1e am c4f1cfc9: am a779719d: Merge "Add TEMP_FAILURE_RETRY to stdio\'s low-level read/write functions."
* commit 'c4f1cfc9fc5ba053525cd155d50fae8b67df0392':
  Add TEMP_FAILURE_RETRY to stdio's low-level read/write functions.
2015-01-21 02:21:58 +00:00
Elliott Hughes
6428c625e8 am 7d196768: am 927d8be7: Merge "Fix build error when XLOG is enabled"
* commit '7d196768029f36b0e3fa57ba747ce58ef2b1c9d6':
  Fix build error when XLOG is enabled
2015-01-21 02:21:57 +00:00
Elliott Hughes
822fe55ea9 am 06645218: am c053a428: Merge "Optimized fread."
* commit '0664521893e88f2cd266306e707a832d9d1f94a2':
  Optimized fread.
2015-01-21 02:21:56 +00:00
Elliott Hughes
45bdcf895b am f3743584: Merge "Fix signed/unsigned comparison that was upsetting clang."
* commit 'f374358414812d3e5a45ba75a2b1926693924420':
  Fix signed/unsigned comparison that was upsetting clang.
2015-01-21 02:11:35 +00:00
Elliott Hughes
c4f1cfc9fc am a779719d: Merge "Add TEMP_FAILURE_RETRY to stdio\'s low-level read/write functions."
* commit 'a779719d628de5e504dac08d334bc576f3b7fb0a':
  Add TEMP_FAILURE_RETRY to stdio's low-level read/write functions.
2015-01-21 02:11:34 +00:00
Elliott Hughes
7d19676802 am 927d8be7: Merge "Fix build error when XLOG is enabled"
* commit '927d8be76d956fcda630e1088e9b89eb31be5146':
  Fix build error when XLOG is enabled
2015-01-21 02:11:33 +00:00
Elliott Hughes
0664521893 am c053a428: Merge "Optimized fread."
* commit 'c053a42831165044cca0bb9eb220b8f5d27fdd18':
  Optimized fread.
2015-01-21 02:11:32 +00:00
Christopher Ferris
151da68100 Contact proper debuggerd when crashing.
Make the request structure match the new structure found in debuggerd
code.

On 64 bit systems, make sure that the 32 bit compiled linker is contacted.

Bug: https://code.google.com/p/android/issues/detail?id=97024
Change-Id: I675b8ff222fcf836b05de4e9b5976ff91ca929bf
2015-01-20 17:22:25 -08:00
Elliott Hughes
f374358414 Merge "Fix signed/unsigned comparison that was upsetting clang." 2015-01-21 00:57:06 +00:00
Elliott Hughes
e69e6458cc Fix signed/unsigned comparison that was upsetting clang.
bionic/libc/stdio/fread.c:86:27: error: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Werror,-Wsign-compare]

Change-Id: Ia7e1e053e0cb13113e8f2eede820be013acbab82
2015-01-20 16:52:04 -08:00
Elliott Hughes
a779719d62 Merge "Add TEMP_FAILURE_RETRY to stdio's low-level read/write functions." 2015-01-21 00:50:01 +00:00
Elliott Hughes
8885dcc779 Add TEMP_FAILURE_RETRY to stdio's low-level read/write functions.
This is correctness rather than performance, but found while investigating
performance.

Bug: 18593728
Change-Id: Idbdfed89d1931fcfae65db29d662108d4bbd9b65
2015-01-20 16:18:32 -08:00
Elliott Hughes
927d8be76d Merge "Fix build error when XLOG is enabled" 2015-01-21 00:13:28 +00:00
Patrick Tjin
a6a0949b1d Fix build error when XLOG is enabled
(cherrypick of 79a49c9857f3949fc13373eeb179f27b6ecdca81.)

Change-Id: I7bb44fd1fe3ef2ddfc115247f328eccfceeb5352
Signed-off-by: Patrick Tjin <pattjin@google.com>
2015-01-20 16:12:45 -08:00
Elliott Hughes
c053a42831 Merge "Optimized fread." 2015-01-21 00:11:31 +00:00
Patrick Tjin
6aa63a9b8e Merge "Fix build error when XLOG is enabled" 2015-01-21 00:09:27 +00:00
Patrick Tjin
79a49c9857 Fix build error when XLOG is enabled
Change-Id: I7bb44fd1fe3ef2ddfc115247f328eccfceeb5352
Signed-off-by: Patrick Tjin <pattjin@google.com>
2015-01-20 16:04:53 -08:00
Elliott Hughes
75b99387dd Optimized fread.
This makes us competitive with glibc for fully-buffered and unbuffered reads,
except in single-threaded situations where glibc avoids locking, but since
we're never really single-threaded anyway, that isn't a priority.

Bug: 18593728
Change-Id: Ib776bfba422ccf46209581fc0dc54f3567645b8f
2015-01-20 15:59:17 -08:00
Yabin Cui
fc35d1f887 am 0d53dd80: am da307e7d: am d3d75c02: Merge "Remove testcase time printing in bionic-unit-tests."
* commit '0d53dd8081e618ca6891f33dae1045d3cd565010':
  Remove testcase time printing in bionic-unit-tests.
2015-01-20 23:54:42 +00:00
Yabin Cui
0d53dd8081 am da307e7d: am d3d75c02: Merge "Remove testcase time printing in bionic-unit-tests."
* commit 'da307e7d91559f32a15390b1ac48693ffb7def89':
  Remove testcase time printing in bionic-unit-tests.
2015-01-20 23:48:37 +00:00
Yabin Cui
da307e7d91 am d3d75c02: Merge "Remove testcase time printing in bionic-unit-tests."
* commit 'd3d75c029a9b768989d5370000788dca4032b97a':
  Remove testcase time printing in bionic-unit-tests.
2015-01-20 23:43:15 +00:00
Yabin Cui
d3d75c029a Merge "Remove testcase time printing in bionic-unit-tests." 2015-01-20 23:38:35 +00:00
Yabin Cui
eb6212694c am e00eb27c: am 978e54a7: am 1c01c9f7: Merge "Add target libbionic_gtest_main for cts test."
* commit 'e00eb27c651d6de62cb4ee2ece73182f6dff5de5':
  Add target libbionic_gtest_main for cts test.
2015-01-20 23:24:47 +00:00
Yabin Cui
e00eb27c65 am 978e54a7: am 1c01c9f7: Merge "Add target libbionic_gtest_main for cts test."
* commit '978e54a7884211302b230685d73c8e1d9790a0ae':
  Add target libbionic_gtest_main for cts test.
2015-01-20 23:15:21 +00:00
Yabin Cui
978e54a788 am 1c01c9f7: Merge "Add target libbionic_gtest_main for cts test."
* commit '1c01c9f752c07d758349356c18563261b8216da9':
  Add target libbionic_gtest_main for cts test.
2015-01-20 22:51:49 +00:00
Yabin Cui
516eb53113 Remove testcase time printing in bionic-unit-tests.
Bug: 19075565
Change-Id: Icccb60657a2985e96abb1703673f0ebe2199586a
2015-01-20 14:46:03 -08:00
Yabin Cui
1c01c9f752 Merge "Add target libbionic_gtest_main for cts test." 2015-01-20 22:44:02 +00:00
Yabin Cui
6104eb9fa7 Add target libbionic_gtest_main for cts test.
Bug: 17589740
Change-Id: I37f2d3fe72870b9dc867407fa1619c9a6fcd5cbb
2015-01-20 14:32:07 -08:00
Elliott Hughes
66ebd36863 am 717bb49e: am 3873c9df: am 1d7b3f3c: Merge "Improve <stdio_ext.h> testing."
* commit '717bb49ec3d93c1f4ab3782227d4747e758294a6':
  Improve <stdio_ext.h> testing.
2015-01-20 18:41:40 +00:00
Elliott Hughes
717bb49ec3 am 3873c9df: am 1d7b3f3c: Merge "Improve <stdio_ext.h> testing."
* commit '3873c9dfe675e05fdda8ebfc11fdee0ee810b1b3':
  Improve <stdio_ext.h> testing.
2015-01-20 18:34:28 +00:00
Elliott Hughes
3873c9dfe6 am 1d7b3f3c: Merge "Improve <stdio_ext.h> testing."
* commit '1d7b3f3ccc4f2883cbc0fe677dff888c56c18996':
  Improve <stdio_ext.h> testing.
2015-01-20 18:27:47 +00:00
Elliott Hughes
1d7b3f3ccc Merge "Improve <stdio_ext.h> testing." 2015-01-20 18:07:37 +00:00
Elliott Hughes
1b03dc8359 am 4e7078de: am 3ef0c58d: am 3bbf4639: Merge "Add a benchmark for using stdio to read a file in /proc."
* commit '4e7078de2cc4925616fab1ee36eab51fafa571e4':
  Add a benchmark for using stdio to read a file in /proc.
2015-01-17 02:11:11 +00:00
Elliott Hughes
4e7078de2c am 3ef0c58d: am 3bbf4639: Merge "Add a benchmark for using stdio to read a file in /proc."
* commit '3ef0c58db6ed50b6ae0f8560230f0791b9e51415':
  Add a benchmark for using stdio to read a file in /proc.
2015-01-17 02:05:59 +00:00
Elliott Hughes
3ef0c58db6 am 3bbf4639: Merge "Add a benchmark for using stdio to read a file in /proc."
* commit '3bbf4639080bc2f42435b4a7fd400c44aab7fd70':
  Add a benchmark for using stdio to read a file in /proc.
2015-01-17 01:42:16 +00:00
Elliott Hughes
3bbf463908 Merge "Add a benchmark for using stdio to read a file in /proc." 2015-01-17 01:24:44 +00:00
Elliott Hughes
1cf32f83d3 Add a benchmark for using stdio to read a file in /proc.
Change-Id: I12517aae19e36b7c022a11e8807aece61bb0cb9c
2015-01-16 17:08:31 -08:00
Elliott Hughes
df8f1a42d1 Improve <stdio_ext.h> testing.
I almost fixed a non-bug. Add a test to prevent me from doing that.

Change-Id: I4a1dc13e603a7a377bdaee2e78132015087f7107
2015-01-16 16:40:55 -08:00
Elliott Hughes
1be56d6a2a am d3509e4a: am 52e9fe53: am 481cf21e: Merge "Use SI prefixes throughout the benchmark output."
* commit 'd3509e4ad0785fceedc5d3575999b946f0175a5c':
  Use SI prefixes throughout the benchmark output.
2015-01-17 00:38:18 +00:00
Elliott Hughes
d3509e4ad0 am 52e9fe53: am 481cf21e: Merge "Use SI prefixes throughout the benchmark output."
* commit '52e9fe53bb73a399449d2b3ac47d243ce0ba5b3f':
  Use SI prefixes throughout the benchmark output.
2015-01-17 00:31:45 +00:00
Elliott Hughes
52e9fe53bb am 481cf21e: Merge "Use SI prefixes throughout the benchmark output."
* commit '481cf21e08a6cbbc686487744f1cb07b6d3f400e':
  Use SI prefixes throughout the benchmark output.
2015-01-17 00:27:58 +00:00
Elliott Hughes
481cf21e08 Merge "Use SI prefixes throughout the benchmark output." 2015-01-17 00:23:35 +00:00
Yabin Cui
459d8646e1 am 39b71a98: am 58bbe437: am cfe7e75f: Merge "Make sys_resource test more robust."
* commit '39b71a98926a76511d6425c7aefab8997dbb553a':
  Make sys_resource test more robust.
2015-01-16 22:10:34 +00:00
Yabin Cui
39b71a9892 am 58bbe437: am cfe7e75f: Merge "Make sys_resource test more robust."
* commit '58bbe437ac1cf8f74780235a421d844dfe0cc4dc':
  Make sys_resource test more robust.
2015-01-16 22:03:55 +00:00
Yabin Cui
58bbe437ac am cfe7e75f: Merge "Make sys_resource test more robust."
* commit 'cfe7e75fc13afb987d86aaaee305040f3369f797':
  Make sys_resource test more robust.
2015-01-16 21:57:33 +00:00
Yabin Cui
cfe7e75fc1 Merge "Make sys_resource test more robust." 2015-01-16 21:52:11 +00:00
Yabin Cui
4853f40f3f Make sys_resource test more robust.
"ulimit -c xxx" command may run before bionic-unit-tests.
Make sure sys_resource test fails gently in that case.

Change-Id: Ic3b5ed8b20acba56df8c5ef082c88e5050e761aa
2015-01-16 13:28:43 -08:00
Elliott Hughes
8bb020e8e5 Use SI prefixes throughout the benchmark output.
Also switch throughput to GiB/s. I did play with using the new code,
but having consistent units for all results seemed easier to use
anyway (and doesn't require extra code).

Change-Id: I466fd573373bd05619e6f6e6d3dedd7dae0d9362
2015-01-16 13:11:25 -08:00
Elliott Hughes
ead026c23a am 7c385167: am e8d620d5: am ffad8df6: Merge "Use a vector of benchmarks and new for loop syntax."
* commit '7c385167242373859414434ca7d3354a0b88b9c7':
  Use a vector of benchmarks and new for loop syntax.
2015-01-16 06:14:37 +00:00
Elliott Hughes
7c38516724 am e8d620d5: am ffad8df6: Merge "Use a vector of benchmarks and new for loop syntax."
* commit 'e8d620d5a2716cfc16b40c82016ae9d4b84a181c':
  Use a vector of benchmarks and new for loop syntax.
2015-01-16 06:07:41 +00:00
Elliott Hughes
e8d620d5a2 am ffad8df6: Merge "Use a vector of benchmarks and new for loop syntax."
* commit 'ffad8df672363bad43528898cc47aa2ed3d08c66':
  Use a vector of benchmarks and new for loop syntax.
2015-01-16 03:27:04 +00:00
Elliott Hughes
ffad8df672 Merge "Use a vector of benchmarks and new for loop syntax." 2015-01-16 03:22:40 +00:00
Elliott Hughes
e48f533c95 Use a vector of benchmarks and new for loop syntax.
Change-Id: Ib1f1250e7786770083ed6a478677a893b2075a93
2015-01-15 17:10:42 -08:00
Elliott Hughes
ecf096f9b9 am 927875a7: am cb41ce5f: am 594db0f1: Merge "bionic benchmarks: limit benchmark run time to 1s real time"
* commit '927875a7d01ef252539fa742612327f60c9f4fe8':
  bionic benchmarks: limit benchmark run time to 1s real time
2015-01-16 01:00:48 +00:00
Elliott Hughes
f467b74099 am 29bfcf2a: am f1417093: am 3159972a: Merge "bionic benchmarks: export benchmark library"
* commit '29bfcf2a032eb61a3d033b4cf245321a868390dc':
  bionic benchmarks: export benchmark library
2015-01-16 00:56:41 +00:00
Elliott Hughes
927875a7d0 am cb41ce5f: am 594db0f1: Merge "bionic benchmarks: limit benchmark run time to 1s real time"
* commit 'cb41ce5f4e942dce66defb76f25b2e7d61f8ab8d':
  bionic benchmarks: limit benchmark run time to 1s real time
2015-01-16 00:54:14 +00:00
Elliott Hughes
cb41ce5f4e am 594db0f1: Merge "bionic benchmarks: limit benchmark run time to 1s real time"
* commit '594db0f1b235306d2687395564745888348df808':
  bionic benchmarks: limit benchmark run time to 1s real time
2015-01-16 00:48:36 +00:00
Elliott Hughes
29bfcf2a03 am f1417093: am 3159972a: Merge "bionic benchmarks: export benchmark library"
* commit 'f14170937f19710cdedf4bc44f3c3712545648a2':
  bionic benchmarks: export benchmark library
2015-01-16 00:48:32 +00:00
Elliott Hughes
594db0f1b2 Merge "bionic benchmarks: limit benchmark run time to 1s real time" 2015-01-16 00:44:16 +00:00
Elliott Hughes
f14170937f am 3159972a: Merge "bionic benchmarks: export benchmark library"
* commit '3159972a80234f7a8e3903cefaeb7719a50f6279':
  bionic benchmarks: export benchmark library
2015-01-16 00:42:43 +00:00
Colin Cross
a763504f9d bionic benchmarks: limit benchmark run time to 1s real time
The benchmark run loop tries to run until 1s of time has been
accumulated between StartBenchmarkTiming() and StopBenchmarkTiming().
If a majority of the time is spent stopped this can lead to
benchmarks running for very long periods of time.  This can easily
happen when benchmarking something that requires initialization or
cleanup on each iteration.

Modify the loop to run for 1s of real time instead of 1s of
benchmark time.  For existing benchmarks this shouldn't make much
of a difference.

Change-Id: Iaba8a13b4dfc4a5e2cd9992041c9173ea556f9cc
2015-01-15 16:42:20 -08:00
Elliott Hughes
3159972a80 Merge "bionic benchmarks: export benchmark library" 2015-01-16 00:36:20 +00:00
Colin Cross
7b9df19491 bionic benchmarks: export benchmark library
Export libbenchmark for external projects to write benchmarks against.

Change-Id: I3b04a56a62ce517afc0d5e06dc8d28879ada3d30
2015-01-15 16:22:42 -08:00
Yabin Cui
e42c7de3ee am b8679a84: am afb488a3: am 6fac2f68: Merge "Fix possible leak in pthread_detach."
* commit 'b8679a84dfc5f8ed628e7bd4772c72f76240d458':
  Fix possible leak in pthread_detach.
2015-01-15 22:17:47 +00:00
Yabin Cui
0a179a57b6 am 5b143c54: am 4a538412: am deab11ac: Merge "Make bionic-unit-tests default run isolate mode."
* commit '5b143c547bf8a576e656ce7d5bbded0029c45cb2':
  Make bionic-unit-tests default run isolate mode.
2015-01-15 22:17:46 +00:00
Dmitriy Ivanov
0d745c5ba2 am 9a0641a0: am c16eafd5: am fcc6fd35: Merge "Refactoring: move mips reloc to separate method"
* commit '9a0641a0f321dffc5991f883cd8e65df83b5c800':
  Refactoring: move mips reloc to separate method
2015-01-15 22:17:21 +00:00
Yabin Cui
b8679a84df am afb488a3: am 6fac2f68: Merge "Fix possible leak in pthread_detach."
* commit 'afb488a3e91c7ac297b4f91e9985fd10c09d6f81':
  Fix possible leak in pthread_detach.
2015-01-15 19:47:35 +00:00
Yabin Cui
afb488a3e9 am 6fac2f68: Merge "Fix possible leak in pthread_detach."
* commit '6fac2f680f829570122276dc6876f02350a652b1':
  Fix possible leak in pthread_detach.
2015-01-15 19:43:52 +00:00
Yabin Cui
6fac2f680f Merge "Fix possible leak in pthread_detach." 2015-01-15 19:35:38 +00:00
Yabin Cui
5b143c547b am 4a538412: am deab11ac: Merge "Make bionic-unit-tests default run isolate mode."
* commit '4a53841212de2c129ca0769968d8891be97b6cde':
  Make bionic-unit-tests default run isolate mode.
2015-01-15 19:17:06 +00:00
Yabin Cui
4a53841212 am deab11ac: Merge "Make bionic-unit-tests default run isolate mode."
* commit 'deab11acd7000573ad9c034e5bf9475aadbc5cbe':
  Make bionic-unit-tests default run isolate mode.
2015-01-15 19:10:33 +00:00
Yabin Cui
19e246dda6 Fix possible leak in pthread_detach.
If pthread_detach() is called while the thread is in pthread_exit(),
it takes the risk that no one can free the pthread_internal_t.
So I add PTHREAD_ATTR_FLAG_ZOMBIE to detect this, maybe very rare, but
both glibc and netbsd libpthread have similar function.

Change-Id: Iaa15f651903b8ca07aaa7bd4de46ff14a2f93835
2015-01-15 10:45:25 -08:00
Yabin Cui
deab11acd7 Merge "Make bionic-unit-tests default run isolate mode." 2015-01-15 18:10:30 +00:00
Dmitriy Ivanov
9a0641a0f3 am c16eafd5: am fcc6fd35: Merge "Refactoring: move mips reloc to separate method"
* commit 'c16eafd5ff06845606fa24ed83794104c7f995e6':
  Refactoring: move mips reloc to separate method
2015-01-15 18:08:14 +00:00
Dmitriy Ivanov
c16eafd5ff am fcc6fd35: Merge "Refactoring: move mips reloc to separate method"
* commit 'fcc6fd35dfa88e659aa1769d1a1351ad74278763':
  Refactoring: move mips reloc to separate method
2015-01-15 18:01:49 +00:00
Dmitriy Ivanov
fcc6fd35df Merge "Refactoring: move mips reloc to separate method" 2015-01-15 17:56:36 +00:00
Dmitriy Ivanov
53789e7f3c am 59c080ca: am 0f1fe41f: am ffa2c9ed: Merge "Refactoring: unify relocate function"
* commit '59c080ca7935934a8a2db57127945eff10dcea16':
  Refactoring: unify relocate function
2015-01-15 02:27:52 +00:00
Andres Morales
ec4c8e9c87 am 6dcbe942: am 740ac6fe: am 2b15f54a: Merge "bionic: libc: Added path to root ramdisk build properties file."
* commit '6dcbe94239385526c97d1954af92c14f29185950':
  bionic: libc: Added path to root ramdisk build properties file.
2015-01-15 02:27:39 +00:00
Yabin Cui
80b0935a57 am 49810c36: am d12ea31b: am 85747809: Merge "Test that ip6-localhost exists in etc/hosts."
* commit '49810c36960e2821b056be450b7ac007e0257c19':
  Test that ip6-localhost exists in etc/hosts.
2015-01-15 02:27:25 +00:00
Dmitriy Ivanov
37aa5a5aee am 5ae47f4d: am 47a32828: am a23569c9: Merge "Refactoring: use generic reloc constants"
* commit '5ae47f4d815d9ef41fa1391706bac37ab0efddf7':
  Refactoring: use generic reloc constants
2015-01-15 02:27:24 +00:00
Elliott Hughes
b7fce775eb am 7d640183: am 5bff8a23: am d986f2e4: Merge "Sync with upstream OpenBSD stdio."
* commit '7d640183f2ab6ec46cad73becc7fd259e8a48bdb':
  Sync with upstream OpenBSD stdio.
2015-01-15 02:27:23 +00:00
Dmitriy Ivanov
114ff69f17 Refactoring: move mips reloc to separate method
Change-Id: I712614853e3f0e515f5c2bdd8f0aaa5feeae8e55
2015-01-14 18:03:19 -08:00
Dimitry Ivanov
c3a7cae009 am 0e8bf252: am a0f25379: am b13f5f50: Merge "Revert "Refactoring: use generic reloc constants""
* commit '0e8bf252f4d783b6f104b5df8d51deab648f0064':
  Revert "Refactoring: use generic reloc constants"
2015-01-14 21:14:04 +00:00
Dmitriy Ivanov
1f432f9f6b am 83d6a494: am b6c4f646: am 684a861b: Merge "Refactoring: use generic reloc constants"
* commit '83d6a49403b81fb71372994273ae65e711038d0b':
  Refactoring: use generic reloc constants
2015-01-14 21:14:03 +00:00
Dmitriy Ivanov
59c080ca79 am 0f1fe41f: am ffa2c9ed: Merge "Refactoring: unify relocate function"
* commit '0f1fe41f536abd17a9f20b813b57ae2e3ace13cb':
  Refactoring: unify relocate function
2015-01-14 18:26:59 +00:00
Dmitriy Ivanov
0f1fe41f53 am ffa2c9ed: Merge "Refactoring: unify relocate function"
* commit 'ffa2c9edb5b1cf295bceffc7876a68747b6fa259':
  Refactoring: unify relocate function
2015-01-14 18:19:37 +00:00
Dmitriy Ivanov
ffa2c9edb5 Merge "Refactoring: unify relocate function" 2015-01-14 18:14:30 +00:00
Andres Morales
6dcbe94239 am 740ac6fe: am 2b15f54a: Merge "bionic: libc: Added path to root ramdisk build properties file."
* commit '740ac6fe7358ac73643189bbe1b7a5e7c76142f3':
  bionic: libc: Added path to root ramdisk build properties file.
2015-01-14 16:05:28 +00:00
Andres Morales
740ac6fe73 am 2b15f54a: Merge "bionic: libc: Added path to root ramdisk build properties file."
* commit '2b15f54a489d84d9a273025b615cdb63f63d5fc9':
  bionic: libc: Added path to root ramdisk build properties file.
2015-01-14 15:59:03 +00:00
Andres Morales
2b15f54a48 Merge "bionic: libc: Added path to root ramdisk build properties file." 2015-01-14 15:54:04 +00:00
Yabin Cui
49810c3696 am d12ea31b: am 85747809: Merge "Test that ip6-localhost exists in etc/hosts."
* commit 'd12ea31b8dd050c5567425c121de3356b8e07e93':
  Test that ip6-localhost exists in etc/hosts.
2015-01-14 12:07:32 +00:00
Dmitriy Ivanov
5ae47f4d81 am 47a32828: am a23569c9: Merge "Refactoring: use generic reloc constants"
* commit '47a32828c2e2825ab0e81970f40514fc411bd45d':
  Refactoring: use generic reloc constants
2015-01-14 12:07:25 +00:00
Elliott Hughes
7d640183f2 am 5bff8a23: am d986f2e4: Merge "Sync with upstream OpenBSD stdio."
* commit '5bff8a23379ea4034d3112ad5725e91e4b801d5a':
  Sync with upstream OpenBSD stdio.
2015-01-14 12:07:23 +00:00
Yabin Cui
d12ea31b8d am 85747809: Merge "Test that ip6-localhost exists in etc/hosts."
* commit '85747809b05a5e3b48bd4da9a7ea98d0adf8f919':
  Test that ip6-localhost exists in etc/hosts.
2015-01-14 12:00:21 +00:00
Dmitriy Ivanov
47a32828c2 am a23569c9: Merge "Refactoring: use generic reloc constants"
* commit 'a23569c9485d50e9184dcc7d97640140015b3f3d':
  Refactoring: use generic reloc constants
2015-01-14 12:00:19 +00:00
Elliott Hughes
5bff8a2337 am d986f2e4: Merge "Sync with upstream OpenBSD stdio."
* commit 'd986f2e4642a0571754cb1349101acf8ac10b484':
  Sync with upstream OpenBSD stdio.
2015-01-14 12:00:18 +00:00
Dmitriy Ivanov
bcc04d0069 Refactoring: unify relocate function
Use one relocate for all platforms.

Change-Id: I43e75162c5b29105e651defc11a511e168368736
2015-01-13 19:15:02 -08:00
Andres Morales
9d9ebc5fc9 bionic: libc: Added path to root ramdisk build properties file.
Change-Id: Id850e4e5ef4e91cea7ad53f6858886daf660eeec
2015-01-13 18:07:23 -08:00
Yabin Cui
85747809b0 Merge "Test that ip6-localhost exists in etc/hosts." 2015-01-14 01:50:20 +00:00
Dmitriy Ivanov
a23569c948 Merge "Refactoring: use generic reloc constants" 2015-01-14 01:35:39 +00:00
Yabin Cui
a35cd8cdc2 Test that ip6-localhost exists in etc/hosts.
Addition change: make netdb_test pass on host.

Bug: 18791191
Change-Id: I7a9e29aa559ff6557288b47323d8a436379201a2
2015-01-13 17:30:51 -08:00
Elliott Hughes
d986f2e464 Merge "Sync with upstream OpenBSD stdio." 2015-01-14 01:27:37 +00:00
Elliott Hughes
01abeacded Sync with upstream OpenBSD stdio.
Mainly to get the __atexit_register_cleanup removals we suggested.

Change-Id: I58d40b8c5b8401bfb6bfffe8f3430ac0718af917
2015-01-13 17:19:21 -08:00
Dmitriy Ivanov
1b694693b4 Refactoring: use generic reloc constants
Change-Id: I94dd6256b1b4509b6ea696a3aff17a3991529468
2015-01-13 15:56:54 -08:00
Dimitry Ivanov
0e8bf252f4 am a0f25379: am b13f5f50: Merge "Revert "Refactoring: use generic reloc constants""
* commit 'a0f253791cce7050515056786a575a61409e9c2e':
  Revert "Refactoring: use generic reloc constants"
2015-01-13 23:26:13 +00:00
Dmitriy Ivanov
83d6a49403 am b6c4f646: am 684a861b: Merge "Refactoring: use generic reloc constants"
* commit 'b6c4f646c9dea20ec783e2e6562e17d5b95632df':
  Refactoring: use generic reloc constants
2015-01-13 23:26:12 +00:00
Dimitry Ivanov
a0f253791c am b13f5f50: Merge "Revert "Refactoring: use generic reloc constants""
* commit 'b13f5f5029d5fab190a4480ea3caa623328c5415':
  Revert "Refactoring: use generic reloc constants"
2015-01-13 23:20:28 +00:00
Dmitriy Ivanov
b6c4f646c9 am 684a861b: Merge "Refactoring: use generic reloc constants"
* commit '684a861bab72b8ec27b41f221982d434b40dcbfe':
  Refactoring: use generic reloc constants
2015-01-13 23:20:27 +00:00
Dimitry Ivanov
b13f5f5029 Merge "Revert "Refactoring: use generic reloc constants"" 2015-01-13 22:32:49 +00:00
Dimitry Ivanov
d338aac19c Revert "Refactoring: use generic reloc constants"
This reverts commit 265a60a0d285a733d9d98f53672bce668803b434.

Change-Id: I6d46db0ac03cda44ed1e20f6084a552e0089eb14
2015-01-13 22:31:54 +00:00
Dmitriy Ivanov
684a861bab Merge "Refactoring: use generic reloc constants" 2015-01-13 22:21:05 +00:00
Dan Albert
e4e8644234 am e659cef5: am 19598a2f: am 5a388898: Merge "Check the committer rather than the Gerrit owner."
* commit 'e659cef5a769a9fa204f1e1f61cb2201b0eb131a':
  Check the committer rather than the Gerrit owner.
2015-01-13 20:32:47 +00:00
Dan Albert
24329863ca am a66b68c2: am d5ff09c2: am 8d50e16a: Merge "Guard against @google.com.example.com."
* commit 'a66b68c22bd301bd1f64e68dd634daa905997a86':
  Guard against @google.com.example.com.
2015-01-13 20:31:56 +00:00
Dan Albert
661f53a6b0 am 905ffc2b: am a38662b4: am 780ea474: Merge "Oops. Fix dict key."
* commit '905ffc2b38796e57dca0f9f53a863fdd5a51de76':
  Oops. Fix dict key.
2015-01-13 20:31:11 +00:00
Dan Albert
64de0e75ad am a88a19f2: am cc1a8935: am 0d0188b0: Merge "Only build changes that come from @google.com."
* commit 'a88a19f2b415f62d7e8b565ebfc75d2bf633ddd0':
  Only build changes that come from @google.com.
2015-01-13 20:31:10 +00:00
Dmitriy Ivanov
265a60a0d2 Refactoring: use generic reloc constants
Change-Id: I67918a1a926164a38a5a47f2264390632eb42905
2015-01-13 12:17:31 -08:00
Dan Albert
e659cef5a7 am 19598a2f: am 5a388898: Merge "Check the committer rather than the Gerrit owner."
* commit '19598a2f548bd545a41741f5b0964b74afb2f4ff':
  Check the committer rather than the Gerrit owner.
2015-01-13 01:27:19 +00:00
Dan Albert
19598a2f54 am 5a388898: Merge "Check the committer rather than the Gerrit owner."
* commit '5a388898cfa9befb7626dfcd9940713ce942cadd':
  Check the committer rather than the Gerrit owner.
2015-01-13 01:05:43 +00:00
Dan Albert
5a388898cf Merge "Check the committer rather than the Gerrit owner." 2015-01-13 00:58:31 +00:00
Dan Albert
b4060330aa Check the committer rather than the Gerrit owner.
Guarding based on the Gerrit owner can be circumvented by an arbitrary
user uploading a different patch with a Change-Id that is non-unique,
with the other copy being owned by a Googler.

Change-Id: I5414b679e361d4c38d70bf9c4516c122f668fc49
2015-01-12 16:33:17 -08:00
Dan Albert
a66b68c22b am d5ff09c2: am 8d50e16a: Merge "Guard against @google.com.example.com."
* commit 'd5ff09c23a954d20b0dc21750dc5c0a666c0ce56':
  Guard against @google.com.example.com.
2015-01-12 21:59:18 +00:00
Dan Albert
d5ff09c23a am 8d50e16a: Merge "Guard against @google.com.example.com."
* commit '8d50e16aa96291612c95f89b49ecfacf556241a6':
  Guard against @google.com.example.com.
2015-01-12 21:52:52 +00:00
Dan Albert
8d50e16aa9 Merge "Guard against @google.com.example.com." 2015-01-12 21:49:05 +00:00
Dan Albert
ad248b7c00 Guard against @google.com.example.com.
Begin adding some unit tests. Testing the Jenkins interface will
probably be difficult, but testing that we can properly handle
messages from Gerrit is easy enough.

Change-Id: Id7e8e175e0f064fd10715febe40040a65564c701
2015-01-12 13:48:46 -08:00
Dan Albert
905ffc2b38 am a38662b4: am 780ea474: Merge "Oops. Fix dict key."
* commit 'a38662b4423a2277f15305de69df91fa995afac0':
  Oops. Fix dict key.
2015-01-12 20:10:04 +00:00
Dan Albert
a38662b442 am 780ea474: Merge "Oops. Fix dict key."
* commit '780ea47482854e1b58931bea928bf93bcaf6e3aa':
  Oops. Fix dict key.
2015-01-12 20:04:11 +00:00
Dan Albert
a88a19f2b4 am cc1a8935: am 0d0188b0: Merge "Only build changes that come from @google.com."
* commit 'cc1a8935c53295c87429d7120f25bfb6352e9071':
  Only build changes that come from @google.com.
2015-01-12 20:01:00 +00:00
Dan Albert
780ea47482 Merge "Oops. Fix dict key." 2015-01-12 19:59:29 +00:00
Dan Albert
f988da4730 Oops. Fix dict key.
Change-Id: Ia8295417d4097f38eef633089cb4539b849f3c74
2015-01-12 11:58:09 -08:00
Dan Albert
cc1a8935c5 am 0d0188b0: Merge "Only build changes that come from @google.com."
* commit '0d0188b0c7e017e431c83b2f7e4956137430b6d9':
  Only build changes that come from @google.com.
2015-01-12 19:55:19 +00:00
Dan Albert
0d0188b0c7 Merge "Only build changes that come from @google.com." 2015-01-12 19:51:39 +00:00
Dan Albert
29be129342 Only build changes that come from @google.com.
Googlers should be able to tell the buildbot to launch builds for an
external contributor's change, but Gerrit is determined to make this
hard for us. The email sent by Gerrit for comments doesn't actually
contain the email address of the commenter in any clear way, only the
name. It does however contain a list of `Gerrit-Reviewer: Name
<email>` entries that could be used for this though.

Change-Id: Iee61f06dcd8f0024f16b535ea9a34765bf01b2e7
2015-01-12 11:48:04 -08:00
Dan Albert
f82df6af9f am 535c3471: am 61a6a940: am d7f935a0: Merge "Make indentation match the style guide."
* commit '535c34716097f9c73d045c182f8be6b8301e5305':
  Make indentation match the style guide.
2015-01-10 15:57:02 +00:00
Yabin Cui
d7929d3eaa am 5631f47e: am 1217d9a3: am c80eb091: Merge "Clean up paths.h."
* commit '5631f47eb694d15aaddd4087eb61184f32c00356':
  Clean up paths.h.
2015-01-10 15:56:58 +00:00
Dan Albert
535c347160 am 61a6a940: am d7f935a0: Merge "Make indentation match the style guide."
* commit '61a6a940ce93ad503905f21a2e7a2c89208832d8':
  Make indentation match the style guide.
2015-01-10 06:55:19 +00:00
Dan Albert
61a6a940ce am d7f935a0: Merge "Make indentation match the style guide."
* commit 'd7f935a05b25d003a721565ba64a015b3a341fbe':
  Make indentation match the style guide.
2015-01-10 06:49:29 +00:00
Dan Albert
64390f940c Add support for building other architectures.
Since we often make changes that might break on other architectures,
let the buildbot deal with some of these for us. They can be invoked
by `bionicbb:ARCH`, where `ARCH` is one of:

 * arm
 * aarch64
 * mips
 * mips64
 * x86
 * x86_64

Specifying arm isn't particularly interesting (since the default
target for the buildbot is hammerhead), but there are some differences
in the math instructions available for the default ARM target, so it
could be helpful for testing changes to the compiler-rt builtins.

Change-Id: I94018fd3c30d26fcf405e747fc633cbdd08ff4e5
2015-01-09 22:45:33 -08:00
Dan Albert
d7f935a05b Merge "Make indentation match the style guide." 2015-01-10 06:45:20 +00:00
Yabin Cui
5631f47eb6 am 1217d9a3: am c80eb091: Merge "Clean up paths.h."
* commit '1217d9a3d13222f16978282d4488588bfe420233':
  Clean up paths.h.
2015-01-10 05:29:04 +00:00
Yabin Cui
1217d9a3d1 am c80eb091: Merge "Clean up paths.h."
* commit 'c80eb091a4c090d1162959e08921f8989b3dc355':
  Clean up paths.h.
2015-01-10 05:24:53 +00:00
Yabin Cui
c80eb091a4 Merge "Clean up paths.h." 2015-01-10 05:17:29 +00:00
Yabin Cui
3471fcbb6a Clean up paths.h.
Bug: 18905946
Change-Id: I02cd1ddd5c0b0af165685413bc1fb12ca6bf5f33
2015-01-09 20:04:04 -08:00
Dan Albert
0b0ac9c1b4 am 7d327dce: am da89944a: am 7e3766a8: Merge "Use relative imports."
* commit '7d327dcefbc2af21e5360f7b5e4b3bd04f3a7fce':
  Use relative imports.
2015-01-10 02:02:39 +00:00
Dan Albert
7d327dcefb am da89944a: am 7e3766a8: Merge "Use relative imports."
* commit 'da89944a7d7049b0f3554a78208bd2676d6d6529':
  Use relative imports.
2015-01-10 01:58:41 +00:00
Dan Albert
c02df47f20 Make indentation match the style guide.
Apparently Google abandoned the 2 space indent for Python long ago.
Helps to actually read the style guide before trying to adhere to it.

Change-Id: I4feb019f0916f9d8e4f78c0dbeafbe45d8a46bfd
2015-01-09 17:22:00 -08:00
Dan Albert
da89944a7d am 7e3766a8: Merge "Use relative imports."
* commit '7e3766a8fcc534d92a6f7416fcbbdc092756e415':
  Use relative imports.
2015-01-10 01:02:45 +00:00
Dan Albert
c3a715bac7 am 43bbf5d0: am d8075224: am 2f8f6db5: Merge "Add JSON files and oauth storage to .gitignore."
* commit '43bbf5d0b44dd64043449bbd65731cd2f4f838cc':
  Add JSON files and oauth storage to .gitignore.
2015-01-10 00:59:20 +00:00
Dan Albert
b5a90f004b am 0e168aee: am 4b90d41e: am c8fec746: Merge "Make service URLs configurable."
* commit '0e168aee6ccbff45c6af5d2ac194cfd09858e05c':
  Make service URLs configurable.
2015-01-10 00:59:19 +00:00
Dan Albert
7e3766a8fc Merge "Use relative imports." 2015-01-10 00:58:13 +00:00
Dan Albert
43bbf5d0b4 am d8075224: am 2f8f6db5: Merge "Add JSON files and oauth storage to .gitignore."
* commit 'd807522467deb32ee54d3bbc361919164dca07d6':
  Add JSON files and oauth storage to .gitignore.
2015-01-10 00:54:07 +00:00
Dan Albert
0e168aee6c am 4b90d41e: am c8fec746: Merge "Make service URLs configurable."
* commit '4b90d41e18288254fdfd83b3b640b4a83f0dd4bd':
  Make service URLs configurable.
2015-01-10 00:54:02 +00:00
Dan Albert
8a15a4e5c4 Use relative imports.
Making `bionicbb` its own package required `PYTHONPATH=..`, which we
don't want. Just use a relative import instead.

Change-Id: I59b9852522118ece89829288a4921902e756e4aa
2015-01-09 16:53:09 -08:00
Dan Albert
d807522467 am 2f8f6db5: Merge "Add JSON files and oauth storage to .gitignore."
* commit '2f8f6db5e4730a9f52be7415236f5ea55623d789':
  Add JSON files and oauth storage to .gitignore.
2015-01-10 00:48:03 +00:00
Dan Albert
4b90d41e18 am c8fec746: Merge "Make service URLs configurable."
* commit 'c8fec746b692812d549167514c4d0d30b09162e6':
  Make service URLs configurable.
2015-01-10 00:48:02 +00:00
Dan Albert
2f8f6db5e4 Merge "Add JSON files and oauth storage to .gitignore." 2015-01-10 00:43:08 +00:00
Dan Albert
c8fec746b6 Merge "Make service URLs configurable." 2015-01-10 00:43:04 +00:00
Dan Albert
eb85ff0aba Add JSON files and oauth storage to .gitignore.
The only JSON file is the client secret file, which we really don't
want leaking. Same goes for the oauth storage file.

Change-Id: Ie860704574ec37ccfc50ff7c9d59717a7b9b443b
2015-01-09 16:24:17 -08:00
Dan Albert
691e809edb Make service URLs configurable.
Change-Id: I91df77b7e0294be5e6180460b0ef26d7ead2ea7d
2015-01-09 16:18:48 -08:00
Dmitriy Ivanov
21db822906 am dde3d83a: am 2e44e464: am 9c4783b1: Merge changes I713800ce,I1dea46c3
* commit 'dde3d83a6f7b8d4c876e53ca111f7a36424866f3':
  Refactor soinfo::relocate
  Add ARM_IRELATIVE relocation
2015-01-10 00:01:27 +00:00
Dmitriy Ivanov
dde3d83a6f am 2e44e464: am 9c4783b1: Merge changes I713800ce,I1dea46c3
* commit '2e44e4649a5ebf00e7ab1bc5ff32f6bd79845347':
  Refactor soinfo::relocate
  Add ARM_IRELATIVE relocation
2015-01-09 23:55:42 +00:00
Dmitriy Ivanov
2e44e4649a am 9c4783b1: Merge changes I713800ce,I1dea46c3
* commit '9c4783b18c75f02be7bfb6756101ee31a05aba01':
  Refactor soinfo::relocate
  Add ARM_IRELATIVE relocation
2015-01-09 23:49:49 +00:00
Dan Albert
26768ab636 am 5dc75719: am bbd668f9: am 84cbe049: Merge "Markdown-ify 5137db3."
* commit '5dc7571967fd0bc0f226a92557fd9eca5513424f':
  Markdown-ify 5137db3.
2015-01-09 23:49:03 +00:00
Dmitriy Ivanov
9c4783b18c Merge changes I713800ce,I1dea46c3
* changes:
  Refactor soinfo::relocate
  Add ARM_IRELATIVE relocation
2015-01-09 23:44:50 +00:00
Dan Albert
5dc7571967 am bbd668f9: am 84cbe049: Merge "Markdown-ify 5137db3."
* commit 'bbd668f9be148dfcfb1c9ee1490b8ca1c1362ebb':
  Markdown-ify 5137db3.
2015-01-09 23:42:30 +00:00
Dan Albert
bbd668f9be am 84cbe049: Merge "Markdown-ify 5137db3."
* commit '84cbe0491857471d3e4208f0d9cc184adb43914b':
  Markdown-ify 5137db3.
2015-01-09 23:37:06 +00:00
Dan Albert
84cbe04918 Merge "Markdown-ify 5137db3." 2015-01-09 23:32:27 +00:00
Dan Albert
81387484b5 am e052971b: am 60272219: am 11b3fa54: Merge "Check in bionicbb code."
* commit 'e052971b9747a594f13baeedf64d77ecbc8bfa1e':
  Check in bionicbb code.
2015-01-09 23:31:24 +00:00
Dan Albert
79b9830b1d Markdown-ify 5137db3.
Most of these are just aesthetic, but the `_FILE_OFFSET_BITS` probably
would have rendered partly as italics and skipped some underscores.

GitHub's Markdown also doesn't identify our bug URLs as links, so mark
them explicitly.

Change-Id: I62be7542aa43929d847de2bad7d8d1ed3aaa640c
2015-01-09 15:29:46 -08:00
Dan Albert
e052971b97 am 60272219: am 11b3fa54: Merge "Check in bionicbb code."
* commit '6027221967aed3a5cd60b54ae207483739d51a38':
  Check in bionicbb code.
2015-01-09 23:27:53 +00:00
Dan Albert
6027221967 am 11b3fa54: Merge "Check in bionicbb code."
* commit '11b3fa5432951950b3fc9aadfe56139969300cad':
  Check in bionicbb code.
2015-01-09 23:22:50 +00:00
Dan Albert
11b3fa5432 Merge "Check in bionicbb code." 2015-01-09 23:17:49 +00:00
Dan Albert
7c78d24011 Check in bionicbb code.
These have been sitting around in a git repo on my machine for a
while. They're now big an important enough that I'd like to both keep
them securely backed up, and also have my changes reviewed.

Change-Id: Ic4545149b4b07f0d57b21cac32aab8553dceb567
2015-01-09 15:12:48 -08:00
Dmitriy Ivanov
cefef7dab6 Refactor soinfo::relocate
Move common relocation types outside of ifdefs

Change-Id: I713800ce123a18178b5ac80c0b3c7bd6b21a02c2
2015-01-09 14:57:53 -08:00
Elliott Hughes
2ca1a33c59 am bb819d30: am a36a4076: am 5137db34: Merge "Add our LP32 ABI defects to the readme."
* commit 'bb819d30d392f77c23155efff7b17a947dddc069':
  Add our LP32 ABI defects to the readme.
2015-01-09 22:12:03 +00:00
Elliott Hughes
bb819d30d3 am a36a4076: am 5137db34: Merge "Add our LP32 ABI defects to the readme."
* commit 'a36a407675c30b40e67f393be8e0dbfad1f81676':
  Add our LP32 ABI defects to the readme.
2015-01-09 22:06:01 +00:00
Elliott Hughes
a36a407675 am 5137db34: Merge "Add our LP32 ABI defects to the readme."
* commit '5137db34a2c4d0de258849753cca2b44968b0a10':
  Add our LP32 ABI defects to the readme.
2015-01-09 22:01:08 +00:00
Elliott Hughes
5137db34a2 Merge "Add our LP32 ABI defects to the readme." 2015-01-09 21:54:08 +00:00
Chih-hung Hsieh
97b0bfc5c0 am 950fd097: am 9e0d50f0: am 10805009: Merge "Revert "Must use Clang assembler for mips target.""
* commit '950fd09771a385855e6f6947db6b9498871dec98':
  Revert "Must use Clang assembler for mips target."
2015-01-09 20:22:54 +00:00
Elliott Hughes
0b1de06910 Add our LP32 ABI defects to the readme.
Change-Id: Id77a3dbf6b91243c57528ed86ca24100d8795907
2015-01-09 12:21:24 -08:00
Chih-hung Hsieh
950fd09771 am 9e0d50f0: am 10805009: Merge "Revert "Must use Clang assembler for mips target.""
* commit '9e0d50f04406a7b2923d501bdd213b7fcec24d2a':
  Revert "Must use Clang assembler for mips target."
2015-01-09 20:15:32 +00:00
Chih-hung Hsieh
9e0d50f044 am 10805009: Merge "Revert "Must use Clang assembler for mips target.""
* commit '10805009e8003629fe08c5a2a8b8905773526f2d':
  Revert "Must use Clang assembler for mips target."
2015-01-09 20:10:00 +00:00
Chih-hung Hsieh
10805009e8 Merge "Revert "Must use Clang assembler for mips target."" 2015-01-09 20:05:16 +00:00
Dmitriy Ivanov
7102658709 am 9ab5808b: am da8b89a1: am edf87617: Merge "Remove outdated list of abi bugs"
* commit '9ab5808b606fcbbaa3b6fddae002b17e3bf71207':
  Remove outdated list of abi bugs
2015-01-09 18:46:06 +00:00
Dmitriy Ivanov
9ab5808b60 am da8b89a1: am edf87617: Merge "Remove outdated list of abi bugs"
* commit 'da8b89a1f0d8195a65c7352028a12c4d219658fe':
  Remove outdated list of abi bugs
2015-01-09 18:41:52 +00:00
Dmitriy Ivanov
da8b89a1f0 am edf87617: Merge "Remove outdated list of abi bugs"
* commit 'edf87617e3355cf06cbf7eb5dd2a0119422c38fa':
  Remove outdated list of abi bugs
2015-01-09 18:36:32 +00:00
Dmitriy Ivanov
edf87617e3 Merge "Remove outdated list of abi bugs" 2015-01-09 18:32:39 +00:00
Duane Sand
6f40a8ac74 Revert "Must use Clang assembler for mips target."
This reverts commit 6f96d58c0de191ac479d0fa83c3b9a514f4d3c48.
2015-01-09 10:24:11 -08:00
Dmitriy Ivanov
a137f53980 Add ARM_IRELATIVE relocation
Bug: 17399706
Change-Id: I1dea46c3a3c4572558e718283489c323794176c7
2015-01-08 22:22:27 -08:00
Yabin Cui
be837360c3 Make bionic-unit-tests default run isolate mode.
Fix bug of handling signal terminated tests.

Bug: 17589740
Bug: 18951146
Change-Id: I4803382b26cd5454693090202b3ba38e3dbe66e5
2015-01-08 20:34:58 -08:00
Elliott Hughes
3db10f76a1 am 857e1124: am e6594658: am 8623dc75: Merge "Fix freeaddrinfo(NULL)."
* commit '857e1124433a4946bc38f427d390ef39a2f083b1':
  Fix freeaddrinfo(NULL).
2015-01-09 03:04:43 +00:00
Elliott Hughes
857e112443 am e6594658: am 8623dc75: Merge "Fix freeaddrinfo(NULL)."
* commit 'e6594658f7d36172007a2573e345d6ae0d0ac58a':
  Fix freeaddrinfo(NULL).
2015-01-09 02:58:56 +00:00
Elliott Hughes
e6594658f7 am 8623dc75: Merge "Fix freeaddrinfo(NULL)."
* commit '8623dc75479f88e7ccdec708b5c7ca0abeb285d1':
  Fix freeaddrinfo(NULL).
2015-01-09 02:53:54 +00:00
Elliott Hughes
8623dc7547 Merge "Fix freeaddrinfo(NULL)." 2015-01-09 02:48:29 +00:00
Elliott Hughes
c62a4b5a7a Fix freeaddrinfo(NULL).
Bug: https://code.google.com/p/android/issues/detail?id=13228
Change-Id: I5e3b126d90d750a93ac0b8872198e50ba047e603
2015-01-08 17:28:46 -08:00
Yabin Cui
690510b561 am f4af806b: am 1ecafe3f: am 4c47fc4e: Merge "Make pthread stack size match real range."
* commit 'f4af806bb769498d8170748c27876822e1842369':
  Make pthread stack size match real range.
2015-01-08 23:12:53 +00:00
Yabin Cui
f4af806bb7 am 1ecafe3f: am 4c47fc4e: Merge "Make pthread stack size match real range."
* commit '1ecafe3feff42e9c7a171e6c865ae4a5df4f6284':
  Make pthread stack size match real range.
2015-01-08 23:07:22 +00:00
Yabin Cui
1ecafe3fef am 4c47fc4e: Merge "Make pthread stack size match real range."
* commit '4c47fc4ed39dff497d4c56ba864b3a3f659250f4':
  Make pthread stack size match real range.
2015-01-08 23:00:46 +00:00
Yabin Cui
4c47fc4ed3 Merge "Make pthread stack size match real range." 2015-01-08 22:57:27 +00:00
Yabin Cui
917d390510 Make pthread stack size match real range.
Bug: 18908062
Change-Id: I7037ac8273ebe54dd19b1561c7a376819049124c
2015-01-08 14:27:24 -08:00
Dmitriy Ivanov
7c561427fd am 6dd9bd18: am 1e17b491: am b5e508cf: Merge "Set linux 32bit personality for 32 bit processes"
* commit '6dd9bd1887a1cd5152011545a3ebecf4701829b2':
  Set linux 32bit personality for 32 bit processes
2015-01-08 01:03:16 +00:00
Dmitriy Ivanov
6dd9bd1887 am 1e17b491: am b5e508cf: Merge "Set linux 32bit personality for 32 bit processes"
* commit '1e17b4914f33fce506a91003536f8a4fc52380e2':
  Set linux 32bit personality for 32 bit processes
2015-01-08 00:56:47 +00:00
Dmitriy Ivanov
1e17b4914f am b5e508cf: Merge "Set linux 32bit personality for 32 bit processes"
* commit 'b5e508cfee2355bad0502587e4fce8f4173584d6':
  Set linux 32bit personality for 32 bit processes
2015-01-08 00:50:49 +00:00
Dmitriy Ivanov
b5e508cfee Merge "Set linux 32bit personality for 32 bit processes" 2015-01-08 00:46:49 +00:00
Dmitriy Ivanov
bfa15e464e Set linux 32bit personality for 32 bit processes
Bug: 18069809
Change-Id: Ie143d56b0f8f03510dc451649291067e1add1d2f
2015-01-07 16:32:05 -08:00
Dmitriy Ivanov
f7caf17795 am 7c16f565: am 880aed0b: am 1d548dc9: Merge "Print error when prelink fails for main executable"
* commit '7c16f56566b1bc54d144eda32d112ebb9cb4be17':
  Print error when prelink fails for main executable
2015-01-08 00:27:05 +00:00
Dmitriy Ivanov
7c16f56566 am 880aed0b: am 1d548dc9: Merge "Print error when prelink fails for main executable"
* commit '880aed0b4defd7e30afcf29d4bcdf0bdd7a0bc64':
  Print error when prelink fails for main executable
2015-01-08 00:21:33 +00:00
Dmitriy Ivanov
880aed0b4d am 1d548dc9: Merge "Print error when prelink fails for main executable"
* commit '1d548dc95c87fcfa686f81c021269e4193e1ee2f':
  Print error when prelink fails for main executable
2015-01-08 00:15:10 +00:00
Dmitriy Ivanov
1d548dc95c Merge "Print error when prelink fails for main executable" 2015-01-08 00:08:35 +00:00
Dmitriy Ivanov
6718125ac7 Print error when prelink fails for main executable
Bug: 18931021
Change-Id: Ib6c39a409161b20a10c3485272c73bc2abd4ee4f
(cherry picked from commit d9e211ca1fcf8bb78a1e1de9e54fe7c8d0a01518)
2015-01-07 15:49:40 -08:00
Dmitriy Ivanov
0fc38d468d am 382f4adb: resolved conflicts for merge of d9e211ca to lmp-mr1-dev-plus-aosp
* commit '382f4adbb7c92361c932ba779ed61703b74a0a44':
  Print error when prelink fails for main executable
2015-01-07 23:26:24 +00:00
Dmitriy Ivanov
382f4adbb7 resolved conflicts for merge of d9e211ca to lmp-mr1-dev-plus-aosp
Change-Id: I242b448583401c77ccf01f4f2436d63ef18c4e68
2015-01-07 15:21:21 -08:00
Dmitriy Ivanov
1b8f467c02 Remove outdated list of abi bugs
Change-Id: I275093a7a66b53ec25317e02c4bff46c2facc030
2015-01-07 14:14:34 -08:00
Dmitriy Ivanov
d9e211ca1f Print error when prelink fails for main executable
Bug: 18931021
Change-Id: Ieefdcf60f1506af522714300030754a4ed61c08e
2015-01-07 11:23:34 -08:00
Elliott Hughes
d7f0b5d53d am de97a518: am 6ed76e8c: am ac8f2810: Merge "_Unwind_Context is a struct."
* commit 'de97a518d7468e8e2ab7bd68292494b7a510b8dc':
  _Unwind_Context is a struct.
2015-01-07 03:19:19 +00:00
Elliott Hughes
de97a518d7 am 6ed76e8c: am ac8f2810: Merge "_Unwind_Context is a struct."
* commit '6ed76e8c7d551ae8cf11de57a787169538370369':
  _Unwind_Context is a struct.
2015-01-07 03:15:06 +00:00
Elliott Hughes
6ed76e8c7d am ac8f2810: Merge "_Unwind_Context is a struct."
* commit 'ac8f2810297cd6c104aad38686627fcc13591347':
  _Unwind_Context is a struct.
2015-01-07 03:08:37 +00:00
Elliott Hughes
ac8f281029 Merge "_Unwind_Context is a struct." 2015-01-07 02:59:26 +00:00
Elliott Hughes
30e59c4c69 _Unwind_Context is a struct.
Change-Id: Iff2c52dc630eb83b931a78fdebc4494d69462db7
2015-01-06 18:48:24 -08:00
Yabin Cui
a6ba7cc8df am 023b5d1a: am 8e8daba1: am 8004f735: Merge "Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK."
* commit '023b5d1aa5e116db831f8f1bd688cfd9172b5ab8':
  Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK.
2015-01-07 02:15:11 +00:00
Yabin Cui
023b5d1aa5 am 8e8daba1: am 8004f735: Merge "Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK."
* commit '8e8daba18540fc7d5d11b6fb1d85234049086f29':
  Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK.
2015-01-07 02:10:36 +00:00
Yabin Cui
8e8daba185 am 8004f735: Merge "Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK."
* commit '8004f735f1bad7255268392e2c7ac648f0702e5e':
  Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK.
2015-01-07 01:59:07 +00:00
Yabin Cui
8004f735f1 Merge "Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK." 2015-01-07 01:28:40 +00:00
Yabin Cui
ba8dfc2669 Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK.
Patch for https://android-review.googlesource.com/#/c/120844/.

Change-Id: Idca5ccd7b28e8f07f1d2d1b6e3bba6781b62f0e0
2015-01-06 17:11:23 -08:00
Elliott Hughes
ac1b553cc0 am d27ff239: am 9d8b7d1a: am d3de1dde: Merge "[MIPS64] Add correct mcontext_t for 64-bit MIPS"
* commit 'd27ff239dbc2e6e792e438b385c5414f34ed3065':
  [MIPS64] Add correct mcontext_t for 64-bit MIPS
2015-01-06 19:57:02 +00:00
Elliott Hughes
d27ff239db am 9d8b7d1a: am d3de1dde: Merge "[MIPS64] Add correct mcontext_t for 64-bit MIPS"
* commit '9d8b7d1ac495b2cda848fd6a06088e5654b74ed6':
  [MIPS64] Add correct mcontext_t for 64-bit MIPS
2015-01-06 18:17:42 +00:00
Elliott Hughes
9d8b7d1ac4 am d3de1dde: Merge "[MIPS64] Add correct mcontext_t for 64-bit MIPS"
* commit 'd3de1ddef1427708581af4df02943486783f980d':
  [MIPS64] Add correct mcontext_t for 64-bit MIPS
2015-01-06 17:47:45 +00:00
Elliott Hughes
d3de1ddef1 Merge "[MIPS64] Add correct mcontext_t for 64-bit MIPS" 2015-01-06 17:43:25 +00:00
Faraz Shahbazker
e247e1c89e [MIPS64] Add correct mcontext_t for 64-bit MIPS
Change-Id: I76d503860d0e1d937b6913bf2c1c6ebb531617da
2015-01-06 07:58:02 -08:00
Yabin Cui
f2a0e9923a am 001208e6: am 5e1bc9f7: am 597800f1: Merge "better gtest runner for bionic"
* commit '001208e6ae5c18d02324ef57361aa25739c98edd':
  better gtest runner for bionic
2015-01-02 22:53:48 +00:00
Yabin Cui
4b99b0d310 am 473a0db7: am 745b236d: am 541b0b18: Merge "Reserve enough user request stack space in pthread_create."
* commit '473a0db7db022dbb47eb040759b16ce466dc1c38':
  Reserve enough user request stack space in pthread_create.
2015-01-02 22:53:46 +00:00
Yabin Cui
001208e6ae am 5e1bc9f7: am 597800f1: Merge "better gtest runner for bionic"
* commit '5e1bc9f7b8fde582ed08dd20c0bfb2779df9953c':
  better gtest runner for bionic
2015-01-02 22:48:07 +00:00
Yabin Cui
473a0db7db am 745b236d: am 541b0b18: Merge "Reserve enough user request stack space in pthread_create."
* commit '745b236dc3bc935c1fb581c7f93c3464f2bb8216':
  Reserve enough user request stack space in pthread_create.
2015-01-02 22:48:06 +00:00
Yabin Cui
5e1bc9f7b8 am 597800f1: Merge "better gtest runner for bionic"
* commit '597800f1d71590fc9ad51ce5227280586b2ceda5':
  better gtest runner for bionic
2015-01-02 22:41:45 +00:00
Yabin Cui
745b236dc3 am 541b0b18: Merge "Reserve enough user request stack space in pthread_create."
* commit '541b0b187dd91684efdcebf72c8830e976ca04a6':
  Reserve enough user request stack space in pthread_create.
2015-01-02 22:41:44 +00:00
Yabin Cui
597800f1d7 Merge "better gtest runner for bionic" 2015-01-02 22:38:41 +00:00
Yabin Cui
541b0b187d Merge "Reserve enough user request stack space in pthread_create." 2015-01-02 22:37:56 +00:00
Yabin Cui
6a7aaf4675 Reserve enough user request stack space in pthread_create.
Bug: 18830897
Change-Id: I1ba4aaeaf66a7ff99c5d82ad45469011171b0a3b
2015-01-02 14:33:48 -08:00
Elliott Hughes
6a1f21685f am db4fe340: am 46987a94: am 9b6164ca: Merge "Remove bogus transitive includes."
* commit 'db4fe340501a09699c9883f765abc58b2e9d0f13':
  Remove bogus transitive includes.
2014-12-30 12:27:29 +00:00
Elliott Hughes
db4fe34050 am 46987a94: am 9b6164ca: Merge "Remove bogus transitive includes."
* commit '46987a9490cfe8409ea73e94f36e7f0bb69e43de':
  Remove bogus transitive includes.
2014-12-30 12:21:08 +00:00
Elliott Hughes
46987a9490 am 9b6164ca: Merge "Remove bogus transitive includes."
* commit '9b6164ca8d7b2c5e7fced1cbbda6c353e6e21e54':
  Remove bogus transitive includes.
2014-12-30 12:16:06 +00:00
Elliott Hughes
9b6164ca8d Merge "Remove bogus transitive includes." 2014-12-29 21:52:04 +00:00
Elliott Hughes
40360b379c Remove bogus transitive includes.
<signal.h> shouldn't get you the contents of <errno.h>, and <fcntl.h>
shouldn't get you the contents of <unistd.h>.

Change-Id: I347499cd8671bfee98e6b8e875a97cab3a3655d3
2014-12-29 13:29:50 -08:00
Elliott Hughes
b6c73f8276 am 84715cbc: am 52a2df5f: am 0a552407: Merge "Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>."
* commit '84715cbccba4d443ff7efb0a7a8969f37e704fe0':
  Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>.
2014-12-29 19:56:37 +00:00
Elliott Hughes
84715cbccb am 52a2df5f: am 0a552407: Merge "Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>."
* commit '52a2df5f2ad445042b31ffef01d6a0fbf18d9a1a':
  Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>.
2014-12-29 19:51:40 +00:00
Elliott Hughes
52a2df5f2a am 0a552407: Merge "Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>."
* commit '0a552407ada6fc718be016df0902f6c23aa88eea':
  Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>.
2014-12-29 19:45:21 +00:00
Elliott Hughes
0a552407ad Merge "Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>." 2014-12-29 19:40:45 +00:00
Elliott Hughes
64d8382394 Ensure <fcntl.h> defines the S_* constants from <sys/stat.h>.
POSIX says "The <fcntl.h> header shall define the symbolic constants for file
modes for use as values of mode_t as described in <sys/stat.h>".

Needed to build ToT strace.

Change-Id: Ia85a51ef6fd86a48084fe48ce24963000a937d37
2014-12-29 11:14:38 -08:00
Elliott Hughes
811363b88e am 82e66a3d: am cc107443: am 50e15a2e: Merge "Remove more BSD cruft from the public headers."
* commit '82e66a3d9d104197c2699a41729cdf8961b44348':
  Remove more BSD cruft from the public headers.
2014-12-23 20:26:32 +00:00
Elliott Hughes
82e66a3d9d am cc107443: am 50e15a2e: Merge "Remove more BSD cruft from the public headers."
* commit 'cc1074431e46333671875345d4bb26b65fe96dd7':
  Remove more BSD cruft from the public headers.
2014-12-23 20:21:15 +00:00
Elliott Hughes
cc1074431e am 50e15a2e: Merge "Remove more BSD cruft from the public headers."
* commit '50e15a2ec7189eb3279cbf546679ccac4a138e90':
  Remove more BSD cruft from the public headers.
2014-12-23 20:17:38 +00:00
Elliott Hughes
50e15a2ec7 Merge "Remove more BSD cruft from the public headers." 2014-12-23 20:14:52 +00:00
Elliott Hughes
ddbbff5725 am 77707a3d: am d029db10: am ba09edcb: Merge "Fix nan output in the printf family."
* commit '77707a3d4f957ddc8e714b4df56eb2d6f48cd4d1':
  Fix nan output in the printf family.
2014-12-21 15:02:19 +00:00
Elliott Hughes
77707a3d4f am d029db10: am ba09edcb: Merge "Fix nan output in the printf family."
* commit 'd029db10526c2091acfe940d7d008019a309c47c':
  Fix nan output in the printf family.
2014-12-21 06:30:39 +00:00
Elliott Hughes
d029db1052 am ba09edcb: Merge "Fix nan output in the printf family."
* commit 'ba09edcb41799e037780b92ddcbe6bd08bac5996':
  Fix nan output in the printf family.
2014-12-21 05:59:46 +00:00
Elliott Hughes
ba09edcb41 Merge "Fix nan output in the printf family." 2014-12-21 02:54:06 +00:00
Elliott Hughes
1b18aff9ba Fix nan output in the printf family.
Bug: https://code.google.com/p/android/issues/detail?id=82452
Change-Id: I51f226c8b033de6e81baeea5e6db3de6ed196f73
2014-12-20 18:53:08 -08:00
Yabin Cui
8f05d451e3 am 598f8666: am e4d3161a: am 4c30fedf: Merge "Move gethtnamaddr.c to net/ subdirectory."
* commit '598f86661d242f60c9a885fee7c90d9a692488ad':
  Move gethtnamaddr.c to net/ subdirectory.
2014-12-20 03:32:02 +00:00
Elliott Hughes
998f2d5a50 Remove more BSD cruft from the public headers.
Change-Id: I1e3097f745b526db448bf72fbc05fb2ba23929a0
2014-12-19 19:30:11 -08:00
Yabin Cui
598f86661d am e4d3161a: am 4c30fedf: Merge "Move gethtnamaddr.c to net/ subdirectory."
* commit 'e4d3161a84c0373d35f43f981559212a9ae44397':
  Move gethtnamaddr.c to net/ subdirectory.
2014-12-20 03:26:19 +00:00
Yabin Cui
e4d3161a84 am 4c30fedf: Merge "Move gethtnamaddr.c to net/ subdirectory."
* commit '4c30fedfd3c78333596b31aa675d8cbd23e60487':
  Move gethtnamaddr.c to net/ subdirectory.
2014-12-20 03:20:51 +00:00
Yabin Cui
4c30fedfd3 Merge "Move gethtnamaddr.c to net/ subdirectory." 2014-12-20 03:16:05 +00:00
Yabin Cui
a2177c6ccb Move gethtnamaddr.c to net/ subdirectory.
It may be the better place to stay.

Change-Id: I517cc2769f63e1873191768c4732907c14f2c60e
2014-12-19 17:29:04 -08:00
Yabin Cui
dbfbc63935 am 66870e1b: am a62755ad: am 7e202e4e: Merge "Remove t->tls==NULL check in pthread_key_delete."
* commit '66870e1be53f3e5f46ef1c005dc882e5ddf9dd07':
  Remove t->tls==NULL check in pthread_key_delete.
2014-12-20 00:57:17 +00:00
Yabin Cui
66870e1be5 am a62755ad: am 7e202e4e: Merge "Remove t->tls==NULL check in pthread_key_delete."
* commit 'a62755adba509a7cb295d1bc5f9d3447e3943c6a':
  Remove t->tls==NULL check in pthread_key_delete.
2014-12-20 00:51:30 +00:00
Yabin Cui
a62755adba am 7e202e4e: Merge "Remove t->tls==NULL check in pthread_key_delete."
* commit '7e202e4eb150158e505859b506e4aa3706a14497':
  Remove t->tls==NULL check in pthread_key_delete.
2014-12-20 00:48:38 +00:00
Yabin Cui
7e202e4eb1 Merge "Remove t->tls==NULL check in pthread_key_delete." 2014-12-20 00:44:41 +00:00
Yabin Cui
246bcb10b6 Remove t->tls==NULL check in pthread_key_delete.
Change-Id: I6c0c71d30fe9d5b888752a4204abd95d5149bb96
2014-12-19 16:31:03 -08:00
Yabin Cui
0fc2bd930d am a15bd72c: am da2317ed: am cdc7ad11: Merge "Use mmap to create the pthread_internal_t"
* commit 'a15bd72cf0e6b721b6cffc5652ded636dde6b7e7':
  Use mmap to create the pthread_internal_t
2014-12-20 00:25:27 +00:00
Yabin Cui
a15bd72cf0 am da2317ed: am cdc7ad11: Merge "Use mmap to create the pthread_internal_t"
* commit 'da2317edb36acdaa6a7bc49cef8deba2a42bfb15':
  Use mmap to create the pthread_internal_t
2014-12-20 00:19:25 +00:00
Yabin Cui
da2317edb3 am cdc7ad11: Merge "Use mmap to create the pthread_internal_t"
* commit 'cdc7ad11e931ed9fc329b96e880f22e24be1c267':
  Use mmap to create the pthread_internal_t
2014-12-20 00:15:30 +00:00
Yabin Cui
cdc7ad11e9 Merge "Use mmap to create the pthread_internal_t" 2014-12-20 00:10:38 +00:00
Yabin Cui
8cf1b30567 Use mmap to create the pthread_internal_t
Add name to mmaped regions.
Add pthread benchmark code.
Allocate pthread_internal_t on regular stack.

Bug: 16847284
Change-Id: Id60835163bb0d68092241f1a118015b5a8f85069
2014-12-19 16:05:29 -08:00
Yabin Cui
bf31e358b6 am b695cb47: am be327941: am e28a1864: Merge "Support gethostbyname_r_ERANGE."
* commit 'b695cb47c36f63d63ca6c29e7a922e32c16aa416':
  Support gethostbyname_r_ERANGE.
2014-12-19 23:08:37 +00:00
Yabin Cui
b695cb47c3 am be327941: am e28a1864: Merge "Support gethostbyname_r_ERANGE."
* commit 'be32794141e95ea5d65626bbf29be95b9d974d54':
  Support gethostbyname_r_ERANGE.
2014-12-19 23:02:51 +00:00
Yabin Cui
be32794141 am e28a1864: Merge "Support gethostbyname_r_ERANGE."
* commit 'e28a1864916373f4c520f2a8be1c1c7ea97424cf':
  Support gethostbyname_r_ERANGE.
2014-12-19 22:57:22 +00:00
Yabin Cui
e28a186491 Merge "Support gethostbyname_r_ERANGE." 2014-12-19 22:53:26 +00:00
Yabin Cui
7069256495 Support gethostbyname_r_ERANGE.
Bug: 18802601
Change-Id: Iaa64921e96f91e330f1845c5399ee8aba39d9c10
2014-12-19 14:11:29 -08:00
Dimitry Ivanov
f95b314222 am 7544631e: am c692d3e5: am db314648: Merge "Add support for DT_MIPS_RLD_MAP2 tag."
* commit '7544631ef6c2b0ae22ba38ac44eba28d16439ee5':
  Add support for DT_MIPS_RLD_MAP2 tag.
2014-12-19 21:33:00 +00:00
Dimitry Ivanov
7544631ef6 am c692d3e5: am db314648: Merge "Add support for DT_MIPS_RLD_MAP2 tag."
* commit 'c692d3e50a3af788e9294769fca33e29eb91b139':
  Add support for DT_MIPS_RLD_MAP2 tag.
2014-12-19 21:26:04 +00:00
Dimitry Ivanov
c692d3e50a am db314648: Merge "Add support for DT_MIPS_RLD_MAP2 tag."
* commit 'db3146489eecf2757cab9c3a7a0abb561f2addc8':
  Add support for DT_MIPS_RLD_MAP2 tag.
2014-12-19 21:21:05 +00:00
Dimitry Ivanov
db3146489e Merge "Add support for DT_MIPS_RLD_MAP2 tag." 2014-12-19 21:15:02 +00:00
Raghu Gandham
688157295f Add support for DT_MIPS_RLD_MAP2 tag.
Position Independent Executables cannot communicate with GDB using DT_MIPS_RLD_TAG.
Hence a new tag DT_MIPS_RLD_MAP2 got introduced to fix the issue.

Change-Id: I77ce3faf1ef2e121003b804ecd291abb25cfbb56
Signed-off-by: Nikola Veljkovic<Nikola.Veljkovic@imgtec.com>
2014-12-19 11:13:11 -08:00
Chih-Hung Hsieh
8257c26e1f am 31a38647: am 70acee19: am 65e69856: Merge "Must use Clang assembler for mips target."
* commit '31a38647d0f9f28bbd959c393a9bd87c7f15584d':
  Must use Clang assembler for mips target.
2014-12-19 03:58:00 +00:00
Elliott Hughes
3ae5bb6f9c am a5359bb1: am c400e072: am 7eb9b6c5: Merge "Update bionic NOTICE files."
* commit 'a5359bb11a895fb1aae2b59cba4744c34ec6d9b5':
  Update bionic NOTICE files.
2014-12-19 03:57:59 +00:00
Chih-Hung Hsieh
31a38647d0 am 70acee19: am 65e69856: Merge "Must use Clang assembler for mips target."
* commit '70acee197411102b58dfa261f75a8b359595c907':
  Must use Clang assembler for mips target.
2014-12-19 03:52:16 +00:00
Elliott Hughes
a5359bb11a am c400e072: am 7eb9b6c5: Merge "Update bionic NOTICE files."
* commit 'c400e072db8dca8710298bf138c86e30c7b47991':
  Update bionic NOTICE files.
2014-12-19 03:52:15 +00:00
Chih-Hung Hsieh
70acee1974 am 65e69856: Merge "Must use Clang assembler for mips target."
* commit '65e6985617d035ef45da86f8c8bcceea7bc47239':
  Must use Clang assembler for mips target.
2014-12-19 03:35:25 +00:00
Elliott Hughes
c400e072db am 7eb9b6c5: Merge "Update bionic NOTICE files."
* commit '7eb9b6c537c32280571fead8676634c3dfc6388e':
  Update bionic NOTICE files.
2014-12-19 03:35:24 +00:00
Chih-Hung Hsieh
65e6985617 Merge "Must use Clang assembler for mips target." 2014-12-19 01:27:23 +00:00
Chih-Hung Hsieh
6f96d58c0d Must use Clang assembler for mips target.
GNU assembler has internal error with clang's output.

BUG: 18807290
Change-Id: Iabbe991720fc562884f19d79bded903505fc891d
2014-12-18 17:10:56 -08:00
Elliott Hughes
7eb9b6c537 Merge "Update bionic NOTICE files." 2014-12-19 01:10:37 +00:00
Elliott Hughes
6b2b5856d9 Update bionic NOTICE files.
Change-Id: Ic280872ef3137febd9d4a87d5c7662e264692071
2014-12-18 16:27:30 -08:00
Elliott Hughes
eb4d915cc6 am 649386ae: am a5193f2f: am c631bb21: Merge "Fix the types of some of the struct stat fields."
* commit '649386ae1a54357cca00bc13cc6d8b345e1a0cbb':
  Fix the types of some of the struct stat fields.
2014-12-19 00:08:17 +00:00
Elliott Hughes
571d09d73e am 3801189b: am 7cff30c7: am b7f0693a: Merge "Remove bogus #include <endian.h> from <sys/stat.h>."
* commit '3801189b586eb3538d9ef42863ecdfb17e78009c':
  Remove bogus #include <endian.h> from <sys/stat.h>.
2014-12-19 00:08:08 +00:00
Elliott Hughes
de6472eac1 am 53544f5a: am 7d4d2297: am 8597c2b3: Merge "Split the shared group data from the shared passwd data."
* commit '53544f5af679828fd3c27225bfbd2adaee87d846':
  Split the shared group data from the shared passwd data.
2014-12-19 00:08:06 +00:00
Elliott Hughes
0a0865a954 am 28bba7b4: am e14086a8: am a9c940a6: Merge "Fix struct stat member types for x86-64."
* commit '28bba7b488200093db5ec8831605c07bf75b88c5':
  Fix struct stat member types for x86-64.
2014-12-19 00:08:05 +00:00
Elliott Hughes
649386ae1a am a5193f2f: am c631bb21: Merge "Fix the types of some of the struct stat fields."
* commit 'a5193f2ffe39ff88f27ffb34a6967e023cb3daee':
  Fix the types of some of the struct stat fields.
2014-12-18 23:45:30 +00:00
Elliott Hughes
a5193f2ffe am c631bb21: Merge "Fix the types of some of the struct stat fields."
* commit 'c631bb215e29981222f19c092ded49c7c1f15845':
  Fix the types of some of the struct stat fields.
2014-12-18 23:42:02 +00:00
Elliott Hughes
c631bb215e Merge "Fix the types of some of the struct stat fields." 2014-12-18 23:38:26 +00:00
Elliott Hughes
3801189b58 am 7cff30c7: am b7f0693a: Merge "Remove bogus #include <endian.h> from <sys/stat.h>."
* commit '7cff30c7c67454e5b0f97c0dcc6261c73ae664c8':
  Remove bogus #include <endian.h> from <sys/stat.h>.
2014-12-18 23:35:21 +00:00
Elliott Hughes
53544f5af6 am 7d4d2297: am 8597c2b3: Merge "Split the shared group data from the shared passwd data."
* commit '7d4d2297856106f132283c4e501b7210fc7b0bd8':
  Split the shared group data from the shared passwd data.
2014-12-18 23:35:20 +00:00
Elliott Hughes
28bba7b488 am e14086a8: am a9c940a6: Merge "Fix struct stat member types for x86-64."
* commit 'e14086a8fc137c9900ad895556710385fc423e10':
  Fix struct stat member types for x86-64.
2014-12-18 23:35:18 +00:00
Elliott Hughes
7cff30c7c6 am b7f0693a: Merge "Remove bogus #include <endian.h> from <sys/stat.h>."
* commit 'b7f0693aaac9907070443ee6e47fe1d594b42251':
  Remove bogus #include <endian.h> from <sys/stat.h>.
2014-12-18 23:27:47 +00:00
Elliott Hughes
b7f0693aaa Merge "Remove bogus #include <endian.h> from <sys/stat.h>." 2014-12-18 23:24:26 +00:00
Dan Albert
54ea1ed18a am 6aed1a13: am ec3601cd: am 9dd5ab46: Merge "Disable ASAN for more of our libraries."
* commit '6aed1a1358a3395e10913ca2b008db823b8f1987':
  Disable ASAN for more of our libraries.
2014-12-18 23:21:02 +00:00
Yabin Cui
3c902c64a4 am 858e2390: am 9a734138: am 370a3e57: Merge "Sync with upstream for gethnamaddr.c."
* commit '858e239094ba014ec36bee7bab43da29525bbe3a':
  Sync with upstream for gethnamaddr.c.
2014-12-18 23:21:01 +00:00
Elliott Hughes
9257c477ae Fix the types of some of the struct stat fields.
Bug: 17062519
Change-Id: I5207867939f3c2876bf6448e565fa4364aa7e4f0
2014-12-18 15:17:42 -08:00
Elliott Hughes
7d4d229785 am 8597c2b3: Merge "Split the shared group data from the shared passwd data."
* commit '8597c2b3f2ac3df9abe30378cdd3ecd559d995e7':
  Split the shared group data from the shared passwd data.
2014-12-18 23:15:40 +00:00
Elliott Hughes
8597c2b3f2 Merge "Split the shared group data from the shared passwd data." 2014-12-18 23:12:45 +00:00
Elliott Hughes
0c92e8c3d1 Remove bogus #include <endian.h> from <sys/stat.h>.
Bug: 17062519
Change-Id: I3dc21ee8b90580f112c73c72aff5d3bec4778026
2014-12-18 15:10:19 -08:00
Elliott Hughes
e14086a8fc am a9c940a6: Merge "Fix struct stat member types for x86-64."
* commit 'a9c940a69a5ad01a92620594d41e462c5d46186e':
  Fix struct stat member types for x86-64.
2014-12-18 23:10:03 +00:00
Elliott Hughes
a9c940a69a Merge "Fix struct stat member types for x86-64." 2014-12-18 23:05:20 +00:00
Elliott Hughes
1c52e6c926 Fix struct stat member types for x86-64.
Bug: 17062519
Change-Id: I93b1e8b1d4b6918ab7c3a985e2f7da277077375e
2014-12-18 15:03:33 -08:00
Elliott Hughes
7874f1d718 Split the shared group data from the shared passwd data.
Found by the toybox id(1) which calls both getpwuid(3) and getgrgid(3) before
looking at either result. The use of a shared buffer in this code meant that
even on a single thread, the data for any of the passwd functions would be
clobbered by the data for any of the group functions (or vice versa).

This might seem like an insufficient fix, but POSIX explicitly says (for
getpwnam) that the result "might be overwritten by a subsequent call to
getpwent(), getpwnam(), or getpwuid()" and likewise for other members of
that group, plus equivalent text for the group-related functions.

Change-Id: I2272f47e91f72e043fdaf7c169fa9f6978ff4370
2014-12-18 15:01:10 -08:00
Dan Albert
6aed1a1358 am ec3601cd: am 9dd5ab46: Merge "Disable ASAN for more of our libraries."
* commit 'ec3601cdf4730e5ec1559079486bbb4f9a43e042':
  Disable ASAN for more of our libraries.
2014-12-18 21:50:34 +00:00
Yabin Cui
858e239094 am 9a734138: am 370a3e57: Merge "Sync with upstream for gethnamaddr.c."
* commit '9a734138138fcde0a2f0935e86246b9d7ff0ccb1':
  Sync with upstream for gethnamaddr.c.
2014-12-18 21:49:52 +00:00
Dan Albert
ec3601cdf4 am 9dd5ab46: Merge "Disable ASAN for more of our libraries."
* commit '9dd5ab46194a3ef7992b0c08d18f2e30551f9331':
  Disable ASAN for more of our libraries.
2014-12-18 16:10:45 +00:00
Dan Albert
9dd5ab4619 Merge "Disable ASAN for more of our libraries." 2014-12-18 16:07:15 +00:00
Dan Albert
da194780b1 Disable ASAN for more of our libraries.
Since ASAN depends on these libraries, we need to exclude them from
being instrumented.

Change-Id: I62005b6d04ee7b2283c4bd54ace5304386c67358
2014-12-18 08:03:49 -08:00
Yabin Cui
9a73413813 am 370a3e57: Merge "Sync with upstream for gethnamaddr.c."
* commit '370a3e573d1cdff6070c77322d4a07bd53e5db3c':
  Sync with upstream for gethnamaddr.c.
2014-12-18 01:11:56 +00:00
Yabin Cui
370a3e573d Merge "Sync with upstream for gethnamaddr.c." 2014-12-18 01:06:10 +00:00
Yabin Cui
58d33a51f3 Sync with upstream for gethnamaddr.c.
Bug: 18566967
Change-Id: I37e7410226b49eec67614e20b2c1d5e3e47817a5
2014-12-17 16:19:27 -08:00
Dmitriy Ivanov
437fa965af am c24329c7: am 4c344aff: am 92b9cb2c: Merge "Add another test for weak-reference"
* commit 'c24329c710a9ce0d9d9ee3b3d2f6a16b32fabc6a':
  Add another test for weak-reference
2014-12-16 22:16:12 +00:00
Dmitriy Ivanov
c24329c710 am 4c344aff: am 92b9cb2c: Merge "Add another test for weak-reference"
* commit '4c344affba81b630241fd4e012e90fe594a7b196':
  Add another test for weak-reference
2014-12-16 22:10:00 +00:00
Dmitriy Ivanov
4c344affba am 92b9cb2c: Merge "Add another test for weak-reference"
* commit '92b9cb2c899c386954b8f9ad8111aa6c8c63e306':
  Add another test for weak-reference
2014-12-16 22:06:05 +00:00
Dmitriy Ivanov
92b9cb2c89 Merge "Add another test for weak-reference" 2014-12-16 22:01:47 +00:00
Elliott Hughes
1b8e7b6cf8 am 50b6dc34: am 48bc703a: am 3a50b65f: Merge "Fix <net/route.h>."
* commit '50b6dc34f196fd7216a7395a4f82dedf68f2bac2':
  Fix <net/route.h>.
2014-12-16 21:49:25 +00:00
Elliott Hughes
50b6dc34f1 am 48bc703a: am 3a50b65f: Merge "Fix <net/route.h>."
* commit '48bc703a3c30512f06f65f2660ed9d2841b0acce':
  Fix <net/route.h>.
2014-12-16 20:35:01 +00:00
Dmitriy Ivanov
bfa88bca5c Add another test for weak-reference
This one covers undefined weak reference in .so
  referenced via JUMP_SLOT relocation.

Bug: 17526061
Change-Id: Ib8764bd30c1f686c4818ebbc6683cf42dee908b2
2014-12-16 19:46:45 +00:00
Elliott Hughes
48bc703a3c am 3a50b65f: Merge "Fix <net/route.h>."
* commit '3a50b65fd152b4a50dc15ec33f19080e8724b02c':
  Fix <net/route.h>.
2014-12-16 16:58:33 +00:00
Elliott Hughes
3a50b65fd1 Merge "Fix <net/route.h>." 2014-12-16 16:53:25 +00:00
Elliott Hughes
badd7e1a58 Fix <net/route.h>.
Previously it couldn't be included alone. Also add a header and include guard,
and fix its siblings' include guards.

Bug: https://code.google.com/p/android/issues/detail?id=82638
Change-Id: I32139a4bda0a6b015508a2319bf4e1a1453345f2
2014-12-15 18:47:14 -08:00
Elliott Hughes
2e507db0e2 am 63978dec: am 7de05306: am 16ea2790: Merge "Move the generic arm memcmp.S into the generic directory."
* commit '63978deca9582e98576d7b12601e5e6dd163a0bb':
  Move the generic arm memcmp.S into the generic directory.
2014-12-15 22:22:18 +00:00
Elliott Hughes
30fcb99ecd am c45b108d: am a2bfb531: am ad01c983: Merge "Remove arm assembler not referenced from any makefile."
* commit 'c45b108deb70f02902cb3309ea0b287ee99d5095':
  Remove arm assembler not referenced from any makefile.
2014-12-15 22:04:09 +00:00
Elliott Hughes
63978deca9 am 7de05306: am 16ea2790: Merge "Move the generic arm memcmp.S into the generic directory."
* commit '7de05306c6f3b3077b025d5dd3eade2f125535d5':
  Move the generic arm memcmp.S into the generic directory.
2014-12-15 21:32:11 +00:00
Elliott Hughes
7de05306c6 am 16ea2790: Merge "Move the generic arm memcmp.S into the generic directory."
* commit '16ea2790a84b1e65dc1e485c3ec494de787cc490':
  Move the generic arm memcmp.S into the generic directory.
2014-12-15 19:38:34 +00:00
Elliott Hughes
16ea2790a8 Merge "Move the generic arm memcmp.S into the generic directory." 2014-12-15 19:32:42 +00:00
Elliott Hughes
c45b108deb am a2bfb531: am ad01c983: Merge "Remove arm assembler not referenced from any makefile."
* commit 'a2bfb53107a7b770e9ad93287be5745271067786':
  Remove arm assembler not referenced from any makefile.
2014-12-15 19:27:20 +00:00
Elliott Hughes
a2bfb53107 am ad01c983: Merge "Remove arm assembler not referenced from any makefile."
* commit 'ad01c9831918ecae815db2406022ef69e74f6e6d':
  Remove arm assembler not referenced from any makefile.
2014-12-15 19:20:50 +00:00
Elliott Hughes
1ef6ec40e1 Move the generic arm memcmp.S into the generic directory.
Change-Id: I48e4d14a0dcddbb246edbac6d0329619574ab44d
2014-12-15 11:06:34 -08:00
Yabin Cui
e247fd38f8 am bb3579f8: am 96cd50f2: am 0e32e39d: Merge "Fix pthread key num calculation."
* commit 'bb3579f8787fb6cafe5e6373c91e78556f100dfc':
  Fix pthread key num calculation.
2014-12-15 18:46:49 +00:00
Elliott Hughes
9ab3b08829 am 1fc1c898: am 7dc71bb9: am 732d65c1: Merge "[MIPS] Add sgidefs.h for mips64"
* commit '1fc1c8981043f949313103b9532cbc19dc3dd919':
  [MIPS] Add sgidefs.h for mips64
2014-12-15 18:46:31 +00:00
Elliott Hughes
ad01c98319 Merge "Remove arm assembler not referenced from any makefile." 2014-12-15 18:46:16 +00:00
Elliott Hughes
f92cc30571 Remove arm assembler not referenced from any makefile.
I also suspect that libc/arch-arm/bionic/memcmp.S is supposed to like in the
generic directory these days, but this change just removes dead code.

Change-Id: I9072488df6e9b7261d79b6014914a0e937cb387b
2014-12-14 17:52:32 -08:00
Yabin Cui
294d1e2c9e better gtest runner for bionic
1. option to run each test in a separate forked process: "--isolate".
2. warnings about slow tests: "--warnline".
3. run multiple tests at the same time: "-j N".

Bug: 17589740
Change-Id: Ife5f4cafec43aa051ad7bd9c9b2b7e2e437db0de
2014-12-13 18:53:34 -08:00
Yabin Cui
bb3579f878 am 96cd50f2: am 0e32e39d: Merge "Fix pthread key num calculation."
* commit '96cd50f2fc33b0d342f1733894b06fd59a725519':
  Fix pthread key num calculation.
2014-12-13 03:03:51 +00:00
Yabin Cui
96cd50f2fc am 0e32e39d: Merge "Fix pthread key num calculation."
* commit '0e32e39df0e487ec86d86627f1d4b43d1c8c524d':
  Fix pthread key num calculation.
2014-12-13 02:59:05 +00:00
Yabin Cui
0e32e39df0 Merge "Fix pthread key num calculation." 2014-12-13 02:51:27 +00:00
Yabin Cui
6c238f2926 Fix pthread key num calculation.
Bug: 18723085
Change-Id: Iba2c834b350e4cdba0b2d771b221560a3e5df952
2014-12-12 17:00:08 -08:00
Elliott Hughes
1fc1c89810 am 7dc71bb9: am 732d65c1: Merge "[MIPS] Add sgidefs.h for mips64"
* commit '7dc71bb9d5f73dc2ffe6e070efe29e69b88c14a7':
  [MIPS] Add sgidefs.h for mips64
2014-12-13 00:41:40 +00:00
Elliott Hughes
7dc71bb9d5 am 732d65c1: Merge "[MIPS] Add sgidefs.h for mips64"
* commit '732d65c1b1d33b2eadb5d6f2b1771c6fc536e23f':
  [MIPS] Add sgidefs.h for mips64
2014-12-13 00:34:13 +00:00
Elliott Hughes
732d65c1b1 Merge "[MIPS] Add sgidefs.h for mips64" 2014-12-13 00:28:57 +00:00
Duane Sand
50a3c6949b [MIPS] Add sgidefs.h for mips64
Sgidefs.h is needed by strace.
Replaced now-duplicate arch-mips64/include directory
by symlink to arch-mips/include.

Change-Id: I7808602cfa452eca3ffbdb94903f4c5bdb33efa3
2014-12-12 16:25:36 -08:00
Yabin Cui
927d57adde am 04c0d4cb: am 96794bd9: am 6d634f9b: Merge "make stack_protector_DeathTest work for gcc4.9"
* commit '04c0d4cb2235c29f65b6b52660ff34c28c10c93e':
  make stack_protector_DeathTest work for gcc4.9
2014-12-12 02:02:56 +00:00
Yabin Cui
04c0d4cb22 am 96794bd9: am 6d634f9b: Merge "make stack_protector_DeathTest work for gcc4.9"
* commit '96794bd9713882a4cd1452b7bca62729d10dc94c':
  make stack_protector_DeathTest work for gcc4.9
2014-12-12 01:56:09 +00:00
Yabin Cui
96794bd971 am 6d634f9b: Merge "make stack_protector_DeathTest work for gcc4.9"
* commit '6d634f9baaf804a91c97e019c832c1e9611a903a':
  make stack_protector_DeathTest work for gcc4.9
2014-12-12 01:43:50 +00:00
Yabin Cui
6d634f9baa Merge "make stack_protector_DeathTest work for gcc4.9" 2014-12-12 01:38:33 +00:00
Yabin Cui
562ae1e6e4 make stack_protector_DeathTest work for gcc4.9
Bug: 18721888
Change-Id: I5f0b5c84319f56dbc4efb88e9d828138944667ae
2014-12-11 17:24:55 -08:00
Christopher Ferris
9d56c11cf1 am 887a9a48: am 3b811c81: am 3115b34c: Merge "fix runtime issues for scripts"
* commit '887a9a485c36bc1854e45b91e41a3e7b1926ef16':
  fix runtime issues for scripts
2014-12-11 19:02:31 +00:00
Elliott Hughes
baf74e55e5 am a70d5478: am 1dff030e: am e7b8bc4e: Merge "Clean up DNS proxying."
* commit 'a70d54786fb98ec8378a246126ec0c589358691f':
  Clean up DNS proxying.
2014-12-11 19:02:30 +00:00
Christopher Ferris
887a9a485c am 3b811c81: am 3115b34c: Merge "fix runtime issues for scripts"
* commit '3b811c814e4ebe6591992141040ba5997a12407a':
  fix runtime issues for scripts
2014-12-11 18:55:56 +00:00
Elliott Hughes
a70d54786f am 1dff030e: am e7b8bc4e: Merge "Clean up DNS proxying."
* commit '1dff030e6eb527eeb4e7ed163cf19641fdb3872b':
  Clean up DNS proxying.
2014-12-11 18:55:55 +00:00
Christopher Ferris
3b811c814e am 3115b34c: Merge "fix runtime issues for scripts"
* commit '3115b34c9299d69919de39d01bfbbbe5e798e3b2':
  fix runtime issues for scripts
2014-12-11 18:36:25 +00:00
Christopher Ferris
3115b34c92 Merge "fix runtime issues for scripts" 2014-12-11 18:32:00 +00:00
Elliott Hughes
1dff030e6e am e7b8bc4e: Merge "Clean up DNS proxying."
* commit 'e7b8bc4e291a08dfb6f2f84a2bb0ca99f3bbada6':
  Clean up DNS proxying.
2014-12-11 18:18:57 +00:00
Elliott Hughes
e7b8bc4e29 Merge "Clean up DNS proxying." 2014-12-11 18:12:10 +00:00
Elliott Hughes
9773fa3ffd Clean up DNS proxying.
Remove code duplication and fall back to trying directly if the proxy
isn't available. With this, tests still work if netd is dead (perhaps
because you've run "adb shell stop", or because you're running on the host).

Bug: 18547878
Change-Id: Ia4a9aa18b1fc79e09735107246989fa7fc6c8455
2014-12-10 17:14:02 -08:00
Christopher Ferris
9a55815388 am 4173ebb4: am ca5edfb2: am fec60529: Merge "Fix missing symbol for debug malloc."
* commit '4173ebb42a43238f0cd98523f4d0c97c7bac1017':
  Fix missing symbol for debug malloc.
2014-12-10 22:23:23 +00:00
Elliott Hughes
ab94c29b8a am 857a5882: am 38f1804b: am 3a49cfe3: Merge "Fix the setjmp tests for mips."
* commit '857a5882742781fc40d264d70c28b160b309a834':
  Fix the setjmp tests for mips.
2014-12-10 22:23:13 +00:00
Elliott Hughes
2ec131a5a4 am 1fd915b9: am fa465353: am a53c504e: Merge "Fix arm64 clone stack handling."
* commit '1fd915b9c1fcf3803383432ede29fc4d686fdb44':
  Fix arm64 clone stack handling.
2014-12-10 22:00:12 +00:00
Yabin Cui
99e74b8f1d am b9f67dc0: am 1eaf80d6: am 3337435e: Merge "Use machine/timespec.h to separate timespec definition."
* commit 'b9f67dc0f5081f39b204cc97502ba38486dbe2a2':
  Use machine/timespec.h to separate timespec definition.
2014-12-10 22:00:02 +00:00
Elliott Hughes
10b46ded07 am 114cee8c: am 0eaa218c: am 0952a554: Merge "Use the stmdb instead of str to save the fn/arg"
* commit '114cee8c6ed7c6b2abd5a22b3c1b36fba8601eae':
  Use the stmdb instead of str to save the fn/arg
2014-12-10 21:58:49 +00:00
Elliott Hughes
6ead436983 am f9ee8045: am 18779983: am 6a684524: Merge "Fix ptsname(3) and ttyname(3) to use TLS."
* commit 'f9ee804513f8bfddf4b6d4f08e15505c21918359':
  Fix ptsname(3) and ttyname(3) to use TLS.
2014-12-10 21:56:59 +00:00
Elliott Hughes
18b4ae073b am 1f8812b2: am 938c251e: am 3592743f: Merge "Move BSD stuff together in <sys/endian.h>."
* commit '1f8812b2aaf04e2891cabbcb3c55c37d3ee0a714':
  Move BSD stuff together in <sys/endian.h>.
2014-12-10 21:56:58 +00:00
Christopher Ferris
4173ebb42a am ca5edfb2: am fec60529: Merge "Fix missing symbol for debug malloc."
* commit 'ca5edfb23ba45176d1e33fba6f38e7834ef33301':
  Fix missing symbol for debug malloc.
2014-12-10 20:45:10 +00:00
Christopher Ferris
ca5edfb23b am fec60529: Merge "Fix missing symbol for debug malloc."
* commit 'fec605294e894fae1f1d5b59afe78af8fa84e4fa':
  Fix missing symbol for debug malloc.
2014-12-10 20:38:17 +00:00
Christopher Ferris
fec605294e Merge "Fix missing symbol for debug malloc." 2014-12-10 20:33:52 +00:00
Elliott Hughes
857a588274 am 38f1804b: am 3a49cfe3: Merge "Fix the setjmp tests for mips."
* commit '38f1804be1f8f27dc2debd69da9d2caf5ddb9cd1':
  Fix the setjmp tests for mips.
2014-12-10 20:16:24 +00:00
Elliott Hughes
38f1804be1 am 3a49cfe3: Merge "Fix the setjmp tests for mips."
* commit '3a49cfe3f2121039900ac8b0340b538b01da35c9':
  Fix the setjmp tests for mips.
2014-12-10 20:09:20 +00:00
Elliott Hughes
3a49cfe3f2 Merge "Fix the setjmp tests for mips." 2014-12-10 20:04:52 +00:00
Elliott Hughes
1fd915b9c1 am fa465353: am a53c504e: Merge "Fix arm64 clone stack handling."
* commit 'fa46535316a514e1335836bf065c2deddab1c4f3':
  Fix arm64 clone stack handling.
2014-12-10 19:58:04 +00:00
Elliott Hughes
fa46535316 am a53c504e: Merge "Fix arm64 clone stack handling."
* commit 'a53c504e0c6a19361fe3e66d7577682f6e501a4a':
  Fix arm64 clone stack handling.
2014-12-10 19:50:18 +00:00
Elliott Hughes
1510a1c1ae Fix the setjmp tests for mips.
Although the LP32 mips sigset_t is large enough to represent all signals,
their jmp_buf is too small. This test succeeded on arm and x86 because the
RT signals were never in the 'expected' sigset_t, so the equality comparison
with the 'actual' sigset_t worked fine --- everyone was blind to the RT
signal. On mips the tests fail because the 'expected' sigset_t does contain
the RT signal but the 'actual' doesn't because the jmp_buf only saves and
restores the first 32 signals.

There are 32 free bits (currently used as padding) in the LP32 mips jmp_buf,
and they might choose to use those to provide better support than the other
two platforms, but I'll leave that to them. It will be easy to just remove
the #if defined(__LP64__) from this change in that case.

For mips64 it's not to late to increase the size of the jmp_buf and fix
the setjmp family, but since there are decisions to be made here for LP32,
I'll leave it all to Imagination folks...

Bug: 16918359
Change-Id: I6b723712fce0e9210dafa165d8599d950b2d3500
2014-12-10 11:48:19 -08:00
Elliott Hughes
a53c504e0c Merge "Fix arm64 clone stack handling." 2014-12-10 19:45:48 +00:00
Yabin Cui
b9f67dc0f5 am 1eaf80d6: am 3337435e: Merge "Use machine/timespec.h to separate timespec definition."
* commit '1eaf80d6805352cb74a4ffb392da4bfd17f4caed':
  Use machine/timespec.h to separate timespec definition.
2014-12-10 19:42:15 +00:00
Yabin Cui
1eaf80d680 am 3337435e: Merge "Use machine/timespec.h to separate timespec definition."
* commit '3337435ec8f45b5c04428c7d7d789020e41dfd36':
  Use machine/timespec.h to separate timespec definition.
2014-12-10 19:33:41 +00:00
Yabin Cui
3337435ec8 Merge "Use machine/timespec.h to separate timespec definition." 2014-12-10 19:29:24 +00:00
Christopher Ferris
3f61f89b55 Fix missing symbol for debug malloc.
Bug: 18686270
Change-Id: I800a6f0940060218413df652d74aca91f6a339f8
2014-12-10 11:10:00 -08:00
Elliott Hughes
51f5d83237 Fix arm64 clone stack handling.
Make sure we adjust the stack pointer so a signal can't overwrite data.

Bug: 15195265
Change-Id: I5ab9469a82cb214c32f40a713268a1ab74a4c6fa
2014-12-10 11:08:47 -08:00
Elliott Hughes
114cee8c6e am 0eaa218c: am 0952a554: Merge "Use the stmdb instead of str to save the fn/arg"
* commit '0eaa218c2f567af3ed51ac7538ef9179a9318821':
  Use the stmdb instead of str to save the fn/arg
2014-12-10 19:07:36 +00:00
Elliott Hughes
0eaa218c2f am 0952a554: Merge "Use the stmdb instead of str to save the fn/arg"
* commit '0952a5540e8bb6ceb74389601b9088398d585771':
  Use the stmdb instead of str to save the fn/arg
2014-12-10 18:59:48 +00:00
Elliott Hughes
0952a5540e Merge "Use the stmdb instead of str to save the fn/arg" 2014-12-10 18:53:48 +00:00
Jiangli Yuan
c3d1728583 Use the stmdb instead of str to save the fn/arg
Directly save data into stack without properly adjustment
   of stack point is dangous. For example, if a signal comes,
   kernel will put sigframe into userspace's stack, which
   will overwrite the saved data if sp is not adjusted properly.

Bug: 15195265
Change-Id: Iea0cadfd3b94d50cf40252ad52fe5950811b9192
Signed-off-by: Jiangli Yuan <a6808c@motorola.com>
2014-12-10 18:47:01 +00:00
Elliott Hughes
994b1a406e am d0ee182b: am 4beb28d4: am 3f1c604c: Merge "<net/route.h> should include IPv6 too."
* commit 'd0ee182bcf42cbfd2493d177020a69455388b128':
  <net/route.h> should include IPv6 too.
2014-12-10 17:58:13 +00:00
Elliott Hughes
1e9ff46862 am 0098f245: am 92fd1774: am 7381e145: Merge "Sync <net/if_types.h> with upstream."
* commit '0098f245cf96038b40e73b09b80b0a00734056b7':
  Sync <net/if_types.h> with upstream.
2014-12-10 17:44:40 +00:00
Kyunam Jo
fa343e630d fix runtime issues for scripts
now, some script to update kernel-headers is not working.
because of wrong variable value and test codes.
so this issue is fixed.

Change-Id: Iffae9607858cc3c1c58fa24244be217b5a1ab06e
2014-12-10 07:53:07 +00:00
Yabin Cui
db49903732 Use machine/timespec.h to separate timespec definition.
Bug: 18627763
Change-Id: Ib1c406320f0ecc3705d19183a48f986cdf57c279
2014-12-10 06:36:11 +00:00
Elliott Hughes
f9ee804513 am 18779983: am 6a684524: Merge "Fix ptsname(3) and ttyname(3) to use TLS."
* commit '187799839d317b3a6ee0f32a70a19ce64d41fac5':
  Fix ptsname(3) and ttyname(3) to use TLS.
2014-12-10 04:52:18 +00:00
Elliott Hughes
187799839d am 6a684524: Merge "Fix ptsname(3) and ttyname(3) to use TLS."
* commit '6a6845244cf9eb8fe21ecc012b7b45990adad7d8':
  Fix ptsname(3) and ttyname(3) to use TLS.
2014-12-10 04:44:14 +00:00
Elliott Hughes
6a6845244c Merge "Fix ptsname(3) and ttyname(3) to use TLS." 2014-12-10 04:39:07 +00:00
Elliott Hughes
1f8812b2aa am 938c251e: am 3592743f: Merge "Move BSD stuff together in <sys/endian.h>."
* commit '938c251e94cd6f38433ca5f6a1480cbaef2783d1':
  Move BSD stuff together in <sys/endian.h>.
2014-12-10 04:31:18 +00:00
Elliott Hughes
a381fe8ebc Fix ptsname(3) and ttyname(3) to use TLS.
Be safe by default.

Change-Id: I6c4a3f1fd4eee3a651b3162ce95b7e873de57521
2014-12-09 20:30:23 -08:00
Elliott Hughes
938c251e94 am 3592743f: Merge "Move BSD stuff together in <sys/endian.h>."
* commit '3592743f7191c69ae1fd2d7e01222bd380d93d3e':
  Move BSD stuff together in <sys/endian.h>.
2014-12-10 04:23:50 +00:00
Elliott Hughes
3592743f71 Merge "Move BSD stuff together in <sys/endian.h>." 2014-12-10 04:16:55 +00:00
Elliott Hughes
824f914cae Move BSD stuff together in <sys/endian.h>.
Change-Id: I8bb511840f3cd98d5008034e405d82e923bd3203
2014-12-09 19:44:42 -08:00
Yabin Cui
d57478892e am c5132eb3: am e0601bd4: am 94926f8c: Merge "support _POSIX_REALTIME_SIGNALS"
* commit 'c5132eb361115cffc976e4757ba3d6c4693068b1':
  support _POSIX_REALTIME_SIGNALS
2014-12-09 23:49:14 +00:00
Yabin Cui
d1ca336ed8 am f3d576b1: am e906cf68: am b033761c: Merge "Change _POSIX_CPUTIME macro to make it compitable with glibc."
* commit 'f3d576b1e71d31313b16ff192e6c59a6bdc51d8a':
  Change _POSIX_CPUTIME macro to make it compitable with glibc.
2014-12-09 23:47:20 +00:00
Elliott Hughes
49a0bf9037 am 19d76add: am b430e6d6: am 5536044b: Merge "Simplify our endian.h implementation."
* commit '19d76adddc3486fd7691875c13fd468f13ea1b24':
  Simplify our endian.h implementation.
2014-12-09 23:46:03 +00:00
Elliott Hughes
8c9fed8355 am fc3d587f: am c63ddc8b: am aa0002de: Merge "Merge mips setjmp/longjmp family."
* commit 'fc3d587f9169ab501bbefb573dfc02279c3e5abc':
  Merge mips setjmp/longjmp family.
2014-12-09 23:45:04 +00:00
Elliott Hughes
8a3f30af2e am 5a103a5a: am 09416c9e: am 0b7d9d6f: Merge "Switch arch-mips64/include/machine to a symlink."
* commit '5a103a5a91be922601527ef139b6eba8918105cf':
  Switch arch-mips64/include/machine to a symlink.
2014-12-09 23:45:03 +00:00
Elliott Hughes
78903d4e1c am b5e1fa50: am 3cc8e0e9: am af829f2d: Merge "Use 64-bit units in the aarch64 setjmp implementation."
* commit 'b5e1fa5046ceb003d3b418751dc0705555de3043':
  Use 64-bit units in the aarch64 setjmp implementation.
2014-12-09 23:45:02 +00:00
Elliott Hughes
e38dd69211 am 408d8fa4: am 16c93b47: am 86d06dcc: Merge "Switch arm and arm64 over to the x86 style of jmpbuf."
* commit '408d8fa46457fc27048a00b0945de4bca1204042':
  Switch arm and arm64 over to the x86 style of jmpbuf.
2014-12-09 23:45:01 +00:00
Elliott Hughes
a27728b036 am b9abfd25: am 65187330: am 515a2ea1: Merge "Fix signal mask save/restore for x86-64."
* commit 'b9abfd25d5185bb0cfdee8d908a68f1adafc43bd':
  Fix signal mask save/restore for x86-64.
2014-12-09 23:45:00 +00:00
Elliott Hughes
6bf05a57c4 am 26609707: am b67ff7e3: am 734f0d64: Merge "Fix signal mask save/restore for arm64."
* commit '26609707082bf9c54be2f219e2827915610b45f6':
  Fix signal mask save/restore for arm64.
2014-12-09 23:44:58 +00:00
Elliott Hughes
d0ee182bcf am 4beb28d4: am 3f1c604c: Merge "<net/route.h> should include IPv6 too."
* commit '4beb28d427a61111e53b12cb78c39599ea1afd7b':
  <net/route.h> should include IPv6 too.
2014-12-09 23:29:19 +00:00
Elliott Hughes
4beb28d427 am 3f1c604c: Merge "<net/route.h> should include IPv6 too."
* commit '3f1c604c9df459f5baecfdc04cbe8ecda07b70eb':
  <net/route.h> should include IPv6 too.
2014-12-09 23:25:25 +00:00
Elliott Hughes
0098f245cf am 92fd1774: am 7381e145: Merge "Sync <net/if_types.h> with upstream."
* commit '92fd17748376523e212dae0e606522b67d2c2883':
  Sync <net/if_types.h> with upstream.
2014-12-09 23:20:59 +00:00
Elliott Hughes
3f1c604c9d Merge "<net/route.h> should include IPv6 too." 2014-12-09 23:16:32 +00:00
Elliott Hughes
92fd177483 am 7381e145: Merge "Sync <net/if_types.h> with upstream."
* commit '7381e14521fcdc4e32ca512230793ab2256726bb':
  Sync <net/if_types.h> with upstream.
2014-12-09 23:15:15 +00:00
Elliott Hughes
a7feda3731 <net/route.h> should include IPv6 too.
Change-Id: I866097d8468aa8f326117d072444ebbc2a690719
2014-12-09 15:08:24 -08:00
Elliott Hughes
7381e14521 Merge "Sync <net/if_types.h> with upstream." 2014-12-09 23:07:45 +00:00
Elliott Hughes
1ec05b7c78 Sync <net/if_types.h> with upstream.
Change-Id: I2c2ca47f5a21b78754c03deb3e9467ab79d9d033
2014-12-09 15:03:51 -08:00
Yabin Cui
c5132eb361 am e0601bd4: am 94926f8c: Merge "support _POSIX_REALTIME_SIGNALS"
* commit 'e0601bd49f04e5f248be4ebd976f73b1cb0b5023':
  support _POSIX_REALTIME_SIGNALS
2014-12-09 22:10:11 +00:00
Yabin Cui
e0601bd49f am 94926f8c: Merge "support _POSIX_REALTIME_SIGNALS"
* commit '94926f8cfa0adf37c4e19256ade7261a97f72e51':
  support _POSIX_REALTIME_SIGNALS
2014-12-09 20:17:05 +00:00
Yabin Cui
94926f8cfa Merge "support _POSIX_REALTIME_SIGNALS" 2014-12-09 20:10:19 +00:00
Yabin Cui
f3d576b1e7 am e906cf68: am b033761c: Merge "Change _POSIX_CPUTIME macro to make it compitable with glibc."
* commit 'e906cf68f07ad8b64ec594a1e4115f5bc261caab':
  Change _POSIX_CPUTIME macro to make it compitable with glibc.
2014-12-09 18:06:13 +00:00
Yabin Cui
e906cf68f0 am b033761c: Merge "Change _POSIX_CPUTIME macro to make it compitable with glibc."
* commit 'b033761cbf0e79ade9a8c956c2e63b42ee838183':
  Change _POSIX_CPUTIME macro to make it compitable with glibc.
2014-12-09 17:58:28 +00:00
Yabin Cui
b033761cbf Merge "Change _POSIX_CPUTIME macro to make it compitable with glibc." 2014-12-09 17:51:37 +00:00
Yabin Cui
725756045e Change _POSIX_CPUTIME macro to make it compitable with glibc.
Change-Id: I7a8dbb74bd622693c9fef60bd779687207517b7d
2014-12-09 09:16:11 -08:00
Elliott Hughes
19d76adddc am b430e6d6: am 5536044b: Merge "Simplify our endian.h implementation."
* commit 'b430e6d6d21d983b62338950b7c7750c76691068':
  Simplify our endian.h implementation.
2014-12-09 15:03:54 +00:00
Elliott Hughes
fc3d587f91 am c63ddc8b: am aa0002de: Merge "Merge mips setjmp/longjmp family."
* commit 'c63ddc8b8c793c732246cac9b4c95b9c1534ca12':
  Merge mips setjmp/longjmp family.
2014-12-09 14:41:13 +00:00
Elliott Hughes
5a103a5a91 am 09416c9e: am 0b7d9d6f: Merge "Switch arch-mips64/include/machine to a symlink."
* commit '09416c9ec602f8385ad38af4ac0079b9385fbfbc':
  Switch arch-mips64/include/machine to a symlink.
2014-12-09 14:41:12 +00:00
Elliott Hughes
b5e1fa5046 am 3cc8e0e9: am af829f2d: Merge "Use 64-bit units in the aarch64 setjmp implementation."
* commit '3cc8e0e9d5b79e78ec3f2f636e0f527ec8a58519':
  Use 64-bit units in the aarch64 setjmp implementation.
2014-12-09 14:41:11 +00:00
Elliott Hughes
408d8fa464 am 16c93b47: am 86d06dcc: Merge "Switch arm and arm64 over to the x86 style of jmpbuf."
* commit '16c93b47646e2ea5c3e09719bf1698363833676f':
  Switch arm and arm64 over to the x86 style of jmpbuf.
2014-12-09 14:41:10 +00:00
Elliott Hughes
b9abfd25d5 am 65187330: am 515a2ea1: Merge "Fix signal mask save/restore for x86-64."
* commit '6518733033ab076df32564ecb1a782313c993a86':
  Fix signal mask save/restore for x86-64.
2014-12-09 14:41:05 +00:00
Elliott Hughes
2660970708 am b67ff7e3: am 734f0d64: Merge "Fix signal mask save/restore for arm64."
* commit 'b67ff7e37eac39bdbc06478a545b507462fdcee9':
  Fix signal mask save/restore for arm64.
2014-12-09 14:41:04 +00:00
Yabin Cui
634816055f support _POSIX_REALTIME_SIGNALS
Bug: 18489947
Change-Id: I2e834d68bc10ca5fc7ebde047b517a3074179475
2014-12-08 21:52:43 -08:00
Elliott Hughes
b430e6d6d2 am 5536044b: Merge "Simplify our endian.h implementation."
* commit '5536044b7896285729cdb39ee0489265a42697f5':
  Simplify our endian.h implementation.
2014-12-09 05:09:13 +00:00
Elliott Hughes
5536044b78 Merge "Simplify our endian.h implementation." 2014-12-09 05:02:37 +00:00
Elliott Hughes
56e017306e Simplify our endian.h implementation.
We can rely on the compiler's builtins. Tested on arm, arm64, mips, x86,
and x86-64.

Change-Id: I0f774ed7e85b3c791a3178d8ef17c6500e6a9ace
2014-12-08 20:35:08 -08:00
Elliott Hughes
c63ddc8b8c am aa0002de: Merge "Merge mips setjmp/longjmp family."
* commit 'aa0002de89ee4753bce6e4d714e5d4cc4d9709eb':
  Merge mips setjmp/longjmp family.
2014-12-09 01:30:42 +00:00
Elliott Hughes
aa0002de89 Merge "Merge mips setjmp/longjmp family." 2014-12-09 01:18:32 +00:00
Elliott Hughes
d27ae2f8d7 Merge mips setjmp/longjmp family.
Bug: 16918359
Change-Id: I9033a7d178d431ddb09f1cfa6e4bf95ae02346e9
2014-12-08 17:07:53 -08:00
Elliott Hughes
09416c9ec6 am 0b7d9d6f: Merge "Switch arch-mips64/include/machine to a symlink."
* commit '0b7d9d6f37d33a155a22efbafa911a5de54f7b65':
  Switch arch-mips64/include/machine to a symlink.
2014-12-09 00:56:54 +00:00
Elliott Hughes
304835cb05 am 6bad956e: am c7450f77: Restore symbols from <arpa/nameser.h>.
* commit '6bad956eade0ad7c9b0d4aaa7d3583f70fca97fd':
  Restore symbols from <arpa/nameser.h>.
2014-12-09 00:54:24 +00:00
Elliott Hughes
0b7d9d6f37 Merge "Switch arch-mips64/include/machine to a symlink." 2014-12-09 00:51:49 +00:00
Elliott Hughes
2fecbfaeee Switch arch-mips64/include/machine to a symlink.
Imagination already did the work to make the contents of these directories
identical. Let's take advantage of that fact.

Change-Id: Ib101ba39041fb500c9c618fa2020e72aa2ccd9c2
2014-12-08 16:48:34 -08:00
Elliott Hughes
3cc8e0e9d5 am af829f2d: Merge "Use 64-bit units in the aarch64 setjmp implementation."
* commit 'af829f2de9432dc817eafc2ed2aa26cfb1e0d93e':
  Use 64-bit units in the aarch64 setjmp implementation.
2014-12-09 00:46:55 +00:00
Elliott Hughes
af829f2de9 Merge "Use 64-bit units in the aarch64 setjmp implementation." 2014-12-09 00:39:16 +00:00
Elliott Hughes
16c93b4764 am 86d06dcc: Merge "Switch arm and arm64 over to the x86 style of jmpbuf."
* commit '86d06dcc74f1804a1d00b4c1bc420105bba49df7':
  Switch arm and arm64 over to the x86 style of jmpbuf.
2014-12-09 00:25:53 +00:00
Elliott Hughes
9fa2cfbbdb Use 64-bit units in the aarch64 setjmp implementation.
The use of 32-bit units for 64-bit stores and loads was driving me crazy.

Bug: 16918359
Change-Id: Ifb73aad8f8985a2adfcf5913b783ad9424f23e06
2014-12-08 16:23:10 -08:00
Elliott Hughes
86d06dcc74 Merge "Switch arm and arm64 over to the x86 style of jmpbuf." 2014-12-09 00:16:20 +00:00
Elliott Hughes
75096226c8 Switch arm and arm64 over to the x86 style of jmpbuf.
Specifically, use the argument to sigsetjmp as a flag in the buffer
to indicate whether or not the signal mask is valid.

Bug: 16918359
Change-Id: I5bb1f1220f14c105c6bc57e0c28c1dc366d1438f
2014-12-08 16:15:59 -08:00
Elliott Hughes
6518733033 am 515a2ea1: Merge "Fix signal mask save/restore for x86-64."
* commit '515a2ea1d575d96e774ba08f59a14ceefdd125c3':
  Fix signal mask save/restore for x86-64.
2014-12-09 00:08:09 +00:00
Elliott Hughes
b67ff7e37e am 734f0d64: Merge "Fix signal mask save/restore for arm64."
* commit '734f0d645e461a1061c879e5bd964592d3f326ee':
  Fix signal mask save/restore for arm64.
2014-12-09 00:08:08 +00:00
Elliott Hughes
515a2ea1d5 Merge "Fix signal mask save/restore for x86-64." 2014-12-08 21:40:15 +00:00
Elliott Hughes
1c0c0ede57 Fix signal mask save/restore for x86-64.
Bug: 16918359
Change-Id: I30bf61e7d5f1c21daa3a1a21d361e98d77220bf3
2014-12-08 12:46:15 -08:00
Elliott Hughes
734f0d645e Merge "Fix signal mask save/restore for arm64." 2014-12-08 20:27:14 +00:00
Elliott Hughes
6bad956ead am c7450f77: Restore symbols from <arpa/nameser.h>.
* commit 'c7450f7738b0d1edf832fc881ef63546d45428cb':
  Restore symbols from <arpa/nameser.h>.
2014-12-08 19:09:42 +00:00
Elliott Hughes
7b78e8187e Fix signal mask save/restore for arm64.
Bug: 16918359
Change-Id: Ieb15f7f1658f5accee05665b72ba17831a80ea9d
2014-12-06 11:18:00 -08:00
Elliott Hughes
82a67e63b6 am 217f77df: am ae141c52: am 7d3a99b1: Merge "Clean up the x86-64 and x86 setjmp families."
* commit '217f77df4816a6f66327fc0db8ce90546ca3e4dc':
  Clean up the x86-64 and x86 setjmp families.
2014-12-06 06:42:11 +00:00
Elliott Hughes
217f77df48 am ae141c52: am 7d3a99b1: Merge "Clean up the x86-64 and x86 setjmp families."
* commit 'ae141c526f8075f722d16ab6382f94db3a20d46f':
  Clean up the x86-64 and x86 setjmp families.
2014-12-06 06:35:45 +00:00
Elliott Hughes
ae141c526f am 7d3a99b1: Merge "Clean up the x86-64 and x86 setjmp families."
* commit '7d3a99b1bb06c3a261252680b4c3295cbcd77894':
  Clean up the x86-64 and x86 setjmp families.
2014-12-06 06:28:49 +00:00
Elliott Hughes
7d3a99b1bb Merge "Clean up the x86-64 and x86 setjmp families." 2014-12-06 06:23:09 +00:00
Elliott Hughes
8d4c55cc74 Clean up the x86-64 and x86 setjmp families.
Bug: 16918359
Change-Id: Ic8ca0af9ea99636bc71f19d46071f1cea6eef982
2014-12-05 22:20:08 -08:00
Elliott Hughes
d9a82af25a am 03f865f0: am 9156e864: am 289f44a4: Merge "Clean up arm setjmp family."
* commit '03f865f03720336996b53393e13ae70787c9cedb':
  Clean up arm setjmp family.
2014-12-06 00:08:26 +00:00
Elliott Hughes
03f865f037 am 9156e864: am 289f44a4: Merge "Clean up arm setjmp family."
* commit '9156e86466d8c9430608f26f1b28aab66e7ee7a1':
  Clean up arm setjmp family.
2014-12-06 00:04:05 +00:00
Elliott Hughes
9156e86466 am 289f44a4: Merge "Clean up arm setjmp family."
* commit '289f44a459b6b28f8e1bb7eef165699129878c85':
  Clean up arm setjmp family.
2014-12-06 00:00:28 +00:00
Elliott Hughes
289f44a459 Merge "Clean up arm setjmp family." 2014-12-05 23:53:47 +00:00
Elliott Hughes
b393299b85 Clean up arm setjmp family.
Bug: 16918359
Change-Id: I9b986bdbdbaefe9d9896a820ee8cfe860adfe5c5
2014-12-05 15:39:51 -08:00
Elliott Hughes
640cb6de14 am 8c838ec5: am d276faae: am 872da6d3: Merge "Clean up the arm64 setjmp."
* commit '8c838ec5f3458b15a608033c352ecf5c69c6f073':
  Clean up the arm64 setjmp.
2014-12-05 23:27:05 +00:00
Elliott Hughes
8c838ec5f3 am d276faae: am 872da6d3: Merge "Clean up the arm64 setjmp."
* commit 'd276faae7c82cd139e984275b325edc4dbe313f3':
  Clean up the arm64 setjmp.
2014-12-05 23:19:08 +00:00
Elliott Hughes
d276faae7c am 872da6d3: Merge "Clean up the arm64 setjmp."
* commit '872da6d39c3484d4dca0cb181d456587cdaa1acf':
  Clean up the arm64 setjmp.
2014-12-05 23:12:31 +00:00
Elliott Hughes
872da6d39c Merge "Clean up the arm64 setjmp." 2014-12-05 23:06:17 +00:00
Elliott Hughes
9fb536de97 Clean up the arm64 setjmp.
Note that this doesn't address the fact that we don't save/restore the
real-time signals. But it does let us pass the tests we currently fail.

Bug: 16918359
Change-Id: I063a6926164289a71026a412da7f5dd2ca9a74b3
2014-12-05 15:05:45 -08:00
Tao Bao
43c60afc19 am 65907a22: am cdf9ef0e: am 24214067: Merge "Add cache related sysconf queries"
* commit '65907a22d80db587eb43e212a27565b9f0ce8a77':
  Add cache related sysconf queries
2014-12-05 18:29:09 +00:00
Tao Bao
65907a22d8 am cdf9ef0e: am 24214067: Merge "Add cache related sysconf queries"
* commit 'cdf9ef0e55480d74a1b99d942c37b66f2a3f1cf5':
  Add cache related sysconf queries
2014-12-05 18:23:29 +00:00
Tao Bao
cdf9ef0e55 am 24214067: Merge "Add cache related sysconf queries"
* commit '2421406711e0b2e214234add79c842bbb2c07ca1':
  Add cache related sysconf queries
2014-12-05 18:16:32 +00:00
Tao Bao
2421406711 Merge "Add cache related sysconf queries" 2014-12-05 18:11:53 +00:00
Elliott Hughes
09897ab73b am 256454b8: am 458d0f1a: am 9e08a7bb: Merge "Restore symbols from <arpa/nameser.h>."
* commit '256454b83b13c04960a829b05e223c3e120b22d4':
  Restore symbols from <arpa/nameser.h>.
2014-12-05 00:15:47 +00:00
Yabin Cui
3f9d41e169 am 9c81c996: am 59932806: am 295bc2b9: Merge "implement posix_madvise"
* commit '9c81c996d9fe0750c35bb4aac3c11baf5efbd7e6':
  implement posix_madvise
2014-12-05 00:15:46 +00:00
Elliott Hughes
e15f109eca am ecabc635: am d5320228: am e3e3feaf: Merge "Make the missing symbols script more useful."
* commit 'ecabc635ed0e8429dfd716849b6ca09544f40049':
  Make the missing symbols script more useful.
2014-12-05 00:15:44 +00:00
Tao Bao
1f40be97b1 Add cache related sysconf queries
Several cache related queries are added, such as
_SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE and etc. For the
moment, we always return 0 for these queries.

Change-Id: I36f67af8128672d8c1eef49d6f2431cca5a94719
2014-12-04 15:24:28 -08:00
Elliott Hughes
256454b83b am 458d0f1a: am 9e08a7bb: Merge "Restore symbols from <arpa/nameser.h>."
* commit '458d0f1a116776a9f83a19285a954983aea162dd':
  Restore symbols from <arpa/nameser.h>.
2014-12-04 22:45:01 +00:00
Yabin Cui
9c81c996d9 am 59932806: am 295bc2b9: Merge "implement posix_madvise"
* commit '599328061c85f07079a9fd647db1dbb127f88854':
  implement posix_madvise
2014-12-04 22:45:00 +00:00
Elliott Hughes
ecabc635ed am d5320228: am e3e3feaf: Merge "Make the missing symbols script more useful."
* commit 'd532022864768e205997254d9177bc6b59636a84':
  Make the missing symbols script more useful.
2014-12-04 22:44:57 +00:00
Elliott Hughes
458d0f1a11 am 9e08a7bb: Merge "Restore symbols from <arpa/nameser.h>."
* commit '9e08a7bbb85179da9ef56ee4bdc87078bfe5c30d':
  Restore symbols from <arpa/nameser.h>.
2014-12-04 21:45:35 +00:00
Elliott Hughes
c7450f7738 Restore symbols from <arpa/nameser.h>.
Bug: 18627252
Bug: https://code.google.com/p/android/issues/detail?id=81690

(cherry picked from commit 42804c4b30e813d3140cba877d3ae6bbef0d3a17)

Change-Id: Idd33578b31bba9a4afdfd15c7b193d10974aea90
2014-12-04 13:45:22 -08:00
Elliott Hughes
9e08a7bbb8 Merge "Restore symbols from <arpa/nameser.h>." 2014-12-04 21:39:58 +00:00
Yabin Cui
599328061c am 295bc2b9: Merge "implement posix_madvise"
* commit '295bc2b97041c5b06465effe1c60138a485495d5':
  implement posix_madvise
2014-12-04 21:37:49 +00:00
Yabin Cui
295bc2b970 Merge "implement posix_madvise" 2014-12-04 21:30:43 +00:00
Elliott Hughes
42804c4b30 Restore symbols from <arpa/nameser.h>.
Bug: 18627252
Bug: https://code.google.com/p/android/issues/detail?id=81690
Change-Id: I45b6c09cf2b5aabb80900e267d27cc0ec93d4dd8
2014-12-04 12:39:46 -08:00
Elliott Hughes
d532022864 am e3e3feaf: Merge "Make the missing symbols script more useful."
* commit 'e3e3feaf917c725c9c1194c930c8f11216d09ab1':
  Make the missing symbols script more useful.
2014-12-04 20:10:30 +00:00
Elliott Hughes
3a82568ef7 am f0435506: am 18a470e4: am 230005c4: Merge "Code using neon uses ARCH_ARM_HAVE_NEON."
* commit 'f0435506dad4cdf10154b2c042c0d8d46172036f':
  Code using neon uses ARCH_ARM_HAVE_NEON.
2014-12-04 20:05:06 +00:00
Elliott Hughes
0adfc4ac5b am 50ebeec8: am 509317a4: am a18af83b: Merge "Remove __ARM_HAVE_VFP."
* commit '50ebeec8b13e1a898d0b7ddda752379816ae563b':
  Remove __ARM_HAVE_VFP.
2014-12-04 20:05:01 +00:00
Elliott Hughes
96d1793759 am 28764780: am c02d6add: am 6cbc56b8: Merge "Implement <pty.h>."
* commit '28764780742d437dab54cdd45fd9bce56a812aac':
  Implement <pty.h>.
2014-12-04 20:04:59 +00:00
Elliott Hughes
e3e3feaf91 Merge "Make the missing symbols script more useful." 2014-12-04 20:04:39 +00:00
Elliott Hughes
f0435506da am 18a470e4: am 230005c4: Merge "Code using neon uses ARCH_ARM_HAVE_NEON."
* commit '18a470e435508a20b9f32a8d516a0da5fc361c81':
  Code using neon uses ARCH_ARM_HAVE_NEON.
2014-12-04 19:51:42 +00:00
Elliott Hughes
50ebeec8b1 am 509317a4: am a18af83b: Merge "Remove __ARM_HAVE_VFP."
* commit '509317a4758fc7177ca2e7ca1151914cd7701268':
  Remove __ARM_HAVE_VFP.
2014-12-04 19:51:41 +00:00
Elliott Hughes
2876478074 am c02d6add: am 6cbc56b8: Merge "Implement <pty.h>."
* commit 'c02d6add2d12ada65cc88db724921d23be6e3310':
  Implement <pty.h>.
2014-12-04 19:51:40 +00:00
Elliott Hughes
0393221f47 Make the missing symbols script more useful.
If something's in POSIX, we don't need to show it in the glibc list.

If something's not implemented by glibc, we don't need to show it in the
POSIX list (because it's probably either a macro or obsolete).

Change-Id: Ied0f8d97d3fffb280c22e9cdf6782430d776c02f
2014-12-04 11:24:48 -08:00
Yabin Cui
5afae64a1b implement posix_madvise
Bug: 18472477
Change-Id: I8183de6c281acf69ed5f7f88351b056b9827b162
2014-12-04 11:01:28 -08:00
Yabin Cui
0d13c7a1a9 am d7567706: am 0b2aabde: am 1898967e: Merge "change argument type in madvise"
* commit 'd7567706813d33f38e7869769bc8f6e706aee3d5':
  change argument type in madvise
2014-12-04 16:17:19 +00:00
Dmitriy Ivanov
052a834588 am 0c44172f: am f983286e: am 6a447eef: Merge "Fix warning: overriding commands for target"
* commit '0c44172f243ffb163b36aa604a8b3172e0f35909':
  Fix warning: overriding commands for target
2014-12-04 16:17:18 +00:00
Elliott Hughes
18a470e435 am 230005c4: Merge "Code using neon uses ARCH_ARM_HAVE_NEON."
* commit '230005c4bd3910ef974694f88d04e6f6a5a540b4':
  Code using neon uses ARCH_ARM_HAVE_NEON.
2014-12-04 15:16:36 +00:00
Elliott Hughes
509317a475 am a18af83b: Merge "Remove __ARM_HAVE_VFP."
* commit 'a18af83bc1bab330f2558451ffcd61bb31b8f147':
  Remove __ARM_HAVE_VFP.
2014-12-04 15:16:35 +00:00
Elliott Hughes
c02d6add2d am 6cbc56b8: Merge "Implement <pty.h>."
* commit '6cbc56b84be72b3f01c23b865e39f61a01ead895':
  Implement <pty.h>.
2014-12-04 15:16:33 +00:00
Yabin Cui
d756770681 am 0b2aabde: am 1898967e: Merge "change argument type in madvise"
* commit '0b2aabde32db99cffd4d06cda614edeac1112e37':
  change argument type in madvise
2014-12-04 09:22:07 +00:00
Dmitriy Ivanov
0c44172f24 am f983286e: am 6a447eef: Merge "Fix warning: overriding commands for target"
* commit 'f983286eedf71a6cef67ba6ba88c6ea0f19717f5':
  Fix warning: overriding commands for target
2014-12-04 09:22:01 +00:00
Elliott Hughes
230005c4bd Merge "Code using neon uses ARCH_ARM_HAVE_NEON." 2014-12-04 01:45:54 +00:00
Elliott Hughes
1309dcc842 Code using neon uses ARCH_ARM_HAVE_NEON.
Bug: 18556103
Change-Id: Ia8674dda223f81d616d15ee47b402ab4a3f98079
2014-12-03 17:41:26 -08:00
Elliott Hughes
a18af83bc1 Merge "Remove __ARM_HAVE_VFP." 2014-12-04 01:11:09 +00:00
Elliott Hughes
cb4c615bb9 Remove __ARM_HAVE_VFP.
Bug: 18556103
Change-Id: I6d4cc6a1b359ad2df1ce6687fd26f392059f6efd
2014-12-03 17:07:01 -08:00
Elliott Hughes
6cbc56b84b Merge "Implement <pty.h>." 2014-12-04 00:45:42 +00:00
Elliott Hughes
65f0df7873 Implement <pty.h>.
Based on the package/apps/Terminal implementation. I'll switch them over
shortly. This also lets us build the toybox version of netcat.

Change-Id: Ia922a100141a67409264b43b937eeca07b21f344
2014-12-03 15:55:34 -08:00
Elliott Hughes
d8e3a199a1 am af8d8f2c: resolved conflicts for merge of 27d276f3 to lmp-mr1-dev-plus-aosp
* commit 'af8d8f2c88bcf78cb3c94d241cf412d65f5ed55e':
  Avoid pathological behavior in OpenBSD's fread.
2014-12-03 20:44:17 +00:00
Elliott Hughes
af8d8f2c88 resolved conflicts for merge of 27d276f3 to lmp-mr1-dev-plus-aosp
Change-Id: I905890e17f90ca5e2b73a61176da6f6a36c0d345
2014-12-03 12:37:34 -08:00
Yabin Cui
0b2aabde32 am 1898967e: Merge "change argument type in madvise"
* commit '1898967e41c12948e363b9a442f65965a884cf2d':
  change argument type in madvise
2014-12-03 20:03:18 +00:00
Yabin Cui
1898967e41 Merge "change argument type in madvise" 2014-12-03 19:57:50 +00:00
Yabin Cui
efbb6fb3f7 change argument type in madvise
Make madvise prototype the same as linux man page.

Bug: 18539500
Change-Id: If3fd0e1d9539b9e10531ab9087bc4040e32b6e9b
2014-12-03 11:11:50 -08:00
Dmitriy Ivanov
f983286eed am 6a447eef: Merge "Fix warning: overriding commands for target"
* commit '6a447eeffca19a1aa4035f50c19ef9152392ed27':
  Fix warning: overriding commands for target
2014-12-03 19:01:25 +00:00
Dmitriy Ivanov
6a447eeffc Merge "Fix warning: overriding commands for target" 2014-12-03 18:55:56 +00:00
Dmitriy Ivanov
c7cbde320c Fix warning: overriding commands for target
Change-Id: I00fb4d6a8ff388722b75de9a0f4316619aaf9320
2014-12-03 09:51:37 -08:00
Elliott Hughes
b858ba5846 am 308c4d3f: am b06e125c: am 91a61f77: Merge "Switch x86 and x86-64 to __builtin_bswap*."
* commit '308c4d3fb1641ffc1e1c42add1b20c2f98cb5022':
  Switch x86 and x86-64 to __builtin_bswap*.
2014-12-03 17:39:16 +00:00
Elliott Hughes
3fa1da6597 am 85591636: am 58543de7: am 244299f4: Merge "Switch aarch64 to __builtin_bswap16."
* commit '855916362cfe0ef935e086fe550251805b01ff4f':
  Switch aarch64 to __builtin_bswap16.
2014-12-03 17:39:15 +00:00
Dmitriy Ivanov
78ef86160e am 44ea65b3: am 57eed1ab: am 8408d7ef: Merge "Fix soinfo_unload"
* commit '44ea65b3959065a260b1deddf7ce2dd0ca241e72':
  Fix soinfo_unload
2014-12-03 17:39:14 +00:00
Elliott Hughes
308c4d3fb1 am b06e125c: am 91a61f77: Merge "Switch x86 and x86-64 to __builtin_bswap*."
* commit 'b06e125c01ff30cc3835d6c8c025e256a82356bf':
  Switch x86 and x86-64 to __builtin_bswap*.
2014-12-03 17:31:35 +00:00
Elliott Hughes
855916362c am 58543de7: am 244299f4: Merge "Switch aarch64 to __builtin_bswap16."
* commit '58543de7215df81859e8ada22210773d4ab0ea82':
  Switch aarch64 to __builtin_bswap16.
2014-12-03 17:31:34 +00:00
Dmitriy Ivanov
44ea65b395 am 57eed1ab: am 8408d7ef: Merge "Fix soinfo_unload"
* commit '57eed1ab38dc2bcc458418b57f194efda055a50b':
  Fix soinfo_unload
2014-12-03 17:31:33 +00:00
Elliott Hughes
b06e125c01 am 91a61f77: Merge "Switch x86 and x86-64 to __builtin_bswap*."
* commit '91a61f77e203bf519c28f9331b9c8db731869499':
  Switch x86 and x86-64 to __builtin_bswap*.
2014-12-03 17:23:29 +00:00
Elliott Hughes
58543de721 am 244299f4: Merge "Switch aarch64 to __builtin_bswap16."
* commit '244299f4e0b58e48b5fdb15fc10a7327e0c32cf9':
  Switch aarch64 to __builtin_bswap16.
2014-12-03 17:23:28 +00:00
Dmitriy Ivanov
57eed1ab38 am 8408d7ef: Merge "Fix soinfo_unload"
* commit '8408d7efacd83c1813501954d3e199b63f350778':
  Fix soinfo_unload
2014-12-03 17:23:27 +00:00
Elliott Hughes
91a61f77e2 Merge "Switch x86 and x86-64 to __builtin_bswap*." 2014-12-03 16:20:06 +00:00
Elliott Hughes
244299f4e0 Merge "Switch aarch64 to __builtin_bswap16." 2014-12-03 16:15:45 +00:00
Elliott Hughes
12f35ada43 Switch x86 and x86-64 to __builtin_bswap*.
Bug: 18597513
Change-Id: I0781208efb3b560d7c6fa48f41be7bc6fc83521e
2014-12-02 20:16:05 -08:00
Elliott Hughes
1de2548c8e Switch aarch64 to __builtin_bswap16.
It generates the same code.

Bug: 18597513
Change-Id: I164296da8c676668983dd93697c6dfa05f10ec56
2014-12-02 19:55:38 -08:00
Dmitriy Ivanov
8408d7efac Merge "Fix soinfo_unload" 2014-12-03 03:25:58 +00:00
Elliott Hughes
4c7bc66f2a am 1c27acc3: am 5f48eda7: am baf792bf: Merge "Remove __ARM_HAVE_HALFWORD_MULTIPLY."
* commit '1c27acc32cb96ed67bb1be59799fcecfc469a465':
  Remove __ARM_HAVE_HALFWORD_MULTIPLY.
2014-12-03 02:52:37 +00:00
Elliott Hughes
79623f7e9e am f6116c5e: am 81b5f9f4: am 6bec3484: Merge "Remove __ARM_HAVE_LDREXD."
* commit 'f6116c5ea155f3135ba49c09b725dea3458eadf9':
  Remove __ARM_HAVE_LDREXD.
2014-12-03 02:52:36 +00:00
Elliott Hughes
8a2f97d738 am 39bf9593: am 52b3cbae: am f840cefa: Merge "Kill <machine/exec.h>."
* commit '39bf9593c49c1a10e2163a32212ea9342c05841b':
  Kill <machine/exec.h>.
2014-12-03 02:52:35 +00:00
Elliott Hughes
1c27acc32c am 5f48eda7: am baf792bf: Merge "Remove __ARM_HAVE_HALFWORD_MULTIPLY."
* commit '5f48eda760e563e39231b1a0eaba086a5c0403a2':
  Remove __ARM_HAVE_HALFWORD_MULTIPLY.
2014-12-03 02:47:47 +00:00
Elliott Hughes
f6116c5ea1 am 81b5f9f4: am 6bec3484: Merge "Remove __ARM_HAVE_LDREXD."
* commit '81b5f9f42f037690be5fbcb9501bd37e1f8bb3c1':
  Remove __ARM_HAVE_LDREXD.
2014-12-03 02:47:46 +00:00
Elliott Hughes
39bf9593c4 am 52b3cbae: am f840cefa: Merge "Kill <machine/exec.h>."
* commit '52b3cbae58e9069eebb09b913cf51a3a2781813d':
  Kill <machine/exec.h>.
2014-12-03 02:47:45 +00:00
Elliott Hughes
5f48eda760 am baf792bf: Merge "Remove __ARM_HAVE_HALFWORD_MULTIPLY."
* commit 'baf792bff86f9be6f631eece17d9d104cfe54b41':
  Remove __ARM_HAVE_HALFWORD_MULTIPLY.
2014-12-03 02:37:35 +00:00
Elliott Hughes
81b5f9f42f am 6bec3484: Merge "Remove __ARM_HAVE_LDREXD."
* commit '6bec3484ee1e90662c8c5e52c71fcdc430a7b619':
  Remove __ARM_HAVE_LDREXD.
2014-12-03 02:37:34 +00:00
Elliott Hughes
52b3cbae58 am f840cefa: Merge "Kill <machine/exec.h>."
* commit 'f840cefaea5e482e886c81a6b56648399ceb2568':
  Kill <machine/exec.h>.
2014-12-03 02:37:33 +00:00
Dmitriy Ivanov
18fa55188c am 70a2aea6: am ad8e339a: am 6995c1dc: Merge "Extract bionic-prepare-run-on-host to inc file."
* commit '70a2aea6e8df5e5c24b0d83c0a3a2ff34f43e718':
  Extract bionic-prepare-run-on-host to inc file.
2014-12-03 02:21:16 +00:00
Dmitriy Ivanov
5ae82cba59 Fix soinfo_unload
1. Take into consideration that the local_group_root_
    is not set for all of not linked libraries.
 2. We need to check visited list earlier to avoid double
    soinfo_free.

Change-Id: Iabc0a06a97c63f7e6bd4641731f50bb1466fed4f
2014-12-02 17:28:34 -08:00
Elliott Hughes
baf792bff8 Merge "Remove __ARM_HAVE_HALFWORD_MULTIPLY." 2014-12-03 01:12:48 +00:00
Elliott Hughes
a5602c566e Remove __ARM_HAVE_HALFWORD_MULTIPLY.
Bug: 18556103
Change-Id: I17e498539f77ddf7d1fb980ee93155d3c3ccd85e
2014-12-02 16:58:17 -08:00
Elliott Hughes
6bec3484ee Merge "Remove __ARM_HAVE_LDREXD." 2014-12-03 00:57:28 +00:00
Elliott Hughes
6651aa6bc1 Remove __ARM_HAVE_LDREXD.
No one uses this.

Bug: 18556103
Change-Id: Icecc3a7b5cb0a36960f27d030d8f4f8ee471f86c
2014-12-03 00:57:07 +00:00
Elliott Hughes
f840cefaea Merge "Kill <machine/exec.h>." 2014-12-03 00:42:56 +00:00
Elliott Hughes
84fb1f7ac8 am 66f7b275: Merge "Remove unnecessary #undefs from AOSP." into lmp-mr1-dev-plus-aosp
* commit '66f7b2758f909b981503ab228e92707f8c6b4ebc':
  Remove unnecessary #undefs from AOSP.
2014-12-03 00:30:51 +00:00
Elliott Hughes
16716ba940 am c28e2797: am cc7e28f1: am 432f763c: Merge "Avoid pathological behavior in OpenBSD\'s fread."
* commit 'c28e2797a78f92ba49999710fa5a1cd85b27badc':
  Avoid pathological behavior in OpenBSD's fread.
2014-12-03 00:30:45 +00:00
Dmitriy Ivanov
df206647a3 am 7ef5d8b8: am 5811e3fc: am 5cd127d3: Merge "Fix mips build"
* commit '7ef5d8b8454443e79f109a5f83ab40e4c602b88d':
  Fix mips build
2014-12-03 00:30:15 +00:00
Dmitriy Ivanov
29bf489217 am 20ce0b5b: am 3a43e9f5: am 8dd25905: Merge "Create /system/lib(64)? symlinks for host tests."
* commit '20ce0b5b5d666dd9d0ff41375623bde22670af7b':
  Create /system/lib(64)? symlinks for host tests.
2014-12-03 00:30:14 +00:00
Yabin Cui
9a4af8123a am 864ba276: am 5fea4532: am 4e7d66dd: Merge "Use mmap to create the pthread_internal_t."
* commit '864ba276f96b23835938cd0875cc5fe682ff6b6d':
  Use mmap to create the pthread_internal_t.
2014-12-03 00:30:01 +00:00
Dmitriy Ivanov
c652606558 am e92b30af: am 8d94e2e0: am 291dbf65: Merge "Count references for groups instead of instances"
* commit 'e92b30af6752104f86c564ccec66fc1d0f5be475':
  Count references for groups instead of instances
2014-12-03 00:30:00 +00:00
Elliott Hughes
b514026eb2 Kill <machine/exec.h>.
Bug: 18546535
Change-Id: I479e003deab21e31eb5caa5393067ed1dc558387
2014-12-02 16:16:29 -08:00
Dmitriy Ivanov
70a2aea6e8 am ad8e339a: am 6995c1dc: Merge "Extract bionic-prepare-run-on-host to inc file."
* commit 'ad8e339a565af518bcda51e5ebbc536aa63de9e3':
  Extract bionic-prepare-run-on-host to inc file.
2014-12-03 00:12:54 +00:00
Dmitriy Ivanov
ad8e339a56 am 6995c1dc: Merge "Extract bionic-prepare-run-on-host to inc file."
* commit '6995c1dcb5a9ad77a54d950fc24f5aba00909b69':
  Extract bionic-prepare-run-on-host to inc file.
2014-12-03 00:07:38 +00:00
Dmitriy Ivanov
6995c1dcb5 Merge "Extract bionic-prepare-run-on-host to inc file." 2014-12-03 00:02:13 +00:00
Dmitriy Ivanov
06b1b8ceac Extract bionic-prepare-run-on-host to inc file.
Make benchmark run-on-host depend on bionic-prepare-run-on-host.

Change-Id: I0bdbf561b2580d607a49b7c83cc273320ac55429
2014-12-02 15:15:34 -08:00
Elliott Hughes
66f7b2758f Merge "Remove unnecessary #undefs from AOSP." into lmp-mr1-dev-plus-aosp 2014-12-02 23:00:37 +00:00
Elliott Hughes
27d276f3a6 Avoid pathological behavior in OpenBSD's fread.
(cherry picked from commit 20841a137beac5caa824e3586c7bd91d879ff92e)

Bug: https://code.google.com/p/android/issues/detail?id=81155
Bug: 18556607
Change-Id: Ibdfebc20dce4c34ad565014523c9b074e90ea665
2014-12-02 14:54:52 -08:00
Elliott Hughes
6c1e3f6e56 Remove unnecessary #undefs from AOSP.
This is a manual revert of 111461aaaec2b7d9ffa5f3baabb1bd019d2e0c1d.
git revert does the wrong thing because that patch shares lines (that we
want to keep) with 168667c972a1e9ede5b64ad6cee0666e9b96d4d8 and git
revert just removes them.

Change-Id: I83ac8c95e5c90a4137b7742a9b7536e1627f1ac7
2014-12-02 14:50:20 -08:00
Elliott Hughes
c28e2797a7 am cc7e28f1: am 432f763c: Merge "Avoid pathological behavior in OpenBSD\'s fread."
* commit 'cc7e28f111bfa5cd859ab7ac4eac8f98d9f10af3':
  Avoid pathological behavior in OpenBSD's fread.
2014-12-02 22:49:36 +00:00
Elliott Hughes
cc7e28f111 am 432f763c: Merge "Avoid pathological behavior in OpenBSD\'s fread."
* commit '432f763c0c370870b653537342aff87fac862d97':
  Avoid pathological behavior in OpenBSD's fread.
2014-12-02 22:45:07 +00:00
Elliott Hughes
432f763c0c Merge "Avoid pathological behavior in OpenBSD's fread." 2014-12-02 22:40:53 +00:00
Elliott Hughes
20841a137b Avoid pathological behavior in OpenBSD's fread.
Bug: https://code.google.com/p/android/issues/detail?id=81155
Bug: 18556607
Change-Id: Idc60976b79610e2202cc42dc393dcb4ca6c42e05
2014-12-02 14:22:02 -08:00
Dmitriy Ivanov
7ef5d8b845 am 5811e3fc: am 5cd127d3: Merge "Fix mips build"
* commit '5811e3fce16d2394654447ae9ee504149b7e1000':
  Fix mips build
2014-12-02 22:13:59 +00:00
Dmitriy Ivanov
20ce0b5b5d am 3a43e9f5: am 8dd25905: Merge "Create /system/lib(64)? symlinks for host tests."
* commit '3a43e9f5dbc129bdac5ca3397699a5c94dfd131d':
  Create /system/lib(64)? symlinks for host tests.
2014-12-02 22:13:58 +00:00
Yabin Cui
864ba276f9 am 5fea4532: am 4e7d66dd: Merge "Use mmap to create the pthread_internal_t."
* commit '5fea45328f7a596ab2040c8ea2fe227cf1752a07':
  Use mmap to create the pthread_internal_t.
2014-12-02 22:00:39 +00:00
Dmitriy Ivanov
e92b30af67 am 8d94e2e0: am 291dbf65: Merge "Count references for groups instead of instances"
* commit '8d94e2e0d7c7c4a5cc8c73d424c499db333713c8':
  Count references for groups instead of instances
2014-12-02 22:00:37 +00:00
Dmitriy Ivanov
5811e3fce1 am 5cd127d3: Merge "Fix mips build"
* commit '5cd127d3aa4a2f225be202af01581838fdd3c721':
  Fix mips build
2014-12-02 21:42:57 +00:00
Dmitriy Ivanov
5cd127d3aa Merge "Fix mips build" 2014-12-02 21:37:50 +00:00
Dmitriy Ivanov
3a43e9f5db am 8dd25905: Merge "Create /system/lib(64)? symlinks for host tests."
* commit '8dd2590549ac85b2fe20329842cf385fb3ed5c95':
  Create /system/lib(64)? symlinks for host tests.
2014-12-02 21:35:11 +00:00
Dmitriy Ivanov
8dd2590549 Merge "Create /system/lib(64)? symlinks for host tests." 2014-12-02 21:30:12 +00:00
Dmitriy Ivanov
20463e3e53 Fix mips build
Change-Id: Iddbf06784d19556a55d833e20a68e6ccf5a7c5be
2014-12-02 13:27:40 -08:00
Dmitriy Ivanov
a55126f1f6 Create /system/lib(64)? symlinks for host tests.
Replace LD_LIBRARY_PATH with default path for
  the tests run on host.

Bug: 18589961

Change-Id: Id4a84b73d25c2ca9c557fcfa19b8169daeaa016b
2014-12-02 12:11:08 -08:00
Yabin Cui
5fea45328f am 4e7d66dd: Merge "Use mmap to create the pthread_internal_t."
* commit '4e7d66ddb55a9d5f23ae80b6e6569733adf9262a':
  Use mmap to create the pthread_internal_t.
2014-12-02 19:53:14 +00:00
Yabin Cui
4e7d66ddb5 Merge "Use mmap to create the pthread_internal_t." 2014-12-02 19:45:48 +00:00
Dmitriy Ivanov
8d94e2e0d7 am 291dbf65: Merge "Count references for groups instead of instances"
* commit '291dbf65cadeccbb33e60b33fbe9f5f48c8763ff':
  Count references for groups instead of instances
2014-12-02 19:36:09 +00:00
Elliott Hughes
a271528462 am 12b7dd09: am 152e978f: Merge "Put stdin/stdout/stderr symbols in place." into lmp-mr1-dev
* commit '12b7dd0900a6760a47c765decfc6cdec75883d35':
  Put stdin/stdout/stderr symbols in place.
2014-12-02 19:35:04 +00:00
Elliott Hughes
12b7dd0900 am 152e978f: Merge "Put stdin/stdout/stderr symbols in place." into lmp-mr1-dev
* commit '152e978f73fc6cd37d0d82de69f1cf8134b34b90':
  Put stdin/stdout/stderr symbols in place.
2014-12-02 19:16:51 +00:00
Dmitriy Ivanov
291dbf65ca Merge "Count references for groups instead of instances" 2014-12-02 19:10:04 +00:00
Yabin Cui
42e664f763 am de88381c: am b2ec9cb2: am 46d0b81a: Merge "restore sigprocmask in setjmp/longjmp test."
* commit 'de88381c19ad9a23b5d26eb51b7591a7e7e6be50':
  restore sigprocmask in setjmp/longjmp test.
2014-12-02 19:05:28 +00:00
Elliott Hughes
152e978f73 Merge "Put stdin/stdout/stderr symbols in place." into lmp-mr1-dev 2014-12-02 18:56:50 +00:00
Yabin Cui
de88381c19 am b2ec9cb2: am 46d0b81a: Merge "restore sigprocmask in setjmp/longjmp test."
* commit 'b2ec9cb264ed1aadd1a2d938785d28ceb9fc16c4':
  restore sigprocmask in setjmp/longjmp test.
2014-12-02 18:56:12 +00:00
Dmitriy Ivanov
ab972b9adf Count references for groups instead of instances
Count references on the group level to avoid
  partially unloading function that might be
  referenced by other libraries in the local_group

  Bonus: with this change we can correctly unload recursively
  linked libraries. is_recursive check is removed.

  Also dynamic executables (not .so) with 0 DT_NEEDED libraries
  are now correctly linked.

Change-Id: Idfa83baef402840599b93a875f2881d9f020dbcd
2014-12-02 10:54:26 -08:00
Yabin Cui
b2ec9cb264 am 46d0b81a: Merge "restore sigprocmask in setjmp/longjmp test."
* commit '46d0b81a9465bf74fe44a881365c332dc6173f2f':
  restore sigprocmask in setjmp/longjmp test.
2014-12-02 18:49:30 +00:00
Yabin Cui
8574a0670b Use mmap to create the pthread_internal_t.
Bug: 16847284
Change-Id: I488fa236f57aa3acb29b4ffbbab2fab51b0653be
2014-12-02 10:39:25 -08:00
Yabin Cui
46d0b81a94 Merge "restore sigprocmask in setjmp/longjmp test." 2014-12-02 18:37:28 +00:00
Yabin Cui
e323e99ffb restore sigprocmask in setjmp/longjmp test.
Bug: 18571921
Change-Id: Ib8ca7a36abd3ccc729c20c0e32d45b1b33069f65
2014-12-02 10:35:25 -08:00
Dmitriy Ivanov
bf46bdef96 am 15121a42: am 611fddc7: am 224fb614: Merge "Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM."
* commit '15121a42c8882d073307a4853032750185cbb7ae':
  Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM.
2014-12-02 17:56:03 +00:00
Dmitriy Ivanov
15121a42c8 am 611fddc7: am 224fb614: Merge "Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM."
* commit '611fddc73eec4ad33739b6160e84e633984499b7':
  Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM.
2014-12-02 17:49:27 +00:00
Dmitriy Ivanov
611fddc73e am 224fb614: Merge "Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM."
* commit '224fb6144aaba529aef1554f7454df523de1ab38':
  Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM.
2014-12-02 17:41:54 +00:00
Dmitriy Ivanov
224fb6144a Merge "Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM." 2014-12-02 17:37:18 +00:00
Alexander Ivchenko
e831433fe1 Resolve "unused DT entry" warnings for DT_VERNEED and DT_VERNEEDNUM.
Change-Id: Id18310811a6d183878a1d4d26cc2498f4fd00c55
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
2014-12-02 15:34:30 +03:00
Lorenzo Colitti
91f6f25a2a am 8a94b864: am e5477f83: Fail queries fast if no DNS servers are configured.
* commit '8a94b864bf0b87e51aa32a856c847f11cd19047b':
  Fail queries fast if no DNS servers are configured.
2014-12-02 07:07:42 +00:00
Lorenzo Colitti
8a94b864bf am e5477f83: Fail queries fast if no DNS servers are configured.
* commit 'e5477f83b0a639b86d8cbe710f25d9808a8f72af':
  Fail queries fast if no DNS servers are configured.
2014-12-02 07:00:47 +00:00
Christopher Ferris
b8e52fb431 am a2b36226: am 45df6fb5: am 8374a548: Merge "Specify .cpu cortex-a15"
* commit 'a2b36226c3a90cf780e260e8cf5f52e44360e07d':
  Specify .cpu cortex-a15
2014-12-02 06:46:44 +00:00
Elliott Hughes
111461aaae Put stdin/stdout/stderr symbols in place.
To help with future binary compatibility.

Bug: 18553223
Change-Id: Ia8103b4f189c18528b11948ac9e520f61b9ccc0e
2014-12-01 21:27:59 -08:00
Christopher Ferris
a2b36226c3 am 45df6fb5: am 8374a548: Merge "Specify .cpu cortex-a15"
* commit '45df6fb5f65ee162488d9c88fa7b4125b033e0e2':
  Specify .cpu cortex-a15
2014-12-02 02:44:33 +00:00
Christopher Ferris
45df6fb5f6 am 8374a548: Merge "Specify .cpu cortex-a15"
* commit '8374a5481394e89c46ecc0b7cf60381637edaaa5':
  Specify .cpu cortex-a15
2014-12-02 02:37:16 +00:00
Christopher Ferris
8374a54813 Merge "Specify .cpu cortex-a15" 2014-12-02 02:29:52 +00:00
Elliott Hughes
ca0580f6e5 am 97a96aee: am 4f16aa9a: am ec544e1b: Merge "Build our benchmarks against glibc too."
* commit '97a96aee6f15bf46bc125d388db2762ed0c42946':
  Build our benchmarks against glibc too.
2014-12-02 01:36:12 +00:00
Elliott Hughes
97a96aee6f am 4f16aa9a: am ec544e1b: Merge "Build our benchmarks against glibc too."
* commit '4f16aa9aec9705a74c7d518614c1f16e0cd65c5d':
  Build our benchmarks against glibc too.
2014-12-02 01:25:20 +00:00
Elliott Hughes
4f16aa9aec am ec544e1b: Merge "Build our benchmarks against glibc too."
* commit 'ec544e1b35cadaefd833b441dbec9c44adff6ade':
  Build our benchmarks against glibc too.
2014-12-02 01:03:34 +00:00
Elliott Hughes
ec544e1b35 Merge "Build our benchmarks against glibc too." 2014-12-02 00:57:44 +00:00
Elliott Hughes
212e0e3824 Build our benchmarks against glibc too.
Bug: 18556607
Change-Id: I455ac8b93c0835836180e549486bc52d393ee6a6
2014-12-01 16:43:51 -08:00
Elliott Hughes
abe9b1c17e am caa3593b: am bfcb37c6: am 076f69d8: Merge "Benchmark fread/fwrite both buffered and unbuffered."
* commit 'caa3593b122512116f2ad7726b90832e31b5c3f9':
  Benchmark fread/fwrite both buffered and unbuffered.
2014-12-01 22:00:33 +00:00
Elliott Hughes
212289cc94 am 6d11f116: am 8a400073: am 6f9d7444: Merge "Fix running the bionic benchmarks on the host."
* commit '6d11f116e78955c4c4851c1a59139cfb1266c7c3':
  Fix running the bionic benchmarks on the host.
2014-12-01 22:00:32 +00:00
Elliott Hughes
caa3593b12 am bfcb37c6: am 076f69d8: Merge "Benchmark fread/fwrite both buffered and unbuffered."
* commit 'bfcb37c608344b3b1f1981084910eb07e87f882d':
  Benchmark fread/fwrite both buffered and unbuffered.
2014-12-01 21:52:41 +00:00
Elliott Hughes
6d11f116e7 am 8a400073: am 6f9d7444: Merge "Fix running the bionic benchmarks on the host."
* commit '8a400073bf1c7d328366055f2d2a3401fd22530f':
  Fix running the bionic benchmarks on the host.
2014-12-01 21:52:40 +00:00
Elliott Hughes
bfcb37c608 am 076f69d8: Merge "Benchmark fread/fwrite both buffered and unbuffered."
* commit '076f69d828cfa5d30360e1dd2f24acd751d4a461':
  Benchmark fread/fwrite both buffered and unbuffered.
2014-12-01 21:46:29 +00:00
Elliott Hughes
8a400073bf am 6f9d7444: Merge "Fix running the bionic benchmarks on the host."
* commit '6f9d7444e801487fb2362955c62c379a681a55f6':
  Fix running the bionic benchmarks on the host.
2014-12-01 21:46:28 +00:00
Elliott Hughes
076f69d828 Merge "Benchmark fread/fwrite both buffered and unbuffered." 2014-12-01 21:43:32 +00:00
Elliott Hughes
6f9d7444e8 Merge "Fix running the bionic benchmarks on the host." 2014-12-01 21:40:25 +00:00
Elliott Hughes
47dc7c974e Benchmark fread/fwrite both buffered and unbuffered.
Bug: 18556607
Change-Id: I53905aedcea75fe550d9c423fb701c2c9bf8e831
2014-12-01 13:12:18 -08:00
Elliott Hughes
f2bb57cfe3 Fix running the bionic benchmarks on the host.
Bug: 18556607
Change-Id: I4e75bfcde788b43e1926be1b0146acf09b496390
2014-12-01 13:11:38 -08:00
Lorenzo Colitti
e5477f83b0 Fail queries fast if no DNS servers are configured.
When no DNS servers are configured (and thus there is no chance
that the DNS query will suceed), res_nsend returns early, but
it does not tell the cache that the query has failed.
Therefore, if the caller retries the query, it will block for
PENDING_REQUEST_TIMEOUT (= 20 seconds) waiting for the "existing
query" (which isn't actually doing anything) to complete.

Bug: 18240188
Bug: 18327075
Change-Id: I0df13ff4a17ee65e640be96695a3af31b020963a
2014-12-01 20:03:25 +00:00
Yabin Cui
95bf06da03 am d4130c87: am 44e69856: am 3e6ef3f9: Merge "support _POSIX_CPUTIME"
* commit 'd4130c870d91b6be88f2685717b28ece05fdddcf':
  support _POSIX_CPUTIME
2014-12-01 17:22:28 +00:00
Yabin Cui
d4130c870d am 44e69856: am 3e6ef3f9: Merge "support _POSIX_CPUTIME"
* commit '44e698565c58e560c0d04c9d8b3fa3bf28b21de0':
  support _POSIX_CPUTIME
2014-12-01 17:16:23 +00:00
Yabin Cui
44e698565c am 3e6ef3f9: Merge "support _POSIX_CPUTIME"
* commit '3e6ef3f90285191976a60d7a94287fb0fec1af5d':
  support _POSIX_CPUTIME
2014-12-01 17:09:48 +00:00
David 'Digit' Turner
da741f81f2 am d4f6518c: am 4c7e4b96: am fabb4282: Merge "libc: Fix headers to allow direct inclusion."
* commit 'd4f6518ce21f299fe2bad8abf4b9d5ce488adeb5':
  libc: Fix headers to allow direct inclusion.
2014-12-01 17:06:27 +00:00
Yabin Cui
3e6ef3f902 Merge "support _POSIX_CPUTIME" 2014-12-01 17:06:02 +00:00
David 'Digit' Turner
d4f6518ce2 am 4c7e4b96: am fabb4282: Merge "libc: Fix headers to allow direct inclusion."
* commit '4c7e4b9695d3404df4df9dafad1e7901cf346016':
  libc: Fix headers to allow direct inclusion.
2014-12-01 17:01:39 +00:00
David 'Digit' Turner
4c7e4b9695 am fabb4282: Merge "libc: Fix headers to allow direct inclusion."
* commit 'fabb4282be66caed37c405e36c94dd1dc30ddbb2':
  libc: Fix headers to allow direct inclusion.
2014-12-01 16:55:32 +00:00
David 'Digit' Turner
fabb4282be Merge "libc: Fix headers to allow direct inclusion." 2014-12-01 16:50:04 +00:00
David 'Digit' Turner
aad1a39dfb libc: Fix headers to allow direct inclusion.
These headers are missing a few #includes to allow their direct
inclusion from C

http://b.android.com/79841

Change-Id: Ifc712c17f4da70b26adb67d4d49ed659f53c3621
2014-12-01 15:44:24 +01:00
Bernhard Rosenkränzer
ce46f5576a Specify .cpu cortex-a15
When building with clang without this change, as errors out saying pldw
is an unsupported instruction (because it isn't part of the ARMv7 core
instruction set).
Let as know using pldw is fine.

Change-Id: Ie1f9c4b873e93ab2b3b374d2d46e476a4e581710
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-30 22:17:30 +01:00
Elliott Hughes
964c49f505 am 871fb863: am 6823cbe5: am 7602628e: Merge "Add error-check when mapping socket to fd"
* commit '871fb8630991765caa800ee6061df875fce42e9e':
  Add error-check when mapping socket to fd
2014-11-27 19:39:13 +00:00
Elliott Hughes
871fb86309 am 6823cbe5: am 7602628e: Merge "Add error-check when mapping socket to fd"
* commit '6823cbe5812011109f6384f945e767758b287fa4':
  Add error-check when mapping socket to fd
2014-11-27 19:33:16 +00:00
Elliott Hughes
6823cbe581 am 7602628e: Merge "Add error-check when mapping socket to fd"
* commit '7602628e972b90689b8f39e0c837cad28383bc2b':
  Add error-check when mapping socket to fd
2014-11-27 19:10:14 +00:00
Elliott Hughes
7602628e97 Merge "Add error-check when mapping socket to fd" 2014-11-27 19:05:13 +00:00
Robert Alm
3638a83657 Add error-check when mapping socket to fd
The call to fdopen can fail in several ways.
The fprintf on the next line will then dereference a
NULL-pointer FILE*.
Added a NULL-check, closed the socket, returned system error
and added a comment about it.

Change-Id: I7a6b26aa3c79452b1fdd76af12dfa75da88cbad7
2014-11-27 11:01:50 -08:00
Elliott Hughes
8f73d930dd am 682f9e01: am a169a98c: am 46140327: Merge "Move a private x86-64 header file out of the limelight."
* commit '682f9e01d8b5dbe594f18479326bf52ce666c51f':
  Move a private x86-64 header file out of the limelight.
2014-11-27 17:36:11 +00:00
Elliott Hughes
682f9e01d8 am a169a98c: am 46140327: Merge "Move a private x86-64 header file out of the limelight."
* commit 'a169a98ce449cb4ce0686480241d1d5afae42123':
  Move a private x86-64 header file out of the limelight.
2014-11-27 17:30:38 +00:00
Elliott Hughes
a169a98ce4 am 46140327: Merge "Move a private x86-64 header file out of the limelight."
* commit '461403270593363dfe0b75db9f5e9f454b4258d2':
  Move a private x86-64 header file out of the limelight.
2014-11-27 17:24:23 +00:00
Elliott Hughes
4614032705 Merge "Move a private x86-64 header file out of the limelight." 2014-11-27 17:20:50 +00:00
Elliott Hughes
04fb6c6d84 am cce22649: am bfc06e4e: am 87516a65: Merge "[MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6"
* commit 'cce22649c0834324c6c36e85cbe90c98d0917e3e':
  [MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6
2014-11-27 14:01:32 +00:00
Elliott Hughes
33933ede5c am 28f9ea7a: am 5d6ecd79: am cc0a9e6b: Merge "bionic tests: add setjmp/_setjmp/sigsetjmp tests."
* commit '28f9ea7ab935adaa69475ee7a70febb57a723a27':
  bionic tests: add setjmp/_setjmp/sigsetjmp tests.
2014-11-27 14:01:31 +00:00
Elliott Hughes
cce22649c0 am bfc06e4e: am 87516a65: Merge "[MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6"
* commit 'bfc06e4eabd0cb0357e465ad971d36307f370077':
  [MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6
2014-11-27 13:54:43 +00:00
Elliott Hughes
28f9ea7ab9 am 5d6ecd79: am cc0a9e6b: Merge "bionic tests: add setjmp/_setjmp/sigsetjmp tests."
* commit '5d6ecd79db6330da1c196d8e9441b0d7d1dd7fe3':
  bionic tests: add setjmp/_setjmp/sigsetjmp tests.
2014-11-27 13:54:42 +00:00
Elliott Hughes
1b66f6e9d7 Move a private x86-64 header file out of the limelight.
Currently this is on everyone's include path and is getting exported
via the NDK.

Change-Id: Ia417839fb65c7e0afddcd9fae3438665dae8e752
2014-11-26 19:31:19 -08:00
Elliott Hughes
bfc06e4eab am 87516a65: Merge "[MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6"
* commit '87516a6508add943cea99f3d29cb8bd89c4a3bdb':
  [MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6
2014-11-27 02:35:02 +00:00
Elliott Hughes
87516a6508 Merge "[MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6" 2014-11-27 02:28:50 +00:00
Elliott Hughes
5d6ecd79db am cc0a9e6b: Merge "bionic tests: add setjmp/_setjmp/sigsetjmp tests."
* commit 'cc0a9e6bdf0c07f0ce9fab106a026bfb30757b86':
  bionic tests: add setjmp/_setjmp/sigsetjmp tests.
2014-11-27 01:52:32 +00:00
Elliott Hughes
cc0a9e6bdf Merge "bionic tests: add setjmp/_setjmp/sigsetjmp tests." 2014-11-27 01:33:09 +00:00
Yongqin Liu
9fea4090f1 bionic tests: add setjmp/_setjmp/sigsetjmp tests.
Bug: 17288973
Change-Id: I2808eee58cbddae1b16fbe19a715b72d6dbaaec3
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-11-26 17:31:24 -08:00
Yabin Cui
d5c652756b support _POSIX_CPUTIME
Bug: 18490039
Change-Id: I01fa83b48e1b908de1f227b6e4f98e280bcd50ee
2014-11-26 17:14:50 -08:00
Nicolas Geoffray
196358e019 am ef06f061: am 212452dc: am f64c43ba: Merge "Revert "Use mmap to create the pthread_internal_t.""
* commit 'ef06f061441a495c143e8f867ebf75b3221f3686':
  Revert "Use mmap to create the pthread_internal_t."
2014-11-26 12:15:41 +00:00
Nicolas Geoffray
ef06f06144 am 212452dc: am f64c43ba: Merge "Revert "Use mmap to create the pthread_internal_t.""
* commit '212452dc6ea16ec29d1b44317156f194ac25c226':
  Revert "Use mmap to create the pthread_internal_t."
2014-11-26 12:09:30 +00:00
Nicolas Geoffray
212452dc6e am f64c43ba: Merge "Revert "Use mmap to create the pthread_internal_t.""
* commit 'f64c43ba6c9244c50e904961dc432f04b1dfcfd9':
  Revert "Use mmap to create the pthread_internal_t."
2014-11-26 12:03:26 +00:00
Nicolas Geoffray
f64c43ba6c Merge "Revert "Use mmap to create the pthread_internal_t."" 2014-11-26 11:57:46 +00:00
Nicolas Geoffray
5b8ceff5f8 Revert "Use mmap to create the pthread_internal_t."
Unfortunately, this change provokes random crashes for ART, and
I have seen libc crashes on the device that might be related to it.

Reverting it fixes the ART crashes. there is unfortunately no
stack trace for the crashes, but just a "Segmentation fault" message.


This reverts commit cc5f6543e3f91385b9a912438965b7e8265df54a.

Change-Id: I68dca8e1e9b9edcce7eb84596e8db619e40e8052
2014-11-26 11:56:54 +00:00
Duane Sand
3a4786348e [MIPS] Rewrite of setjmp/longjmp for mips64 and mipsr6
Change-Id: Idcd13413520dd503bc9cf782553675313e500a83
2014-11-25 17:33:10 -08:00
Yabin Cui
3f22e91900 am 0673b42e: am 896038a4: am 4a6069a8: Merge "Use mmap to create the pthread_internal_t."
* commit '0673b42e16f57459b74773dc622d05f7fa4039c3':
  Use mmap to create the pthread_internal_t.
2014-11-26 00:09:17 +00:00
Yabin Cui
0673b42e16 am 896038a4: am 4a6069a8: Merge "Use mmap to create the pthread_internal_t."
* commit '896038a454f869943d3c4e82b01b9687962007cf':
  Use mmap to create the pthread_internal_t.
2014-11-26 00:04:23 +00:00
Yabin Cui
896038a454 am 4a6069a8: Merge "Use mmap to create the pthread_internal_t."
* commit '4a6069a8af7755076283749111b7fac308c7bb7e':
  Use mmap to create the pthread_internal_t.
2014-11-25 23:58:36 +00:00
Yabin Cui
4a6069a8af Merge "Use mmap to create the pthread_internal_t." 2014-11-25 23:53:44 +00:00
Yabin Cui
cc5f6543e3 Use mmap to create the pthread_internal_t.
Bug: 16847284
Change-Id: Ic8c85f95afac1d8422ecb69674c688d1fecb6a44
2014-11-25 15:25:06 -08:00
Yabin Cui
286e46735e am 779cd7d7: am e9367cee: am eb3a5e02: Merge "flesh out sysconf(3) and the _POSIX_* constants"
* commit '779cd7d7c708fef1f7d689e8eb41b3c49bf54b5b':
  flesh out sysconf(3) and the _POSIX_* constants
2014-11-24 02:20:37 +00:00
Yabin Cui
779cd7d7c7 am e9367cee: am eb3a5e02: Merge "flesh out sysconf(3) and the _POSIX_* constants"
* commit 'e9367cee64349b16807efd448ab1261a091eeb22':
  flesh out sysconf(3) and the _POSIX_* constants
2014-11-24 02:17:09 +00:00
Yabin Cui
e9367cee64 am eb3a5e02: Merge "flesh out sysconf(3) and the _POSIX_* constants"
* commit 'eb3a5e026e65ea80b17580a71f4451f5cf5d6612':
  flesh out sysconf(3) and the _POSIX_* constants
2014-11-24 02:13:02 +00:00
Yabin Cui
eb3a5e026e Merge "flesh out sysconf(3) and the _POSIX_* constants" 2014-11-24 01:59:23 +00:00
Elliott Hughes
609cd58c31 am cfd3cc57: am bb03af30: am 95a02366: Merge "Sync with upstream OpenBSD fts.c."
* commit 'cfd3cc57475146fafe18bdbb538eddc11fe14f3f':
  Sync with upstream OpenBSD fts.c.
2014-11-23 18:19:04 +00:00
Elliott Hughes
cfd3cc5747 am bb03af30: am 95a02366: Merge "Sync with upstream OpenBSD fts.c."
* commit 'bb03af305d22dbbc4d07da033a6683eb93880223':
  Sync with upstream OpenBSD fts.c.
2014-11-23 18:14:12 +00:00
Elliott Hughes
bb03af305d am 95a02366: Merge "Sync with upstream OpenBSD fts.c."
* commit '95a02366f2697ed65c4a2849a9cbde3d403142e3':
  Sync with upstream OpenBSD fts.c.
2014-11-23 18:09:50 +00:00
Elliott Hughes
95a02366f2 Merge "Sync with upstream OpenBSD fts.c." 2014-11-23 18:06:29 +00:00
Dan Albert
909f6d51fc am 67788cce: am 26036279: am 806dd9f9: Merge "Move some pthread functions to signal.h."
* commit '67788cce25b133d85c89dfee3562c739ab01b3bb':
  Move some pthread functions to signal.h.
2014-11-22 22:47:25 +00:00
Dan Albert
67788cce25 am 26036279: am 806dd9f9: Merge "Move some pthread functions to signal.h."
* commit '260362798c28446231c5c387c6b0336cf87ab3d3':
  Move some pthread functions to signal.h.
2014-11-22 22:44:43 +00:00
Dan Albert
260362798c am 806dd9f9: Merge "Move some pthread functions to signal.h."
* commit '806dd9f90c8daadfafd19d69e3f36bb00729cb8e':
  Move some pthread functions to signal.h.
2014-11-22 22:42:34 +00:00
Dan Albert
806dd9f90c Merge "Move some pthread functions to signal.h." 2014-11-22 22:38:51 +00:00
Elliott Hughes
2818279ace Sync with upstream OpenBSD fts.c.
Change-Id: Ia7e26b603f6461095b5a8d7e8a6cdf4f8279fa84
2014-11-21 19:27:28 -08:00
Yabin Cui
1c19194c9d flesh out sysconf(3) and the _POSIX_* constants
Bug: 17571891
Change-Id: I81036615486bde65969ae5662587fcc88348474e
2014-11-21 19:10:52 -08:00
Elliott Hughes
d4c6d8918a am 2a796800: am 97b2a7ba: am d77c1ec9: Merge "Bring our <machine/endian.h> files back in sync."
* commit '2a796800725e3fdb889994c5e1ad6ace6bbd05e0':
  Bring our <machine/endian.h> files back in sync.
2014-11-22 02:55:34 +00:00
Elliott Hughes
2a79680072 am 97b2a7ba: am d77c1ec9: Merge "Bring our <machine/endian.h> files back in sync."
* commit '97b2a7bae0a8f9164d4b9de2b9e8676463dcb8b3':
  Bring our <machine/endian.h> files back in sync.
2014-11-22 02:51:24 +00:00
Elliott Hughes
97b2a7bae0 am d77c1ec9: Merge "Bring our <machine/endian.h> files back in sync."
* commit 'd77c1ec90a17ac91c24904670ba9a3a60fe4cd3d':
  Bring our <machine/endian.h> files back in sync.
2014-11-22 02:44:26 +00:00
Elliott Hughes
d77c1ec90a Merge "Bring our <machine/endian.h> files back in sync." 2014-11-22 02:41:44 +00:00
Elliott Hughes
ee369fb319 Bring our <machine/endian.h> files back in sync.
They'd drifted slightly which led to a compilation error in toybox,
which was assuming pid_t was defined. arm and arm64 were picking it
up via <endian.h> but x86 wasn't.

Change-Id: I58401e6c0066959dfc3b305b020876aaf7074bbf
2014-11-21 18:34:36 -08:00
Dmitriy Ivanov
ca27df9ba6 am 681e4896: am 7b7e7992: am 80838f19: Merge "Mips: remove arch-specific atexit.h"
* commit '681e4896377ddec7d28a9b14982840cb16db4609':
  Mips: remove arch-specific atexit.h
2014-11-21 23:59:44 +00:00
Dmitriy Ivanov
c19b3c7170 am c0e7e9c0: am d53cdb59: am ff1c2526: Merge "Mips: Remove unused files"
* commit 'c0e7e9c04080d2ddc456fcb30702012c372b344b':
  Mips: Remove unused files
2014-11-21 23:59:43 +00:00
Dmitriy Ivanov
64a3ffc861 am ceddf594: am cfacfcc3: am 6b1230b5: Merge "Mips: Reuse atexit.h from libc/arch-common"
* commit 'ceddf5946361d5ad3c2677a3164d8b716196d338':
  Mips: Reuse atexit.h from libc/arch-common
2014-11-21 23:13:24 +00:00
Dan Albert
13009d7726 am 76f4498c: am a77b8529: am 66ca8249: Merge "Revert "<sched.h> should offer both __sched_priority and sched_priority.""
* commit '76f4498c4a5b78bb3ec6508c4c7e88f48fa76fda':
  Revert "<sched.h> should offer both __sched_priority and sched_priority."
2014-11-21 23:12:57 +00:00
Dmitriy Ivanov
681e489637 am 7b7e7992: am 80838f19: Merge "Mips: remove arch-specific atexit.h"
* commit '7b7e799209a47a22d596fda1a5946f17f17052db':
  Mips: remove arch-specific atexit.h
2014-11-21 23:07:29 +00:00
Dmitriy Ivanov
c0e7e9c040 am d53cdb59: am ff1c2526: Merge "Mips: Remove unused files"
* commit 'd53cdb59c33b25005dcd3f6bd85cf4ce11908432':
  Mips: Remove unused files
2014-11-21 23:07:27 +00:00
Dmitriy Ivanov
7b7e799209 am 80838f19: Merge "Mips: remove arch-specific atexit.h"
* commit '80838f190ad9454d1a9ebc2204cbfbbb22086f56':
  Mips: remove arch-specific atexit.h
2014-11-21 23:04:49 +00:00
Dmitriy Ivanov
d53cdb59c3 am ff1c2526: Merge "Mips: Remove unused files"
* commit 'ff1c25262d801e631c88526346989b033805607d':
  Mips: Remove unused files
2014-11-21 23:01:11 +00:00
Dmitriy Ivanov
80838f190a Merge "Mips: remove arch-specific atexit.h" 2014-11-21 22:59:07 +00:00
Dmitriy Ivanov
4ae178f81d Mips: remove arch-specific atexit.h
Change-Id: I687ff4ead6c5e81db44782bf851cb84f87bfe085
2014-11-21 14:42:53 -08:00
Dmitriy Ivanov
ff1c25262d Merge "Mips: Remove unused files" 2014-11-21 22:38:47 +00:00
Dmitriy Ivanov
e3e8d15f23 Mips: Remove unused files
Change-Id: If98b832ee32f6dcd9f5d7ae21c601c210adfad6b
2014-11-21 14:29:43 -08:00
Dmitriy Ivanov
ceddf59463 am cfacfcc3: am 6b1230b5: Merge "Mips: Reuse atexit.h from libc/arch-common"
* commit 'cfacfcc398dc3990625cac12203693d4fead63b0':
  Mips: Reuse atexit.h from libc/arch-common
2014-11-21 21:23:23 +00:00
Dmitriy Ivanov
cfacfcc398 am 6b1230b5: Merge "Mips: Reuse atexit.h from libc/arch-common"
* commit '6b1230b57649309050d21929e02d0ccab87ff36b':
  Mips: Reuse atexit.h from libc/arch-common
2014-11-21 21:20:57 +00:00
Dmitriy Ivanov
6b1230b576 Merge "Mips: Reuse atexit.h from libc/arch-common" 2014-11-21 21:17:19 +00:00
Dmitriy Ivanov
c619603a31 Mips: Reuse atexit.h from libc/arch-common
Change-Id: Ica1670e6d3d1b6b0c64df93720efa65586e67727
2014-11-21 13:07:36 -08:00
Dan Albert
76f4498c4a am a77b8529: am 66ca8249: Merge "Revert "<sched.h> should offer both __sched_priority and sched_priority.""
* commit 'a77b8529ebe1b952ae89649c24f38859bd7e7b46':
  Revert "<sched.h> should offer both __sched_priority and sched_priority."
2014-11-21 20:25:59 +00:00
Dan Albert
a77b8529eb am 66ca8249: Merge "Revert "<sched.h> should offer both __sched_priority and sched_priority.""
* commit '66ca82495cb24545897bb4141f55afd2f17775b7':
  Revert "<sched.h> should offer both __sched_priority and sched_priority."
2014-11-21 20:19:48 +00:00
Dan Albert
66ca82495c Merge "Revert "<sched.h> should offer both __sched_priority and sched_priority."" 2014-11-21 20:15:55 +00:00
Dan Albert
75ef63d6cf Move some pthread functions to signal.h.
POSIX specifies that pthread_kill(3) and pthread_sigmask(3) are
supposed to live in signal.h rather than pthread.h.

Since signal.h now needs pthread_t and pthread_attr_t, I've moved
those defintions into include/machine/pthread_types.h to keep the
namespace clean. I also sorted some includes. The combination of these
two things seems to have exploded into a cascade of missing includes,
so this patch also cleans up all those.

Change-Id: Icfa92a39432fe83f542a797e5a113289d7e4ad0c
2014-11-21 10:26:09 -08:00
Dan Albert
f664034887 Revert "<sched.h> should offer both __sched_priority and sched_priority."
This was only ever added to keep strace compiling, but strace has
since (actually, prior) fixed their source to use the less ugly name,
so we don't need this anymore (good riddance, #define!).

This reverts commit bbb34f9536db8234b0b43bd5333256fa4accc50e.
2014-11-21 10:24:40 -08:00
Dmitriy Ivanov
5669390ec9 am 6854b511: am c07f7ee7: am a847073a: Merge "Rename test_forked -> test_isolated"
* commit '6854b511f26cfafdc8ae58eb905c3286bafe672f':
  Rename test_forked -> test_isolated
2014-11-21 16:15:42 +00:00
Dmitriy Ivanov
6854b511f2 am c07f7ee7: am a847073a: Merge "Rename test_forked -> test_isolated"
* commit 'c07f7ee70daa04aa5d77771d8859592d110a7177':
  Rename test_forked -> test_isolated
2014-11-21 16:11:18 +00:00
Dmitriy Ivanov
c07f7ee70d am a847073a: Merge "Rename test_forked -> test_isolated"
* commit 'a847073a05295cc140fc79c9d433961442a6cae4':
  Rename test_forked -> test_isolated
2014-11-21 16:07:11 +00:00
Dmitriy Ivanov
a847073a05 Merge "Rename test_forked -> test_isolated" 2014-11-21 16:02:43 +00:00
Dmitriy Ivanov
0864d8bc47 Rename test_forked -> test_isolated
Change-Id: Ie72627e986c159832cbd3635d8ff5b1af3d5b1eb
2014-11-20 22:53:59 -08:00
Dmitriy Ivanov
6e57509488 am 7af0b557: am 4b0e0fa7: am 8b4b8273: Merge "Add test_forked() option"
* commit '7af0b557405893352f01f396f70a01280b5a555d':
  Add test_forked() option
2014-11-21 02:31:59 +00:00
Dmitriy Ivanov
7af0b55740 am 4b0e0fa7: am 8b4b8273: Merge "Add test_forked() option"
* commit '4b0e0fa75337449635845d5adf1f337d69608ba0':
  Add test_forked() option
2014-11-21 02:15:04 +00:00
Dmitriy Ivanov
4b0e0fa753 am 8b4b8273: Merge "Add test_forked() option"
* commit '8b4b82733877928da429e47d9a9bb73317517b2e':
  Add test_forked() option
2014-11-21 01:27:14 +00:00
Dmitriy Ivanov
8b4b827338 Merge "Add test_forked() option" 2014-11-21 01:21:16 +00:00
Dmitriy Ivanov
00e37818a7 Add test_forked() option
Executing test via test_forked() allows us to
 avoid undesired global state changes in tests like
 atexit, dlopen(.., RTLD_NODELETE) and similar.

Change-Id: I118cdf009269ab5dd7b117c9b61dafa47de2a011
2014-11-20 17:11:06 -08:00
Elliott Hughes
a604c4ac2f am d41e4403: am 432f6458: Fix flockfile(3) and friends for stdin/stdout/stderr too.
* commit 'd41e4403101ffab73c728828d56f254af2760947':
  Fix flockfile(3) and friends for stdin/stdout/stderr too.
2014-11-20 23:19:32 +00:00
Elliott Hughes
d41e440310 am 432f6458: Fix flockfile(3) and friends for stdin/stdout/stderr too.
* commit '432f645887466ed7099addb20fa8915c8a29fcab':
  Fix flockfile(3) and friends for stdin/stdout/stderr too.
2014-11-20 23:06:31 +00:00
Elliott Hughes
060521af91 am 2feba8cb: am 4e14c9b8: am 770198d3: Merge "Make the ftw(3) tests a bit more thorough."
* commit '2feba8cb14f0c9eee5c175279f90245fea8770ba':
  Make the ftw(3) tests a bit more thorough.
2014-11-20 00:23:08 +00:00
Elliott Hughes
2feba8cb14 am 4e14c9b8: am 770198d3: Merge "Make the ftw(3) tests a bit more thorough."
* commit '4e14c9b81faeab71fae62e24f5d8fb36337969ab':
  Make the ftw(3) tests a bit more thorough.
2014-11-20 00:18:14 +00:00
Elliott Hughes
4e14c9b81f am 770198d3: Merge "Make the ftw(3) tests a bit more thorough."
* commit '770198d3f707d5eccd6796f311015903aec31b26':
  Make the ftw(3) tests a bit more thorough.
2014-11-20 00:14:39 +00:00
Elliott Hughes
770198d3f7 Merge "Make the ftw(3) tests a bit more thorough." 2014-11-20 00:09:32 +00:00
Elliott Hughes
d0527de679 am c26375ae: am 4ed111ef: am 5313c3ff: Merge "Fix flockfile(3) and friends for stdin/stdout/stderr too."
* commit 'c26375ae5176179d51263306b2f40c0f1eff322f':
  Fix flockfile(3) and friends for stdin/stdout/stderr too.
2014-11-20 00:02:08 +00:00
Elliott Hughes
c26375ae51 am 4ed111ef: am 5313c3ff: Merge "Fix flockfile(3) and friends for stdin/stdout/stderr too."
* commit '4ed111efe3a7f5b37039e3cce8039941977f390f':
  Fix flockfile(3) and friends for stdin/stdout/stderr too.
2014-11-19 23:58:03 +00:00
Elliott Hughes
4ed111efe3 am 5313c3ff: Merge "Fix flockfile(3) and friends for stdin/stdout/stderr too."
* commit '5313c3ff89db33dc0af3fabfe142a7219adce0aa':
  Fix flockfile(3) and friends for stdin/stdout/stderr too.
2014-11-19 23:51:22 +00:00
Elliott Hughes
432f645887 Fix flockfile(3) and friends for stdin/stdout/stderr too.
stdin/stdout/stderr are special; their mutexes are initialized by
__sinit. There's no unit test for this, because __sinit has already
been called by the time the first unit test runs, but you could
reproduce this failure with a trivial main() that calls flockfile
or ftrylockfile on one of the standard streams before otherwise
using stdio.

Bug: 18208568

(cherry picked from commit c48c3e4bb3d1665f3e9fa2785daafa72dfe59399)

Change-Id: Ia0c43ed4ac69daea8152aee9516415a6e3f8a042
2014-11-19 15:49:09 -08:00
Elliott Hughes
5313c3ff89 Merge "Fix flockfile(3) and friends for stdin/stdout/stderr too." 2014-11-19 23:48:19 +00:00
Elliott Hughes
63bd43bbdc Make the ftw(3) tests a bit more thorough.
These also test much of fts(3).

Change-Id: Ia9245d6acbbd071191563ab1b91a400044104028
2014-11-19 15:47:53 -08:00
Elliott Hughes
c48c3e4bb3 Fix flockfile(3) and friends for stdin/stdout/stderr too.
stdin/stdout/stderr are special; their mutexes are initialized by
__sinit. There's no unit test for this, because __sinit has already
been called by the time the first unit test runs, but you could
reproduce this failure with a trivial main() that calls flockfile
or ftrylockfile on one of the standard streams before otherwise
using stdio.

Bug: 18208568
Change-Id: I28d232cf05a9f198a2bed61854d8047b23d2091d
2014-11-19 15:16:51 -08:00
Dmitriy Ivanov
b9e0a8490a am e0496865: am d3dcb783: am 6b48b20a: Merge "Yet another relocation test"
* commit 'e04968655f9881dcdc2756a80e341b9935361c46':
  Yet another relocation test
2014-11-19 19:52:19 +00:00
Dmitriy Ivanov
e04968655f am d3dcb783: am 6b48b20a: Merge "Yet another relocation test"
* commit 'd3dcb7830b3cbd2a650b6fa29e672e45fc3d689b':
  Yet another relocation test
2014-11-19 19:45:23 +00:00
Dmitriy Ivanov
d3dcb7830b am 6b48b20a: Merge "Yet another relocation test"
* commit '6b48b20a1e613dcb41704deb266142a7cc45588c':
  Yet another relocation test
2014-11-19 19:40:48 +00:00
Dmitriy Ivanov
6b48b20a1e Merge "Yet another relocation test" 2014-11-19 19:35:59 +00:00
Dmitriy Ivanov
7699d13a74 Yet another relocation test
This time we check if a -> b -> c function in 'a' relocates against
 implementation in 'c'.

Change-Id: I528180c3efd346bd447ea0237e5a8a0ac3cc031f
2014-11-19 10:39:05 -08:00
David 'Digit' Turner
8e6812bb00 am d2e2c336: am a2f6e783: am c9278b8a: Merge "libc: Move <sgidefs.h> to libc/arch-mips/"
* commit 'd2e2c3361a05d462c2669f4c1486841ed60e1f0b':
  libc: Move <sgidefs.h> to libc/arch-mips/
2014-11-19 15:02:18 +00:00
David 'Digit' Turner
d2e2c3361a am a2f6e783: am c9278b8a: Merge "libc: Move <sgidefs.h> to libc/arch-mips/"
* commit 'a2f6e783cd2a9c503194de3bd0e3d6ecac974cc2':
  libc: Move <sgidefs.h> to libc/arch-mips/
2014-11-19 14:56:44 +00:00
David 'Digit' Turner
a2f6e783cd am c9278b8a: Merge "libc: Move <sgidefs.h> to libc/arch-mips/"
* commit 'c9278b8a17e9a0a4e85c377105f500a7c1f41535':
  libc: Move <sgidefs.h> to libc/arch-mips/
2014-11-19 14:53:45 +00:00
David 'Digit' Turner
c9278b8a17 Merge "libc: Move <sgidefs.h> to libc/arch-mips/" 2014-11-19 14:49:52 +00:00
Yabin Cui
aeb1aecf51 am 2936af2e: am 9014065b: am 649f78df: Merge "fix shared gid support in getpwnam/getgrnam"
* commit '2936af2ec924e8f40a352b67a9bf214403c3aa36':
  fix shared gid support in getpwnam/getgrnam
2014-11-19 04:40:11 +00:00
Yabin Cui
2936af2ec9 am 9014065b: am 649f78df: Merge "fix shared gid support in getpwnam/getgrnam"
* commit '9014065b98664114528bc37bf1c2bb76546ef6b8':
  fix shared gid support in getpwnam/getgrnam
2014-11-19 04:35:28 +00:00
Yabin Cui
9014065b98 am 649f78df: Merge "fix shared gid support in getpwnam/getgrnam"
* commit '649f78df79bc45a46de9f3c391f395d5ab4fe73a':
  fix shared gid support in getpwnam/getgrnam
2014-11-19 04:28:31 +00:00
Yabin Cui
649f78df79 Merge "fix shared gid support in getpwnam/getgrnam" 2014-11-19 04:25:24 +00:00
Yabin Cui
a04c79b9d3 fix shared gid support in getpwnam/getgrnam
Bug: 18374693
Change-Id: I5353403cbbead6f6abac87bee2cf53a60dba408c
2014-11-18 19:58:04 -08:00
Dmitriy Ivanov
3ff915aab4 am 9a130604: am 52663836: am 27aa9c5b: Merge "Fix jump to unmapped memory on atexit"
* commit '9a130604173fcec4f3246e3e27376eeff7132d11':
  Fix jump to unmapped memory on atexit
2014-11-18 21:38:00 +00:00
Dmitriy Ivanov
9a13060417 am 52663836: am 27aa9c5b: Merge "Fix jump to unmapped memory on atexit"
* commit '5266383620998526652694d00155e9c6e49fb787':
  Fix jump to unmapped memory on atexit
2014-11-18 21:33:01 +00:00
Dmitriy Ivanov
5266383620 am 27aa9c5b: Merge "Fix jump to unmapped memory on atexit"
* commit '27aa9c5b50cc3e979fc67c1bf5296dfd725c8540':
  Fix jump to unmapped memory on atexit
2014-11-18 21:28:24 +00:00
Dmitriy Ivanov
27aa9c5b50 Merge "Fix jump to unmapped memory on atexit" 2014-11-18 21:25:37 +00:00
Dmitriy Ivanov
a2547055f2 Fix jump to unmapped memory on atexit
Split d-tor calls and soinfo_free to 2 separate steps

Bug: 18338888
Change-Id: Idbcb7242ade16fa18cba7fe30505ebd8d6023622
2014-11-18 13:16:27 -08:00
David 'Digit' Turner
6e50cb4544 libc: Move <sgidefs.h> to libc/arch-mips/
This is a MIPS-only header, and should not be part of the common
headers. See http://b.android.com/79841 for context.

Change-Id: I610bc3ff626b57e7854dad15a4a2f67e1e5ded75
2014-11-18 20:13:10 +01:00
Elliott Hughes
7d96a50f4e am 927fa38a: am cbdc7e68: am 8eda0a6d: Merge "libc: Fix mktime returns an uncorrect time in empty TZ case"
* commit '927fa38a53dff3d5a9386af7d082bb4428d4029e':
  libc: Fix mktime returns an uncorrect time in empty TZ case
2014-11-17 23:28:04 +00:00
Elliott Hughes
927fa38a53 am cbdc7e68: am 8eda0a6d: Merge "libc: Fix mktime returns an uncorrect time in empty TZ case"
* commit 'cbdc7e6883a7d1514af5cd8c1e186af3c487e930':
  libc: Fix mktime returns an uncorrect time in empty TZ case
2014-11-17 23:23:38 +00:00
Elliott Hughes
cbdc7e6883 am 8eda0a6d: Merge "libc: Fix mktime returns an uncorrect time in empty TZ case"
* commit '8eda0a6d69fda865b576bc18311a3d79c84b42a1':
  libc: Fix mktime returns an uncorrect time in empty TZ case
2014-11-17 23:18:39 +00:00
Elliott Hughes
8eda0a6d69 Merge "libc: Fix mktime returns an uncorrect time in empty TZ case" 2014-11-17 23:14:58 +00:00
Elliott Hughes
4380936524 am 58802c1a: resolved conflicts for merge of 047d943e to lmp-mr1-dev-plus-aosp
* commit '58802c1a458fb32f9d42a5f1486f61270a55e0dd':
  sysconf(3) returns long.
2014-11-17 19:32:33 +00:00
Elliott Hughes
58802c1a45 resolved conflicts for merge of 047d943e to lmp-mr1-dev-plus-aosp
Change-Id: Ic0e230083f25ab5a026beae80a1ddef9ff60accb
2014-11-17 11:26:42 -08:00
Dmitriy Ivanov
2aad16902f am 7b78a69d: am 78d809fd: am ee4c8feb: Merge "bionic/test: migrate sysconf tests from system/extras to bionic/tests"
* commit '7b78a69d85dc3ee5e1f7f64607e0ae80d0aec0f6':
  bionic/test: migrate sysconf tests from system/extras to bionic/tests
2014-11-17 19:00:14 +00:00
Elliott Hughes
ef73e44549 am f64b1a8b: am 18aa454f: am f2c88209: Merge "Add getaddrinfo(3) tests for NULL arguments."
* commit 'f64b1a8be284307569f3d0fac847125aff60b0cb':
  Add getaddrinfo(3) tests for NULL arguments.
2014-11-17 19:00:13 +00:00
Elliott Hughes
fa4606bbb8 am ac39e08b: am c0aba7c5: am 35f8910e: Merge "Remove remaining bionic support for TARGET_CPU_SMP being false."
* commit 'ac39e08bd521f735460789dfba1cf307b5deb5fd':
  Remove remaining bionic support for TARGET_CPU_SMP being false.
2014-11-17 19:00:12 +00:00
Dmitriy Ivanov
7b78a69d85 am 78d809fd: am ee4c8feb: Merge "bionic/test: migrate sysconf tests from system/extras to bionic/tests"
* commit '78d809fd4b5fe6f74e23e718a3c14c68200ac203':
  bionic/test: migrate sysconf tests from system/extras to bionic/tests
2014-11-17 18:53:04 +00:00
Elliott Hughes
f64b1a8be2 am 18aa454f: am f2c88209: Merge "Add getaddrinfo(3) tests for NULL arguments."
* commit '18aa454f2f7c67999d06f2fd3f0db55b78942d64':
  Add getaddrinfo(3) tests for NULL arguments.
2014-11-17 18:53:03 +00:00
Elliott Hughes
ac39e08bd5 am c0aba7c5: am 35f8910e: Merge "Remove remaining bionic support for TARGET_CPU_SMP being false."
* commit 'c0aba7c5ad7535ca5edd0a6683dd4a483701fee9':
  Remove remaining bionic support for TARGET_CPU_SMP being false.
2014-11-17 18:53:02 +00:00
Dmitriy Ivanov
78d809fd4b am ee4c8feb: Merge "bionic/test: migrate sysconf tests from system/extras to bionic/tests"
* commit 'ee4c8febb7bd1f5492486cc11980f925425b02ec':
  bionic/test: migrate sysconf tests from system/extras to bionic/tests
2014-11-17 18:48:23 +00:00
Dmitriy Ivanov
ee4c8febb7 Merge "bionic/test: migrate sysconf tests from system/extras to bionic/tests" 2014-11-17 18:43:32 +00:00
Elliott Hughes
18aa454f2f am f2c88209: Merge "Add getaddrinfo(3) tests for NULL arguments."
* commit 'f2c882095b5747cd7f3158428208580a7ff72ed6':
  Add getaddrinfo(3) tests for NULL arguments.
2014-11-17 18:31:53 +00:00
Elliott Hughes
c0aba7c5ad am 35f8910e: Merge "Remove remaining bionic support for TARGET_CPU_SMP being false."
* commit '35f8910e4cdf3f7d0b877394524c7dd719084187':
  Remove remaining bionic support for TARGET_CPU_SMP being false.
2014-11-17 18:31:51 +00:00
Elliott Hughes
f2c882095b Merge "Add getaddrinfo(3) tests for NULL arguments." 2014-11-17 18:26:46 +00:00
Elliott Hughes
35f8910e4c Merge "Remove remaining bionic support for TARGET_CPU_SMP being false." 2014-11-17 18:24:22 +00:00
Elliott Hughes
bfbf7a4300 Remove remaining bionic support for TARGET_CPU_SMP being false.
Change-Id: I02a0a1c0ae55ccb5c45d17fb99a09c374d71def4
2014-11-17 10:06:20 -08:00
Elliott Hughes
32fea147ea Add getaddrinfo(3) tests for NULL arguments.
According to https://github.com/ukanth/afwall/pull/213 some OEMs have
shipped a getaddrinfo(3) that crashes given NULL hostnames.

Change-Id: I9cea5fdd68546b7c64cf47e10e2b2b4d672b69d0
2014-11-16 12:14:04 -08:00
Dan Albert
6c35e5577b am 27cdb39e: am c449b7a5: am eef1eb64: Merge "Allow asan for glibc tests."
* commit '27cdb39e35b732bf413e346868bc7cf6e9ee710b':
  Allow asan for glibc tests.
2014-11-15 06:59:31 +00:00
Dan Albert
27cdb39e35 am c449b7a5: am eef1eb64: Merge "Allow asan for glibc tests."
* commit 'c449b7a533f797b223cdc2c8129de2261a547823':
  Allow asan for glibc tests.
2014-11-15 06:55:38 +00:00
Dan Albert
c449b7a533 am eef1eb64: Merge "Allow asan for glibc tests."
* commit 'eef1eb64bb5be68bfb00f8e71d3118a2cfec99e7':
  Allow asan for glibc tests.
2014-11-15 06:51:47 +00:00
Dan Albert
eef1eb64bb Merge "Allow asan for glibc tests." 2014-11-15 06:47:08 +00:00
Dan Albert
01f1ff2440 Allow asan for glibc tests.
SANITIZE_HOST will break if we don't allow ASAN.

Change-Id: I0beed82b058db391f633e0ea1098f140497c65d4
2014-11-14 20:00:06 -08:00
Satoru Takeuchi
154e2026c8 libc: Fix mktime returns an uncorrect time in empty TZ case
The mktime API returned an uncorrect time when TZ is set as empty.
A timezone UTC/GMT+0 should be implied in the empty case. However
mktime keeps previous information about timezone. If mktime was called
with a timezone which has DST before, the "defaulttype" member of
"state" structure wouldn't be 0. Then it would be used next time,
even though UTC/GMT+0 doesn't have DST.

Added initialization of the "defaulttype" in the empty TZ case.

Change-Id: Ic480c63c548c05444134e0aefb30a7b380e3f40b
2014-11-14 18:13:07 -08:00
Derek Xue
bc6447673f bionic/test: migrate sysconf tests from system/extras to bionic/tests
The old test are implemented in file:
  system/extras/tests/bionic/libc/other/test_sysconf.c
This change is to migrate them to bionic/tests with the gtest format.

and since the sysconf is defined in unistd.h, will put the test under
bionic/tests/unistd_test.cpp file as unistd.syscon test

Change-Id: Ie519147c1c86a6c4cefa8c88b18bf58bdfbffbdb
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-11-15 09:48:36 +08:00
Yabin Cui
167a932685 am 6ccaaa94: am 48c6f1b6: am 38569312: Merge "Add functions in sysinfo.h."
* commit '6ccaaa947aa271366c70023abbf7cef6d1e88a3d':
  Add functions in sysinfo.h.
2014-11-15 01:48:07 +00:00
Yabin Cui
6ccaaa947a am 48c6f1b6: am 38569312: Merge "Add functions in sysinfo.h."
* commit '48c6f1b66d0cb81aee81108b135b179c2bc46d1b':
  Add functions in sysinfo.h.
2014-11-15 01:01:29 +00:00
Yabin Cui
48c6f1b66d am 38569312: Merge "Add functions in sysinfo.h."
* commit '38569312bc5a3a4688d45997d81b59abb0a60825':
  Add functions in sysinfo.h.
2014-11-15 00:56:42 +00:00
Yabin Cui
38569312bc Merge "Add functions in sysinfo.h." 2014-11-15 00:53:37 +00:00
Yabin Cui
9d93986481 Add functions in sysinfo.h.
Bug: 17703902

Change-Id: I699d12d76a8fc483c919be730c2ac63641b71a1d
2014-11-14 16:22:48 -08:00
Yabin Cui
2b10fe28ae am 0006a38a: am b4e7f4e2: am 661423a4: Merge "Increase support of pathconf options."
* commit '0006a38adabce47b99690f605a51e45225f0ddaf':
  Increase support of pathconf options.
2014-11-14 23:55:48 +00:00
Yabin Cui
0006a38ada am b4e7f4e2: am 661423a4: Merge "Increase support of pathconf options."
* commit 'b4e7f4e2263d4763d9507463189ef8f50fd58a67':
  Increase support of pathconf options.
2014-11-14 23:52:53 +00:00
Yabin Cui
b4e7f4e226 am 661423a4: Merge "Increase support of pathconf options."
* commit '661423a453b2692d592df56307a876dfc35c50f2':
  Increase support of pathconf options.
2014-11-14 23:49:21 +00:00
Yabin Cui
661423a453 Merge "Increase support of pathconf options." 2014-11-14 23:45:45 +00:00
Yabin Cui
b5e581abfe Increase support of pathconf options.
Bug: 18206366
Change-Id: Ie770e49f5af3631eb9fbd2cd5174edf004c81e00
2014-11-14 23:45:24 +00:00
Elliott Hughes
e75b8db1bf am 134ec088: am c2760b19: am 4cf942d3: Merge "sysconf(3) returns long."
* commit '134ec0880d2277bca0a09d75a15b8fff17a766a8':
  sysconf(3) returns long.
2014-11-14 23:44:54 +00:00
Elliott Hughes
134ec0880d am c2760b19: am 4cf942d3: Merge "sysconf(3) returns long."
* commit 'c2760b19e7821f241b5d0c31fb975d312600dc58':
  sysconf(3) returns long.
2014-11-14 23:41:35 +00:00
Elliott Hughes
047d943ee9 sysconf(3) returns long.
On LP32, this makes no difference. Not an ABI change.

On LP64, results are going to be in %rax or x0 whether they're 32- or 64-bit,
and the only difference is going to be whether the top bits are clobbered.

(cherry picked from commit 60d84af1726225320b26683b726e5e735d9d76e8)

Bug: 18390956
Change-Id: I722461498bc5494e2972fb07d5189dffe76e8993
2014-11-14 15:37:49 -08:00
Elliott Hughes
c2760b19e7 am 4cf942d3: Merge "sysconf(3) returns long."
* commit '4cf942d318f2856dff078798ce9a3eac5de593b7':
  sysconf(3) returns long.
2014-11-14 23:36:21 +00:00
Elliott Hughes
4cf942d318 Merge "sysconf(3) returns long." 2014-11-14 23:33:20 +00:00
Elliott Hughes
60d84af172 sysconf(3) returns long.
On LP32, this makes no difference. Not an ABI change.

On LP64, results are going to be in %rax or x0 whether they're 32- or 64-bit,
and the only difference is going to be whether the top bits are clobbered.

Bug: 18390956
Change-Id: I0bd4496231bdded34c1fa03e895021ac0df7f8e1
2014-11-14 15:14:44 -08:00
Elliott Hughes
9931612379 am 2ee4e1a1: am 7cc4d2ef: am cdcef73a: Merge "Add non-macro stdin/stdout/stderr too."
* commit '2ee4e1a137e9bf78f5ceab0e8d9b0a5cdc5d7eef':
  Add non-macro stdin/stdout/stderr too.
2014-11-14 23:05:39 +00:00
Elliott Hughes
2ee4e1a137 am 7cc4d2ef: am cdcef73a: Merge "Add non-macro stdin/stdout/stderr too."
* commit '7cc4d2efa9a89928c3ff51d171f7a03e12793038':
  Add non-macro stdin/stdout/stderr too.
2014-11-14 23:00:56 +00:00
Elliott Hughes
7cc4d2efa9 am cdcef73a: Merge "Add non-macro stdin/stdout/stderr too."
* commit 'cdcef73a23833ebd50bb5b654eb278b164e286ad':
  Add non-macro stdin/stdout/stderr too.
2014-11-14 22:56:03 +00:00
Elliott Hughes
cdcef73a23 Merge "Add non-macro stdin/stdout/stderr too." 2014-11-14 22:52:08 +00:00
Elliott Hughes
168667c972 Add non-macro stdin/stdout/stderr too.
Various C and C++ standards explicitly say that stdin/stdout/stderr
should be macros, but glibc makes them global variables too. This
means it's possible to write code that uses those names as locals,
but that code (toybox being an example) won't build on bionic.

If we'd done this earlier, we could have hidden __sF for LP64, but
it's too late now.

Change-Id: I90cf8c73f52b66e1760b8fa2e135b9f9f9651230
2014-11-14 14:42:59 -08:00
Dmitriy Ivanov
f9724cb931 am a3a78ab1: am 23145263: am 27fa71eb: Merge "Fix host build for arm/arm64"
* commit 'a3a78ab168449c2baa56dba18668779b4bb5dfa6':
  Fix host build for arm/arm64
2014-11-14 20:26:29 +00:00
Dmitriy Ivanov
a3a78ab168 am 23145263: am 27fa71eb: Merge "Fix host build for arm/arm64"
* commit '2314526342f2a3e39ec50d8f49652cf29bbfec51':
  Fix host build for arm/arm64
2014-11-14 20:24:09 +00:00
Dmitriy Ivanov
2314526342 am 27fa71eb: Merge "Fix host build for arm/arm64"
* commit '27fa71ebc6ef63ed8020d7b040640cb6c0cf2a45':
  Fix host build for arm/arm64
2014-11-14 20:21:52 +00:00
Dmitriy Ivanov
27fa71ebc6 Merge "Fix host build for arm/arm64" 2014-11-14 20:19:37 +00:00
Dmitriy Ivanov
9df4b13baf Fix host build for arm/arm64
Change-Id: Id92543e4080aede205b3e63099fa2baa36ba21f0
2014-11-14 12:17:06 -08:00
Dmitriy Ivanov
bd61a03c8d am f4710e12: am 4ed18141: am 898aab28: Merge "Add test for --hash-style=sysv"
* commit 'f4710e12fa524ad17fa8f3e5c743b68e35b13c3c':
  Add test for --hash-style=sysv
2014-11-14 19:42:37 +00:00
Dmitriy Ivanov
f4710e12fa am 4ed18141: am 898aab28: Merge "Add test for --hash-style=sysv"
* commit '4ed181416a6c5c3168d7a2f014d18a056d546d62':
  Add test for --hash-style=sysv
2014-11-14 19:38:52 +00:00
Dmitriy Ivanov
4ed181416a am 898aab28: Merge "Add test for --hash-style=sysv"
* commit '898aab282cff2a2949bc1726f8a4b81c1c30148e':
  Add test for --hash-style=sysv
2014-11-14 19:33:51 +00:00
Dmitriy Ivanov
898aab282c Merge "Add test for --hash-style=sysv" 2014-11-14 19:31:33 +00:00
Dmitriy Ivanov
042e6fa091 am 084778da: am ca8b70bc: am c490b502: Merge "Rename soinfo methods and fields"
* commit '084778daed3b4180d23c3157b6de536b02cc2638':
  Rename soinfo methods and fields
2014-11-14 19:30:53 +00:00
Dmitriy Ivanov
b3356773c6 Add test for --hash-style=sysv
With build system switched to gnu-hash we need
 a test for sysv-hashed library.

Change-Id: I34adc216fa79199aa46066cf13fcc1c1f2581f0e
2014-11-14 11:19:22 -08:00
Christopher Ferris
82f6fd9b13 am e4695e3c: am e6d238a5: am 59b1dea8: Merge "Add missing function prototypes wcpcpy/wcpncpy."
* commit 'e4695e3c2f95f963e4afd80fde3ec172401573f5':
  Add missing function prototypes wcpcpy/wcpncpy.
2014-11-14 19:18:58 +00:00
Daniel Rosenberg
5e858eec0e am fb854deb: am 4a50d8ea: bionic: libc: Added path to vendor build properties file.
* commit 'fb854debc0db534210a349debd91f7b0c804e34e':
  bionic: libc: Added path to vendor build properties file.
2014-11-14 19:18:24 +00:00
Elliott Hughes
4d9ddfc536 am bdd5c628: am 9cfd1ec5: am 0a135b42: Merge "Fix our <mntent.h> implementation."
* commit 'bdd5c628937394fb61251030b21932dbf4eac2cf':
  Fix our <mntent.h> implementation.
2014-11-14 19:17:56 +00:00
Dmitriy Ivanov
084778daed am ca8b70bc: am c490b502: Merge "Rename soinfo methods and fields"
* commit 'ca8b70bc8d8a61c0a8b73577f5d90310c3d7cb9b':
  Rename soinfo methods and fields
2014-11-14 16:44:23 +00:00
Dmitriy Ivanov
ca8b70bc8d am c490b502: Merge "Rename soinfo methods and fields"
* commit 'c490b5029fdc96f1dbf00d02d0ad63a03d8cd4f3':
  Rename soinfo methods and fields
2014-11-14 16:38:19 +00:00
Dmitriy Ivanov
c490b5029f Merge "Rename soinfo methods and fields" 2014-11-14 16:33:17 +00:00
Dmitriy Ivanov
047b5934b5 Rename soinfo methods and fields
Change-Id: If68fbe287d3ad954238b1688f71013371f3f7fae
2014-11-13 19:48:32 -08:00
Christopher Ferris
e4695e3c2f am e6d238a5: am 59b1dea8: Merge "Add missing function prototypes wcpcpy/wcpncpy."
* commit 'e6d238a51cc7fb5e6621cb8c32b4f86780585907':
  Add missing function prototypes wcpcpy/wcpncpy.
2014-11-14 03:30:15 +00:00
Christopher Ferris
e6d238a51c am 59b1dea8: Merge "Add missing function prototypes wcpcpy/wcpncpy."
* commit '59b1dea8829b081e23c3156b44af624bf8fac962':
  Add missing function prototypes wcpcpy/wcpncpy.
2014-11-14 03:27:16 +00:00
Christopher Ferris
59b1dea882 Merge "Add missing function prototypes wcpcpy/wcpncpy." 2014-11-14 03:23:35 +00:00
Christopher Ferris
5c7d9584d9 Add missing function prototypes wcpcpy/wcpncpy.
Also add smoke tests for a few of the wchar functions.

Change-Id: Id1be522f55a6708564d444941f42097548f16497
2014-11-13 18:56:12 -08:00
Daniel Rosenberg
fb854debc0 am 4a50d8ea: bionic: libc: Added path to vendor build properties file.
* commit '4a50d8ead71c3dd6d9eebe23626d0d4e96dd963b':
  bionic: libc: Added path to vendor build properties file.
2014-11-14 01:39:46 +00:00
Elliott Hughes
75a869bdbf am 90075a32: am 105962b2: am 288fa03a: Merge "Assume glibc >= 2.15."
* commit '90075a328130b79f943be4f9249335d33dc76fa4':
  Assume glibc >= 2.15.
2014-11-14 00:47:26 +00:00
Elliott Hughes
8927477719 am ad7a8754: am 4dcb9c78: am 6229798a: Merge "Don\'t receive structs containing pointers over sockets."
* commit 'ad7a87548fc29484c99e311ad75b5804621b0d3a':
  Don't receive structs containing pointers over sockets.
2014-11-14 00:44:58 +00:00
Hans Boehm
2c3950ede9 am 1ba937c0: am 5b53da0b: am 854c98d6: Merge "Allow stdatomic.h to be included from mingw prebuilt."
* commit '1ba937c063191995c15c666cf146f0cf557dd10a':
  Allow stdatomic.h to be included from mingw prebuilt.
2014-11-14 00:44:42 +00:00
Elliott Hughes
bdd5c62893 am 9cfd1ec5: am 0a135b42: Merge "Fix our <mntent.h> implementation."
* commit '9cfd1ec535d0344bfd39c25b746a3bc32a0c5b61':
  Fix our <mntent.h> implementation.
2014-11-14 00:09:43 +00:00
Elliott Hughes
9cfd1ec535 am 0a135b42: Merge "Fix our <mntent.h> implementation."
* commit '0a135b4259077bbb48ec911c0fa92ab0654ffffa':
  Fix our <mntent.h> implementation.
2014-11-14 00:04:12 +00:00
Elliott Hughes
0a135b4259 Merge "Fix our <mntent.h> implementation." 2014-11-14 00:00:53 +00:00
Elliott Hughes
e3c4acf1e3 Fix our <mntent.h> implementation.
Used by toybox.

Change-Id: I36a5053423e5cc54ae02a68f4fe110d75134accd
2014-11-13 15:51:36 -08:00
Daniel Rosenberg
4a50d8ead7 bionic: libc: Added path to vendor build properties file.
Signed-off-by: Daniel Rosenberg <drosen@google.com>

(cherry picked from commit 71d220c1de1372e20c8bbec4ccf387991a3bb549)

Bug: 18281574
Change-Id: I2843f23ecb4c4ca79b230d8041bbca02dbedeadc
2014-11-13 13:09:59 -08:00
Elliott Hughes
90075a3281 am 105962b2: am 288fa03a: Merge "Assume glibc >= 2.15."
* commit '105962b2fecad08ec2218cf6f2de2d2b20085e85':
  Assume glibc >= 2.15.
2014-11-13 19:10:25 +00:00
Elliott Hughes
105962b2fe am 288fa03a: Merge "Assume glibc >= 2.15."
* commit '288fa03a5aa5ee69c321e7266cdc656d11d8c022':
  Assume glibc >= 2.15.
2014-11-13 19:03:19 +00:00
Elliott Hughes
288fa03a5a Merge "Assume glibc >= 2.15." 2014-11-13 18:11:00 +00:00
Elliott Hughes
ad7a87548f am 4dcb9c78: am 6229798a: Merge "Don\'t receive structs containing pointers over sockets."
* commit '4dcb9c781143d30cc05f225557da0d86c2ccb93e':
  Don't receive structs containing pointers over sockets.
2014-11-13 18:03:09 +00:00
Elliott Hughes
4dcb9c7811 am 6229798a: Merge "Don\'t receive structs containing pointers over sockets."
* commit '6229798a7c2aa4df3d8fba70c679a127ee88ad76':
  Don't receive structs containing pointers over sockets.
2014-11-13 17:58:57 +00:00
Hans Boehm
1ba937c063 am 5b53da0b: am 854c98d6: Merge "Allow stdatomic.h to be included from mingw prebuilt."
* commit '5b53da0bf5b8a0034dd495859d8f83cae671d7e6':
  Allow stdatomic.h to be included from mingw prebuilt.
2014-11-13 17:57:24 +00:00
Elliott Hughes
6229798a7c Merge "Don't receive structs containing pointers over sockets." 2014-11-13 17:56:08 +00:00
Hans Boehm
5b53da0bf5 am 854c98d6: Merge "Allow stdatomic.h to be included from mingw prebuilt."
* commit '854c98d63671e38b3537620f323addcd313c9f11':
  Allow stdatomic.h to be included from mingw prebuilt.
2014-11-13 17:53:23 +00:00
Hans Boehm
854c98d636 Merge "Allow stdatomic.h to be included from mingw prebuilt." 2014-11-13 17:49:53 +00:00
Elliott Hughes
55293c1dad Don't receive structs containing pointers over sockets.
Fixes x86-64 netd.

Change-Id: Iee5ef802ebbf2e000b2593643de4eec46f296c04
2014-11-12 22:06:35 -08:00
Elliott Hughes
68d98d832b Assume glibc >= 2.15.
This catches one trivial difference between us and glibc --- the error
returned by pthread_setname_np for an invalid pthread_t.

Change-Id: If4c21e22107c6488333d11184f8005f8669096c2
2014-11-12 21:03:26 -08:00
Elliott Hughes
d0a2431bb9 am 0c69b1bf: am 04d2a595: am 92a585c9: Merge "Fix glibc 2.15 build."
* commit '0c69b1bf89b116f7a2c822960d34126ae9d62a26':
  Fix glibc 2.15 build.
2014-11-13 04:12:08 +00:00
Dmitriy Ivanov
632e724515 am ca26fbc2: am 353463d0: am 38b47f6e: Merge "Fix mips build"
* commit 'ca26fbc24a7e817a9a195e536bee21cc7e27dccb':
  Fix mips build
2014-11-13 04:12:06 +00:00
Elliott Hughes
0c69b1bf89 am 04d2a595: am 92a585c9: Merge "Fix glibc 2.15 build."
* commit '04d2a59544354802526584a38968069ac65e813e':
  Fix glibc 2.15 build.
2014-11-13 04:05:18 +00:00
Dmitriy Ivanov
ca26fbc24a am 353463d0: am 38b47f6e: Merge "Fix mips build"
* commit '353463d0a2e507ec046647928af2dc17a76f890f':
  Fix mips build
2014-11-13 04:05:16 +00:00
Elliott Hughes
04d2a59544 am 92a585c9: Merge "Fix glibc 2.15 build."
* commit '92a585c91a83e63949431c617de936742b080150':
  Fix glibc 2.15 build.
2014-11-13 03:58:55 +00:00
Dmitriy Ivanov
353463d0a2 am 38b47f6e: Merge "Fix mips build"
* commit '38b47f6eb4631e1fb2cba0e47fd4832a58b16755':
  Fix mips build
2014-11-13 03:58:53 +00:00
Elliott Hughes
92a585c91a Merge "Fix glibc 2.15 build." 2014-11-13 03:37:47 +00:00
Dmitriy Ivanov
38b47f6eb4 Merge "Fix mips build" 2014-11-13 03:36:54 +00:00
Elliott Hughes
fb50057138 Fix glibc 2.15 build.
glibc 2.15 has prlimit64, has an unsetenv that's declared nonnull,
and hasn't fixed the problems we were having trying to use the
POSIX strerror_r in C++ code.

Change-Id: I834356a385e5ae55500bd86781691b6c1c9c8300
2014-11-12 19:31:21 -08:00
Dmitriy Ivanov
d19a02b9ef am c2788944: am 8d31f51a: am 16db1ae1: Merge "Add support for hash-style=gnu"
* commit 'c27889447c522725356ab8c082e55f817131d1a9':
  Add support for hash-style=gnu
2014-11-13 02:34:34 +00:00
Dmitriy Ivanov
c27889447c am 8d31f51a: am 16db1ae1: Merge "Add support for hash-style=gnu"
* commit '8d31f51a38f10917b2396412c2dbe45dc9abe864':
  Add support for hash-style=gnu
2014-11-13 02:29:06 +00:00
Dmitriy Ivanov
8894091683 Fix mips build
Change-Id: I58b01db38ab9a397a8bd77c1296aac12957c21da
2014-11-12 18:21:12 -08:00
Dan Albert
a16d941ebc am a8fe453f: am ed3555f5: am 468f8410: Merge "Add documentation about checkbuild."
* commit 'a8fe453f76ba107566cc5d531e78eba0bbbc9351':
  Add documentation about checkbuild.
2014-11-13 02:17:59 +00:00
Dmitriy Ivanov
8d31f51a38 am 16db1ae1: Merge "Add support for hash-style=gnu"
* commit '16db1ae1089fdfe65a123d3e4d61d509a099cddc':
  Add support for hash-style=gnu
2014-11-13 02:17:57 +00:00
Dmitriy Ivanov
16db1ae108 Merge "Add support for hash-style=gnu" 2014-11-13 02:10:30 +00:00
Hans Boehm
95f197f998 Allow stdatomic.h to be included from mingw prebuilt.
Define __GNUC_PREREQ if it isn't already defined.
This is a bit ugly, but it seems to be easiest to make this header as
context-independent as possible.  Together with the addition of a symbolic
link to this file from the mingw prebuilt, this appears to unblock
commit e9fa6be333e35d9e7ae435aeb32532875b95fe22.

Change-Id: I97e39cda8d8f9aa108aa61c4121da09eb9739062
2014-11-12 18:08:25 -08:00
Dan Albert
a8fe453f76 am ed3555f5: am 468f8410: Merge "Add documentation about checkbuild."
* commit 'ed3555f5b2e2bdc0699ff9627463723381e0d4c7':
  Add documentation about checkbuild.
2014-11-13 01:31:49 +00:00
Dan Albert
ed3555f5b2 am 468f8410: Merge "Add documentation about checkbuild."
* commit '468f84107aaf108ac6b3ff389342092c2551f859':
  Add documentation about checkbuild.
2014-11-13 01:22:00 +00:00
Dan Albert
468f84107a Merge "Add documentation about checkbuild." 2014-11-13 01:14:27 +00:00
Dan Albert
e66d57f532 Add documentation about checkbuild.
Change-Id: I2c2d06bc0dc3cdc58b5563f62889122b76f3c469
2014-11-12 17:08:38 -08:00
Dmitriy Ivanov
ec18ce06f2 Add support for hash-style=gnu
Change-Id: I171434a587420895feac8a9b1ad2342087197568
2014-11-12 16:38:12 -08:00
Christopher Ferris
ff51dc4f00 am 6e29794a: am 616fa27b: am 5d05d025: Merge "Add 64-bit slm optimized strlcpy and srlcat."
* commit '6e29794acb281b332abd8f7beb68ab8855f06ed4':
  Add 64-bit slm optimized strlcpy and srlcat.
2014-11-12 23:31:20 +00:00
Christopher Ferris
6e29794acb am 616fa27b: am 5d05d025: Merge "Add 64-bit slm optimized strlcpy and srlcat."
* commit '616fa27b60ffdb0560d7134ceb7d8cdd4fbe672c':
  Add 64-bit slm optimized strlcpy and srlcat.
2014-11-12 23:26:57 +00:00
Christopher Ferris
616fa27b60 am 5d05d025: Merge "Add 64-bit slm optimized strlcpy and srlcat."
* commit '5d05d025b51fc7b1a59f230000601bc593c12eea':
  Add 64-bit slm optimized strlcpy and srlcat.
2014-11-12 23:21:42 +00:00
Christopher Ferris
5d05d025b5 Merge "Add 64-bit slm optimized strlcpy and srlcat." 2014-11-12 23:18:00 +00:00
Yabin Cui
0a2f510e3a am e4f2eae0: am 1b6b274a: am e5cabca5: Merge "implement missing seekdir and telldir"
* commit 'e4f2eae0eeec05f64518b560d4901bdb18bf1170':
  implement missing seekdir and telldir
2014-11-12 20:50:01 +00:00
Yabin Cui
e4f2eae0ee am 1b6b274a: am e5cabca5: Merge "implement missing seekdir and telldir"
* commit '1b6b274a4b3d1b5462e379ff2144d42ae264677a':
  implement missing seekdir and telldir
2014-11-12 20:45:34 +00:00
Yabin Cui
1b6b274a4b am e5cabca5: Merge "implement missing seekdir and telldir"
* commit 'e5cabca516252addb5e305c8e1e0f35cafbcafbe':
  implement missing seekdir and telldir
2014-11-12 20:40:49 +00:00
Yabin Cui
e5cabca516 Merge "implement missing seekdir and telldir" 2014-11-12 20:36:26 +00:00
Elliott Hughes
883682c7f8 am 298dfb6f: am 03dd63bd: am bbdfa518: Merge "gethostname.c: change to report ENAMETOOLONG error when buflen is less"
* commit '298dfb6f9d7889ce65f3dc1761448885f6d45522':
  gethostname.c: change to report ENAMETOOLONG error when buflen is less
2014-11-12 20:20:57 +00:00
Elliott Hughes
3cf425d0c7 am 674cc2b8: am a4adc811: am 83204d57: Merge "bionic tests: migrate gethostname test to unistd_test.cpp from system/extras"
* commit '674cc2b8a159115f968426ef58e181a7358e1cec':
  bionic tests: migrate gethostname test to unistd_test.cpp from system/extras
2014-11-12 20:20:56 +00:00
Elliott Hughes
298dfb6f9d am 03dd63bd: am bbdfa518: Merge "gethostname.c: change to report ENAMETOOLONG error when buflen is less"
* commit '03dd63bda8846db77cab6b4f17c8a2478f7ac65c':
  gethostname.c: change to report ENAMETOOLONG error when buflen is less
2014-11-12 20:16:06 +00:00
Elliott Hughes
674cc2b8a1 am a4adc811: am 83204d57: Merge "bionic tests: migrate gethostname test to unistd_test.cpp from system/extras"
* commit 'a4adc811d291d641e8291795d479bf8f426725b3':
  bionic tests: migrate gethostname test to unistd_test.cpp from system/extras
2014-11-12 20:16:05 +00:00
Elliott Hughes
03dd63bda8 am bbdfa518: Merge "gethostname.c: change to report ENAMETOOLONG error when buflen is less"
* commit 'bbdfa518830d49565966acea02796769434e0d74':
  gethostname.c: change to report ENAMETOOLONG error when buflen is less
2014-11-12 20:11:41 +00:00
Elliott Hughes
a4adc811d2 am 83204d57: Merge "bionic tests: migrate gethostname test to unistd_test.cpp from system/extras"
* commit '83204d5708eb49df05ea365be01e136ef7823752':
  bionic tests: migrate gethostname test to unistd_test.cpp from system/extras
2014-11-12 20:11:40 +00:00
Elliott Hughes
bbdfa51883 Merge "gethostname.c: change to report ENAMETOOLONG error when buflen is less" 2014-11-12 20:09:59 +00:00
Elliott Hughes
83204d5708 Merge "bionic tests: migrate gethostname test to unistd_test.cpp from system/extras" 2014-11-12 20:08:57 +00:00
Yongqin Liu
2f954bab2d gethostname.c: change to report ENAMETOOLONG error when buflen is less
change to behaviour the same as glibc for the check about buflen

Change-Id: I98265a8fe441df6fed2527686f89b087364ca53d
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-11-12 12:07:33 -08:00
Derek Xue
d94e7f0f1d bionic tests: migrate gethostname test to unistd_test.cpp from system/extras
The old tests are implemented in file
    system/extras/tests/bionic/libc/common/test_gethostname.c
Here migrate the test to the tests/unistd_test.cpp file and
add some more checks

Change-Id: Iab1e3da873bb333d1ddefc03108d536933792db2
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-11-12 10:47:39 -08:00
Elliott Hughes
64c1152931 am bad436e8: am c05314a0: Merge "Fix tzdata update tools for \'backzone\'." into lmp-mr1-dev
* commit 'bad436e8b3c5b58742f7f6903fc30ce86b5210eb':
  Fix tzdata update tools for 'backzone'.
2014-11-12 17:32:58 +00:00
Elliott Hughes
38038009be am ea039a4a: am 1ca3350f: Upgrade bionic to tzdata2014j.
* commit 'ea039a4a4ebd2f5abf26d74fa800bf68cddb0ffa':
  Upgrade bionic to tzdata2014j.
2014-11-12 17:32:57 +00:00
Elliott Hughes
bad436e8b3 am c05314a0: Merge "Fix tzdata update tools for \'backzone\'." into lmp-mr1-dev
* commit 'c05314a0b230d6820e07bcc641e8a553b5196e86':
  Fix tzdata update tools for 'backzone'.
2014-11-12 17:28:49 +00:00
Elliott Hughes
ea039a4a4e am 1ca3350f: Upgrade bionic to tzdata2014j.
* commit '1ca3350f4c7b60afdb95784c9cb3ea5ba5ce591f':
  Upgrade bionic to tzdata2014j.
2014-11-12 17:28:48 +00:00
Elliott Hughes
c05314a0b2 Merge "Fix tzdata update tools for 'backzone'." into lmp-mr1-dev 2014-11-12 17:19:57 +00:00
Varvara Rainchik
2e7145c048 Add 64-bit slm optimized strlcpy and srlcat.
Change-Id: Ic948934d91c83bbfdfd00c05ee8b14952e012549
Signed-off-by: Varvara Rainchik <varvara.rainchik@intel.com>
2014-11-12 17:32:28 +03:00
Elliott Hughes
1ca3350f4c Upgrade bionic to tzdata2014j.
From the release notes:

   Changes affecting current and future time stamps

     Turks & Caicos' switch from US eastern time to UTC-4 year-round
     did not occur on 2014-11-02 at 02:00.  It's currently scheduled
     for 2015-11-01 at 02:00.  (Thanks to Chris Walton.)

   Changes affecting past time stamps

     Many pre-1989 time stamps have been corrected for Asia/Seoul and
     Asia/Pyongyang, based on sources for the Korean-language Wikipedia
     entry for time in Korea.  (Thanks to Sanghyuk Jung.)  Also, no
     longer guess that Pyongyang mimicked Seoul time after World War II,
     as this is politically implausible.

     Some more zones have been turned into links, when they differed
     from existing zones only for older time stamps.  As usual,
     these changes affect UTC offsets in pre-1970 time stamps only.
     Their old contents have been moved to the 'backzone' file.
     The affected zones are: Africa/Addis_Ababa, Africa/Asmara,
     Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala,
     Africa/Mogadishu, Indian/Antananarivo, Indian/Comoro, and
     Indian/Mayotte.

Bug: 18330681

(cherry picked from commit b11d8e057c86c3926128af9d07180d9328e144c6)

Change-Id: Ifd48e7446e400dccae3afd5cbef96ca843775477
2014-11-11 19:56:09 -08:00
Elliott Hughes
371dcc189f Fix tzdata update tools for 'backzone'.
To maintain the status quo, we need to pull in backzone file. This file
can't be built on its own, so the easiest fix is to give zic(1) all the
files at once.

We also now have a situation where we have links to links, so we need to
dereference them until we find actual data.

Bug: 18330681

(cherry picked from commit 2c2463bd3065f0a5fef34a47e3eb94aad64b0cea)

Change-Id: I654b80518a7144038d8b3ea7223f49e2b1d2ad13
2014-11-11 19:55:35 -08:00
Elliott Hughes
d77cfd36e6 am d757f61f: am c25737a1: am 22271d0c: Merge "Upgrade bionic to tzdata2014j."
* commit 'd757f61f7fab5c68c9d12e7e4dbab617897e96d4':
  Upgrade bionic to tzdata2014j.
2014-11-12 03:44:22 +00:00
Elliott Hughes
77f8f38eba am 5daebfaa: am db71c2f3: am 440c80ad: Merge "Fix tzdata update tools for \'backzone\'."
* commit '5daebfaa6c58cddb79eb78af82964d5ba8a12c06':
  Fix tzdata update tools for 'backzone'.
2014-11-12 03:44:21 +00:00
Elliott Hughes
d757f61f7f am c25737a1: am 22271d0c: Merge "Upgrade bionic to tzdata2014j."
* commit 'c25737a193b77561a07cb778a947cd547148c46e':
  Upgrade bionic to tzdata2014j.
2014-11-12 02:53:45 +00:00
Elliott Hughes
5daebfaa6c am db71c2f3: am 440c80ad: Merge "Fix tzdata update tools for \'backzone\'."
* commit 'db71c2f3d22140cb2685362c35d93c374a621b7c':
  Fix tzdata update tools for 'backzone'.
2014-11-12 02:53:38 +00:00
Elliott Hughes
c25737a193 am 22271d0c: Merge "Upgrade bionic to tzdata2014j."
* commit '22271d0c200c8c2f7c7c960a8751eed0faa708ec':
  Upgrade bionic to tzdata2014j.
2014-11-12 02:35:54 +00:00
Elliott Hughes
22271d0c20 Merge "Upgrade bionic to tzdata2014j." 2014-11-12 02:32:10 +00:00
Elliott Hughes
db71c2f3d2 am 440c80ad: Merge "Fix tzdata update tools for \'backzone\'."
* commit '440c80ad47fd748251b09d5146f2cb896d75724f':
  Fix tzdata update tools for 'backzone'.
2014-11-12 02:28:11 +00:00
Elliott Hughes
b11d8e057c Upgrade bionic to tzdata2014j.
From the release notes:

   Changes affecting current and future time stamps

     Turks & Caicos' switch from US eastern time to UTC-4 year-round
     did not occur on 2014-11-02 at 02:00.  It's currently scheduled
     for 2015-11-01 at 02:00.  (Thanks to Chris Walton.)

   Changes affecting past time stamps

     Many pre-1989 time stamps have been corrected for Asia/Seoul and
     Asia/Pyongyang, based on sources for the Korean-language Wikipedia
     entry for time in Korea.  (Thanks to Sanghyuk Jung.)  Also, no
     longer guess that Pyongyang mimicked Seoul time after World War II,
     as this is politically implausible.

     Some more zones have been turned into links, when they differed
     from existing zones only for older time stamps.  As usual,
     these changes affect UTC offsets in pre-1970 time stamps only.
     Their old contents have been moved to the 'backzone' file.
     The affected zones are: Africa/Addis_Ababa, Africa/Asmara,
     Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala,
     Africa/Mogadishu, Indian/Antananarivo, Indian/Comoro, and
     Indian/Mayotte.

Bug: 18330681
Change-Id: I4b6939b4dcf08c47df5595ae445b6f44f4a03418
2014-11-11 16:44:21 -08:00
Elliott Hughes
440c80ad47 Merge "Fix tzdata update tools for 'backzone'." 2014-11-12 00:42:50 +00:00
Elliott Hughes
2c2463bd30 Fix tzdata update tools for 'backzone'.
To maintain the status quo, we need to pull in backzone file. This file
can't be built on its own, so the easiest fix is to give zic(1) all the
files at once.

We also now have a situation where we have links to links, so we need to
dereference them until we find actual data.

Bug: 18330681
Change-Id: I03f4aa8e6e23802dc35cbff2f74f325eb17d7b2b
2014-11-11 16:30:18 -08:00
Daniel Rosenberg
6eccde6a40 am 7aa4e50a: am bb50a667: am 1fb6a4d5: Merge "bionic: libc: Added path to vendor build properties file."
* commit '7aa4e50a0973f0c5e5705418131e132051481422':
  bionic: libc: Added path to vendor build properties file.
2014-11-11 22:56:37 +00:00
Daniel Rosenberg
7aa4e50a09 am bb50a667: am 1fb6a4d5: Merge "bionic: libc: Added path to vendor build properties file."
* commit 'bb50a667441b0a2298eaa9ddeb7baf444b101947':
  bionic: libc: Added path to vendor build properties file.
2014-11-11 22:50:48 +00:00
Daniel Rosenberg
bb50a66744 am 1fb6a4d5: Merge "bionic: libc: Added path to vendor build properties file."
* commit '1fb6a4d5c034423d4a22ded0bd3d87a14a6cad9a':
  bionic: libc: Added path to vendor build properties file.
2014-11-11 22:43:49 +00:00
Daniel Rosenberg
1fb6a4d5c0 Merge "bionic: libc: Added path to vendor build properties file." 2014-11-11 20:40:04 +00:00
Daniel Rosenberg
71d220c1de bionic: libc: Added path to vendor build properties file.
Change-Id: Ia9fc257a82fdd592751cbcde3fcf453a49856f62
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2014-11-11 12:18:22 -08:00
Andreas Gampe
417c40b110 am 44c32aaf: am 5f93f65d: am 1e75a9b5: Merge "Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional"
* commit '44c32aaf119da1e5c70565df2bde5f5844a37c76':
  Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional
2014-11-11 20:05:57 +00:00
Andreas Gampe
44c32aaf11 am 5f93f65d: am 1e75a9b5: Merge "Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional"
* commit '5f93f65d3f514c39e76c0ae1a117c45ac2f72a67':
  Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional
2014-11-11 19:58:43 +00:00
Andreas Gampe
5f93f65d3f am 1e75a9b5: Merge "Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional"
* commit '1e75a9b56ad746ff038ca956bd3d83fe4b9a156f':
  Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional
2014-11-11 19:52:55 +00:00
Andreas Gampe
1e75a9b56a Merge "Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional" 2014-11-11 19:17:56 +00:00
Andreas Gampe
00bbc7f69f Bionic: Make DISALLOW_COPY_AND_ASSIGN conditional
Make the definition of DISALLOW_COPY_AND_ASSIGN conditional. This is
so that the projects that include libnativehelper and bionic macros
do not have to be careful in which order those projects are included.

Bug: 18334516
Change-Id: Ib12a2c2b7ad2e360edcf3b26cb1be626540fadc1
2014-11-11 11:16:57 -08:00
Christopher Ferris
b36709560c am 42a86ae3: am ea8913fe: am 1e1ae4a7: Merge "Add align/overread tests for strlcpy/strlcat."
* commit '42a86ae34c303ebafcc6f7aacce5f954591e2db6':
  Add align/overread tests for strlcpy/strlcat.
2014-11-10 23:50:11 +00:00
Christopher Ferris
42a86ae34c am ea8913fe: am 1e1ae4a7: Merge "Add align/overread tests for strlcpy/strlcat."
* commit 'ea8913fefdfcd57b5f960db65dcf482ace3d8083':
  Add align/overread tests for strlcpy/strlcat.
2014-11-10 23:44:57 +00:00
Christopher Ferris
ea8913fefd am 1e1ae4a7: Merge "Add align/overread tests for strlcpy/strlcat."
* commit '1e1ae4a74e42de07a5654f6a1774786fb4652094':
  Add align/overread tests for strlcpy/strlcat.
2014-11-10 23:42:28 +00:00
Christopher Ferris
1e1ae4a74e Merge "Add align/overread tests for strlcpy/strlcat." 2014-11-10 23:38:21 +00:00
Elliott Hughes
e34d70ab89 am 5a01f82c: am 307d61c3: am 6e7e2d20: Merge "Add the <dirent.h> feature macros glibc uses."
* commit '5a01f82c15f06ad4e1206570fd27a2fa94571d00':
  Add the <dirent.h> feature macros glibc uses.
2014-11-10 23:31:22 +00:00
Elliott Hughes
5a01f82c15 am 307d61c3: am 6e7e2d20: Merge "Add the <dirent.h> feature macros glibc uses."
* commit '307d61c3385909dbbd28cfbb88cc2599fc5d7fdc':
  Add the <dirent.h> feature macros glibc uses.
2014-11-10 23:26:23 +00:00
Elliott Hughes
307d61c338 am 6e7e2d20: Merge "Add the <dirent.h> feature macros glibc uses."
* commit '6e7e2d201f91fe5a04adc1b49ebb589dc56b425f':
  Add the <dirent.h> feature macros glibc uses.
2014-11-10 23:23:12 +00:00
Elliott Hughes
6e7e2d201f Merge "Add the <dirent.h> feature macros glibc uses." 2014-11-10 23:18:36 +00:00
Elliott Hughes
8c79b4ebb5 Add the <dirent.h> feature macros glibc uses.
Change-Id: I4da92b67d410839ea4ef0beaaa6c5cca06b74c0d
2014-11-10 15:17:28 -08:00
Elliott Hughes
91475e0fda am af92bca1: am b80be438: am 6330b70c: Merge "Remove temporary compatibility hack."
* commit 'af92bca1206d2fa796e54e791a17a79d7860f3cd':
  Remove temporary compatibility hack.
2014-11-10 22:23:20 +00:00
Elliott Hughes
af92bca120 am b80be438: am 6330b70c: Merge "Remove temporary compatibility hack."
* commit 'b80be43814a1562b0b66b435a7759cfed554287f':
  Remove temporary compatibility hack.
2014-11-10 22:19:15 +00:00
Elliott Hughes
b80be43814 am 6330b70c: Merge "Remove temporary compatibility hack."
* commit '6330b70cac8072007be9c351a934f9ff10f30cb5':
  Remove temporary compatibility hack.
2014-11-10 22:09:14 +00:00
Christopher Ferris
1468765f8a Add align/overread tests for strlcpy/strlcat.
Change-Id: I2801c7ee1847cd68ec95eba5bdffde5e52edf1e5
2014-11-10 13:58:17 -08:00
Elliott Hughes
6330b70cac Merge "Remove temporary compatibility hack." 2014-11-10 19:32:51 +00:00
Elliott Hughes
e6ac9bb8a0 Remove temporary compatibility hack.
The callers have been fixed.

Bug: 18298106
Change-Id: I65e24032d0a82c4b118abace854d2dcdada881fb
2014-11-10 11:24:51 -08:00
Elliott Hughes
fdea8b0c86 am 469d3998: am db37cd61: am b6360093: Merge "Fix struct stat to match POSIX 2008."
* commit '469d399852d6f0f513ad99a63c7678a5e69f905e':
  Fix struct stat to match POSIX 2008.
2014-11-10 17:41:39 +00:00
Elliott Hughes
469d399852 am db37cd61: am b6360093: Merge "Fix struct stat to match POSIX 2008."
* commit 'db37cd61e5e7c2ede11ce7a8eade9c31b7796c09':
  Fix struct stat to match POSIX 2008.
2014-11-10 17:33:37 +00:00
Elliott Hughes
db37cd61e5 am b6360093: Merge "Fix struct stat to match POSIX 2008."
* commit 'b63600934c62beb09514e2ced1fce1bdb489195f':
  Fix struct stat to match POSIX 2008.
2014-11-10 17:29:21 +00:00
Elliott Hughes
b63600934c Merge "Fix struct stat to match POSIX 2008." 2014-11-10 17:25:08 +00:00
Elliott Hughes
0ac0df84c7 Fix struct stat to match POSIX 2008.
Our representation of sub-second times matched the Linux kernel, and we
provided macros for glibc source compatibility. This change switches us
over to match POSIX 2008, adds the macros they insist on (for compatibility
with earlier versions of POSIX), and also adds macros for compatibility
with any code that expects the kernel or old bionic names.

Unfortunately this breaks strace which defines its own structures using
the kernel names, and thus implicitly assumes that there are no macros with
those names, but this does allow the rest of the tree to build.

Bug: 18298106
Change-Id: Ibfa8c21cb2a2566091ef3dc2019a9f78d2de2991
2014-11-07 19:15:10 -08:00
Elliott Hughes
a3e8ee0078 am a5a7078a: am 3a3f388c: am 47b9083b: Merge "Add sethostname(2)."
* commit 'a5a7078a8e4cf6bcb98b095e5e8af0dba5b61a37':
  Add sethostname(2).
2014-11-08 01:52:50 +00:00
Elliott Hughes
a5a7078a8e am 3a3f388c: am 47b9083b: Merge "Add sethostname(2)."
* commit '3a3f388c3c24457ea0f452f6abc7f340e6fc640b':
  Add sethostname(2).
2014-11-08 01:43:02 +00:00
Elliott Hughes
3a3f388c3c am 47b9083b: Merge "Add sethostname(2)."
* commit '47b9083b582bc8f7aefa0b6b4df051cba835ac0f':
  Add sethostname(2).
2014-11-08 00:59:51 +00:00
Elliott Hughes
47b9083b58 Merge "Add sethostname(2)." 2014-11-08 00:55:20 +00:00
Elliott Hughes
b86a4c7f65 Add sethostname(2).
Not very useful, but helps building stuff like toybox out of the box.

Change-Id: I110e39030452bd093a84278e019c5752d293718d
2014-11-07 16:48:27 -08:00
Yabin Cui
5ca4a9e2da implement missing seekdir and telldir
Bug: 18266863
Change-Id: I189ee949d4f7ccee099f3341e349cd969d25480f
2014-11-07 10:20:32 -08:00
The Android Open Source Project
11f66116b9 am 80535617: am b4471046: am 2ed9ee1e: Merge remote-tracking branch \'goog/stage-aosp-master\' into HEAD
* commit '8053561750883244c227ddcc0d62ad7514896773':
2014-11-07 13:35:14 +00:00
Elliott Hughes
229cad0664 am 5d6f1004: am 16951877: am 6e555e40: Merge "Implement all the POSIX _l functions."
* commit '5d6f100494512ddeb6d862c694edbbe9e3476506':
  Implement all the POSIX _l functions.
2014-11-07 13:35:13 +00:00
The Android Open Source Project
8053561750 am b4471046: am 2ed9ee1e: Merge remote-tracking branch \'goog/stage-aosp-master\' into HEAD
* commit 'b447104656ff77caf4d5bcfd547533d941aef804':
2014-11-07 13:30:20 +00:00
Elliott Hughes
5d6f100494 am 16951877: am 6e555e40: Merge "Implement all the POSIX _l functions."
* commit '1695187723bd2fc2e222a08630523886f48607e4':
  Implement all the POSIX _l functions.
2014-11-07 13:30:18 +00:00
The Android Open Source Project
b447104656 am 2ed9ee1e: Merge remote-tracking branch \'goog/stage-aosp-master\' into HEAD
* commit '2ed9ee1e938a94b563ab700dc5017a968d2591ad':
2014-11-07 13:27:16 +00:00
Elliott Hughes
1695187723 am 6e555e40: Merge "Implement all the POSIX _l functions."
* commit '6e555e40b0596e452deb6ccbce89d084ad18b658':
  Implement all the POSIX _l functions.
2014-11-07 13:27:07 +00:00
Elliott Hughes
9ddc76d1a5 am 85d8fc46: am cd30cb36: am 08a70184: Merge "Add POSIX lcong48."
* commit '85d8fc4606aad997c41829184fffce53017f31df':
  Add POSIX lcong48.
2014-11-07 04:16:17 +00:00
The Android Open Source Project
2ed9ee1e93 Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD 2014-11-06 17:43:39 -08:00
Elliott Hughes
85d8fc4606 am cd30cb36: am 08a70184: Merge "Add POSIX lcong48."
* commit 'cd30cb3633c2a7409267dd1821e33937e65461ad':
  Add POSIX lcong48.
2014-11-07 01:03:35 +00:00
Elliott Hughes
cd30cb3633 am 08a70184: Merge "Add POSIX lcong48."
* commit '08a70184b42ef2963794a56233b0253e0b367253':
  Add POSIX lcong48.
2014-11-07 00:58:34 +00:00
Elliott Hughes
6e555e40b0 Merge "Implement all the POSIX _l functions." 2014-11-06 23:58:07 +00:00
Elliott Hughes
b20c24456e Implement all the POSIX _l functions.
Strictly speaking, this only implements the _l variants of the functions
we actually have. We're still missing nl_langinfo_l, for example, but we
don't have nl_langinfo either.

Change-Id: Ie711c7b04e7b9100932a13f5a5d5b28847eb4c12
2014-11-06 15:52:22 -08:00
Elliott Hughes
08a70184b4 Merge "Add POSIX lcong48." 2014-11-06 22:21:53 +00:00
Elliott Hughes
274afe8f0e Add POSIX lcong48.
Change-Id: I821046816661d77275cb02c8c99d526bb41afb9c
2014-11-06 14:14:37 -08:00
Elliott Hughes
95aaf1fe38 am a9f6582b: am e449e68f: am 39ba3035: Merge "Fix our <complex.h> support."
* commit 'a9f6582b2a182d6489173f31ca5bd8938591057c':
  Fix our <complex.h> support.
2014-11-06 21:08:35 +00:00
Yabin Cui
e5fe4184e9 am 585d5b8a: am c50ae0b4: am 99cf8d08: Merge "make all bionic death tests not dumpable"
* commit '585d5b8a93d77770c216286e36c844997672a730':
  make all bionic death tests not dumpable
2014-11-06 21:08:01 +00:00
Elliott Hughes
a9f6582b2a am e449e68f: am 39ba3035: Merge "Fix our <complex.h> support."
* commit 'e449e68f367ec8072bc950dbeb47c93d5b72da3f':
  Fix our <complex.h> support.
2014-11-06 19:53:23 +00:00
Elliott Hughes
e449e68f36 am 39ba3035: Merge "Fix our <complex.h> support."
* commit '39ba30354a3890dd653ab55819d38eed3855edaa':
  Fix our <complex.h> support.
2014-11-06 19:48:17 +00:00
Elliott Hughes
39ba30354a Merge "Fix our <complex.h> support." 2014-11-06 19:43:17 +00:00
Yabin Cui
585d5b8a93 am c50ae0b4: am 99cf8d08: Merge "make all bionic death tests not dumpable"
* commit 'c50ae0b41bacea1715daf815ba2f30f342e3342c':
  make all bionic death tests not dumpable
2014-11-06 19:27:51 +00:00
Yabin Cui
c50ae0b41b am 99cf8d08: Merge "make all bionic death tests not dumpable"
* commit '99cf8d08c95470c34e530c068d1325cb6656e760':
  make all bionic death tests not dumpable
2014-11-06 19:22:17 +00:00
Elliott Hughes
b8ee16f1dc Fix our <complex.h> support.
We build libm with -fvisibility=hidden, so we weren't exporting any
of the <complex.h> functions.

We also weren't building many of the functions anyway.

We were also missing the complex inverse trigonometric functions.

And because we didn't even have perfunctory "call each function once"
tests, we didn't notice that we weren't exporting any symbols, so this
patch adds at least that level of testing.

Change-Id: Ibcf2843f507126c51d134cc5fc8d67747e033a0d
2014-11-06 11:16:55 -08:00
Yabin Cui
99cf8d08c9 Merge "make all bionic death tests not dumpable" 2014-11-06 19:14:33 +00:00
Yabin Cui
9df70403d9 make all bionic death tests not dumpable
Bug: 18067305

Change-Id: Ia1ecacf47eddecc9bc58aaac779e0c218f463179
2014-11-06 11:09:03 -08:00
Elliott Hughes
566c3503fc am c5e05502: am fa7e13b3: am a80f11ba: Merge "Add support for listing missing POSIX 2013 symbols."
* commit 'c5e05502f2b8584c768ca87d8a4d48bf48f2c018':
  Add support for listing missing POSIX 2013 symbols.
2014-11-06 06:17:33 +00:00
Elliott Hughes
c5e05502f2 am fa7e13b3: am a80f11ba: Merge "Add support for listing missing POSIX 2013 symbols."
* commit 'fa7e13b3af6ee9a18a9f8b97d930dc2930b8936f':
  Add support for listing missing POSIX 2013 symbols.
2014-11-06 06:14:09 +00:00
Elliott Hughes
fa7e13b3af am a80f11ba: Merge "Add support for listing missing POSIX 2013 symbols."
* commit 'a80f11ba99a078515aa7e06dc99db62a475a7b53':
  Add support for listing missing POSIX 2013 symbols.
2014-11-06 06:08:32 +00:00
Elliott Hughes
a80f11ba99 Merge "Add support for listing missing POSIX 2013 symbols." 2014-11-06 06:05:38 +00:00
Elliott Hughes
6370aedd0e Add support for listing missing POSIX 2013 symbols.
Change-Id: Ic51787890f837f74a22ca63d64a5710474d00cbc
2014-11-05 16:54:53 -08:00
Yabin Cui
a6355bccb8 am 753a0239: am c68a9105: am 23113831: Merge "check invalid file offset when loading library"
* commit '753a0239f5400c199224af58ac41d407c4a7de7f':
  check invalid file offset when loading library
2014-11-05 20:26:23 +00:00
Yabin Cui
753a0239f5 am c68a9105: am 23113831: Merge "check invalid file offset when loading library"
* commit 'c68a9105375f4cc8d44a14485df4f6067abd2268':
  check invalid file offset when loading library
2014-11-05 20:18:15 +00:00
Yabin Cui
c68a910537 am 23113831: Merge "check invalid file offset when loading library"
* commit '2311383180aee9388d28b03901a1e4ef021bcfa7':
  check invalid file offset when loading library
2014-11-05 20:12:36 +00:00
Yabin Cui
2311383180 Merge "check invalid file offset when loading library" 2014-11-05 19:56:01 +00:00
Elliott Hughes
2eba0a18aa am 461c2f45: am eac625a2: am c13a2044: Merge "Fix newlocale with a NULL locale name."
* commit '461c2f45e971224bbfb6f2229350e98e07935714':
  Fix newlocale with a NULL locale name.
2014-11-05 03:29:42 +00:00
Elliott Hughes
9e5d1560b0 am 33fb6092: am bce54a2b: am 57df00a4: Merge "Improve math tests to allow a specific ulp bound."
* commit '33fb609258a172d9f1de73e3af4607570b5240cb':
  Improve math tests to allow a specific ulp bound.
2014-11-05 03:29:40 +00:00
Chih-Hung Hsieh
7a2886e6ea am 625056b0: am 45f736b3: am 6c8f2475: Merge "Fix warning of missing field initializer."
* commit '625056b00a2b20950c24cf1a41e500f619d018bf':
  Fix warning of missing field initializer.
2014-11-05 03:29:39 +00:00
Elliott Hughes
461c2f45e9 am eac625a2: am c13a2044: Merge "Fix newlocale with a NULL locale name."
* commit 'eac625a2104459618c4cdc19970a90448deacdf4':
  Fix newlocale with a NULL locale name.
2014-11-05 02:57:27 +00:00
Elliott Hughes
33fb609258 am bce54a2b: am 57df00a4: Merge "Improve math tests to allow a specific ulp bound."
* commit 'bce54a2bb3d366fa6fa5bee52226ac9e9daf25a2':
  Improve math tests to allow a specific ulp bound.
2014-11-05 02:57:26 +00:00
Chih-Hung Hsieh
625056b00a am 45f736b3: am 6c8f2475: Merge "Fix warning of missing field initializer."
* commit '45f736b32389ad5074d72a974ea153d4e64b234b':
  Fix warning of missing field initializer.
2014-11-05 02:57:25 +00:00
Elliott Hughes
eac625a210 am c13a2044: Merge "Fix newlocale with a NULL locale name."
* commit 'c13a2044e3b4d6084ef7ed32fb35e63e4157a96a':
  Fix newlocale with a NULL locale name.
2014-11-05 02:42:07 +00:00
Elliott Hughes
bce54a2bb3 am 57df00a4: Merge "Improve math tests to allow a specific ulp bound."
* commit '57df00a4107d59f82732306c1e199ffa63f76f9b':
  Improve math tests to allow a specific ulp bound.
2014-11-05 02:42:05 +00:00
Chih-Hung Hsieh
45f736b323 am 6c8f2475: Merge "Fix warning of missing field initializer."
* commit '6c8f247581890a25fb899767db220a8245859f71':
  Fix warning of missing field initializer.
2014-11-05 02:41:55 +00:00
Elliott Hughes
c13a2044e3 Merge "Fix newlocale with a NULL locale name." 2014-11-05 02:20:55 +00:00
Elliott Hughes
7e0d0f8572 Fix newlocale with a NULL locale name.
Bug: https://code.google.com/p/android/issues/detail?id=78567
Change-Id: I272dabc12ab186b44a525c7e8ac1846e62334e85
2014-11-04 18:03:44 -08:00
Elliott Hughes
57df00a410 Merge "Improve math tests to allow a specific ulp bound." 2014-11-05 02:02:19 +00:00
Elliott Hughes
1b37ba2178 Improve math tests to allow a specific ulp bound.
At the moment our libm is only good enough for a 1 ulp bound on these tests,
but that's better than the 4 ulp bound you get from gtest by default.

I'm not really happy with the multiple structures and corresponding functions,
but at least they mean there's no duplication in the tests themselves, and it
should be easy enough for us to make further improvements in future.

Change-Id: I004e12970332e1d9531721361d6c34f908cfcecc
2014-11-04 18:00:02 -08:00
Chih-Hung Hsieh
6c8f247581 Merge "Fix warning of missing field initializer." 2014-11-05 00:46:37 +00:00
Yabin Cui
16f7f8d250 check invalid file offset when loading library
Bug: 18178121
Bug: 18078224

Change-Id: I5254433d54645db68e9b83d5095dc2bf9d8531bc
2014-11-04 14:37:15 -08:00
Chih-Hung Hsieh
dc6599e20f Fix warning of missing field initializer.
BUG: 18241135
Change-Id: I91304eb608bc3336ce5fcd5744fbe080d64f1cc2
2014-11-04 12:09:35 -08:00
Dmitriy Ivanov
bac20fe26d am ca564e2a: Revert "Revert "Fix arm64 and arm builds.""
* commit 'ca564e2a994df5976869ec655c7d4056deefcaa2':
  Revert "Revert "Fix arm64 and arm builds.""
2014-11-04 17:46:43 +00:00
Dmitriy Ivanov
78d367d9ca am 0416d88f: Revert "Revert "Fix symbol lookup order during relocation""
* commit '0416d88f9c90dcb1b97947a27a7c05f3627484c4':
  Revert "Revert "Fix symbol lookup order during relocation""
2014-11-04 17:46:42 +00:00
Dmitriy Ivanov
713d0a6715 am 1c095774: Revert "Revert "Fix mips build""
* commit '1c095774c0527027bf3f7013ba15e9913d5f1853':
  Revert "Revert "Fix mips build""
2014-11-04 17:46:41 +00:00
Dmitriy Ivanov
0f11d1c899 am a42dfda5: Revert "Revert "Remove unnecessary lookups during relocations""
* commit 'a42dfda53acc6127b5046672686b67a66be168eb':
  Revert "Revert "Remove unnecessary lookups during relocations""
2014-11-04 17:46:40 +00:00
Dmitriy Ivanov
4662831346 am c343cac6: Revert "Revert "Fix relocation to look for symbols in local group""
* commit 'c343cac62bfd2933e36357b206fdd81da7610164':
  Revert "Revert "Fix relocation to look for symbols in local group""
2014-11-04 17:46:39 +00:00
Dmitriy Ivanov
670ea93739 am 7ca96a07: Revert "Revert "Add RTLD_NODELETE flag support""
* commit '7ca96a075b778f1fa2ad265350879238cbcb4d09':
  Revert "Revert "Add RTLD_NODELETE flag support""
2014-11-04 17:46:38 +00:00
Dmitriy Ivanov
a03f007415 am 68a555b5: Revert "Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL""
* commit '68a555b57e2bed1292bf28609be693a95b5fdc6b':
  Revert "Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL""
2014-11-04 17:46:37 +00:00
Dmitriy Ivanov
ca564e2a99 Revert "Revert "Fix arm64 and arm builds.""
This reverts commit 494bee796aa60131981308493e0e295493537e12.
2014-11-04 09:38:27 -08:00
Dmitriy Ivanov
0416d88f9c Revert "Revert "Fix symbol lookup order during relocation""
This reverts commit f947be2889639defc6424b1813ccc779528b7598.
2014-11-04 09:38:18 -08:00
Dmitriy Ivanov
1c095774c0 Revert "Revert "Fix mips build""
This reverts commit 4402804c35c5c5992c728c6f3cee3bdbd325819e.
2014-11-04 09:38:10 -08:00
Dmitriy Ivanov
a42dfda53a Revert "Revert "Remove unnecessary lookups during relocations""
This reverts commit eae09772558016836f1356816f4d1d0be498d74c.
2014-11-04 09:38:00 -08:00
Dmitriy Ivanov
c343cac62b Revert "Revert "Fix relocation to look for symbols in local group""
This reverts commit 00dce525530c5d26c20750863f3e9890b468787a.
2014-11-04 09:37:51 -08:00
Dmitriy Ivanov
7ca96a075b Revert "Revert "Add RTLD_NODELETE flag support""
This reverts commit 69c5d108a5cb44167a04d42ffdad6a39648ed235.
2014-11-04 09:37:28 -08:00
Dmitriy Ivanov
68a555b57e Revert "Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL""
This reverts commit 9d3382d97a2cdc8c8f78c7825ece16f09292fc36.
2014-11-04 09:37:19 -08:00
Dmitriy Ivanov
77c0b5b5ba am 39af7592: am 9d3382d9: Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '39af759260454e001b261170a94f85520db4ef12':
  Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
2014-11-04 17:22:53 +00:00
Dmitriy Ivanov
77b851f925 am e1d9881a: am 69c5d108: Revert "Add RTLD_NODELETE flag support"
* commit 'e1d9881a8d85dcd6bbf6895c3566b62589b715c1':
  Revert "Add RTLD_NODELETE flag support"
2014-11-04 17:22:52 +00:00
Dmitriy Ivanov
4bf14534d2 am 47fb0b78: am 00dce525: Revert "Fix relocation to look for symbols in local group"
* commit '47fb0b781628af5cbd5e97150c8e9511d718bf97':
  Revert "Fix relocation to look for symbols in local group"
2014-11-04 17:22:51 +00:00
Dmitriy Ivanov
8855f5884a am ce4d16bb: am eae09772: Revert "Remove unnecessary lookups during relocations"
* commit 'ce4d16bbaa34c0b97abc7a9d157d65e66ed68c79':
  Revert "Remove unnecessary lookups during relocations"
2014-11-04 17:22:50 +00:00
Dmitriy Ivanov
7df7fb0c90 am 7cb57841: am 4402804c: Revert "Fix mips build"
* commit '7cb57841a58165e6aeca14f987e4391cab38bbbd':
  Revert "Fix mips build"
2014-11-04 17:22:49 +00:00
Dmitriy Ivanov
7e59a56ac9 am 5c9afdc0: am f947be28: Revert "Fix symbol lookup order during relocation"
* commit '5c9afdc0c1bb4fa4c8287075a8711d25d229d593':
  Revert "Fix symbol lookup order during relocation"
2014-11-04 17:22:48 +00:00
Dmitriy Ivanov
4aaafab73b am 4c9b34bd: am 494bee79: Revert "Fix arm64 and arm builds."
* commit '4c9b34bd8acc305241ae14b5d03db4054f1ce26e':
  Revert "Fix arm64 and arm builds."
2014-11-04 17:22:47 +00:00
Dmitriy Ivanov
39af759260 am 9d3382d9: Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '9d3382d97a2cdc8c8f78c7825ece16f09292fc36':
  Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
2014-11-04 17:17:58 +00:00
Dmitriy Ivanov
e1d9881a8d am 69c5d108: Revert "Add RTLD_NODELETE flag support"
* commit '69c5d108a5cb44167a04d42ffdad6a39648ed235':
  Revert "Add RTLD_NODELETE flag support"
2014-11-04 17:17:57 +00:00
Dmitriy Ivanov
47fb0b7816 am 00dce525: Revert "Fix relocation to look for symbols in local group"
* commit '00dce525530c5d26c20750863f3e9890b468787a':
  Revert "Fix relocation to look for symbols in local group"
2014-11-04 17:17:56 +00:00
Dmitriy Ivanov
ce4d16bbaa am eae09772: Revert "Remove unnecessary lookups during relocations"
* commit 'eae09772558016836f1356816f4d1d0be498d74c':
  Revert "Remove unnecessary lookups during relocations"
2014-11-04 17:17:55 +00:00
Dmitriy Ivanov
7cb57841a5 am 4402804c: Revert "Fix mips build"
* commit '4402804c35c5c5992c728c6f3cee3bdbd325819e':
  Revert "Fix mips build"
2014-11-04 17:17:54 +00:00
Dmitriy Ivanov
5c9afdc0c1 am f947be28: Revert "Fix symbol lookup order during relocation"
* commit 'f947be2889639defc6424b1813ccc779528b7598':
  Revert "Fix symbol lookup order during relocation"
2014-11-04 17:17:53 +00:00
Dmitriy Ivanov
4c9b34bd8a am 494bee79: Revert "Fix arm64 and arm builds."
* commit '494bee796aa60131981308493e0e295493537e12':
  Revert "Fix arm64 and arm builds."
2014-11-04 17:17:52 +00:00
Dmitriy Ivanov
9d3382d97a Revert "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
This reverts commit c85e82dde5c4b2accc50a9e17740b9005dfbae6a.

Bug: 18222321
Bug: 18211780
Change-Id: I32f4048bd5ea85dc8a3dfccce8cf141b241ab692
2014-11-03 22:15:29 -08:00
Dmitriy Ivanov
69c5d108a5 Revert "Add RTLD_NODELETE flag support"
This reverts commit c87f65d2cd0690d81665f8b241c1d763f72b6f80.

Bug: 18222321
Bug: 18211780
Change-Id: I00252e26a28a41ab9f1e2dd3b32f0f80d86297f1
2014-11-03 22:15:26 -08:00
Dmitriy Ivanov
00dce52553 Revert "Fix relocation to look for symbols in local group"
This reverts commit fd2747bb585fc51b5ad56db09c0e9b66c7091a92.

Bug: 18222321
Bug: 18211780
Change-Id: I2d4ebab1e73b7277161af76b99f8249825b22d65
2014-11-03 22:15:20 -08:00
Dmitriy Ivanov
eae0977255 Revert "Remove unnecessary lookups during relocations"
This reverts commit 6442dbd3bcadbd5e522465743a8d8cf56338ae1c.

Bug: 18222321
Bug: 18211780
Change-Id: I87b18a32238a1f75afe56149221b6691f50d9f56
2014-11-03 22:15:17 -08:00
Dmitriy Ivanov
4402804c35 Revert "Fix mips build"
This reverts commit bf3d5ef5fd240d4c5fbde1b32f9084dbc720840b.

Bug: 18222321
Bug: 18211780
Change-Id: I902ed888197b358c77303f1acb6d5ffd7ae6dcd3
2014-11-03 22:15:13 -08:00
Dmitriy Ivanov
f947be2889 Revert "Fix symbol lookup order during relocation"
This reverts commit 976402cca13a1f4f3aa988fd301575e134ef5f2c.

Bug: 18222321
Bug: 18211780
Change-Id: Iafdd3d843db7b1cf288be9a0232022816622c944
2014-11-03 22:15:08 -08:00
Dmitriy Ivanov
494bee796a Revert "Fix arm64 and arm builds."
This reverts commit 445111a1c977e94a4233efd54f3690defa4a7582.

Bug: 18222321
Bug: 18211780
Change-Id: I4fa9e1b63ec9b528f8bfed73c2ec15046c43a2fe
2014-11-03 22:14:19 -08:00
Elliott Hughes
2fa23458ba am 6bb5579b: resolved conflicts for merge of d18f4b25 to lmp-mr1-dev-plus-aosp
* commit '6bb5579b8e8194a54354a88b2d685740c30fc3b9':
  Ensure we initialize stdin/stdout/stderr's recursive mutexes.
2014-11-04 02:44:26 +00:00
Elliott Hughes
6bb5579b8e resolved conflicts for merge of d18f4b25 to lmp-mr1-dev-plus-aosp
Change-Id: Ie1ebacd432a61d680bb1325aa369db717d39299d
2014-11-03 18:31:10 -08:00
Dan Albert
f75df00fae am a0ba3c83: am 5939060b: am 695781b6: Merge "Make host tests depend on /system/etc/hosts."
* commit 'a0ba3c83edd975159913aacc992f3f9400e332f5':
  Make host tests depend on /system/etc/hosts.
2014-11-04 01:59:27 +00:00
Elliott Hughes
b56c4973bd am 05e3e707: am 90138639: am e76ea9bb: Merge "Ensure we initialize stdin/stdout/stderr\'s recursive mutexes."
* commit '05e3e70772ea7c42ec2499212cd7fd876ab77cd3':
  Ensure we initialize stdin/stdout/stderr's recursive mutexes.
2014-11-04 01:59:25 +00:00
Dan Albert
a0ba3c83ed am 5939060b: am 695781b6: Merge "Make host tests depend on /system/etc/hosts."
* commit '5939060ba54fbab71c53b95310bfd798a35972ad':
  Make host tests depend on /system/etc/hosts.
2014-11-04 01:04:27 +00:00
Elliott Hughes
05e3e70772 am 90138639: am e76ea9bb: Merge "Ensure we initialize stdin/stdout/stderr\'s recursive mutexes."
* commit '90138639a50495fd63238524e9a0a0758cd574c6':
  Ensure we initialize stdin/stdout/stderr's recursive mutexes.
2014-11-04 01:04:25 +00:00
Dan Albert
5939060ba5 am 695781b6: Merge "Make host tests depend on /system/etc/hosts."
* commit '695781b6f0419f82939176a6ec1a240300d9f036':
  Make host tests depend on /system/etc/hosts.
2014-11-04 00:53:18 +00:00
Elliott Hughes
90138639a5 am e76ea9bb: Merge "Ensure we initialize stdin/stdout/stderr\'s recursive mutexes."
* commit 'e76ea9bbe0a8bccf97b88d09af13a84fd34a6a76':
  Ensure we initialize stdin/stdout/stderr's recursive mutexes.
2014-11-04 00:53:16 +00:00
Elliott Hughes
d18f4b2578 Ensure we initialize stdin/stdout/stderr's recursive mutexes.
(cherry-pick of 6a03abcfd23f31d1df06eb0059830e22621282bb.)

Bug: 18208568
Change-Id: I9da16ce0f9375bc363d1d02be706d73fd3b1e150
2014-11-03 13:46:41 -08:00
Dan Albert
695781b6f0 Merge "Make host tests depend on /system/etc/hosts." 2014-11-03 21:38:50 +00:00
Elliott Hughes
e76ea9bbe0 Merge "Ensure we initialize stdin/stdout/stderr's recursive mutexes." 2014-11-03 21:32:29 +00:00
Dan Albert
62b7279789 Make host tests depend on /system/etc/hosts.
Change-Id: I3e5ab1325d5e250a1d14b53f3a5a465d9f5de30c
2014-11-03 13:26:16 -08:00
Elliott Hughes
6a03abcfd2 Ensure we initialize stdin/stdout/stderr's recursive mutexes.
Bug: 18208568
Change-Id: I9da16ce0f9375bc363d1d02be706d73fd3b1e150
2014-11-03 12:32:17 -08:00
Dmitriy Ivanov
ae0757ff27 am d3cd6618: resolved conflicts for merge of 926797a8 to lmp-mr1-dev-plus-aosp
* commit 'd3cd66185f63a75ec9f0fca69bd6594c310dbaa8':
  Fix arm64 and arm builds.
  Fix symbol lookup order during relocation
  Fix mips build
  Remove unnecessary lookups during relocations
  Fix relocation to look for symbols in local group
  Correct way to specify additional dependencies
  Add dlfcn_test to glibc test suite.
  Ignore DT_BIND_NOW (0x18)
  Resolve "unused DT entry" warnings for x86_64
  Add RTLD_NODELETE flag support
  Fix mips build
  Fix unused DT entry warnings.
  Return has_DT_SYMBOLIC flag.
  Fix a couple more cases of missing CLOEXEC.
  Temporary disable DL_WARNs for unused DT_*
  Fix 64bit build
  Fix some unused DT_ warnings
  Remove has_DT_SYMBOLIC flag
  Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
  Reformatting
2014-11-02 01:14:04 +00:00
Dmitriy Ivanov
d3cd66185f resolved conflicts for merge of 926797a8 to lmp-mr1-dev-plus-aosp
Change-Id: I3b46a714fd1236431fa08872f280e4ac4c4880d1
2014-11-01 18:02:31 -07:00
Dmitriy Ivanov
fc6a97d292 am b1c019f3: am 75cd66aa: am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit 'b1c019f32ad5da8649b9792b8526806b1ebe2878':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 04:02:22 +00:00
Dmitriy Ivanov
b1c019f32a am 75cd66aa: am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit '75cd66aaf60f47e04359738a9c8d92588a1f7834':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 03:00:56 +00:00
Dmitriy Ivanov
75cd66aaf6 am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit '38ff8822763a30d4c9033a38ec8b71fcd17aba87':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 02:35:51 +00:00
Dmitriy Ivanov
38ff882276 Merge "Revert "Use local copy of the library name on dlopen"" 2014-11-01 02:32:24 +00:00
Dmitriy Ivanov
9fb216f844 Revert "Use local copy of the library name on dlopen"
This reverts commit da8e591c3996879e41dc5f70b77d1b0fe6f9c225.

Change-Id: I3fd6f235b18c232af5cc5ecd481851486d7d68f6
2014-11-01 02:30:38 +00:00
Dmitriy Ivanov
445111a1c9 Fix arm64 and arm builds.
Bug: 18186310

(cherry picked from commit 4e446b19d8710cd2004785db4a00f18f249fe73f)

Change-Id: Ibc77a9ade36dc6b9bf5a316b5ab9ae5f0a70e826
2014-10-31 19:29:04 -07:00
Dmitriy Ivanov
d79e427b73 am dcafe93d: am 6cba0e35: am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit 'dcafe93db23dbda62e1d9b6c2b2deb670f96980e':
  Fix arm64 and arm builds.
2014-11-01 00:45:39 +00:00
Dmitriy Ivanov
dcafe93db2 am 6cba0e35: am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit '6cba0e35ec62e86689556142a08f547f27b703dd':
  Fix arm64 and arm builds.
2014-11-01 00:39:45 +00:00
Dmitriy Ivanov
6cba0e35ec am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit '36ffc73e992de77cc4bc397e41767b69ed9ac917':
  Fix arm64 and arm builds.
2014-11-01 00:36:23 +00:00
Dmitriy Ivanov
36ffc73e99 Merge "Fix arm64 and arm builds." 2014-11-01 00:33:30 +00:00
Dmitriy Ivanov
4e446b19d8 Fix arm64 and arm builds.
Change-Id: I2c8c41626768e792f27a2616f2cd5ae66606319d
2014-10-31 17:27:02 -07:00
Dmitriy Ivanov
976402cca1 Fix symbol lookup order during relocation
Relocate symbol against DF_1_GLOBAL shared libraries
  loaded before this shared library. This includes
  main executable, ld_preloads and other libraries
  that have DF_1_GLOBAL flag set.

Bug: 2643900
Bug: 15432753
Bug: 18186310

(cherry picked from commit d225a5e65223b375a63548c4b780f04d8f3d7b60)

Change-Id: I4e889cdf2dfbf8230b0790053d311ee6b0d0ee2d
2014-10-31 17:10:30 -07:00
Dmitriy Ivanov
bf3d5ef5fd Fix mips build
Bug: 18186310

(cherry picked from commit 90b74fb8671db6f5512821a033e12a6248e5c804)

Change-Id: I8d4ed254e5c421b65b62c401abdb1ee07e5dc3b2
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
6442dbd3bc Remove unnecessary lookups during relocations
local_group includes this library and its dependencies.

Bug: 18186310

(cherry picked from commit e47b3f8456fc34ac136e9fddef59a9ae37febcbe)

Change-Id: I93c2d873e924df7319569307444bf603d7d27bf0
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
fd2747bb58 Fix relocation to look for symbols in local group
The local group is a sequence of libraries in default (breadth-first)
  order. It allows RTLD_LOCALLY loaded library to correctly relocate
  symbols within its group (see test-cases).

  Local group lookup is performed after main executable and ld_preloads.

Bug: 2643900
Bug: 15432753
Bug: 18186310

(cherry picked from commit cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb)

Change-Id: I5fa8c673f929e4652c738912c7ae078d7ec286d2
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
4d0c1f673f Correct way to specify additional dependencies
Previous one was not covering all the targets

Bug: 17548097
Bug: 18186310

(cherry picked from commit 4a9e1937c56511aef579312bf39ab345f9179230)

Change-Id: I2cd9e58893555d16cbfe291b2d1279621489d5ad
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
382e06ce8e Add dlfcn_test to glibc test suite.
Bug: 18186310

(cherry picked from commit eb27bbae8f0edc6b62ca2db73256c7fb53b9e9bf)

Change-Id: I1d608dfa12dbafbdcdb8bc6d818c5872404c19e0
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
e4bc6f026a Ignore DT_BIND_NOW (0x18)
Bug: 18186310
Bug: 17552334

(cherry picked from commit ea6eae182ad64312f80b9adddac511d8938e23e7)

Change-Id: I07d6f6fbb462fea329581d0da02f6d88be1c262f
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
1d3e81a9e7 Resolve "unused DT entry" warnings for x86_64
Bug: 18186310

(cherry picked from commit 513e29e16f16a6ffa1636ba282d599fd6b437aeb)

Change-Id: I1e4c5af2cdc09dc978c7a78fcdcf8796c919751e
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
c87f65d2cd Add RTLD_NODELETE flag support
Bug: 18186310
Bug: https://code.google.com/p/android/issues/detail?id=64069

(cherry picked from commit 1b20dafdbe65e43b9f4c95057e8482380833ea91)

Change-Id: Ic02eec22a7c322ece65eb40730a3404f611526b1
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
210ff1b27b Fix mips build
Bug: 18186310

(cherry picked from commit ecf532fa1cfe91ca946243c11ef154c602870ba6)

Change-Id: Ia12f2fa28c8cd3204eb7d6b4c7d872f4e81fb8ef
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
0f47d9c1ce Fix unused DT entry warnings.
DT_STRSZ Implement strtab boundary checks
 DT_FLAGS_1 Warn if flags other than DF_1_NOW|DF_1_GLOBAL are set

Bug: 17552334
Bug: 18186310

(cherry picked from commit 6cdeb5234d7f4523fe9d83974f265d80f10512a6)

Change-Id: I7ffc7bc600798308a77ad949a644949b64250ae2
2014-10-31 17:03:59 -07:00
Dmitriy Ivanov
f90e21004e Return has_DT_SYMBOLIC flag.
This reverts commit 8f61d991831f0ea515fa50a5c38dbbcfbab0dd28

 Despite the fact that static linker does all the work while linking
 -Bsymbolic executables, according to the SCO doc following DT_SYMBOLIC
 and DF_SYMBOLIC flags is still a requirement for the dynamic linker
 as well.

 (see http://www.sco.com/developers/gabi/2012-12-31/ch5.dynamic.html)

Bug: 18186310

(cherry picked from commit 96bc37f2e1093416a432135265fd7a4db6c3df17)

Change-Id: Ie217be4f3305d877066e4cfe91975ae1c7768330
2014-10-31 17:03:59 -07:00
Elliott Hughes
748fbe5c41 Fix a couple more cases of missing CLOEXEC.
The debuggerd case can probably never happen, because you're crashing at this
point anyway. The system property one seems possible though.

Bug: 18186310

(cherry picked from commit 0dc39f9952c5e3a3121ea77357bb264ef0f8ded7)

Change-Id: I3e84488fc246f6c28cbd82e96d0cd4343a12c28a
2014-10-31 17:03:21 -07:00
Dmitriy Ivanov
d5eb10875a Temporary disable DL_WARNs for unused DT_*
Bug: 17552334
Bug: 18186310

(cherry picked from commit 1b77423eff21e916186fcb208f138e436e9f3052)

Change-Id: I8a9d05195a862bc287fff7156913606f0311b8bb
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
09608848ed Fix 64bit build
Bug: 18186310

(cherry picked from commit f240aa8089ea1574a7d799720efb66528f6ceb99)

Change-Id: Id46f1f9be90a17a58fb44d3540095c8c685c9726
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
634a045c5c Fix some unused DT_ warnings
* DT_PLTGOT - ignored for non-mips
 * DT_RELCOUNT/RELACOUNT - ignored
 * DT_RELENT/RELAENT - sanity checks
 * DT_SYMENT - sanity check
 * DT_SONAME - ignore for now.

Bug: 18186310

(cherry picked from commit 4a6e9a835a84aca965f0170f604381dae7f130be)

Change-Id: Ib40095f0770d65628fc7abac5a471378de35ebe7
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
b364d95380 Remove has_DT_SYMBOLIC flag
From the elf-spec: "Symbolically bound shared objects are
  identified by the .dynamic entry DT_SYMBOLIC. This tag is
  informational only; the runtime linker processes symbol
  lookups from these objects in the same manner as any
  other object."

Bug: 18186310

(cherry picked from commit 8f61d991831f0ea515fa50a5c38dbbcfbab0dd28)

Change-Id: I37024799ac8d1837993c8ae78780a448bedd6539
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
c85e82dde5 Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
Symbols from libraries opened with RTLD_LOCAL (default)
  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)

Bug: 17512583
Bug: 18186310

(cherry picked from commit e8ba50fe0d51fbefee1a8f5bb62bf51d841512c8)

Change-Id: Idf6bbe2233fb2bfc0c88677e7d1fc518fb3f7a8b
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
926797a8a9 Reformatting
No functional changes.

Bug: 18186310

(cherry picked from commit 6abf624d122bec8c80cc9fe1b692265bf1b28b1b)]

Change-Id: I0acf52d8ee7fe2d4f44bc832cbe9fabe1782f03f
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
53fa1d13f4 am eb46dd98: am a334934f: am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'eb46dd98ab903938cd5863da7d614d3ec03c0722':
  Fix symbol lookup order during relocation
2014-11-01 00:01:35 +00:00
Dmitriy Ivanov
eb46dd98ab am a334934f: am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'a334934f66386ecdf3ec07daf0b651fcf3b8dcce':
  Fix symbol lookup order during relocation
2014-10-31 23:57:29 +00:00
Dmitriy Ivanov
a334934f66 am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'f33ad400230fa1f16ba4501efb60a1b6035e06ca':
  Fix symbol lookup order during relocation
2014-10-31 23:54:20 +00:00
Dmitriy Ivanov
f33ad40023 Merge "Fix symbol lookup order during relocation" 2014-10-31 23:51:18 +00:00
Dmitriy Ivanov
034f6105d9 am c663c2ae: am 703581a3: am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit 'c663c2ae3ee6edf69342b1535237ffdc8489d2d9':
  Use local copy of the library name on dlopen
2014-10-31 23:02:48 +00:00
Dmitriy Ivanov
c663c2ae3e am 703581a3: am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit '703581a3220123a4fc44acbf3a94c835a7cf5ed0':
  Use local copy of the library name on dlopen
2014-10-31 22:57:06 +00:00
Dmitriy Ivanov
703581a322 am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit '74c0ccd49b2f0a94078b565b60c10ecba1e9424e':
  Use local copy of the library name on dlopen
2014-10-31 22:51:38 +00:00
Dmitriy Ivanov
74c0ccd49b Merge "Use local copy of the library name on dlopen" 2014-10-31 22:47:25 +00:00
Dmitriy Ivanov
da8e591c39 Use local copy of the library name on dlopen
Bug: 18052100
Change-Id: Idbc2a3691db3b5525d4e9bca81d78d5f29bc438f
2014-10-31 14:23:34 -07:00
Dmitriy Ivanov
d225a5e652 Fix symbol lookup order during relocation
Relocate symbol against DF_1_GLOBAL shared libraries
  loaded before this shared library. This includes
  main executable, ld_preloads and other libraries
  that have DF_1_GLOBAL flag set.

Bug: 2643900
Bug: 15432753
Change-Id: Ia788748be59b739d1c7e62b978e7e255f9e65c7b
2014-10-31 11:39:51 -07:00
Dan Albert
b5c391eeed am 64b5940b: am 653263a9: Only use <atomic> for C++11 and newer.
* commit '64b5940bc3e6202da16a5c1f24a380169032e51d':
  Only use <atomic> for C++11 and newer.
2014-10-31 06:17:44 +00:00
Dan Albert
64b5940bc3 am 653263a9: Only use <atomic> for C++11 and newer.
* commit '653263a96459c5c1811623bd84201c324a870280':
  Only use <atomic> for C++11 and newer.
2014-10-31 06:12:21 +00:00
Dan Albert
653263a964 Only use <atomic> for C++11 and newer.
Any pre-C++11 clients of stdatomic.h that use libc++ are being forced
over to <atomic>, which they don't have the language support to use.

Bug:17736764

Change-Id: I62445c1f2541410a1569498c09433c7196635537
(cherry picked from commit 3ce0769aa5f9a991af1d167f730d987dd002253c)
2014-10-30 13:22:34 -07:00
Elliott Hughes
8fc0e09a01 am 20cc6b69: Merge remote-tracking branch \'goog/lmp-mr1-ub-dev\' into manualmerge
* commit '20cc6b695a8ceaf801f53f0526f0ed5d588d7d9d':
  Fix the type of u_ar0 in <sys/user.h>.
  Add greg_t for arm64.
  POSIX says <signal.h> gets you ucontext_t.
  Add in_port_t and move it and in_addr_t to the correct header file.
  Add stpcpy assembler version.
  Cleanup arm assembly.
  Add __memcpy_chk assembly for 64 bit.
  Clean up the architecture-specific makefiles.
  No arm source refers to SOFTFLOAT.
2014-10-30 18:39:16 +00:00
Elliott Hughes
e897108f96 am 7256062f: am 25f4bb98: am e38bf839: Merge "limits.h: add define for HOST_NAME_MAX"
* commit '7256062f10a2381cf2bd92aacadbf5ebda32b3b2':
  limits.h: add define for HOST_NAME_MAX
2014-10-30 18:38:52 +00:00
Elliott Hughes
20cc6b695a Merge remote-tracking branch 'goog/lmp-mr1-ub-dev' into manualmerge 2014-10-30 09:52:50 -07:00
Elliott Hughes
7256062f10 am 25f4bb98: am e38bf839: Merge "limits.h: add define for HOST_NAME_MAX"
* commit '25f4bb984cf9a27ebfac0e8f0ab5481ce3bebf15':
  limits.h: add define for HOST_NAME_MAX
2014-10-30 16:08:28 +00:00
Elliott Hughes
25f4bb984c am e38bf839: Merge "limits.h: add define for HOST_NAME_MAX"
* commit 'e38bf839837d11542e7d1deb00d81542a0ef55b7':
  limits.h: add define for HOST_NAME_MAX
2014-10-30 16:02:29 +00:00
Elliott Hughes
e38bf83983 Merge "limits.h: add define for HOST_NAME_MAX" 2014-10-30 15:56:44 +00:00
Yongqin Liu
0589777a33 limits.h: add define for HOST_NAME_MAX
according to the rules defined here:
    http://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html
add the definition for HOST_NAME_MAX to limits.h file,
and set the default value to _POSIX_HOST_NAME_MAX as 255

Change-Id: Iddd5c6c569f4e0a14994c7a7c54985f3e7809fc4
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-10-30 10:59:24 +08:00
Elliott Hughes
b0693ec582 Merge changes I0feda6b2,I22d13fde,I49d7d09d,Ice490bfe into lmp-mr1-dev
* changes:
  Fix the type of u_ar0 in <sys/user.h>.
  Add greg_t for arm64.
  POSIX says <signal.h> gets you ucontext_t.
  Add in_port_t and move it and in_addr_t to the correct header file.
2014-10-29 23:22:30 +00:00
Elliott Hughes
7e9da3ef4a am 3d50e8ef: am 4c29b1c2: am f362e9fb: Merge "Remove an unused file."
* commit '3d50e8efde2e39a4776506f2db60943da314caa0':
  Remove an unused file.
2014-10-29 21:00:42 +00:00
Elliott Hughes
3d50e8efde am 4c29b1c2: am f362e9fb: Merge "Remove an unused file."
* commit '4c29b1c266aa7ac81a7b67a6170f52c12aca712d':
  Remove an unused file.
2014-10-29 20:56:29 +00:00
Elliott Hughes
b3388419ec am 0eca5472: am 24464b04: am d50495a5: Merge "Extra strtod/strtof tests."
* commit '0eca547209f906e68a5ce61186b64e12c1941ba6':
  Extra strtod/strtof tests.
2014-10-29 20:52:20 +00:00
Elliott Hughes
4c29b1c266 am f362e9fb: Merge "Remove an unused file."
* commit 'f362e9fb33722f89cebe65ddf2f07d2b07e4390e':
  Remove an unused file.
2014-10-29 20:51:27 +00:00
Elliott Hughes
f362e9fb33 Merge "Remove an unused file." 2014-10-29 20:46:31 +00:00
Elliott Hughes
39cd0fa24a Remove an unused file.
We don't have any FreeBSD stdio left.

Bug: 17154680
Change-Id: I145627f564364ac8d4707d431d451cc3115c1c6a
2014-10-29 13:42:23 -07:00
Elliott Hughes
0eca547209 am 24464b04: am d50495a5: Merge "Extra strtod/strtof tests."
* commit '24464b04a0d5a7645b8e751c6a9ef0c6574d52c2':
  Extra strtod/strtof tests.
2014-10-29 20:42:10 +00:00
Yabin Cui
7574c81852 am c62f0d7c: am 63edd69e: am cbb4606a: Merge "change unsigned int to uint32_t for api arc4random/arc4random_uniform"
* commit 'c62f0d7c60053322d8cc6acafd5a64dd50c6d053':
  change unsigned int to uint32_t for api arc4random/arc4random_uniform
2014-10-29 19:56:56 +00:00
Elliott Hughes
d8ebe6427f am 654c7811: am 91bfaed2: am 13dcb88b: Merge "Disable tzdata in ."
* commit '654c781195f4b5269a910f08b14d87f9fa29ab47':
  Disable tzdata in $ANDROID_DATA.
2014-10-29 19:56:55 +00:00
Elliott Hughes
af51e15a35 am e3c9f21e: resolved conflicts for merge of 912fe0a6 to lmp-mr1-dev-plus-aosp
* commit 'e3c9f21eaf2601ce6b2e3d62eeb12d03b048bdce':
  [x86,x86_64] Fix libgcc unwinding through signal
2014-10-29 19:56:54 +00:00
Yabin Cui
c62f0d7c60 am 63edd69e: am cbb4606a: Merge "change unsigned int to uint32_t for api arc4random/arc4random_uniform"
* commit '63edd69e576a9f1faebc493bc6d4e4729c70b02c':
  change unsigned int to uint32_t for api arc4random/arc4random_uniform
2014-10-29 19:42:32 +00:00
Elliott Hughes
654c781195 am 91bfaed2: am 13dcb88b: Merge "Disable tzdata in ."
* commit '91bfaed26a1e4595c387a27a789a71ec0eebfa73':
  Disable tzdata in $ANDROID_DATA.
2014-10-29 19:42:31 +00:00
Elliott Hughes
e3c9f21eaf resolved conflicts for merge of 912fe0a6 to lmp-mr1-dev-plus-aosp
Change-Id: Ie1cc84f34ccaf27eae4f3c292d67d44a9f0276bc
2014-10-29 12:38:36 -07:00
Elliott Hughes
0c4e98adbe Fix the type of u_ar0 in <sys/user.h>.
(cherry picked from commit e03950fa0c5567edf70d011b856a027e03b1c0f7)

Bug: 18172268
Change-Id: I0feda6b253882f68f47bcf30fad998286cc7f620
2014-10-29 11:57:36 -07:00
Elliott Hughes
d0fb6a2940 Add greg_t for arm64.
This was already present for the other architectures. I think we skipped
this because glibc seems to have an incorrect definition (int rather than
long), but the kernel has the sane definition (just not in a uapi header).

(cherry picked from commit 8e4d371091e5738346f5c6ad395b8487c2a5ec67)

Bug: 18172268
Change-Id: I22d13fdeb6431ea122dd028a229782dcaf2286b2
2014-10-29 11:56:59 -07:00
Elliott Hughes
ab4d5cf242 POSIX says <signal.h> gets you ucontext_t.
POSIX also says that ucontext_t's uc_sigmask has type sigset_t.

MIPS64 strace needs this.

The #define is to keep chromium off our lawn; otherwise it tries to redefine
all this stuff itself. We should probably clean that up and remove the #define.

(cherry picked from commit 26a8eb50a84e131d34d10d5d167d67e9995399bd)

Bug: 18172268
Change-Id: I49d7d09dabfc6c6926a8e1f4b235d041e2f2fc4d
2014-10-29 11:55:02 -07:00
Elliott Hughes
eedbf70e8e Add in_port_t and move it and in_addr_t to the correct header file.
No one's reported this, but I saw it in an Android port of fuser(1).

We still have lots of problems in our network headers because we
get most of the structs direct from the kernel, and it doesn't use
types like this (which is why we've got away without this one for
so long). One day we should probably look at cleaning that up, but
doing so can wait.

(cherry picked from commit 35d226e05d92824c6eb992e7a64ea22efc8bae03)

Bug: 18172268
Change-Id: Ice490bfe84afb04722d738128053d4c533b8a664
2014-10-29 11:49:45 -07:00
Christopher Ferris
98d57c95bc Add stpcpy assembler version.
For generic, continue to use the C version of the code.

Bug: 13746695

(cherry picked from commit 7d849ac378515efa1522e538e6e1d3b546cae97d)

Change-Id: Iae44785f37f9bb59103ab78fb9f74c92f8a95c7f
2014-10-29 11:07:03 -07:00
Elliott Hughes
174158ca15 am 3834e0fd: am 382938d0: am ec58e29b: Merge "pthread_setname_np appears in glibc 2.12."
* commit '3834e0fd68f30b49f67e20434a34024aca16b44a':
  pthread_setname_np appears in glibc 2.12.
2014-10-29 17:52:14 +00:00
Elliott Hughes
522d7eec98 am 91e5674c: am 7dbb1cff: am 021b6412: Merge "Fix the type of u_ar0 in <sys/user.h>."
* commit '91e5674c34770b06cabd29afec0c8e752ecc2527':
  Fix the type of u_ar0 in <sys/user.h>.
2014-10-29 17:52:13 +00:00
Elliott Hughes
39b6bfdc0a am a4402ef6: am ee8faa5e: am 7f164f60: Merge "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK."
* commit 'a4402ef6e68f7b790d49d3dbc6dad4a0893a2e37':
  POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.
2014-10-29 17:52:12 +00:00
Elliott Hughes
3834e0fd68 am 382938d0: am ec58e29b: Merge "pthread_setname_np appears in glibc 2.12."
* commit '382938d092c7427a74ae8a6507bbd49f01e5c2f9':
  pthread_setname_np appears in glibc 2.12.
2014-10-29 17:46:53 +00:00
Elliott Hughes
91e5674c34 am 7dbb1cff: am 021b6412: Merge "Fix the type of u_ar0 in <sys/user.h>."
* commit '7dbb1cff0b40b4f6a2792b73f24ac912cfe121d5':
  Fix the type of u_ar0 in <sys/user.h>.
2014-10-29 17:46:53 +00:00
Elliott Hughes
a4402ef6e6 am ee8faa5e: am 7f164f60: Merge "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK."
* commit 'ee8faa5e74eadc12231f59f2bbe13cfa644922cd':
  POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.
2014-10-29 17:46:52 +00:00
Elliott Hughes
24464b04a0 am d50495a5: Merge "Extra strtod/strtof tests."
* commit 'd50495a56760fdc116b7484bcdf1183c76db9b37':
  Extra strtod/strtof tests.
2014-10-29 17:36:16 +00:00
Dmitriy Ivanov
721950be00 am f63ce364: am 3a3a4b8a: am e23f564b: Merge "Fix *tests-run-on-host target"
* commit 'f63ce364a4cd2004f100ad2f683fe43edf1d1ede':
  Fix *tests-run-on-host target
2014-10-29 17:32:35 +00:00
Elliott Hughes
c779fb70c6 am 6ede5d1f: am 44331e8b: am c716dd1e: Merge "bionic tests: migrate test for mutex type from system/extras"
* commit '6ede5d1f24bbaa88292583ca649916e8c116fb16':
  bionic tests: migrate test for mutex type from system/extras
2014-10-29 17:32:34 +00:00
Dmitriy Ivanov
66acd2c127 am c79478a5: am 85d77021: am f56a2f5e: Merge "Remove unnecessary reinterpret_cast"
* commit 'c79478a53339f957ec7d8ad6f7667b507f3b658e':
  Remove unnecessary reinterpret_cast
2014-10-29 17:32:34 +00:00
Chih-Hung Hsieh
a986a6bbc6 am 5ef7bdad: am f3b0d9cd: am 57c5a556: Merge "Disable clang compilation due to lack of ifunc."
* commit '5ef7bdadbf582d3829289fb2a51cb5ff38a891d2':
  Disable clang compilation due to lack of ifunc.
2014-10-29 17:32:33 +00:00
Elliott Hughes
fc038c029c am 2a45d8cd: am 1dd65cc3: am c83837ec: Merge "Make the netdb unit tests work on the host."
* commit '2a45d8cd4f8c01ae28f0c945df05a7ccc9d31bc2':
  Make the netdb unit tests work on the host.
2014-10-29 17:32:32 +00:00
Elliott Hughes
b8ce996640 am 49220899: am 3f5d8a00: am cad8d226: Merge "Use mxcr_mask instead of mxcsr_mask to match glibc."
* commit '49220899f214a5de54753ab4e9953637faf61f20':
  Use mxcr_mask instead of mxcsr_mask to match glibc.
2014-10-29 17:32:31 +00:00
Elliott Hughes
b9dd047db5 am 413a4bdd: am 43ec1fb7: am a4c0b756: Merge "Add mkfifoat(3)."
* commit '413a4bdd3c675acf76afeda454ff150853ffd905':
  Add mkfifoat(3).
2014-10-29 17:32:30 +00:00
Dmitriy Ivanov
ba2e363f35 am 1e84f9da: am 3db80168: am f33a7d7f: Merge "Fix mips build"
* commit '1e84f9dab4dd4c366beb8eeade64df9352a47dbd':
  Fix mips build
2014-10-29 17:32:30 +00:00
Dmitriy Ivanov
34d9e9e050 am a7424d79: am fee054f3: am 398eb5a7: Merge "Remove unnecessary lookups during relocations"
* commit 'a7424d79c44b8af56208315962c75d6b8fffcb94':
  Remove unnecessary lookups during relocations
2014-10-29 17:32:29 +00:00
Dmitriy Ivanov
a669279085 am 0dbb80ae: am 1babff27: am 566f2bc6: Merge "Fix relocation to look for symbols in local group"
* commit '0dbb80ae950c766b65321350be002309ef9de5d1':
  Fix relocation to look for symbols in local group
2014-10-29 17:32:28 +00:00
Elliott Hughes
c2e6bc77ba am 5e90a976: am ac5df33e: am 6c5694b6: Merge "Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3)."
* commit '5e90a9760728a314d516602754090848f84f600b':
  Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3).
2014-10-29 17:32:27 +00:00
Elliott Hughes
74b96b47f3 am 66bae426: am 7f558f60: am cf8ea37f: Merge "bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests"
* commit '66bae4262aa0c516181e6177f371c5e9223b665a':
  bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests
2014-10-29 17:32:26 +00:00
Elliott Hughes
d50495a567 Merge "Extra strtod/strtof tests." 2014-10-29 17:22:33 +00:00
Dmitriy Ivanov
f63ce364a4 am 3a3a4b8a: am e23f564b: Merge "Fix *tests-run-on-host target"
* commit '3a3a4b8ae6c03b58c59717ab3c3be85099939d3b':
  Fix *tests-run-on-host target
2014-10-29 17:13:49 +00:00
Elliott Hughes
6ede5d1f24 am 44331e8b: am c716dd1e: Merge "bionic tests: migrate test for mutex type from system/extras"
* commit '44331e8bb0ba17be0387e9353d2309f980136273':
  bionic tests: migrate test for mutex type from system/extras
2014-10-29 17:13:49 +00:00
Dmitriy Ivanov
c79478a533 am 85d77021: am f56a2f5e: Merge "Remove unnecessary reinterpret_cast"
* commit '85d770211b33ede2d7bf1b37a6e01bcb308cb666':
  Remove unnecessary reinterpret_cast
2014-10-29 17:13:32 +00:00
Chih-Hung Hsieh
5ef7bdadbf am f3b0d9cd: am 57c5a556: Merge "Disable clang compilation due to lack of ifunc."
* commit 'f3b0d9cd79574ac43d41e50bf81f57016c620624':
  Disable clang compilation due to lack of ifunc.
2014-10-29 17:13:31 +00:00
Elliott Hughes
2a45d8cd4f am 1dd65cc3: am c83837ec: Merge "Make the netdb unit tests work on the host."
* commit '1dd65cc30c43921f9a0fc604597701b349e3e028':
  Make the netdb unit tests work on the host.
2014-10-29 17:13:30 +00:00
Elliott Hughes
49220899f2 am 3f5d8a00: am cad8d226: Merge "Use mxcr_mask instead of mxcsr_mask to match glibc."
* commit '3f5d8a00e4b57fdf7ec8cc01cc33fbfab5ae1316':
  Use mxcr_mask instead of mxcsr_mask to match glibc.
2014-10-29 17:13:29 +00:00
Elliott Hughes
413a4bdd3c am 43ec1fb7: am a4c0b756: Merge "Add mkfifoat(3)."
* commit '43ec1fb76c679738011adc0706e6ef2e01058e79':
  Add mkfifoat(3).
2014-10-29 17:13:26 +00:00
Dmitriy Ivanov
1e84f9dab4 am 3db80168: am f33a7d7f: Merge "Fix mips build"
* commit '3db80168ff376c08f1faa948b9a41a0c823c9631':
  Fix mips build
2014-10-29 17:13:25 +00:00
Dmitriy Ivanov
a7424d79c4 am fee054f3: am 398eb5a7: Merge "Remove unnecessary lookups during relocations"
* commit 'fee054f3ecd7c26705f544ecf0d76ce4ec57a2d4':
  Remove unnecessary lookups during relocations
2014-10-29 17:13:24 +00:00
Dmitriy Ivanov
0dbb80ae95 am 1babff27: am 566f2bc6: Merge "Fix relocation to look for symbols in local group"
* commit '1babff27fd0e62bd719d04e789da01adbb0b01cd':
  Fix relocation to look for symbols in local group
2014-10-29 17:13:23 +00:00
Elliott Hughes
5e90a97607 am ac5df33e: am 6c5694b6: Merge "Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3)."
* commit 'ac5df33e091c079d667354d225ed37d23326a270':
  Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3).
2014-10-29 17:13:22 +00:00
Elliott Hughes
66bae4262a am 7f558f60: am cf8ea37f: Merge "bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests"
* commit '7f558f60cb51c54782f6d51cd3537082e00970bc':
  bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests
2014-10-29 17:10:58 +00:00
Elliott Hughes
9debb36799 am ec2ee183: am 96a6f401: am e516321d: Merge "Update bionic to tzdata2014i."
* commit 'ec2ee183a351ce8cbc8a531b5ff74c3fbc10c644':
  Update bionic to tzdata2014i.
2014-10-29 16:47:11 +00:00
Christopher Ferris
3c7bb4ca22 am c165b98a: am 274f5e73: am efd2ec8f: Merge "Fix race condition in timer disarm/delete."
* commit 'c165b98adc930b11c140a1c10e1eeb0ec6307ac9':
  Fix race condition in timer disarm/delete.
2014-10-29 16:47:10 +00:00
Elliott Hughes
ec2ee183a3 am 96a6f401: am e516321d: Merge "Update bionic to tzdata2014i."
* commit '96a6f40163b5a2b97c470894ef81041e18265192':
  Update bionic to tzdata2014i.
2014-10-29 16:42:51 +00:00
Christopher Ferris
c165b98adc am 274f5e73: am efd2ec8f: Merge "Fix race condition in timer disarm/delete."
* commit '274f5e737dcae3c9d328f89f4f7df29acee41230':
  Fix race condition in timer disarm/delete.
2014-10-29 16:42:50 +00:00
Yabin Cui
63edd69e57 am cbb4606a: Merge "change unsigned int to uint32_t for api arc4random/arc4random_uniform"
* commit 'cbb4606ad00f084f984c92a8674400a112ea200e':
  change unsigned int to uint32_t for api arc4random/arc4random_uniform
2014-10-29 12:32:36 +00:00
Elliott Hughes
91bfaed26a am 13dcb88b: Merge "Disable tzdata in ."
* commit '13dcb88b0f8ce238456059fdc0b6c946caed1e3a':
  Disable tzdata in $ANDROID_DATA.
2014-10-29 12:32:23 +00:00
Elliott Hughes
912fe0a6df am f96eaf62: Merge "[x86,x86_64] Fix libgcc unwinding through signal"
* commit 'f96eaf6202351a1b5153cfaad3137e4b63846f8f':
  [x86,x86_64] Fix libgcc unwinding through signal
2014-10-29 12:31:52 +00:00
Christopher Ferris
1c8ea807eb Cleanup arm assembly.
Remove the old arm directives.
Change the non-local labels to .L labels.
Add cfi directives to strcpy.S.

Bug: 18157900

(cherry picked from commit c8bd2abab24afe563240297018c4fa79944f193b)

Change-Id: Ifa1c3d16553d142eaa0d744af040f0352538106c
2014-10-28 18:19:33 -07:00
Elliott Hughes
89aaaffbf8 Extra strtod/strtof tests.
Check that libc doesn't suffer from a couple of bugs that affected
Java in the past.

Bug: 2206701
Change-Id: I9eb64d7ff2fa0b79e93079b897a5fb78bef866be
2014-10-28 17:54:23 -07:00
Elliott Hughes
4db348f8c9 am 69377b89: Fix merge-induced makefile error.
* commit '69377b890966af4a679857caea983e4702e3b764':
  Fix merge-induced makefile error.
2014-10-29 00:01:14 +00:00
Elliott Hughes
69377b8909 Fix merge-induced makefile error.
Change-Id: I6ac7e5e3b9d55108681916044cf2de0e01bca0b2
2014-10-28 16:58:11 -07:00
Christopher Ferris
0cc59dd303 Add __memcpy_chk assembly for 64 bit.
Bug: 17623887

(cherry picked from commit 8cf61dab5f11ed5654a5760ab47cec0239caafe0)

Change-Id: I91e66ca0c26f04b50308059f9c89d388d55f6e3a
2014-10-28 16:18:47 -07:00
Elliott Hughes
bdc27e578c am 16b557e1: Merge remote-tracking branch \'goog/lmp-mr1-ub-dev\' into manualmerge
* commit '16b557e1b2e991a5e22b553fbc5e8898877d1913':
  Fix mips signed/unsigned signal_test.cpp build breakage.
  Remove the unnecessary generic-neon code.
  Don't mask out SA_RESTORER from sa_flags.
  [x86,x86_64] Fix libgcc unwinding through signal
  Stack unwinding unit tests.
  Use the kernel's sa_restorer for aarch64.
  Fix 32-bit arm unwinding through signal frames.
  Fix signal trampolines.
  Disable tzdata in $ANDROID_DATA.
2014-10-28 23:13:37 +00:00
Elliott Hughes
16b557e1b2 Merge remote-tracking branch 'goog/lmp-mr1-ub-dev' into manualmerge
Conflicts:
	libc/arch-arm/bionic/__restore.S
	libc/arch-arm/cortex-a15/bionic/stpcpy.S
	libc/arch-arm/cortex-a9/bionic/stpcpy.S
	libc/arch-arm64/generic/bionic/memcpy_base.S
	libc/arch-x86/bionic/__restore.S
	libc/arch-x86/x86.mk
	libc/arch-x86_64/bionic/__restore_rt.S
	tests/stack_unwinding_test.cpp
	tests/stack_unwinding_test_impl.c

Change-Id: I2cb250ad78e9da6f390bc279aec742564b75e6c7
2014-10-28 16:06:57 -07:00
Yabin Cui
cbb4606ad0 Merge "change unsigned int to uint32_t for api arc4random/arc4random_uniform" 2014-10-28 22:58:40 +00:00
Elliott Hughes
86d16a053e Clean up the architecture-specific makefiles.
Group things appropriately and name each group.

Bug: 18160821

(cherry picked from commit 7c02d9428ca18ac600f7ba7d51bb24ca71e733f6)

Change-Id: I863242515af44058154d03e2d8c34678e682d66a
2014-10-28 15:13:36 -07:00
Elliott Hughes
b378c27226 No arm source refers to SOFTFLOAT.
So why bother #defining it?

Bug: 18160821

(cherry picked from commit b1a6c319c40674d71e30313040d3b33b8bddf24b)

Change-Id: I9cd9c144ba7071fddda12fa16d1232ad861b66be
2014-10-28 15:13:04 -07:00
Elliott Hughes
22e2c9d963 Fix mips signed/unsigned signal_test.cpp build breakage.
(cherry picked from commit aa13e839f06231b9299bb683a71abd954294b49b)

Bug: 17436734
Change-Id: I167fc5d74c49cca7031c5739bc53fdf3bde71887
2014-10-28 14:02:10 -07:00
Yabin Cui
a39f939e0d change unsigned int to uint32_t for api arc4random/arc4random_uniform
Bug: 17894480
Change-Id: Ia4b5a7cd2b2c6002ed70955f86f7780d26d15e26
2014-10-28 13:44:48 -07:00
Elliott Hughes
382938d092 am ec58e29b: Merge "pthread_setname_np appears in glibc 2.12."
* commit 'ec58e29b276b0f98eb624430fb70703dc32057bf':
  pthread_setname_np appears in glibc 2.12.
2014-10-28 19:28:35 +00:00
Elliott Hughes
7dbb1cff0b am 021b6412: Merge "Fix the type of u_ar0 in <sys/user.h>."
* commit '021b6412f7b7ce73b383480b25a8e5d69323f78c':
  Fix the type of u_ar0 in <sys/user.h>.
2014-10-28 19:28:34 +00:00
Elliott Hughes
ee8faa5e74 am 7f164f60: Merge "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK."
* commit '7f164f6052b6dcee1c2cc70accdfac4b2c790b19':
  POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.
2014-10-28 19:28:32 +00:00
Christopher Ferris
43dc3a9aae Remove the unnecessary generic-neon code.
Bug: 18156619
(cherry picked from commit 2169e17482da91865e412e55b52b88d7c8db47f6)

Change-Id: I4a7f5bb9ad4c27b274f3a3c86c1617ca0578b98f
2014-10-28 12:07:25 -07:00
Dmitriy Ivanov
3a3a4b8ae6 am e23f564b: Merge "Fix *tests-run-on-host target"
* commit 'e23f564b52fed0dce661cf6db25cf3a89bd66f18':
  Fix *tests-run-on-host target
2014-10-28 17:34:12 +00:00
Elliott Hughes
44331e8bb0 am c716dd1e: Merge "bionic tests: migrate test for mutex type from system/extras"
* commit 'c716dd1e21438ac6585be79fb799b3135e9b381f':
  bionic tests: migrate test for mutex type from system/extras
2014-10-28 17:34:01 +00:00
Elliott Hughes
13dcb88b0f Merge "Disable tzdata in $ANDROID_DATA." 2014-10-28 16:34:46 +00:00
Elliott Hughes
e24bf5d7b9 Disable tzdata in $ANDROID_DATA.
(cherry picked from 4c30130a2155c37e80af4c3b53bf4f6ce832e760.)

Bug: 18139284
Change-Id: I2670dc1791d635139a5d39a438dc08777439476b
2014-10-28 09:34:09 -07:00
Elliott Hughes
1ea31a2901 Merge "Don't mask out SA_RESTORER from sa_flags." into lmp-mr1-dev 2014-10-28 15:36:56 +00:00
Elliott Hughes
cd99bbfd50 Merge "Disable tzdata in $ANDROID_DATA." into lmp-mr1-dev 2014-10-28 15:06:31 +00:00
Elliott Hughes
28ea229bb2 Don't mask out SA_RESTORER from sa_flags.
glibc doesn't do this, and we probably shouldn't either.

Bug: 16703540
Bug: 17436734

(cherry picked from commit afe58ad9892de27a7acb0aaded6312ee0f958314)

Change-Id: Iada5d0ae814f438cb276f056b2b5e3675f0e3666
2014-10-28 07:55:53 -07:00
Dmitriy Ivanov
85d770211b am f56a2f5e: Merge "Remove unnecessary reinterpret_cast"
* commit 'f56a2f5ed2508e0743581003420c0f2d9cb54c7b':
  Remove unnecessary reinterpret_cast
2014-10-28 04:51:51 +00:00
Chih-Hung Hsieh
f3b0d9cd79 am 57c5a556: Merge "Disable clang compilation due to lack of ifunc."
* commit '57c5a5562b08007dbe6379a4b68ca3a0225747c0':
  Disable clang compilation due to lack of ifunc.
2014-10-28 04:51:47 +00:00
Elliott Hughes
1dd65cc30c am c83837ec: Merge "Make the netdb unit tests work on the host."
* commit 'c83837ec158a14bf84ea702c04f606de3b0599a8':
  Make the netdb unit tests work on the host.
2014-10-28 04:51:46 +00:00
Elliott Hughes
3f5d8a00e4 am cad8d226: Merge "Use mxcr_mask instead of mxcsr_mask to match glibc."
* commit 'cad8d226c3589a65775fda972d4cd3ebd3877dab':
  Use mxcr_mask instead of mxcsr_mask to match glibc.
2014-10-28 04:51:25 +00:00
Elliott Hughes
43ec1fb76c am a4c0b756: Merge "Add mkfifoat(3)."
* commit 'a4c0b7567190968d263bedd1073ea633510f9a45':
  Add mkfifoat(3).
2014-10-28 04:49:11 +00:00
Dmitriy Ivanov
3db80168ff am f33a7d7f: Merge "Fix mips build"
* commit 'f33a7d7f1cc96cf1445013fe49f6db0f03cbd44f':
  Fix mips build
2014-10-28 04:46:55 +00:00
Dmitriy Ivanov
fee054f3ec am 398eb5a7: Merge "Remove unnecessary lookups during relocations"
* commit '398eb5a7ee1f0f7173e463e82381431ef4b21a17':
  Remove unnecessary lookups during relocations
2014-10-28 04:46:54 +00:00
Dmitriy Ivanov
1babff27fd am 566f2bc6: Merge "Fix relocation to look for symbols in local group"
* commit '566f2bc623dbd1d6e8bcf3a6c6e7a6fffe7f68fd':
  Fix relocation to look for symbols in local group
2014-10-28 04:46:52 +00:00
Elliott Hughes
ac5df33e09 am 6c5694b6: Merge "Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3)."
* commit '6c5694b6c8343d740c36adbe904442cecd8030a6':
  Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3).
2014-10-28 04:33:09 +00:00
Pavel Chupin
8eb8c39299 [x86,x86_64] Fix libgcc unwinding through signal
This change provides __restore/__restore_rt on x86 and __restore_rt on
x86_64 with unwinding information to be able to unwind through signal
frame via libgcc provided unwinding interface. See comments inlined for
more details.

Also remove the test that had a dependency on
__attribute__((cleanup(foo_cleanup))). It doesn't provide us with any
better test coverage than we have from the newer tests, and it doesn't
work well across a variety architectures (presumably because no one uses
this attribute in the real world).

Tested this on host via bionic-unit-tests-run-on-host on both x86 and
x86-64.

Bug: 17436734
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>

(cherry picked from commit 50321e2e66f19998970e59d666bc9af387345b3a)

Change-Id: Iba90e36958b00c7cc7db5eeebf888dc89ce4d619
2014-10-27 16:42:49 -07:00
Elliott Hughes
190dce9e56 Stack unwinding unit tests.
Bug: 17436734

(cherry picked from commit bee1993a14b47bc7acda544242f405ae45e42566)

Change-Id: I7205a862ba2c3b474e287f5e9c8982cef4610af9
2014-10-27 16:42:37 -07:00
Elliott Hughes
e5e61a0a92 Use the kernel's sa_restorer for aarch64.
gdb was happy with what we had, but libgcc and libunwind weren't.
libgcc is happy with the kernel's restorer (because of the extra nop),
though libunwind looks like it's going to need code changes regardless.

We could make our restorer more like the kernel's one, but why bother
when we can just let the kernel supply the canonical one?

Bug: 17436734

(cherry picked from commit 1cff9a89645a8f362a9ce19c7f9544e98c1fd9e7)

Change-Id: Ie13d73fd97395e1979a67c2294e036a97c50000d
2014-10-27 16:42:19 -07:00
Elliott Hughes
5054e1a121 Fix 32-bit arm unwinding through signal frames.
gdb was already okay; libgcc and libunwind need a little extra help.

Bug: 17436734

(cherry picked from commit 148dff3ec6114a03acc722ae43990f1b342abad9)

Change-Id: I2cc997017acc57c930284af5264f353656b98c7b
2014-10-27 16:41:56 -07:00
Elliott Hughes
7dc2b7b30d Fix signal trampolines.
* LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86
  kernels will apparently stop supporting the case where SA_RESTORER isn't
  set.

* gdb and libunwind care about the exact instruction sequences, so we need to
  modify the code slightly in a few cases to match what they're looking for.

* gdb also cares about the exact function names (for some architectures),
  so we need to use __restore and __restore_rt rather than __sigreturn and
  __rt_sigreturn.

* It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume
  that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer.

This fixes unwinding through a signal handler in gdb for all architectures.
It doesn't fix libunwind for arm and arm64. I'll keep investigating that...

(cherry picked from commit 36f451a6d93b6807944d99fa23396e039c47e845)

Bug: 17436734
Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
2014-10-27 16:41:28 -07:00
Elliott Hughes
f96eaf6202 Merge "[x86,x86_64] Fix libgcc unwinding through signal" 2014-10-27 23:30:56 +00:00
Pavel Chupin
50321e2e66 [x86,x86_64] Fix libgcc unwinding through signal
This change provides __restore/__restore_rt on x86 and __restore_rt on
x86_64 with unwinding information to be able to unwind through signal
frame via libgcc provided unwinding interface. See comments inlined for
more details.

Also remove the test that had a dependency on
__attribute__((cleanup(foo_cleanup))). It doesn't provide us with any
better test coverage than we have from the newer tests, and it doesn't
work well across a variety architectures (presumably because no one uses
this attribute in the real world).

Tested this on host via bionic-unit-tests-run-on-host on both x86 and
x86-64.

Bug: 17436734
Change-Id: I2f06814e82c8faa732cb4f5648868dc0fd2e5fe4
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-10-27 16:14:55 -07:00
Elliott Hughes
4c30130a21 Disable tzdata in $ANDROID_DATA.
Bug: 18139284
Change-Id: I2670dc1791d635139a5d39a438dc08777439476b
2014-10-27 13:38:21 -07:00
Elliott Hughes
ec58e29b27 Merge "pthread_setname_np appears in glibc 2.12." 2014-10-27 20:01:36 +00:00
Elliott Hughes
ed29e858d0 pthread_setname_np appears in glibc 2.12.
And our emulator kernels are now new enough to not require a workaround.

Change-Id: Id56c983dbfd8abc69f72a78411a5502391941dfc
2014-10-27 12:01:51 -07:00
Elliott Hughes
021b6412f7 Merge "Fix the type of u_ar0 in <sys/user.h>." 2014-10-27 17:41:00 +00:00
Elliott Hughes
7f164f6052 Merge "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK." 2014-10-27 17:38:33 +00:00
Dmitriy Ivanov
e23f564b52 Merge "Fix *tests-run-on-host target" 2014-10-26 05:47:53 +00:00
Dmitriy Ivanov
095636e6ad Fix *tests-run-on-host target
Change-Id: Id0e5060977a2df91c47b5a916989eb7e2e3f8153
2014-10-25 21:41:32 -07:00
Elliott Hughes
e03950fa0c Fix the type of u_ar0 in <sys/user.h>.
Change-Id: I9332dea60f7c60b45bc80026686c266bfa7a782c
2014-10-24 20:57:09 -07:00
Elliott Hughes
5b1111a694 POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.
Found by unit test.

Change-Id: Iffbd2f04213616927fbd7b5419460031f7a078e9
2014-10-24 19:33:11 -07:00
Elliott Hughes
c716dd1e21 Merge "bionic tests: migrate test for mutex type from system/extras" 2014-10-25 02:03:19 +00:00
Derek Xue
4199695657 bionic tests: migrate test for mutex type from system/extras
Migrate the test about pthread mutex type in file
    system/extras/tests/bionic/libc/bionic/test_mutex.c
to the new place
    bionic/tests/pthread_test.cpp
in the gtest format.

Change-Id: I6aab10170ccad5b9a4892d52dba2403876c86659
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-10-24 18:54:42 -07:00
Dmitriy Ivanov
f56a2f5ed2 Merge "Remove unnecessary reinterpret_cast" 2014-10-24 22:05:36 +00:00
Dmitriy Ivanov
c9d1658397 Remove unnecessary reinterpret_cast
Change-Id: Id2ddf4e74bc66825206d1287f899d716537a68d0
2014-10-24 14:46:12 -07:00
Elliott Hughes
7f558f60cb am cf8ea37f: Merge "bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests"
* commit 'cf8ea37fc91e23d37b3c5873b5e152ccae293f03':
  bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests
2014-10-24 20:18:09 +00:00
Chih-Hung Hsieh
57c5a5562b Merge "Disable clang compilation due to lack of ifunc." 2014-10-24 18:34:40 +00:00
Elliott Hughes
c83837ec15 Merge "Make the netdb unit tests work on the host." 2014-10-24 18:30:37 +00:00
Chih-Hung Hsieh
b086298629 Disable clang compilation due to lack of ifunc.
BUG: 18055309
Change-Id: I0f36011cf7872a20ddd36a6c3c607eb96f0a8ec2
2014-10-24 11:04:51 -07:00
Elliott Hughes
1e8ebdc375 Make the netdb unit tests work on the host.
Bug: 18111005
Change-Id: I79c6929c3827716e19b44d7469db69740f4b449c
2014-10-24 10:45:08 -07:00
Elliott Hughes
7ad94518f3 am 04b75092: am aa6cd581: Use mxcr_mask instead of mxcsr_mask to match glibc.
* commit '04b7509228633cf9800ba9acc7354f72c22f629a':
  Use mxcr_mask instead of mxcsr_mask to match glibc.
2014-10-24 16:16:46 +00:00
Elliott Hughes
04b7509228 am aa6cd581: Use mxcr_mask instead of mxcsr_mask to match glibc.
* commit 'aa6cd5819c8ebd254d995388798a4b51af7ca933':
  Use mxcr_mask instead of mxcsr_mask to match glibc.
2014-10-24 16:11:49 +00:00
Elliott Hughes
aa6cd5819c Use mxcr_mask instead of mxcsr_mask to match glibc.
Bug: 18097559

(cherry picked from commit f485547b9267263e1de220a3cc368deaec367191)

Change-Id: I242105faa8210abc9635a951b25b127cd64ed23c
2014-10-24 08:43:34 -07:00
Elliott Hughes
cad8d226c3 Merge "Use mxcr_mask instead of mxcsr_mask to match glibc." 2014-10-24 15:40:44 +00:00
Elliott Hughes
96a6f40163 am e516321d: Merge "Update bionic to tzdata2014i."
* commit 'e516321d78162479a4ce17bd5a9ba8c0834abf18':
  Update bionic to tzdata2014i.
2014-10-24 13:01:54 +00:00
Christopher Ferris
274f5e737d am efd2ec8f: Merge "Fix race condition in timer disarm/delete."
* commit 'efd2ec8fbddb99a7a2d7da8e1024655fa08153ca':
  Fix race condition in timer disarm/delete.
2014-10-24 13:01:53 +00:00
Elliott Hughes
f485547b92 Use mxcr_mask instead of mxcsr_mask to match glibc.
Bug: 18097559
Change-Id: Iaca301d7d4c4902989d4699117f72b88d5c4bd78
2014-10-23 20:29:42 -07:00
Elliott Hughes
a4c0b75671 Merge "Add mkfifoat(3)." 2014-10-24 02:57:12 +00:00
Elliott Hughes
ca8e84c6ff Add mkfifoat(3).
Looks like I missed one of the *at functions when I added the rest.

Change-Id: If16de82dbf6f9a3ea7bfdcba406ca1c74a3f2279
2014-10-23 19:10:54 -07:00
Dmitriy Ivanov
f33a7d7f1c Merge "Fix mips build" 2014-10-23 22:53:24 +00:00
Dmitriy Ivanov
398eb5a7ee Merge "Remove unnecessary lookups during relocations" 2014-10-23 22:53:13 +00:00
Dmitriy Ivanov
90b74fb867 Fix mips build
Change-Id: Ia2dc2e07740bdbb91ee92bfea459230015fcc99b
2014-10-23 14:34:12 -07:00
Dmitriy Ivanov
e47b3f8456 Remove unnecessary lookups during relocations
local_group includes this library and its dependencies.

Change-Id: Ib02474b2355bb147de3889f60092cb2f312997ef
2014-10-23 14:19:07 -07:00
Dmitriy Ivanov
566f2bc623 Merge "Fix relocation to look for symbols in local group" 2014-10-23 20:49:00 +00:00
Dmitriy Ivanov
cfa97f172d Fix relocation to look for symbols in local group
The local group is a sequence of libraries in default (breadth-first)
  order. It allows RTLD_LOCALLY loaded library to correctly relocate
  symbols within its group (see test-cases).

  Local group lookup is performed after main executable and ld_preloads.

Bug: 2643900
Bug: 15432753
Change-Id: I9bb013b46d17dbb5cbdfb8fef26f552748385541
2014-10-23 12:13:54 -07:00
Elliott Hughes
6c5694b6c8 Merge "Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3)." 2014-10-23 17:57:06 +00:00
Bill Yi
916c574c31 am f83739d1: am 4b8c96d6: Merge commit \'bc8745cc3dd94331d008d553a374e733df978963\' into HEAD
* commit 'f83739d1e20fc701b93ef55834b4932093438a9c':
2014-10-23 13:25:25 +00:00
Chih-Hung Hsieh
a6a6df53fe am fe5f6dda: am 098cf45f: Merge "Replace ambiguous cmp operator with cmpl."
* commit 'fe5f6ddadc0fd847609428ab4b30a4dfd29a2a1b':
  Replace ambiguous cmp operator with cmpl.
2014-10-23 13:25:24 +00:00
Dmitriy Ivanov
b8ce7c8a62 am d64474c1: am 54d76360: Merge "Rename library_offset to library_fd_offset"
* commit 'd64474c1bd51a15aa8268bda3183853d5a1de2ee':
  Rename library_offset to library_fd_offset
2014-10-23 13:25:23 +00:00
Bill Yi
f83739d1e2 am 4b8c96d6: Merge commit \'bc8745cc3dd94331d008d553a374e733df978963\' into HEAD
* commit '4b8c96d6cd8ead93bcc9acdf34a9e884951c7a7b':
  Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
  More cases where libc should use O_CLOEXEC.
  Hide ScopedTrace.
  Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
2014-10-23 13:04:55 +00:00
Derek Xue
ba811120ae Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3).
This change is to migrate the getaddrinfo tests defined in the old file
system/extras/tests/bionic/libc/common/test_getaddrinfo.c
to the new place bionic/tests/netdb_test.cpp.

The test here is more thorough, and catches a bug in getservbyname(3)
that was breaking getaddrinfo(3)'s ability to look up services by name
without a hint that would cause it to ask for a specific protocol.

Change-Id: Ief5ebd0869496d1bc6a97861dfefa04bdf24bab1
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-10-22 22:23:10 -07:00
Chih-Hung Hsieh
fe5f6ddadc am 098cf45f: Merge "Replace ambiguous cmp operator with cmpl."
* commit '098cf45f4e853f3c85c14af0e475bfae0839f027':
  Replace ambiguous cmp operator with cmpl.
2014-10-23 03:18:16 +00:00
Dmitriy Ivanov
d64474c1bd am 54d76360: Merge "Rename library_offset to library_fd_offset"
* commit '54d76360ebfb79b57177a81632901ebe1c8fc11f':
  Rename library_offset to library_fd_offset
2014-10-23 03:18:12 +00:00
Elliott Hughes
1effd4cfc6 am 60e3950f: am 8fab8119: Update bionic to tzdata2014i.
* commit '60e3950f4288631021d0034eb2a6bc139e5b9a51':
  Update bionic to tzdata2014i.
2014-10-23 00:03:19 +00:00
Elliott Hughes
60e3950f42 am 8fab8119: Update bionic to tzdata2014i.
* commit '8fab8119dd176a280b62e9e8f2b4f08c0d76f36d':
  Update bionic to tzdata2014i.
2014-10-22 23:58:46 +00:00
Elliott Hughes
cf8ea37fc9 Merge "bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests" 2014-10-22 21:30:40 +00:00
Derek Xue
4912fc7d15 bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests
this change migrate the gethostbyname test defined in the old file
system/extras/tests/bionic/libc/common/test_gethostbyname.c
to the new place bionic/tests/netdb_test.cpp

Change-Id: I342171090f681581fb54d68ea4a09adf61f52081
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2014-10-22 14:30:01 -07:00
Elliott Hughes
8fab8119dd Update bionic to tzdata2014i.
From the release notes:

   Changes affecting future time stamps

     Pacific/Fiji will observe DST from 2014-11-02 02:00 to
     2015-01-18 03:00.  (Thanks to Ken Rylander for the heads-up.)
     Guess that future years will use a similar pattern.

     A new Zone Pacific/Bougainville, for the part of Papua New
     Guinea that plans to switch from UTC+10 to UTC+11 on
     2014-12-28 at 02:00.  (Thanks to Kiley Walbom for the
     heads-up.)

   Changes affecting time zone abbreviations

     Since Belarus is not changing its clocks even though Moscow
     is, the time zone abbreviation in Europe/Minsk is changing
     from FET to its more-traditional value MSK on 2014-10-26 at
     01:00.  (Thanks to Alexander Bokovoy for the heads-up about
     Belarus.)

     The new abbreviation IDT stands for the pre-1976 use of UT+8
     in Indochina, to distinguish it better from ICT (UT+7).

   Changes affecting past time stamps

     Many time stamps have been corrected for Asia/Ho_Chi_Minh
     before 1976 (thanks to Trần Ngọc Quân for an indirect pointer
     to Trần Tiến Bình's authoritative book).  Asia/Ho_Chi_Minh has
     been added to zone1970.tab, to give tzselect users in Vietnam
     two choices, since north and south Vietnam disagreed after our
     1970 cutoff.

     Asia/Phnom_Penh and Asia/Vientiane have been turned into
     links, as they differed from existing zones only for older
     time stamps.  As usual, these changes affect pre-1970 time
     stamps only.  Their old contents have been moved to the
     'backzone' file.

Bug: 18085936

(cherry picked from commit a05c2a2a705c8298154db6665cbbb4dbe3cdbbd5)

Change-Id: If0253cc1515e1bc98e99c6e24eec797836ca7c27
2014-10-22 13:45:25 -07:00
Elliott Hughes
e516321d78 Merge "Update bionic to tzdata2014i." 2014-10-22 20:41:44 +00:00
Christopher Ferris
efd2ec8fbd Merge "Fix race condition in timer disarm/delete." 2014-10-22 20:33:06 +00:00
Christopher Ferris
dcd6ebd86b am d8510e17: am 82eeec68: Merge "Fix generic __memcpy_chk implementation." into lmp-mr1-dev
* commit 'd8510e174f63a655f571e72828b7e9c9e82f53e6':
  Fix generic __memcpy_chk implementation.
2014-10-22 20:31:10 +00:00
Christopher Ferris
d8510e174f am 82eeec68: Merge "Fix generic __memcpy_chk implementation." into lmp-mr1-dev
* commit '82eeec689f66e481928b6788f0a696a5a61f02a3':
  Fix generic __memcpy_chk implementation.
2014-10-22 20:26:27 +00:00
Christopher Ferris
62d84b1935 Fix race condition in timer disarm/delete.
When setting a repeat timer using the SIGEV_THREAD mechanism, it's possible
that the callback can be called after the timer is disarmed or deleted.
This happens because the kernel can generate signals that the timer thread
will continue to handle even after the timer is supposed to be off.

Add two new tests to verify that disarming/deleting doesn't continue to
call the callback.

Modify the repeat test to finish more quickly than before.

Refactor the Counter implementation a bit.

Bug: 18039727

(cherry pick from commit 0724132c3263145f2a667f453a199d313a5b3d9f)

Change-Id: I135726ea4038a47920a6c511708813b1a9996c42
2014-10-22 13:20:39 -07:00
Christopher Ferris
82eeec689f Merge "Fix generic __memcpy_chk implementation." into lmp-mr1-dev 2014-10-22 20:16:18 +00:00
Christopher Ferris
b378abc0ab am 700f1ce9: resolved conflicts for merge of 9b7b0d82 to lmp-mr1-dev-plus-aosp
* commit '700f1ce94b2d092bdd325f6f1fb62a85ee3de262':
  Fix race condition in timer disarm/delete.
2014-10-22 20:08:30 +00:00
Christopher Ferris
700f1ce94b resolved conflicts for merge of 9b7b0d82 to lmp-mr1-dev-plus-aosp
Change-Id: I706dc7e1a13e55316cbc44c025877d42c6731f97
2014-10-22 13:02:58 -07:00
Christopher Ferris
9b7b0d82eb Merge "Fix race condition in timer disarm/delete." into lmp-mr1-dev 2014-10-22 19:43:44 +00:00
Elliott Hughes
a05c2a2a70 Update bionic to tzdata2014i.
From the release notes:

   Changes affecting future time stamps

     Pacific/Fiji will observe DST from 2014-11-02 02:00 to
     2015-01-18 03:00.  (Thanks to Ken Rylander for the heads-up.)
     Guess that future years will use a similar pattern.

     A new Zone Pacific/Bougainville, for the part of Papua New
     Guinea that plans to switch from UTC+10 to UTC+11 on
     2014-12-28 at 02:00.  (Thanks to Kiley Walbom for the
     heads-up.)

   Changes affecting time zone abbreviations

     Since Belarus is not changing its clocks even though Moscow
     is, the time zone abbreviation in Europe/Minsk is changing
     from FET to its more-traditional value MSK on 2014-10-26 at
     01:00.  (Thanks to Alexander Bokovoy for the heads-up about
     Belarus.)

     The new abbreviation IDT stands for the pre-1976 use of UT+8
     in Indochina, to distinguish it better from ICT (UT+7).

   Changes affecting past time stamps

     Many time stamps have been corrected for Asia/Ho_Chi_Minh
     before 1976 (thanks to Trần Ngọc Quân for an indirect pointer
     to Trần Tiến Bình's authoritative book).  Asia/Ho_Chi_Minh has
     been added to zone1970.tab, to give tzselect users in Vietnam
     two choices, since north and south Vietnam disagreed after our
     1970 cutoff.

     Asia/Phnom_Penh and Asia/Vientiane have been turned into
     links, as they differed from existing zones only for older
     time stamps.  As usual, these changes affect pre-1970 time
     stamps only.  Their old contents have been moved to the
     'backzone' file.

Bug: 18085936
Change-Id: I89c065b4788b10ed7530cc4e8cfbc1b65c05c1b7
2014-10-22 12:31:02 -07:00
Christopher Ferris
f13e1eb92f Fix generic __memcpy_chk implementation.
- Clean up the labels (add .L to make them local).
- Change to using cfi directives.
- Fix unwinding of the __memcpy_chk fail path.

Bug: 18033671

(cherry pick from commit 7123d4371a5e04337b1de5f8cdf6cdc1e08e9cad)

Change-Id: Ife93bcbfc1949ef29fc8e2dc515b7120632b82b1
2014-10-22 12:02:13 -07:00
Dmitriy Ivanov
1533debe38 am 61fa2a55: am 702ab5b3: Rename library_offset to library_fd_offset
* commit '61fa2a55ace75e418b39106710d0113ca1ead771':
  Rename library_offset to library_fd_offset
2014-10-22 18:20:19 +00:00
Dmitriy Ivanov
7dbf52c9df am fa08f998: resolved conflicts for merge of de01780f to lmp-mr1-dev-plus-aosp
* commit 'fa08f9986bdf5e939986579c4a4ed47d7b853fac':
  Build dlext_testzip as custom module.
  Add file_offset parameter to android_extinfo
2014-10-22 18:20:18 +00:00
Dmitriy Ivanov
61fa2a55ac am 702ab5b3: Rename library_offset to library_fd_offset
* commit '702ab5b37e77684ee352300d32b078606ee388d0':
  Rename library_offset to library_fd_offset
2014-10-22 17:15:34 +00:00
Dmitriy Ivanov
fa08f9986b resolved conflicts for merge of de01780f to lmp-mr1-dev-plus-aosp
Change-Id: Ibed1ba1f52da7222f534011866515cfce790061f
2014-10-22 10:13:08 -07:00
Dmitriy Ivanov
702ab5b37e Rename library_offset to library_fd_offset
replace lseek() and use pread() instead
 add test for library_fd_offset > file_size case

Bug: 17762003

(cherry picked from commit a6c1279098f24a675d0df74ce1946f5d534b425e)

Change-Id: Ie117c745081ee33d07db5341115ff6c8e98b0dec
2014-10-22 16:35:04 +00:00
Bill Yi
4b8c96d6cd Merge commit 'bc8745cc3dd94331d008d553a374e733df978963' into HEAD 2014-10-22 08:45:57 -07:00
Dan Albert
5ffe3971e5 am f2aacebf: am ad136624: Merge "Never use ASAN."
* commit 'f2aacebf551da2b8d828f0618c84ac544e1398fb':
  Never use ASAN.
2014-10-22 13:18:33 +00:00
Ying Wang
3c5c720b0b Build dlext_testzip as custom module.
Use $(BUILD_SYSTEM)/base_rules to build it as custom module, so that
it's exposed to utilities like mm/mmma etc.

Bug: 17887283
Bug: 17762003

(cherry picked from commit 667853d47770fbdb54aaf0b3261b0d4882725770)

Change-Id: I405797d16f20dc09e5d84b93b6727b634db2fc2c
2014-10-22 08:30:43 +00:00
Christopher Ferris
0724132c32 Fix race condition in timer disarm/delete.
When setting a repeat timer using the SIGEV_THREAD mechanism, it's possible
that the callback can be called after the timer is disarmed or deleted.
This happens because the kernel can generate signals that the timer thread
will continue to handle even after the timer is supposed to be off.

Add two new tests to verify that disarming/deleting doesn't continue to
call the callback.

Modify the repeat test to finish more quickly than before.

Refactor the Counter implementation a bit.

Bug: 18039727
Change-Id: I73192c915cdacf608521b1792c54e5af14a34907
2014-10-21 18:31:02 -07:00
Chih-Hung Hsieh
098cf45f4e Merge "Replace ambiguous cmp operator with cmpl." 2014-10-22 00:55:14 +00:00
Chih-Hung Hsieh
c89ee272fb Replace ambiguous cmp operator with cmpl.
Clang assembler rejects ambiguous cmp instruction.

BUG: 17302482
Change-Id: Ie8dca7e4f46e0906c47076bba21c1941482ba6b3
2014-10-21 16:25:35 -07:00
Dan Albert
f2aacebf55 am ad136624: Merge "Never use ASAN."
* commit 'ad136624b2bed5b6971cd7ba372969b1b352c223':
  Never use ASAN.
2014-10-21 21:33:59 +00:00
Dmitriy Ivanov
54d76360eb Merge "Rename library_offset to library_fd_offset" 2014-10-21 21:06:18 +00:00
Dmitriy Ivanov
de01780f46 Add file_offset parameter to android_extinfo
Bug: 17762003

(cherry picked from commit 07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514)

Change-Id: I72d527831384ff5dde013a4c8dfe639fbec165f5
2014-10-21 13:52:49 -07:00
Dmitriy Ivanov
a6c1279098 Rename library_offset to library_fd_offset
replace lseek() and use pread() instead
 add test for library_fd_offset > file_size case

Bug: 17762003
Change-Id: I4555f0be635124efe849c1f226985bcba72ffcbd
2014-10-21 13:51:08 -07:00
Dan Albert
ad136624b2 Merge "Never use ASAN." 2014-10-21 18:28:19 +00:00
Dan Albert
5ba672ebcb Never use ASAN.
Unless we completely redo how we build bionic (so that the object
files for libc.so get built separately from libc.a), we can't enable
ASAN here, as libc.a gets linked into static executables.

Change-Id: I2ce4f51248bd51c4213a555ff481b6faabbf53f8
2014-10-21 11:22:26 -07:00
Hans Boehm
e3d979d45d am 361282af: am c712ceee: Make memory_order_acquire visible in global namespace
* commit '361282afd81e6259fa8a62ab46b83da8b50249fe':
  Make memory_order_acquire visible in global namespace
2014-10-20 23:41:37 +00:00
Hans Boehm
361282afd8 am c712ceee: Make memory_order_acquire visible in global namespace
* commit 'c712ceeec4c15da8488c5ce143fcc6b0a02d74f3':
  Make memory_order_acquire visible in global namespace
2014-10-20 23:36:11 +00:00
Christopher Ferris
c8643850d7 am 941ee802: am 8f41d3d3: Merge "Fix generic __memcpy_chk implementation."
* commit '941ee80292cfdbf95a30da82f7be2e662d1f269e':
  Fix generic __memcpy_chk implementation.
2014-10-20 18:44:47 +00:00
Hans Boehm
c712ceeec4 Make memory_order_acquire visible in global namespace
We were missing that using directive when including <atomic>.

Bug:17736764
Change-Id: Ie8ca92a952749415567bcd5fa21d56629a364660
(cherry picked from commit 76ac4d0853c3bba0c65edc98a9cdf932c452e252)
2014-10-20 11:41:34 -07:00
Christopher Ferris
941ee80292 am 8f41d3d3: Merge "Fix generic __memcpy_chk implementation."
* commit '8f41d3d3bc7cf2375e5dd9202da619fd67a5928f':
  Fix generic __memcpy_chk implementation.
2014-10-20 18:38:43 +00:00
Christopher Ferris
bc8745cc3d am 8f41d3d3: Merge "Fix generic __memcpy_chk implementation."
* commit '8f41d3d3bc7cf2375e5dd9202da619fd67a5928f':
  Fix generic __memcpy_chk implementation.
2014-10-20 18:38:27 +00:00
Christopher Ferris
8f41d3d3bc Merge "Fix generic __memcpy_chk implementation." 2014-10-20 18:21:22 +00:00
Chih-Hung Hsieh
2860a41dd0 am 2c87eba8: am 9a740482: Merge "Add -no-integrated-as at local level."
* commit '2c87eba8693c1c7cd03e9b90f686a1415fb2d9c0':
  Add -no-integrated-as at local level.
2014-10-20 17:04:30 +00:00
Chih-Hung Hsieh
042319b908 am 9a740482: Merge "Add -no-integrated-as at local level."
* commit '9a7404824b3dfaad6ba14a41aab5f14132392a92':
  Add -no-integrated-as at local level.
2014-10-20 17:02:32 +00:00
Chih-Hung Hsieh
2c87eba869 am 9a740482: Merge "Add -no-integrated-as at local level."
* commit '9a7404824b3dfaad6ba14a41aab5f14132392a92':
  Add -no-integrated-as at local level.
2014-10-20 17:01:48 +00:00
Chih-Hung Hsieh
9a7404824b Merge "Add -no-integrated-as at local level." 2014-10-20 16:51:06 +00:00
Chih-Hung Hsieh
a371750681 Add -no-integrated-as at local level.
Later we will enable integrated-as as default at the global level.

BUG: 17820427
BUG: 17302991
Change-Id: I233204ca04d7222b2cb1fbd0fa48a482f8b63f6f
2014-10-20 09:09:25 -07:00
Christopher Ferris
7123d4371a Fix generic __memcpy_chk implementation.
- Clean up the labels (add .L to make them local).
- Change to using cfi directives.
- Fix unwinding of the __memcpy_chk fail path.

Bug: 18033671
Change-Id: I12845f10c7ce5e6699c15c558bda64c83f6a392a
2014-10-17 14:44:36 -07:00
Dmitriy Ivanov
a90660f7d0 am 68c41a89: am dec4de45: Merge "Correct way to specify additional dependencies"
* commit '68c41a890dc2d0d95fc1569ffb2e4bcecd603432':
  Correct way to specify additional dependencies
2014-10-17 21:28:44 +00:00
Dmitriy Ivanov
68c41a890d am dec4de45: Merge "Correct way to specify additional dependencies"
* commit 'dec4de456c046881fb1e8c7c7d0c27a11ef09eb7':
  Correct way to specify additional dependencies
2014-10-17 20:34:39 +00:00
Dmitriy Ivanov
d8c3171172 am dec4de45: Merge "Correct way to specify additional dependencies"
* commit 'dec4de456c046881fb1e8c7c7d0c27a11ef09eb7':
  Correct way to specify additional dependencies
2014-10-17 20:33:55 +00:00
Dmitriy Ivanov
dec4de456c Merge "Correct way to specify additional dependencies" 2014-10-17 20:19:18 +00:00
Dmitriy Ivanov
4a9e1937c5 Correct way to specify additional dependencies
Previous one was not covering all the targets

Bug: 17548097
Change-Id: I425e0f8d6e5a43feabd29dcb327049b82754d249
2014-10-17 11:47:18 -07:00
Dmitriy Ivanov
b312428b5e am d7407db0: am 5281e1fb: Merge "Fix misleading comment."
* commit 'd7407db08f528a5c0ccc96314eeced3e46a34f9d':
  Fix misleading comment.
2014-10-16 18:08:45 +00:00
Dmitriy Ivanov
d7407db08f am 5281e1fb: Merge "Fix misleading comment."
* commit '5281e1fb15632c8dc714d10abc6cd1a22a061782':
  Fix misleading comment.
2014-10-16 18:03:07 +00:00
Dmitriy Ivanov
d932c36385 am 5281e1fb: Merge "Fix misleading comment."
* commit '5281e1fb15632c8dc714d10abc6cd1a22a061782':
  Fix misleading comment.
2014-10-16 18:02:17 +00:00
Dmitriy Ivanov
5281e1fb15 Merge "Fix misleading comment." 2014-10-16 17:54:02 +00:00
Dan Albert
4066336a25 am 34de37e5: am 90aa7e37: Merge "Only use <atomic> for C++11 and newer."
* commit '34de37e553d83fb4522c1458bf82d8e8aee4c2bb':
  Only use <atomic> for C++11 and newer.
2014-10-16 16:32:21 +00:00
Dan Albert
96def860ae am 90aa7e37: Merge "Only use <atomic> for C++11 and newer."
* commit '90aa7e374f9000577cde64c4fb88c5dab8dac62e':
  Only use <atomic> for C++11 and newer.
2014-10-16 16:27:37 +00:00
Dan Albert
34de37e553 am 90aa7e37: Merge "Only use <atomic> for C++11 and newer."
* commit '90aa7e374f9000577cde64c4fb88c5dab8dac62e':
  Only use <atomic> for C++11 and newer.
2014-10-16 16:27:27 +00:00
Dan Albert
90aa7e374f Merge "Only use <atomic> for C++11 and newer." 2014-10-16 16:19:44 +00:00
Dan Albert
cec6fd91cd am 574284db: am 8bb12127: Merge "Don\'t use an STL for libm."
* commit '574284dbf27a58cb4c4be97a0a8a09f56fe65f52':
  Don't use an STL for libm.
2014-10-16 16:10:05 +00:00
Dan Albert
574284dbf2 am 8bb12127: Merge "Don\'t use an STL for libm."
* commit '8bb12127e62c1fc4d9dc99ce9272008023c7c08e':
  Don't use an STL for libm.
2014-10-16 16:06:10 +00:00
Dan Albert
c2d70c0f34 am 8bb12127: Merge "Don\'t use an STL for libm."
* commit '8bb12127e62c1fc4d9dc99ce9272008023c7c08e':
  Don't use an STL for libm.
2014-10-16 16:05:31 +00:00
Dan Albert
8bb12127e6 Merge "Don't use an STL for libm." 2014-10-16 15:56:32 +00:00
Dan Albert
3ce0769aa5 Only use <atomic> for C++11 and newer.
Any pre-C++11 clients of stdatomic.h that use libc++ are being forced
over to <atomic>, which they don't have the language support to use.

Change-Id: I62445c1f2541410a1569498c09433c7196635537
2014-10-16 07:52:51 -07:00
Dan Albert
e91d9cd4ad Don't use an STL for libm.
The default is none right now, but this will be needed when the
default becomes libc++.

Change-Id: Ib022adac2b9dc08fbfae830908128043cfffb91e
2014-10-16 07:44:47 -07:00
Dmitriy Ivanov
b2d11387c4 am ab3f96cb: am f5e02582: Merge "Ignore DT_BIND_NOW (0x18)"
* commit 'ab3f96cb20084cf5a9aa299a508be8c462dc9308':
  Ignore DT_BIND_NOW (0x18)
2014-10-16 00:07:20 +00:00
Dmitriy Ivanov
ab3f96cb20 am f5e02582: Merge "Ignore DT_BIND_NOW (0x18)"
* commit 'f5e0258268b45faa4d84de34047660061720abc7':
  Ignore DT_BIND_NOW (0x18)
2014-10-15 23:57:28 +00:00
Dmitriy Ivanov
bb5f4eebc0 am f5e02582: Merge "Ignore DT_BIND_NOW (0x18)"
* commit 'f5e0258268b45faa4d84de34047660061720abc7':
  Ignore DT_BIND_NOW (0x18)
2014-10-15 23:57:28 +00:00
Dmitriy Ivanov
f5e0258268 Merge "Ignore DT_BIND_NOW (0x18)" 2014-10-15 23:46:26 +00:00
Dmitriy Ivanov
ea6eae182a Ignore DT_BIND_NOW (0x18)
Bug: 17552334
Change-Id: Ibe93fd3d6580f369f9a6ef8d235bf0df00fe7607
2014-10-15 22:57:14 +00:00
Robert Grosse
4544d9f9bf Fix misleading comment.
Change-Id: I9e2aa6c2ba938c8f8d7c74eba32d313c866c77b2
2014-10-15 14:32:19 -07:00
Dan Albert
2ed2148d58 am 21df7992: am 71cbcdcf: Merge "We don\'t actually need all of libc++ here."
* commit '21df799218eb39dd66ccdf92045a885fff5eb14e':
  We don't actually need all of libc++ here.
2014-10-15 20:16:18 +00:00
Dan Albert
21df799218 am 71cbcdcf: Merge "We don\'t actually need all of libc++ here."
* commit '71cbcdcf947835076241b9dd72099f28997eb290':
  We don't actually need all of libc++ here.
2014-10-15 20:10:08 +00:00
Dan Albert
8d87796d19 am 71cbcdcf: Merge "We don\'t actually need all of libc++ here."
* commit '71cbcdcf947835076241b9dd72099f28997eb290':
  We don't actually need all of libc++ here.
2014-10-15 20:10:06 +00:00
Dan Albert
71cbcdcf94 Merge "We don't actually need all of libc++ here." 2014-10-15 19:59:09 +00:00
Dan Albert
a7c2e0bad6 We don't actually need all of libc++ here.
All we're actually interested in is the unwinder. Since that's now a
separate library, just use that.

Change-Id: If86071a0d850da961336a58147b70369ace7bd12
2014-10-14 14:19:34 -07:00
Elliott Hughes
1201b719ed am a7995f31: am 97df16ba: Merge "Add clock_settime and clock_nanosleep."
* commit 'a7995f31e2e584e4df8cbdb543e7e0c6535506cf':
  Add clock_settime and clock_nanosleep.
2014-10-14 03:58:49 +00:00
Elliott Hughes
2476691632 am 97df16ba: Merge "Add clock_settime and clock_nanosleep."
* commit '97df16ba5c2911e06d1211781a5724706abd227b':
  Add clock_settime and clock_nanosleep.
2014-10-14 03:26:03 +00:00
Elliott Hughes
a7995f31e2 am 97df16ba: Merge "Add clock_settime and clock_nanosleep."
* commit '97df16ba5c2911e06d1211781a5724706abd227b':
  Add clock_settime and clock_nanosleep.
2014-10-14 03:25:51 +00:00
Elliott Hughes
97df16ba5c Merge "Add clock_settime and clock_nanosleep." 2014-10-14 03:07:43 +00:00
Haruki Hasegawa
1816025684 Add clock_settime and clock_nanosleep.
Add the missing prototypes, fix the existing prototypes to use clockid_t
rather than int, fix clock_nanosleep's failure behavior, and add simple
tests.

Bug: 17644443
Bug: https://code.google.com/p/android/issues/detail?id=77372
Change-Id: I03fba369939403918abcabae9551a7123953d780
Signed-off-by: Haruki Hasegawa <h6a.h4i.0@gmail.com>
2014-10-13 17:04:10 -07:00
Dmitriy Ivanov
261fb20671 am a9223e74: am c2297050: Merge "Add glibc alias for NT_PRFPREG"
* commit 'a9223e74d0ca22587e6a5535c9c2b1c8c044a0bb':
  Add glibc alias for NT_PRFPREG
2014-10-13 22:25:15 +00:00
Christopher Ferris
526c1221e1 am f7c3db67: am 083769a3: Merge "Return total footprint, not high water mark."
* commit 'f7c3db67a172a103ce9fa85733738c20770e551a':
  Return total footprint, not high water mark.
2014-10-13 22:25:13 +00:00
Dan Albert
cc530083c0 am a6ef2e28: am 94571f9a: Merge "Use LOCAL_CXX_STL to select libc++_static."
* commit 'a6ef2e2819bb930b212a492b4f2245d10fd4fc8f':
  Use LOCAL_CXX_STL to select libc++_static.
2014-10-13 22:25:13 +00:00
Dmitriy Ivanov
a9223e74d0 am c2297050: Merge "Add glibc alias for NT_PRFPREG"
* commit 'c229705051c8b6a06ad81c221ca74ef9aa743e13':
  Add glibc alias for NT_PRFPREG
2014-10-13 22:19:46 +00:00
Christopher Ferris
f7c3db67a1 am 083769a3: Merge "Return total footprint, not high water mark."
* commit '083769a3dffabfb968a03a700b9f2fd7838bcf75':
  Return total footprint, not high water mark.
2014-10-13 22:15:58 +00:00
Dan Albert
a6ef2e2819 am 94571f9a: Merge "Use LOCAL_CXX_STL to select libc++_static."
* commit '94571f9ade03cfe24bff1bddc4d6c1a320b39b8e':
  Use LOCAL_CXX_STL to select libc++_static.
2014-10-13 22:15:54 +00:00
Dmitriy Ivanov
951e582c68 am c2297050: Merge "Add glibc alias for NT_PRFPREG"
* commit 'c229705051c8b6a06ad81c221ca74ef9aa743e13':
  Add glibc alias for NT_PRFPREG
2014-10-13 22:15:39 +00:00
Christopher Ferris
737b6581c2 am 083769a3: Merge "Return total footprint, not high water mark."
* commit '083769a3dffabfb968a03a700b9f2fd7838bcf75':
  Return total footprint, not high water mark.
2014-10-13 22:10:03 +00:00
Dan Albert
c01a38622a am 94571f9a: Merge "Use LOCAL_CXX_STL to select libc++_static."
* commit '94571f9ade03cfe24bff1bddc4d6c1a320b39b8e':
  Use LOCAL_CXX_STL to select libc++_static.
2014-10-13 22:10:00 +00:00
Dmitriy Ivanov
c229705051 Merge "Add glibc alias for NT_PRFPREG" 2014-10-13 22:08:52 +00:00
Dmitriy Ivanov
a6bee4df4c Add glibc alias for NT_PRFPREG
Also fix comment style for DF_1_ constants

Change-Id: I7c3ed1d834f0a2b85ee8cc8016c79020955084f8
2014-10-13 15:03:27 -07:00
Christopher Ferris
083769a3df Merge "Return total footprint, not high water mark." 2014-10-13 19:48:35 +00:00
Christopher Ferris
3928d3e2d6 am 93e474ef: am 59a02860: Merge "Return total footprint, not high water mark." into lmp-mr1-dev
* commit '93e474ef5485c0628c358351d3cc6e4938294beb':
  Return total footprint, not high water mark.
2014-10-13 19:46:50 +00:00
Christopher Ferris
fee09e556f Return total footprint, not high water mark.
The mallinfo usmblks value returned by dlmalloc is a little misleading.
It's not the current max, it's the historical high water mark. This
leads to dumpsys meminfo producing native memory numbers that don't add up.
Change this to the real total footprint, not this high water mark.

Bug: 17265653

(cherry pick from commit f4ada9c9ce31c7e56146a4cb703747385bc043a5)

Change-Id: I2fba10285859dccfe8331063c9be14cc169f2d91
2014-10-13 12:45:35 -07:00
Christopher Ferris
93e474ef54 am 59a02860: Merge "Return total footprint, not high water mark." into lmp-mr1-dev
* commit '59a02860a455af68d501ee847889620343dcfb0d':
  Return total footprint, not high water mark.
2014-10-13 19:44:19 +00:00
Christopher Ferris
59a02860a4 Merge "Return total footprint, not high water mark." into lmp-mr1-dev 2014-10-13 19:36:56 +00:00
Christopher Ferris
f4ada9c9ce Return total footprint, not high water mark.
The mallinfo usmblks value returned by dlmalloc is a little misleading.
It's not the current max, it's the historical high water mark. This
leads to dumpsys meminfo producing native memory numbers that don't add up.
Change this to the real total footprint, not this high water mark.

Bug: 17265653
Change-Id: Id0293a1b50c9b0be8795405049f537a51ab0e8b7
2014-10-13 12:29:30 -07:00
Dan Albert
94571f9ade Merge "Use LOCAL_CXX_STL to select libc++_static." 2014-10-13 19:09:00 +00:00
Dan Albert
90a29db0f4 Use LOCAL_CXX_STL to select libc++_static.
Directly adding the library to LOCAL_STATIC_LIBRARIES thwarts a few
build system checks.

Change-Id: Ib23c43badfa85de21c691f79ccdcc2cbe2a89b33
2014-10-13 11:20:29 -07:00
Dan Albert
3563a46aed am 7bdab15e: am 4c086247: Merge "Fix some formatting so GitHub displays it nicely."
* commit '7bdab15e7b3d67dd97b94097c8974b4b85bed7e9':
  Fix some formatting so GitHub displays it nicely.
2014-10-11 01:04:07 +00:00
Dan Albert
7bdab15e7b am 4c086247: Merge "Fix some formatting so GitHub displays it nicely."
* commit '4c0862474e63b09c901d11de47a318ce73a0c686':
  Fix some formatting so GitHub displays it nicely.
2014-10-11 00:58:12 +00:00
Dan Albert
04e0d0ee7e am 4c086247: Merge "Fix some formatting so GitHub displays it nicely."
* commit '4c0862474e63b09c901d11de47a318ce73a0c686':
  Fix some formatting so GitHub displays it nicely.
2014-10-11 00:57:31 +00:00
Dan Albert
4c0862474e Merge "Fix some formatting so GitHub displays it nicely." 2014-10-11 00:48:33 +00:00
Dan Albert
472cce5c98 Fix some formatting so GitHub displays it nicely.
Change-Id: Id6ce9a61bebd98544c85e5780147715c73d0e78b
2014-10-10 17:14:37 -07:00
Dan Albert
6d5c6e7fa0 am 3a05a8b1: am 8c3901b2: Merge "Improve documentation for testing and coverage."
* commit '3a05a8b150a1bae663831a5cee54b5c0c1130303':
  Improve documentation for testing and coverage.
2014-10-10 23:07:31 +00:00
Dan Albert
3a05a8b150 am 8c3901b2: Merge "Improve documentation for testing and coverage."
* commit '8c3901b2999e6821b8ee984193352ba45b003492':
  Improve documentation for testing and coverage.
2014-10-10 23:02:57 +00:00
Christopher Ferris
2bb7009436 am 50f76f37: am e0fafb01: am c891e240: Add back symbols to fix Greed for Glory franchise.
* commit '50f76f375b67756f0c31afcc83ed9a98e1810b24':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 22:08:04 +00:00
Elliott Hughes
48a9101986 am 9a6d0fa1: am 2f25cf37: Fix pthread_attr_getstack under valgrind.
* commit '9a6d0fa1c18bf66611c46942edf2a3e8a6acda8a':
  Fix pthread_attr_getstack under valgrind.
2014-10-10 22:07:56 +00:00
Elliott Hughes
0433575035 am 227faaed: am 2698f9ef: Merge "Catch up on upstream\'s round/roundf/roundl."
* commit '227faaedd575561b2a598de6d9d614420b0894b7':
  Catch up on upstream's round/roundf/roundl.
2014-10-10 22:07:54 +00:00
Christopher Ferris
50f76f375b am e0fafb01: am c891e240: Add back symbols to fix Greed for Glory franchise.
* commit 'e0fafb019e33374fae3fa5dc3473e921566b5991':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 21:02:28 +00:00
Christopher Ferris
e0fafb019e am c891e240: Add back symbols to fix Greed for Glory franchise.
* commit 'c891e24073830e07ba7373dee554ff2c70e1d313':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 20:47:00 +00:00
Dan Albert
64d5450947 am 8c3901b2: Merge "Improve documentation for testing and coverage."
* commit '8c3901b2999e6821b8ee984193352ba45b003492':
  Improve documentation for testing and coverage.
2014-10-10 19:05:03 +00:00
Dan Albert
8c3901b299 Merge "Improve documentation for testing and coverage." 2014-10-10 18:59:03 +00:00
Dan Albert
efee1ce46a Improve documentation for testing and coverage.
Also rename HACKING.txt to README.md so it will display on the GitHub
mirror.

Change-Id: I70157a4ad262700212bf9afd87253d195c7013a9
2014-10-10 11:45:19 -07:00
Elliott Hughes
9a6d0fa1c1 am 2f25cf37: Fix pthread_attr_getstack under valgrind.
* commit '2f25cf373ca7c875956a7c06483b30d381296817':
  Fix pthread_attr_getstack under valgrind.
2014-10-10 18:44:54 +00:00
Christopher Ferris
c952c8cf84 am 2df4673e: resolved conflicts for merge of 7f4618cb to lmp-mr1-dev-plus-aosp
* commit '2df4673edd837e06fb8ae8ec7dd3fdb7a779cfc8':
  Re-add dlmalloc for 32 bit.
2014-10-10 18:42:29 +00:00
Elliott Hughes
2f25cf373c Fix pthread_attr_getstack under valgrind.
valgrind seems to mess with the stack enough that the kernel will
report "[stack:pid]" rather than "[stack]" in /proc/self/maps, so
switch to the task-specific file instead to force "[stack]". (There
are two conditions in the kernel code that decides which form to
output.)

Bug: 17897476

(cherry picked from commit 9afb2f2106a5d659854c175c574c1c31e0e205a2)

Change-Id: I92c331ef6fb5868af49e75bc595710d290a95f5b
2014-10-10 10:57:48 -07:00
Elliott Hughes
227faaedd5 am 2698f9ef: Merge "Catch up on upstream\'s round/roundf/roundl."
* commit '2698f9ef8412011295702cd6df4b66e01cf6c220':
  Catch up on upstream's round/roundf/roundl.
2014-10-10 17:41:11 +00:00
Elliott Hughes
b503f51080 am 2698f9ef: Merge "Catch up on upstream\'s round/roundf/roundl."
* commit '2698f9ef8412011295702cd6df4b66e01cf6c220':
  Catch up on upstream's round/roundf/roundl.
2014-10-10 17:39:00 +00:00
Elliott Hughes
2698f9ef84 Merge "Catch up on upstream's round/roundf/roundl." 2014-10-10 17:29:52 +00:00
Elliott Hughes
14538ca75e Catch up on upstream's round/roundf/roundl.
Not sure how we missed these, but better late than never...

Change-Id: Ib08d1bb6e340a1907cbeb1cbe220e33f70642bdc
2014-10-10 10:21:43 -07:00
Christopher Ferris
2df4673edd resolved conflicts for merge of 7f4618cb to lmp-mr1-dev-plus-aosp
Change-Id: I9b65f8287a4f155f26ae7e217e9553a3aaf22240
2014-10-10 10:05:38 -07:00
Christopher Ferris
8f055f7f54 am c891e240: Add back symbols to fix Greed for Glory franchise.
* commit 'c891e24073830e07ba7373dee554ff2c70e1d313':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 14:35:22 +00:00
Christopher Ferris
1713191651 am b767f632: am 62a665a6: Merge "Add back symbols to fix Greed for Glory franchise."
* commit 'b767f632f34c8efa73d9489fd0d4509bcbb8db71':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 06:43:22 +00:00
Christopher Ferris
b767f632f3 am 62a665a6: Merge "Add back symbols to fix Greed for Glory franchise."
* commit '62a665a605df64a6ea5ac680bb564ad7a5f03711':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 06:38:35 +00:00
Christopher Ferris
472c21b437 am 62a665a6: Merge "Add back symbols to fix Greed for Glory franchise."
* commit '62a665a605df64a6ea5ac680bb564ad7a5f03711':
  Add back symbols to fix Greed for Glory franchise.
2014-10-10 06:38:26 +00:00
Christopher Ferris
62a665a605 Merge "Add back symbols to fix Greed for Glory franchise." 2014-10-10 05:25:26 +00:00
Christopher Ferris
78ba823033 Add back symbols to fix Greed for Glory franchise.
Bug: 17813018

(cherry picked from commit c891e24073830e07ba7373dee554ff2c70e1d313)

Change-Id: I4e891c2dbad9ea00d2377c5175317d9ae3840153
2014-10-09 22:23:50 -07:00
Elliott Hughes
2e7b1ba806 am 404f2a0a: am 8dd3b65f: Merge "Sync libm with upstream."
* commit '404f2a0a224d73a8d9c5d4f1d37d9d1a3ae5ea8d':
  Sync libm with upstream.
2014-10-10 02:14:00 +00:00
Elliott Hughes
dc4dc99268 am 8dd3b65f: Merge "Sync libm with upstream."
* commit '8dd3b65f2dd63df1baa83285f607cf110f21c27c':
  Sync libm with upstream.
2014-10-10 01:59:21 +00:00
Elliott Hughes
404f2a0a22 am 8dd3b65f: Merge "Sync libm with upstream."
* commit '8dd3b65f2dd63df1baa83285f607cf110f21c27c':
  Sync libm with upstream.
2014-10-10 01:57:56 +00:00
Elliott Hughes
8dd3b65f2d Merge "Sync libm with upstream." 2014-10-10 01:26:18 +00:00
Elliott Hughes
488268b134 Sync libm with upstream.
Change-Id: I3b4e2c9c6ce6c5934f270a51ce5eb9154c5805d5
2014-10-09 16:20:37 -07:00
Elliott Hughes
d8907d9043 am b20a5c8d: am e9c216fc: Merge "Fix pthread_attr_getstack under valgrind."
* commit 'b20a5c8df897b319351a596a97c095d79d9cacca':
  Fix pthread_attr_getstack under valgrind.
2014-10-09 22:15:04 +00:00
Elliott Hughes
b20a5c8df8 am e9c216fc: Merge "Fix pthread_attr_getstack under valgrind."
* commit 'e9c216fca56e84b0d0a96f7d5e3c99d3276ef071':
  Fix pthread_attr_getstack under valgrind.
2014-10-09 22:11:00 +00:00
Elliott Hughes
a852bb56e8 am e9c216fc: Merge "Fix pthread_attr_getstack under valgrind."
* commit 'e9c216fca56e84b0d0a96f7d5e3c99d3276ef071':
  Fix pthread_attr_getstack under valgrind.
2014-10-09 22:10:37 +00:00
Christopher Ferris
7f4618cbc8 am c9734d24: Re-add dlmalloc for 32 bit.
* commit 'c9734d24d92f4737f5ab3808c77d816a1b084582':
  Re-add dlmalloc for 32 bit.
2014-10-09 22:02:00 +00:00
Elliott Hughes
e9c216fca5 Merge "Fix pthread_attr_getstack under valgrind." 2014-10-09 21:17:41 +00:00
Elliott Hughes
9afb2f2106 Fix pthread_attr_getstack under valgrind.
valgrind seems to mess with the stack enough that the kernel will
report "[stack:pid]" rather than "[stack]" in /proc/self/maps, so
switch to the task-specific file instead to force "[stack]". (There
are two conditions in the kernel code that decides which form to
output.)

Bug: 17897476
Change-Id: Iff85ceb6d52e8716251fab4e45d95a27184c5529
2014-10-09 14:01:47 -07:00
Christopher Ferris
42e0817b45 resolved conflicts for merge of c9734d24 to lmp-dev-plus-aosp
Change-Id: I2ced64fed071f126725a8cdbd12d7c1f45ab7947
2014-10-09 12:12:49 -07:00
Christopher Ferris
fcbd52ceb0 am 9d192aa0: am d0944d9e: Merge "Re-add dlmalloc for 32 bit."
* commit '9d192aa08e6dad091f5fa0aeb6cb0541eaca96a5':
  Re-add dlmalloc for 32 bit.
2014-10-09 19:05:10 +00:00
Christopher Ferris
95296d4129 am d0944d9e: Merge "Re-add dlmalloc for 32 bit."
* commit 'd0944d9ed38be0d74c3d8876f0f36b9ddc0ce38c':
  Re-add dlmalloc for 32 bit.
2014-10-09 18:59:43 +00:00
Christopher Ferris
9d192aa08e am d0944d9e: Merge "Re-add dlmalloc for 32 bit."
* commit 'd0944d9ed38be0d74c3d8876f0f36b9ddc0ce38c':
  Re-add dlmalloc for 32 bit.
2014-10-09 18:59:39 +00:00
Christopher Ferris
d0944d9ed3 Merge "Re-add dlmalloc for 32 bit." 2014-10-09 18:50:32 +00:00
Christopher Ferris
f183f95946 Re-add dlmalloc for 32 bit.
It turns out that appportable has a version that calls dlmalloc directly.
Re-add the dlmalloc symbol for 32 bit only as a compatibility shim that
calls malloc.

Bug: 17881362

(cherry pick commit from c9734d24d92f4737f5ab3808c77d816a1b084582)

Change-Id: Iee9a777f66a1edb407d7563a60792b767ac4f83a
2014-10-09 11:47:01 -07:00
Dan Albert
df511204f5 am 653f30b1: am 8a7f8387: Merge "Use snprintf(3) instead of sprintf(3)."
* commit '653f30b15a9bff8567a4f2fa1ff444dba00281ab':
  Use snprintf(3) instead of sprintf(3).
2014-10-09 12:44:54 +00:00
Dan Albert
c18259333b am 8b3b4fa0: am 72d72d91: Merge "Replace uses of sprintf(3) with snprintf(3)."
* commit '8b3b4fa0ae9e08e64f508e4745ff46c492d84497':
  Replace uses of sprintf(3) with snprintf(3).
2014-10-09 12:44:43 +00:00
Ying Wang
94dfa99c15 am 75fd0e76: am 0c0e728b: Merge "Build dlext_testzip as custom module."
* commit '75fd0e76f81c22d9af689695dc17ef98ad44e384':
  Build dlext_testzip as custom module.
2014-10-09 12:44:42 +00:00
Dmitriy Ivanov
118de39fd6 am c4210cea: am ac3c94d0: Merge "Fix mma build: \'cd bionic && mma\' case"
* commit 'c4210cea45e160162d571992c483faa16d1e0bb6':
  Fix mma build: 'cd bionic && mma' case
2014-10-09 12:44:34 +00:00
Elliott Hughes
913d393b10 am 301c452e: am 0511534d: Merge "Don\'t silently return EINVAL for a NULL sem_t*."
* commit '301c452e5562f9ea286286a1cdb44e73ea390e5c':
  Don't silently return EINVAL for a NULL sem_t*.
2014-10-09 12:44:33 +00:00
Elliott Hughes
fad6661ad9 am 46b99841: am bfeef2d3: Merge "Use ln(1) rather than cp(1) to set up host /system for testing."
* commit '46b998415561aadb8b47c61b7892e85a81b13de5':
  Use ln(1) rather than cp(1) to set up host /system for testing.
2014-10-09 12:44:32 +00:00
Dan Albert
b9122b73bf am 8a7f8387: Merge "Use snprintf(3) instead of sprintf(3)."
* commit '8a7f8387b3b95de2ee0c42e34a226a1fcc066896':
  Use snprintf(3) instead of sprintf(3).
2014-10-09 00:40:24 +00:00
Dan Albert
653f30b15a am 8a7f8387: Merge "Use snprintf(3) instead of sprintf(3)."
* commit '8a7f8387b3b95de2ee0c42e34a226a1fcc066896':
  Use snprintf(3) instead of sprintf(3).
2014-10-09 00:39:27 +00:00
Dan Albert
8a7f8387b3 Merge "Use snprintf(3) instead of sprintf(3)." 2014-10-09 00:32:11 +00:00
Dan Albert
a2220ffb74 am 72d72d91: Merge "Replace uses of sprintf(3) with snprintf(3)."
* commit '72d72d91262fabe6bc169618ef3acb0721441cf0':
  Replace uses of sprintf(3) with snprintf(3).
2014-10-09 00:13:06 +00:00
Ying Wang
196f4eee9f am 0c0e728b: Merge "Build dlext_testzip as custom module."
* commit '0c0e728bd8cdeb0e73fd9c491d05993dfc77b622':
  Build dlext_testzip as custom module.
2014-10-09 00:13:05 +00:00
Dan Albert
8b3b4fa0ae am 72d72d91: Merge "Replace uses of sprintf(3) with snprintf(3)."
* commit '72d72d91262fabe6bc169618ef3acb0721441cf0':
  Replace uses of sprintf(3) with snprintf(3).
2014-10-09 00:12:30 +00:00
Ying Wang
75fd0e76f8 am 0c0e728b: Merge "Build dlext_testzip as custom module."
* commit '0c0e728bd8cdeb0e73fd9c491d05993dfc77b622':
  Build dlext_testzip as custom module.
2014-10-09 00:12:29 +00:00
Dan Albert
ca75f9cdeb Use snprintf(3) instead of sprintf(3).
This change should probably be made upstream as well, but they have a
note about not using it because it isn't available on all systems.

Change-Id: I6d8404c031bd2f486532ced55d94bbb4a4cd2e71
2014-10-08 17:10:26 -07:00
Dan Albert
72d72d9126 Merge "Replace uses of sprintf(3) with snprintf(3)." 2014-10-08 23:44:48 +00:00
Ying Wang
0c0e728bd8 Merge "Build dlext_testzip as custom module." 2014-10-08 23:43:50 +00:00
Ying Wang
667853d477 Build dlext_testzip as custom module.
Use $(BUILD_SYSTEM)/base_rules to build it as custom module, so that
it's exposed to utilities like mm/mmma etc.

Bug: 17887283
Change-Id: Idd7b62d08e4d56331a3ff15da6aa46eae8c41898
2014-10-08 16:38:58 -07:00
Dan Albert
cfd8c45725 Replace uses of sprintf(3) with snprintf(3).
At -00, the compiler warns about sprintf(3), and it is promoted to an
error by -Werror.

Change-Id: Ibb380d27d7eb09dda8ac785be2478d656b379190
2014-10-08 16:12:27 -07:00
Dmitriy Ivanov
86c20f6a52 am ac3c94d0: Merge "Fix mma build: \'cd bionic && mma\' case"
* commit 'ac3c94d031c16a0299471a593cdc6248494e539d':
  Fix mma build: 'cd bionic && mma' case
2014-10-08 22:49:22 +00:00
Elliott Hughes
9a96ca3ec4 am 0511534d: Merge "Don\'t silently return EINVAL for a NULL sem_t*."
* commit '0511534dcbb00f26b2fd6209b1b60a3263bf042c':
  Don't silently return EINVAL for a NULL sem_t*.
2014-10-08 22:49:21 +00:00
Elliott Hughes
294d7d1215 am bfeef2d3: Merge "Use ln(1) rather than cp(1) to set up host /system for testing."
* commit 'bfeef2d3a903f161531ce5e45b2dd7d280e7f154':
  Use ln(1) rather than cp(1) to set up host /system for testing.
2014-10-08 22:49:20 +00:00
Dmitriy Ivanov
c4210cea45 am ac3c94d0: Merge "Fix mma build: \'cd bionic && mma\' case"
* commit 'ac3c94d031c16a0299471a593cdc6248494e539d':
  Fix mma build: 'cd bionic && mma' case
2014-10-08 22:49:08 +00:00
Elliott Hughes
301c452e55 am 0511534d: Merge "Don\'t silently return EINVAL for a NULL sem_t*."
* commit '0511534dcbb00f26b2fd6209b1b60a3263bf042c':
  Don't silently return EINVAL for a NULL sem_t*.
2014-10-08 22:49:07 +00:00
Elliott Hughes
46b9984155 am bfeef2d3: Merge "Use ln(1) rather than cp(1) to set up host /system for testing."
* commit 'bfeef2d3a903f161531ce5e45b2dd7d280e7f154':
  Use ln(1) rather than cp(1) to set up host /system for testing.
2014-10-08 22:49:06 +00:00
Dmitriy Ivanov
ac3c94d031 Merge "Fix mma build: 'cd bionic && mma' case" 2014-10-08 22:39:21 +00:00
Dmitriy Ivanov
51166d3aa2 Fix mma build: 'cd bionic && mma' case
Bug: 17887283
Change-Id: If2015f2361348eac8c53aed3f8715077b79ce2f5
2014-10-08 15:36:56 -07:00
Elliott Hughes
0511534dcb Merge "Don't silently return EINVAL for a NULL sem_t*." 2014-10-08 22:21:13 +00:00
Elliott Hughes
bfeef2d3a9 Merge "Use ln(1) rather than cp(1) to set up host /system for testing." 2014-10-08 22:17:19 +00:00
Elliott Hughes
75129ae9f3 Don't silently return EINVAL for a NULL sem_t*.
Bug: 17571197
Change-Id: Ied31d8de87fc10d20dc338be0457e9a4ddb9a0a5
2014-10-08 15:11:44 -07:00
Elliott Hughes
3ea4d56ed4 Use ln(1) rather than cp(1) to set up host /system for testing.
The trouble with cp is that if you're running a command directly (because
you're using gdb, say), you need to make sure you've copied the linker
and shell again if you've done a rebuild that caused a change there.

Change-Id: I312da30c0f92b515967e854e0faba272c961ecc7
2014-10-08 14:56:27 -07:00
Elliott Hughes
5d104a0454 am 98f32183: am 13641010: Merge "Fix compile-time tests for LP64."
* commit '98f321838be54a64c595d65379e3554fa3d6a8d7':
  Fix compile-time tests for LP64.
2014-10-08 20:44:45 +00:00
Elliott Hughes
98f321838b am 13641010: Merge "Fix compile-time tests for LP64."
* commit '1364101067072c2ce6fa395cdef2534f338f30b1':
  Fix compile-time tests for LP64.
2014-10-08 20:40:08 +00:00
Elliott Hughes
7083b23b1c am 13641010: Merge "Fix compile-time tests for LP64."
* commit '1364101067072c2ce6fa395cdef2534f338f30b1':
  Fix compile-time tests for LP64.
2014-10-08 20:39:57 +00:00
Elliott Hughes
1364101067 Merge "Fix compile-time tests for LP64." 2014-10-08 20:31:10 +00:00
Elliott Hughes
b4b15c63a1 Fix compile-time tests for LP64.
Change-Id: Ib9bec5c6c77c55679d64c2bc15ab70979c40e66c
2014-10-08 13:21:29 -07:00
Dan Albert
aca5f36de3 am 035c00d0: am 5cc5c5ea: Merge "Add basic compile time tests for sn?printf."
* commit '035c00d09ce2b6b04d2c278b8dfadc302acc3de1':
  Add basic compile time tests for sn?printf.
2014-10-08 20:17:24 +00:00
Dan Albert
035c00d09c am 5cc5c5ea: Merge "Add basic compile time tests for sn?printf."
* commit '5cc5c5ea0b7a5a2d523ea35c645a42b222929276':
  Add basic compile time tests for sn?printf.
2014-10-08 20:13:35 +00:00
Dan Albert
1b06736d96 am 5cc5c5ea: Merge "Add basic compile time tests for sn?printf."
* commit '5cc5c5ea0b7a5a2d523ea35c645a42b222929276':
  Add basic compile time tests for sn?printf.
2014-10-08 20:13:24 +00:00
Dan Albert
5cc5c5ea0b Merge "Add basic compile time tests for sn?printf." 2014-10-08 20:04:27 +00:00
Dan Albert
2fbb1b653e Add basic compile time tests for sn?printf.
Bug: 17782583
Change-Id: I6443537c643d1cc6b4a8f2dab5c364f2fbc1faa3
2014-10-08 13:02:53 -07:00
Elliott Hughes
94b0a1f08e am 3430ec18: am 5a3ca374: Merge "Revert "Work around a bug in Immersion\'s libImmEmulatorJ.so.""
* commit '3430ec18a45830cde56393cf67ec34ad4169c9e1':
  Revert "Work around a bug in Immersion's libImmEmulatorJ.so."
2014-10-08 16:53:54 +00:00
Elliott Hughes
3430ec18a4 am 5a3ca374: Merge "Revert "Work around a bug in Immersion\'s libImmEmulatorJ.so.""
* commit '5a3ca374583f7605672d9e8f9098011de240f7c4':
  Revert "Work around a bug in Immersion's libImmEmulatorJ.so."
2014-10-08 16:49:35 +00:00
Elliott Hughes
b559513e08 am 5a3ca374: Merge "Revert "Work around a bug in Immersion\'s libImmEmulatorJ.so.""
* commit '5a3ca374583f7605672d9e8f9098011de240f7c4':
  Revert "Work around a bug in Immersion's libImmEmulatorJ.so."
2014-10-08 16:49:35 +00:00
Elliott Hughes
5a3ca37458 Merge "Revert "Work around a bug in Immersion's libImmEmulatorJ.so."" 2014-10-08 16:40:58 +00:00
Elliott Hughes
abb31de8f3 am 07b7385f: am e5d4fc39: am 1543fdf6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit '07b7385fc08055478cd7ec418cf160fbafae4d59':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-08 07:59:31 +00:00
Dan Albert
1c81bdfd3f am d084b8d6: resolved conflicts for merge of 55ee845b to lmp-mr1-dev-plus-aosp
* commit 'd084b8d6b8c08fb399ba1127063c15a8c970c710':
  Inline helpers need to be exported unmangled.
2014-10-08 07:52:09 +00:00
Elliott Hughes
07b7385fc0 am e5d4fc39: am 1543fdf6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit 'e5d4fc39e3f26920f3413070d1175a0afd14a66f':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-08 07:51:01 +00:00
Dan Albert
d084b8d6b8 resolved conflicts for merge of 55ee845b to lmp-mr1-dev-plus-aosp
Change-Id: I134ec170a5fa1da065256b2da2e9c139db61b030
2014-10-08 00:07:03 -07:00
Elliott Hughes
e5d4fc39e3 am 1543fdf6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit '1543fdf616ddebee7819214437527f380e5c743b':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-08 05:24:46 +00:00
Dan Albert
55ee845b8e Inline helpers need to be exported unmangled.
__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

(cherry-pick of 658727e111ed6dee7be5239494f0764f7b1b02f8 with conflicts
in stdio.h and string.h.)

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
2014-10-07 18:51:24 -07:00
Nick Kralevich
efa8136df9 am 8ec71579: am ce92b41a: cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
* commit '8ec715796f3eef76edfe7ae18dc8b8a9e2be4b47':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-08 00:57:28 +00:00
Nick Kralevich
8ec715796f am ce92b41a: cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
* commit 'ce92b41a00fb86656055eceab9648a858721c3b1':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-08 00:51:24 +00:00
Dan Albert
f1afba2aca am 187fd4d7: am c9e4f2de: Merge "Inline helpers need to be exported unmangled."
* commit '187fd4d7abd802b77a57e28f3b3c9ce5c3d95e96':
  Inline helpers need to be exported unmangled.
2014-10-08 00:16:26 +00:00
Dan Albert
187fd4d7ab am c9e4f2de: Merge "Inline helpers need to be exported unmangled."
* commit 'c9e4f2de0a92ebf6dec336f383ba172efe1bb366':
  Inline helpers need to be exported unmangled.
2014-10-08 00:13:09 +00:00
Dan Albert
6c4a64e3e2 am c9e4f2de: Merge "Inline helpers need to be exported unmangled."
* commit 'c9e4f2de0a92ebf6dec336f383ba172efe1bb366':
  Inline helpers need to be exported unmangled.
2014-10-08 00:12:32 +00:00
Dan Albert
c9e4f2de0a Merge "Inline helpers need to be exported unmangled." 2014-10-08 00:01:08 +00:00
Dan Albert
658727e111 Inline helpers need to be exported unmangled.
__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
2014-10-07 16:46:47 -07:00
Nick Kralevich
ce92b41a00 cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
Otherwise the gcc compiler warning doesn't show up.

Add -Wno-error to fortify related tests. Fortify related tests
are expected to be examples of bad programs, and in many
cases shouldn't compile cleanly. Rewriting them to compile
cleanly isn't feasible nor desirable.

Bug: 17784968

(cherry picked from commit 1aaa17802c92d99ae170245c2b2f15a6c27b133e)

Change-Id: Ib6df1a3f44b55b1fff222e78395c10c51cd39817
2014-10-07 16:37:04 -07:00
Elliott Hughes
3d773274ad Revert "Work around a bug in Immersion's libImmEmulatorJ.so."
This reverts commit 7d3f553f989f830976efa92ddc3c84661d4d42aa.

Change-Id: I8909b6aa1d97e9a61dbe95a2d91b9fbe336b58f0
2014-10-07 23:31:06 +00:00
Elliott Hughes
5eebae46cb am 1543fdf6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit '1543fdf616ddebee7819214437527f380e5c743b':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:30:35 +00:00
Elliott Hughes
0f0c0475cb am e5b11446: am e8d9057e: Merge "Work around a bug in Immersion\'s libImmEmulatorJ.so."
* commit 'e5b11446897176720f74dd79cfc2cae208ea7739':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:27:43 +00:00
Elliott Hughes
1144dc404c am f6aec385: am b5e7eba6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit 'f6aec385829c376d8df116713a9f76846addb8ac':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:27:43 +00:00
Elliott Hughes
e5b1144689 am e8d9057e: Merge "Work around a bug in Immersion\'s libImmEmulatorJ.so."
* commit 'e8d9057e3005f6f53f8ef2e876b43aea7a892292':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:23:25 +00:00
Elliott Hughes
f6aec38582 am b5e7eba6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit 'b5e7eba6d1b97e471996fcfe7dbde7cbba7512ef':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:22:28 +00:00
Elliott Hughes
e698a7b5cf am e8d9057e: Merge "Work around a bug in Immersion\'s libImmEmulatorJ.so."
* commit 'e8d9057e3005f6f53f8ef2e876b43aea7a892292':
  Work around a bug in Immersion's libImmEmulatorJ.so.
2014-10-07 23:20:57 +00:00
Elliott Hughes
b5e7eba6d1 Work around a bug in Immersion's libImmEmulatorJ.so.
This library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL
pthread_mutex_t*. This gives them (and their users) one release to fix things.

Bug: 17443936

(cherry picked from commit 7d3f553f989f830976efa92ddc3c84661d4d42aa)

Change-Id: Ie26bbecd3a74d61113b51c18832872499b97ee86
2014-10-07 16:08:46 -07:00
Elliott Hughes
e8d9057e30 Merge "Work around a bug in Immersion's libImmEmulatorJ.so." 2014-10-07 23:08:12 +00:00
Elliott Hughes
7d3f553f98 Work around a bug in Immersion's libImmEmulatorJ.so.
This library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL
pthread_mutex_t*. This gives them (and their users) one release to fix things.

Bug: 17443936
Change-Id: I3b63c9a3dd63db0833f21073e323b3236a13b47a
2014-10-07 16:02:11 -07:00
Elliott Hughes
cee722b1cb am 9eb0d554: resolved conflicts for merge of ea8dea8c to lmp-mr1-dev-plus-aosp
* commit '9eb0d554bad86a62c370e7c31fa19b5f3dc90b36':
  Improve <sys/cdefs.h>.
2014-10-07 20:37:10 +00:00
Elliott Hughes
9eb0d554ba resolved conflicts for merge of ea8dea8c to lmp-mr1-dev-plus-aosp
Change-Id: I368c83e83c56a0c14d395540a715f5c42f8eafa8
2014-10-07 13:33:09 -07:00
Elliott Hughes
ea8dea8cb7 Merge "Improve <sys/cdefs.h>." into lmp-mr1-dev 2014-10-07 18:51:36 +00:00
Dan Albert
6ff5aa092b am 24095148: am eeb9aa02: Merge "Use snprintf instead of sprintf."
* commit '24095148c9952d402380d0b0ab8eb5da2a0bbd9a':
  Use snprintf instead of sprintf.
2014-10-07 18:51:01 +00:00
Dan Albert
24095148c9 am eeb9aa02: Merge "Use snprintf instead of sprintf."
* commit 'eeb9aa02b7f307a1d9b80731dd69ef9dd2f47e47':
  Use snprintf instead of sprintf.
2014-10-07 18:47:04 +00:00
Dan Albert
7c955d7797 am eeb9aa02: Merge "Use snprintf instead of sprintf."
* commit 'eeb9aa02b7f307a1d9b80731dd69ef9dd2f47e47':
  Use snprintf instead of sprintf.
2014-10-07 18:46:32 +00:00
Elliott Hughes
d87d401ab1 Improve <sys/cdefs.h>.
Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Bug: 17784968

(cherry picked from commit 2cfb4e8e2e217ef0e4140dcbf9b3da809781158c)

Change-Id: I5e96146f92c0521248c78c0933bec5e9a9818222
2014-10-07 11:40:09 -07:00
Dan Albert
eeb9aa02b7 Merge "Use snprintf instead of sprintf." 2014-10-07 18:38:11 +00:00
Dan Albert
b0fd55608e Use snprintf instead of sprintf.
At -O0, the attribute warning on sprintf is actually triggered (why
doesn't this happen with -Os?!) and promoted to an error by -Werror.
asctime64_r() is a non-standard function, but the IBM docs state that
the buffer is assumed to be at least 26 characters wide, and the
format string does limit to that (assuming a 4 digit year, also
defined by the IBM docs).

http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/asctimer.htm

Change-Id: I1c884474a769aa16c53e985c3d8d694c478c1189
2014-10-07 11:28:47 -07:00
Christopher Ferris
c5d30c27e6 am ac6fc5be: (-s ours) am 4aace385: am 2cf15571: am 40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit 'ac6fc5befd152814398bccb0443da6704f614f0f':
  DO NOT MERGE  Re-add .save directive for arm assembler code.
2014-10-07 18:03:05 +00:00
Christopher Ferris
ac6fc5befd am 4aace385: am 2cf15571: am 40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit '4aace3852d2a83067c5ef10e06e2a33c6903940f':
  DO NOT MERGE  Re-add .save directive for arm assembler code.
2014-10-07 17:54:11 +00:00
Christopher Ferris
4aace3852d am 2cf15571: am 40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit '2cf155713aaba451065d593335d544f2ada24ddf':
  DO NOT MERGE  Re-add .save directive for arm assembler code.
2014-10-07 17:42:39 +00:00
Dmitriy Ivanov
929ec5c950 am c4d97f51: am 6d2dd6a7: Merge "Fix 2nd arch prefix application"
* commit 'c4d97f51476def0852693b4002e9ba65df8cd5a6':
  Fix 2nd arch prefix application
2014-10-07 17:14:21 +00:00
Dmitriy Ivanov
9ec3d2e69a am 6d2dd6a7: Merge "Fix 2nd arch prefix application"
* commit '6d2dd6a74035a7ace838dd44e7910d54e15c11c2':
  Fix 2nd arch prefix application
2014-10-07 17:12:58 +00:00
Dmitriy Ivanov
c4d97f5147 am 6d2dd6a7: Merge "Fix 2nd arch prefix application"
* commit '6d2dd6a74035a7ace838dd44e7910d54e15c11c2':
  Fix 2nd arch prefix application
2014-10-07 17:12:11 +00:00
Dmitriy Ivanov
6d2dd6a740 Merge "Fix 2nd arch prefix application" 2014-10-07 17:04:24 +00:00
Dmitriy Ivanov
75d66dd9a7 Fix 2nd arch prefix application
Bug: 17887283
Change-Id: I7b3b2332212fe416d6b5f5c2e5c1e07605ba09aa
2014-10-07 09:46:46 -07:00
Christopher Ferris
5ad21d60fb am 2cf15571: am 40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit '2cf155713aaba451065d593335d544f2ada24ddf':
  DO NOT MERGE  Re-add .save directive for arm assembler code.
2014-10-07 15:31:51 +00:00
Elliott Hughes
97300b3878 am 106edd3f: am 6c4e16f6: Merge "further cleanup memcpy fortify implementation" into lmp-mr1-dev
* commit '106edd3fa795f41bd8b527732a6c2be74ff4164a':
  further cleanup memcpy fortify implementation
2014-10-07 01:02:57 +00:00
Christopher Ferris
8d0c9dfc2c am a87052c9: resolved conflicts for merge of 27355aff to lmp-mr1-dev-plus-aosp
* commit 'a87052c9a3f71f6017c3a4657d9ce01d8923e969':
  Force export symbols on all x86 variants in libc.
2014-10-07 00:58:44 +00:00
Elliott Hughes
106edd3fa7 am 6c4e16f6: Merge "further cleanup memcpy fortify implementation" into lmp-mr1-dev
* commit '6c4e16f634a8ee07fc0c3cc5299c9f7f03c5f8bf':
  further cleanup memcpy fortify implementation
2014-10-07 00:55:38 +00:00
Christopher Ferris
a87052c9a3 resolved conflicts for merge of 27355aff to lmp-mr1-dev-plus-aosp
Change-Id: Ice2d5d99788eb1fd9bcdfc288a36742f6e73d360
2014-10-06 17:53:54 -07:00
Elliott Hughes
6c4e16f634 Merge "further cleanup memcpy fortify implementation" into lmp-mr1-dev 2014-10-07 00:30:34 +00:00
Christopher Ferris
27355affc1 am d11eac34: Force export symbols on all x86 variants in libc.
* commit 'd11eac3455a059a092ceee92eda9905e1d661e94':
  Force export symbols on all x86 variants in libc.
2014-10-07 00:20:10 +00:00
Christopher Ferris
a0da9f976a am 015a48af: am 81fca356: Merge "Force export symbols on all x86 variants in libc."
* commit '015a48af3634b7337561a35544ecf2bc78549b0f':
  Force export symbols on all x86 variants in libc.
2014-10-07 00:03:54 +00:00
Nick Kralevich
3ccb3fcba4 am d9813e3e: am b5cba608: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit 'd9813e3e7fbf02955d2dd9f9c9ef97a8719b15a3':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-07 00:03:44 +00:00
Nick Kralevich
77e5dd7720 am 75a932c5: resolved conflicts for merge of 7ad2147a to lmp-mr1-dev-plus-aosp
* commit '75a932c5dd959a1678929a7a8211d30a85a907fc':
  string.h: remove unused variable
2014-10-06 23:58:37 +00:00
Christopher Ferris
fae2ad067e am 81fca356: Merge "Force export symbols on all x86 variants in libc."
* commit '81fca35672df90e2f770e67bbf7e7735c6ff8bd8':
  Force export symbols on all x86 variants in libc.
2014-10-06 23:51:43 +00:00
Christopher Ferris
015a48af36 am 81fca356: Merge "Force export symbols on all x86 variants in libc."
* commit '81fca35672df90e2f770e67bbf7e7735c6ff8bd8':
  Force export symbols on all x86 variants in libc.
2014-10-06 23:50:42 +00:00
Christopher Ferris
81fca35672 Merge "Force export symbols on all x86 variants in libc." 2014-10-06 23:45:03 +00:00
Christopher Ferris
6869d26ad9 Force export symbols on all x86 variants in libc.
For silvermont, the __popcountsi2 symbol does not get exported by libc.
But for atom, this symbol is exported. Since we already exported this symbol
for previous releases, it's better to just follow through and force
the export, but only for 32 bit. x86 64 bit will not export this symbol.

Bug: 17681440

(cherry picked from commit d11eac3455a059a092ceee92eda9905e1d661e94)

Change-Id: I93704c721d98d569922f606f214069bda24872ba
2014-10-06 16:41:46 -07:00
Christopher Ferris
9a7d31eb9c Merge "resolved conflicts for merge of d11eac34 to lmp-dev-plus-aosp" into lmp-dev-plus-aosp 2014-10-06 23:32:53 +00:00
Christopher Ferris
d61d2b7b80 resolved conflicts for merge of d11eac34 to lmp-dev-plus-aosp
Change-Id: I3cd9056d5d689b783f4afa870397ad4d9de357f5
2014-10-06 16:30:45 -07:00
Nick Kralevich
2d04b5e09f am b5cba608: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit 'b5cba6081bc9179d3ea2aa1bfd77dd8de1c88525':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-06 23:29:04 +00:00
Nick Kralevich
d9813e3e7f am b5cba608: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit 'b5cba6081bc9179d3ea2aa1bfd77dd8de1c88525':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-06 23:28:47 +00:00
Nick Kralevich
b5cba6081b Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions" 2014-10-06 23:21:04 +00:00
Nick Kralevich
db408bf421 further cleanup memcpy fortify implementation
Bug: 17784968

(cherry picked from commit b84f667e9312611536a564700daea11c12b6fcfa)

Change-Id: I68fc2cc0a1ee7f0887edf3681eb83ef678de1383
2014-10-06 16:18:32 -07:00
Nick Kralevich
75a932c5dd resolved conflicts for merge of 7ad2147a to lmp-mr1-dev-plus-aosp
Change-Id: Ie43710f4e5b8d5638bce505e9bef80e6cdd065bc
2014-10-06 15:50:24 -07:00
Nick Kralevich
1aaa17802c cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
Otherwise the gcc compiler warning doesn't show up.

Add -Wno-error to fortify related tests. Fortify related tests
are expected to be examples of bad programs, and in many
cases shouldn't compile cleanly. Rewriting them to compile
cleanly isn't feasible nor desirable.

Bug: 17784968
Change-Id: I93bececa7444d965f18c7c27d46e7abce5c49a02
2014-10-06 15:11:52 -07:00
Dan Albert
1f41103f26 am 8049eb75: am 9969feca: Merge "Add compile time test infrastructure for bionic."
* commit '8049eb7578ac1e37271da5dca000157687de5162':
  Add compile time test infrastructure for bionic.
2014-10-06 19:56:42 +00:00
Dan Albert
65c10a1477 am 9969feca: Merge "Add compile time test infrastructure for bionic."
* commit '9969fecad23edebcbc4f32a50dc65a2876a2478f':
  Add compile time test infrastructure for bionic.
2014-10-06 19:54:52 +00:00
Dan Albert
8049eb7578 am 9969feca: Merge "Add compile time test infrastructure for bionic."
* commit '9969fecad23edebcbc4f32a50dc65a2876a2478f':
  Add compile time test infrastructure for bionic.
2014-10-06 19:54:37 +00:00
Dan Albert
9969fecad2 Merge "Add compile time test infrastructure for bionic." 2014-10-06 19:45:32 +00:00
Dmitriy Ivanov
30aa4c2ddb am bc7ecf7a: am f4320e86: Merge "Resolve "unused DT entry" warnings for x86_64"
* commit 'bc7ecf7af2d1b06161badddcead0d9f8c66dbd12':
  Resolve "unused DT entry" warnings for x86_64
2014-10-06 19:36:10 +00:00
Dmitriy Ivanov
bc7ecf7af2 am f4320e86: Merge "Resolve "unused DT entry" warnings for x86_64"
* commit 'f4320e867cbc7764d2f1fa8ac64da9cc38cba733':
  Resolve "unused DT entry" warnings for x86_64
2014-10-06 19:28:49 +00:00
Dmitriy Ivanov
b9d4a64866 am f4320e86: Merge "Resolve "unused DT entry" warnings for x86_64"
* commit 'f4320e867cbc7764d2f1fa8ac64da9cc38cba733':
  Resolve "unused DT entry" warnings for x86_64
2014-10-06 19:14:51 +00:00
Dmitriy Ivanov
f4320e867c Merge "Resolve "unused DT entry" warnings for x86_64" 2014-10-06 19:07:58 +00:00
Dan Albert
f04a8bc226 Add compile time test infrastructure for bionic.
Actual tests to follow...

Bug: 17782583
Change-Id: I22857f19899c3b39dbc2e5473ad3be1a8a291139
2014-10-06 11:38:01 -07:00
Dmitriy Ivanov
513e29e16f Resolve "unused DT entry" warnings for x86_64
Change-Id: I3a2c87bf6e6259313cd9203389623f13b7405ef3
2014-10-06 11:32:19 -07:00
Dmitriy Ivanov
5830490dd7 am bfbe68fc: am 6d569b92: Merge "Add file_offset parameter to android_extinfo"
* commit 'bfbe68fc248d4ff69d963aecbab4a42f6def7ba0':
  Add file_offset parameter to android_extinfo
2014-10-06 17:33:59 +00:00
Dmitriy Ivanov
bfbe68fc24 am 6d569b92: Merge "Add file_offset parameter to android_extinfo"
* commit '6d569b92012543a297dccf2dfeaa648d07b3c133':
  Add file_offset parameter to android_extinfo
2014-10-06 17:29:06 +00:00
Dmitriy Ivanov
47388d8297 am 6d569b92: Merge "Add file_offset parameter to android_extinfo"
* commit '6d569b92012543a297dccf2dfeaa648d07b3c133':
  Add file_offset parameter to android_extinfo
2014-10-06 17:28:54 +00:00
Dmitriy Ivanov
6d569b9201 Merge "Add file_offset parameter to android_extinfo" 2014-10-06 17:19:39 +00:00
Nick Kralevich
7ad2147a08 string.h: remove unused variable
(cherry picked from commit 48be71d02b6cc4e6493d38cdd6b7779032c38901)

Bug: 17784968
Change-Id: Iac7732fb4f7fe42977cb9f62472bb636e17e5232
2014-10-06 10:17:01 -07:00
Dmitriy Ivanov
07e5bc152d Add file_offset parameter to android_extinfo
Bug: 17762003
Change-Id: I8fb267a3155acef3dba534038cf5d1ef00d7154b
2014-10-06 10:02:34 -07:00
Nick Kralevich
7912cc7e9e am e88b00c5: am a6eef3be: Merge "Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions""
* commit 'e88b00c51d87ce2182774e40939fe51507de6a40':
  Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
2014-10-06 00:48:54 +00:00
Nick Kralevich
e88b00c51d am a6eef3be: Merge "Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions""
* commit 'a6eef3be105fb34161fd1b1d513f7d03b5f1bbe9':
  Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
2014-10-06 00:44:49 +00:00
Nick Kralevich
0fd98ec4d7 am a6eef3be: Merge "Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions""
* commit 'a6eef3be105fb34161fd1b1d513f7d03b5f1bbe9':
  Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
2014-10-06 00:44:49 +00:00
Nick Kralevich
a6eef3be10 Merge "Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"" 2014-10-06 00:40:07 +00:00
Nick Kralevich
884a3de60f Revert "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
Broke the build.

In file included from frameworks/rs/cpu_ref/rsCpuCore.cpp:36:
system/core/include/cutils/properties.h:118:1: error: unknown attribute '__artificial__' ignored [-Werror,-Wunknown-attributes]
__BIONIC_FORTIFY_INLINE
^
bionic/libc/include/sys/cdefs.h:537:110: note: expanded from macro '__BIONIC_FORTIFY_INLINE'
#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__))
                                                                                                             ^
1 error generated.
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libRSCpuRef_intermediates/rsCpuCore.o] Error 1
This reverts commit 9b543ffeac216189cc8125f7624da9a8cbcbe2e4.

Change-Id: I6a1198747505dcb402b722887c1bfbc3a628a8b8
2014-10-06 00:39:47 +00:00
Nick Kralevich
c4b6e25d52 am 5ba8094f: am 558ec810: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit '5ba8094f8bd9e927814eb2a242c6cb8d2c7e87ed':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-06 00:21:56 +00:00
Nick Kralevich
036cd686af am 558ec810: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit '558ec8103bad6eed78c3e372fc9b2535a3486745':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-06 00:17:24 +00:00
Nick Kralevich
5ba8094f8b am 558ec810: Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
* commit '558ec8103bad6eed78c3e372fc9b2535a3486745':
  cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
2014-10-06 00:17:23 +00:00
Nick Kralevich
558ec8103b Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions" 2014-10-06 00:10:48 +00:00
Nick Kralevich
540aeac4e0 am 32cfbb76: am db6fea86: Merge "further cleanup memcpy fortify implementation"
* commit '32cfbb760536a53d39f376f14eb142b6aab265c3':
  further cleanup memcpy fortify implementation
2014-10-05 17:01:23 +00:00
Nick Kralevich
32cfbb7605 am db6fea86: Merge "further cleanup memcpy fortify implementation"
* commit 'db6fea86a5cb70c5aaad61ef6c126557f36e138b':
  further cleanup memcpy fortify implementation
2014-10-05 16:54:37 +00:00
Nick Kralevich
10450b14f7 am db6fea86: Merge "further cleanup memcpy fortify implementation"
* commit 'db6fea86a5cb70c5aaad61ef6c126557f36e138b':
  further cleanup memcpy fortify implementation
2014-10-05 16:52:37 +00:00
Nick Kralevich
db6fea86a5 Merge "further cleanup memcpy fortify implementation" 2014-10-05 16:43:24 +00:00
Nick Kralevich
b84f667e93 further cleanup memcpy fortify implementation
Change-Id: I0380f3c8ca8f9bb8a206accd839c32c9daf13c56
2014-10-05 06:52:24 -07:00
Nick Kralevich
9b543ffeac cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
Otherwise the gcc compiler warning doesn't show up.

Delete some unittests. These unittests no longer compile cleanly
using -Wall -Werror, and rewriting them to compile cleanly
isn't feasible.

Bug: 17784968
Change-Id: I9bbdc7b6a1c2ac75754f5d0f90782e0dfae66721
2014-10-04 22:01:41 -07:00
Nick Kralevich
9143ea373d am b93a965b: am ae97a776: Merge "string.h: remove unused variable"
* commit 'b93a965bce51d5be57b25f2fd32e858fd300c3e6':
  string.h: remove unused variable
2014-10-04 22:50:53 +00:00
Nick Kralevich
2b208d96af am ae97a776: Merge "string.h: remove unused variable"
* commit 'ae97a776ea900e5923d6d320d72dcc04b224796e':
  string.h: remove unused variable
2014-10-04 22:47:10 +00:00
Nick Kralevich
b93a965bce am ae97a776: Merge "string.h: remove unused variable"
* commit 'ae97a776ea900e5923d6d320d72dcc04b224796e':
  string.h: remove unused variable
2014-10-04 22:47:07 +00:00
Nick Kralevich
ae97a776ea Merge "string.h: remove unused variable" 2014-10-04 22:38:09 +00:00
Nick Kralevich
48be71d02b string.h: remove unused variable
Change-Id: I08b7dab1b374ad427fcbee4183f2c7d93d0199a9
2014-10-04 15:20:00 -07:00
Dmitriy Ivanov
1eb0694888 am cd9165e6: resolved conflicts for merge of 02542b3b to lmp-mr1-dev-plus-aosp
* commit 'cd9165e64952026f54260910dfe72b32387f6d48':
  Reimplement clock(3) using clock_gettime(3)
  Explain why clock(3) isn't broken.
2014-10-04 18:22:14 +00:00
Dmitriy Ivanov
cd9165e649 resolved conflicts for merge of 02542b3b to lmp-mr1-dev-plus-aosp
Change-Id: Ib881abd163fd737719b665c447055c7883a7b791
2014-10-04 11:16:42 -07:00
Elliott Hughes
2e345351b3 resolved conflicts for merge of a5087148 to lmp-dev-plus-aosp
Change-Id: Ic6b352650a7dec53cdd681d0f0b8ba4278e560d3
2014-10-04 10:03:08 -07:00
Alex Van Brunt
02542b3bbd am a5087148: Reimplement clock(3) using clock_gettime(3)
* commit 'a508714800242b294291060641ed35d719bdc857':
  Reimplement clock(3) using clock_gettime(3)
2014-10-04 16:44:11 +00:00
Elliott Hughes
282559de94 am 5f86872e: am 4ef0e59f: Merge "Reimplement clock(3) using clock_gettime(3)"
* commit '5f86872e672187afa6256bf3f15257af7e4eaef6':
  Reimplement clock(3) using clock_gettime(3)
2014-10-04 02:41:31 +00:00
Elliott Hughes
b4954dc384 am 4ef0e59f: Merge "Reimplement clock(3) using clock_gettime(3)"
* commit '4ef0e59f339ad138eabe3bc408beda6004f5ea83':
  Reimplement clock(3) using clock_gettime(3)
2014-10-04 02:24:08 +00:00
Elliott Hughes
5f86872e67 am 4ef0e59f: Merge "Reimplement clock(3) using clock_gettime(3)"
* commit '4ef0e59f339ad138eabe3bc408beda6004f5ea83':
  Reimplement clock(3) using clock_gettime(3)
2014-10-04 02:17:19 +00:00
Elliott Hughes
4ef0e59f33 Merge "Reimplement clock(3) using clock_gettime(3)" 2014-10-04 01:57:42 +00:00
Alex Van Brunt
8d0b2dbf21 Reimplement clock(3) using clock_gettime(3)
Unlike times(), clock_gettime() is implemented as a vDSO on many architectures.
So, using clock_gettime() will return a more accurate time and do so with less
overhead because it does have the overhead of calling into the kernel.

It is also significantly more accurate because it measures the actual time in
nanoseconds rather than the number of ticks (typically 1 millisecond or more).

Bug: 17814435
Change-Id: Id4945d9f387330518f78669809639952e9227ed9
2014-10-03 18:54:28 -07:00
Elliott Hughes
22f5a61d95 am ea9800e9: Explain why clock(3) isn\'t broken.
* commit 'ea9800e98598c71fe76c4e2a0d0498b6bd490a83':
  Explain why clock(3) isn't broken.
2014-10-04 00:06:27 +00:00
Elliott Hughes
f4555a003b am ea9800e9: Explain why clock(3) isn\'t broken.
* commit 'ea9800e98598c71fe76c4e2a0d0498b6bd490a83':
  Explain why clock(3) isn't broken.
2014-10-03 23:57:39 +00:00
Dmitriy Ivanov
18945005c2 am bf956e86: resolved conflicts for merge of 04f5f410 to lmp-mr1-dev-plus-aosp
* commit 'bf956e863e486c35700718ff84bc5483b46784e6':
  Fix gdb could not get shared library list issue
2014-10-03 19:29:45 +00:00
Dmitriy Ivanov
bf956e863e resolved conflicts for merge of 04f5f410 to lmp-mr1-dev-plus-aosp
Change-Id: I921c62dbe265b1be4d373d1988951de0f6743fba
2014-10-03 12:21:57 -07:00
Dmitriy Ivanov
e3924e6c7e am dcca3fce: am d5df4124: Merge "Add RTLD_NODELETE flag support"
* commit 'dcca3fce3f60233e74d7d23b28b04feeb4d5a0e3':
  Add RTLD_NODELETE flag support
2014-10-03 16:54:31 +00:00
Dmitriy Ivanov
fc046eca0b am d5df4124: Merge "Add RTLD_NODELETE flag support"
* commit 'd5df4124bbbb30411ef19f7c2fbb3987d0eb9630':
  Add RTLD_NODELETE flag support
2014-10-03 16:53:33 +00:00
Dmitriy Ivanov
dcca3fce3f am d5df4124: Merge "Add RTLD_NODELETE flag support"
* commit 'd5df4124bbbb30411ef19f7c2fbb3987d0eb9630':
  Add RTLD_NODELETE flag support
2014-10-03 16:47:05 +00:00
Ningsheng Jian
04f5f4100c Fix gdb could not get shared library list issue
Get dynamic flags from phdr table's correct entry rather the first
entry, so that the following DT_DEBUG entry can be set.

Also fix the undefined reference to LoadTask::deleter issue under gcc
-O0 option.

Bug: 17524778

(cherry picked from commit e93be99da0614ff38cbf8b2bb0624ff1dc79b8d0)

Change-Id: I347792dab25c7b19c3fc690e03d20899ce1e26e0
2014-10-02 15:35:47 -07:00
Dmitriy Ivanov
d5df4124bb Merge "Add RTLD_NODELETE flag support" 2014-10-02 21:47:29 +00:00
Dmitriy Ivanov
812d675be9 am bbf86e61: Fixes to linker code after the conflict resolution
* commit 'bbf86e6157ab98af7468ce5eb3292b6509a3cabd':
  Fixes to linker code after the conflict resolution
2014-10-02 21:35:22 +00:00
Dmitriy Ivanov
6d6c337244 am 2cd77d30: Undo the bad work of Automerger
* commit '2cd77d301ff6860836428cda2ccd626b3bb6912e':
  Undo the bad work of Automerger
2014-10-02 21:35:04 +00:00
Dmitriy Ivanov
1602582952 am 145372b1: Revert "L-MR1 specific fixes"
* commit '145372b1bced73595d51405bcbda73cd092e2425':
  Revert "L-MR1 specific fixes"
2014-10-02 21:35:00 +00:00
Dmitriy Ivanov
bbf86e6157 Fixes to linker code after the conflict resolution
Change-Id: Icd0728604a865b73e7af0e0aee38971a612935f2
2014-10-02 13:44:20 -07:00
Dmitriy Ivanov
2cd77d301f Undo the bad work of Automerger
Change-Id: I585388aebc556a094db4c22e647edacea7cde129
2014-10-02 13:08:39 -07:00
Dmitriy Ivanov
e7575e1b57 am d4ab8f01: am 1cd0c677: L-MR1 specific fixes
* commit 'd4ab8f0135603f252936c8d73a579c7ec5314b71':
  L-MR1 specific fixes
2014-10-02 19:51:14 +00:00
Dmitriy Ivanov
145372b1bc Revert "L-MR1 specific fixes"
This reverts commit 1cd0c6777f35b531c9ce78397d0915aa521b3e87.
2014-10-02 12:49:42 -07:00
Dmitriy Ivanov
128c850cc1 am feaf85e3: resolved conflicts for merge of 7d971ec1 to lmp-mr1-dev-plus-aosp
* commit 'feaf85e34c0ab0a65096b183a6ae3144242d934b':
  Fix unload of recursively linked library
2014-10-02 19:42:54 +00:00
Dmitriy Ivanov
d4ab8f0135 am 1cd0c677: L-MR1 specific fixes
* commit '1cd0c6777f35b531c9ce78397d0915aa521b3e87':
  L-MR1 specific fixes
2014-10-02 19:41:50 +00:00
Dmitriy Ivanov
feaf85e34c resolved conflicts for merge of 7d971ec1 to lmp-mr1-dev-plus-aosp
Change-Id: I1cd01e5c0dd00cd55594654d53f7e0cb6edf35d9
2014-10-02 12:38:54 -07:00
Dmitriy Ivanov
651bab0e16 am b5626827: resolved conflicts for merge of f4cb6313 to lmp-mr1-dev-plus-aosp
* commit 'b5626827c9d62783737de163723e8f647eb6665f':
  Add IFUNC support for arm64 and IRELATIVE reloc
2014-10-02 19:38:02 +00:00
Dmitriy Ivanov
b5626827c9 resolved conflicts for merge of f4cb6313 to lmp-mr1-dev-plus-aosp
Change-Id: I9c033fa82c7bf07e06157227f5162d603804b7d6
2014-10-02 12:33:10 -07:00
Dmitriy Ivanov
9adb53a634 am 85fc61d7: am ef1306d7: Refactoring: C++11 style DISABLE_ bionic marcos
* commit '85fc61d7d2755fa55270d30bee348bc98adb5032':
  Refactoring: C++11 style DISABLE_ bionic marcos
2014-10-02 19:27:30 +00:00
Dmitriy Ivanov
da5b0de585 am 2fbf6593: resolved conflicts for merge of 61c4147f to lmp-mr1-dev-plus-aosp
* commit '2fbf6593aec12d0644308775463bd0c4ccff4aa6':
  Reset enviroment for math_tests
2014-10-02 19:27:30 +00:00
Dmitriy Ivanov
85fc61d7d2 am ef1306d7: Refactoring: C++11 style DISABLE_ bionic marcos
* commit 'ef1306d77718cc74a8df5673a15649dea317571d':
  Refactoring: C++11 style DISABLE_ bionic marcos
2014-10-02 19:23:57 +00:00
Dmitriy Ivanov
7c96e34558 am 6aac3cd1: resolved conflicts for merge of ae69a958 to lmp-mr1-dev-plus-aosp
* commit '6aac3cd112360631970ff3a7b809d58ed88a10c9':
  Load libraries in breadth-first order
2014-10-02 19:23:44 +00:00
Dmitriy Ivanov
2fbf6593ae resolved conflicts for merge of 61c4147f to lmp-mr1-dev-plus-aosp
Change-Id: I4ed15dbb2136a1984f7651dcc85d05e3e585ac51
2014-10-02 12:22:07 -07:00
Dmitriy Ivanov
6aac3cd112 resolved conflicts for merge of ae69a958 to lmp-mr1-dev-plus-aosp
Change-Id: Ia466577ef6e627cc6fcef46aa37cce21acbc8519
2014-10-02 12:17:32 -07:00
Dmitriy Ivanov
166aa84826 am e3105fee: resolved conflicts for merge of c0133a73 to lmp-mr1-dev-plus-aosp
* commit 'e3105fee224456000f84a03a767685849055e381':
  Revert "Load libraries in breadth-first order"
2014-10-02 19:04:09 +00:00
Dmitriy Ivanov
e3105fee22 resolved conflicts for merge of c0133a73 to lmp-mr1-dev-plus-aosp
Change-Id: I31d81e91d796fa27f9c88a7edc96c97320ade72c
2014-10-02 11:59:28 -07:00
Dmitriy Ivanov
a79c70dd59 am daf15a6c: resolved conflicts for merge of 8de1ddec to lmp-mr1-dev-plus-aosp
* commit 'daf15a6ca7b1ef7f16103e339334eda3b18aa425':
  Fix order of soinfo links (repairs libcxx tests).
2014-10-02 18:41:08 +00:00
Dmitriy Ivanov
daf15a6ca7 resolved conflicts for merge of 8de1ddec to lmp-mr1-dev-plus-aosp
Change-Id: I9bb063dcf684307181ce4a2b1e5f96bd0d78aaff
2014-10-02 11:34:05 -07:00
Dmitriy Ivanov
e027ca9665 am 32ebc71f: resolved conflicts for merge of 59c12a65 to lmp-mr1-dev-plus-aosp
* commit '32ebc71f99523eb2496a4be175a40dcd10dc699a':
  Load libraries in breadth-first order
2014-10-02 18:32:33 +00:00
Dmitriy Ivanov
32ebc71f99 resolved conflicts for merge of 59c12a65 to lmp-mr1-dev-plus-aosp
Change-Id: I92667dd3d55c8cfd2586c88362fd542c7a6ff9b2
2014-10-02 11:27:57 -07:00
Dmitriy Ivanov
0427f87378 am dadc782c: resolved conflicts for merge of 81fe2b16 to lmp-mr1-dev-plus-aosp
* commit 'dadc782cf01ebfb1dc3401352450922a9d644614':
  Enable clang compilation with libc but not linker.
2014-10-02 18:10:01 +00:00
Dmitriy Ivanov
dadc782cf0 resolved conflicts for merge of 81fe2b16 to lmp-mr1-dev-plus-aosp
Change-Id: I61272d86ebf0d40262e88f5f4327cf97be035bda
2014-10-02 11:06:05 -07:00
Dmitriy Ivanov
e4874d6b1d am 9b6b6e6d: resolved conflicts for merge of 7210c41f to lmp-mr1-dev-plus-aosp
* commit '9b6b6e6d4a9fa83c6ded39a618e66c05e21d2989':
  Encapsulate soinfo_link_image and soinfo_relocate
2014-10-02 17:57:20 +00:00
Dmitriy Ivanov
9b6b6e6d4a resolved conflicts for merge of 7210c41f to lmp-mr1-dev-plus-aosp
Change-Id: I44d84a95f506e89e77cce8c218083a80ca5724b9
2014-10-02 10:54:08 -07:00
Dmitriy Ivanov
3ca82fd210 am 1c695166: am 4466bd72: Implement LinkedList::visit()
* commit '1c69516677e9a7943e90add7f1e44361c7a53b38':
  Implement LinkedList::visit()
2014-10-02 17:38:12 +00:00
Dmitriy Ivanov
5d20f051b0 am de1943eb: resolved conflicts for merge of ff01f6fc to lmp-mr1-dev-plus-aosp
* commit 'de1943eb82116d879344dc17f54f7188d8119740':
  Introduce size-based r/w allocators
2014-10-02 17:38:11 +00:00
Dmitriy Ivanov
15f795113e am 846be3ea: resolved conflicts for merge of 4d01d08c to lmp-mr1-dev-plus-aosp
* commit '846be3ea5d71bc69744747d19b0a9b0dcee4c376':
  Erase elements in LinkedList::remove_if
2014-10-02 17:38:10 +00:00
Dmitriy Ivanov
e788f1da5d am cd7890ba: resolved conflicts for merge of cfad7ae9 to lmp-mr1-dev-plus-aosp
* commit 'cd7890ba2d0297f3857d65a29fe65da409ccc319':
  Replace NULL with nullptr
2014-10-02 17:38:10 +00:00
Dmitriy Ivanov
1c69516677 am 4466bd72: Implement LinkedList::visit()
* commit '4466bd72fb9daeb0ef8f250e8314b555aab30817':
  Implement LinkedList::visit()
2014-10-02 17:34:40 +00:00
Dmitriy Ivanov
de1943eb82 resolved conflicts for merge of ff01f6fc to lmp-mr1-dev-plus-aosp
Change-Id: I90e7700708a305a7e93dd3ef3a32c5508038b53b
2014-10-02 10:33:04 -07:00
Dmitriy Ivanov
846be3ea5d resolved conflicts for merge of 4d01d08c to lmp-mr1-dev-plus-aosp
Change-Id: Icaf503240281596de05ee331457200b61d57ab46
2014-10-02 10:28:43 -07:00
Dmitriy Ivanov
cd7890ba2d resolved conflicts for merge of cfad7ae9 to lmp-mr1-dev-plus-aosp
Change-Id: I119e37c6689c4cc49663748a72c17dc55a362b02
2014-10-02 10:21:34 -07:00
Dmitriy Ivanov
ee5e2fb541 am 47102e1e: am 5dfe802d: Remove unnecessary calls to LinkedList::clear()
* commit '47102e1e1dd538089198c6889b0109f1f9734b77':
  Remove unnecessary calls to LinkedList::clear()
2014-10-02 17:10:27 +00:00
Dmitriy Ivanov
512c261c8e am abf6390f: resolved conflicts for merge of 93c3f420 to lmp-mr1-dev-plus-aosp
* commit 'abf6390f37b6d541fa3d26583fc8506047b50de8':
  Enable __cxa_atexit && __cxa_finalize for linker
2014-10-02 17:10:27 +00:00
Dmitriy Ivanov
47102e1e1d am 5dfe802d: Remove unnecessary calls to LinkedList::clear()
* commit '5dfe802d0dedbfce355a7ece5bc77c7346941bb2':
  Remove unnecessary calls to LinkedList::clear()
2014-10-02 17:06:50 +00:00
Dmitriy Ivanov
c05ceefcd7 am 88eb2a9c: resolved conflicts for merge of 3bbd218e to lmp-mr1-dev-plus-aosp
* commit '88eb2a9cf5f2c71bdd73d36ff7dbc29a655cb1ec':
  Bump soinfo version
2014-10-02 17:06:48 +00:00
Dmitriy Ivanov
abf6390f37 resolved conflicts for merge of 93c3f420 to lmp-mr1-dev-plus-aosp
Change-Id: I3cd9c572ec096dc14e0356fe2725074bc7af29d3
2014-10-02 10:05:02 -07:00
Dmitriy Ivanov
88eb2a9cf5 resolved conflicts for merge of 3bbd218e to lmp-mr1-dev-plus-aosp
Change-Id: Ie7f85be196a44ab59554384274f2022239f91b0e
2014-10-02 09:59:26 -07:00
Dmitriy Ivanov
327bf8ad36 am 58481547: Merge "resolved conflicts for merge of bd321c11 to lmp-mr1-dev-plus-aosp" into lmp-mr1-dev-plus-aosp
* commit '5848154714fbe84de46af33ee9a57c7588094167':
  Run constructors before resolving ifunc functions
2014-10-02 16:56:38 +00:00
Dmitriy Ivanov
5848154714 Merge "resolved conflicts for merge of bd321c11 to lmp-mr1-dev-plus-aosp" into lmp-mr1-dev-plus-aosp 2014-10-02 16:51:08 +00:00
Dmitriy Ivanov
0a21fe5dcd resolved conflicts for merge of bd321c11 to lmp-mr1-dev-plus-aosp
Change-Id: I6ee8a75840073ed00eda9f8f0fbd372cdcfb0be0
2014-10-02 09:49:28 -07:00
Dmitriy Ivanov
f126b0d59f am 8fd54631: resolved conflicts for merge of 31b88da8 to lmp-mr1-dev-plus-aosp
* commit '8fd546313cb47b42a70478a59b5b556bf4a61966':
  Added test for ifunc support in dynamic linker.
2014-10-02 15:59:45 +00:00
Dmitriy Ivanov
8fd546313c resolved conflicts for merge of 31b88da8 to lmp-mr1-dev-plus-aosp
Change-Id: I3081cba9e1372adc085380cda01d4825543a6727
2014-10-02 08:53:42 -07:00
Elliott Hughes
322bce681c am d081e8b5: am e4f8962a: Merge "Update bionic to tzdata 2014h." into lmp-mr1-dev
* commit 'd081e8b53960ed3be976e75bb7ac2c043898c4ad':
  Update bionic to tzdata 2014h.
2014-10-02 12:47:19 +00:00
Elliott Hughes
14afc13b99 am 26ce6c21: am b5f5b0e4: Fix update-tzdata.py to rebuild icu4c .dat file.
* commit '26ce6c215bcd4fe6befce3b55228966e27775616':
  Fix update-tzdata.py to rebuild icu4c .dat file.
2014-10-02 12:47:18 +00:00
Elliott Hughes
d081e8b539 am e4f8962a: Merge "Update bionic to tzdata 2014h." into lmp-mr1-dev
* commit 'e4f8962ab5b4fb64842f4635fdf01a860bb180ee':
  Update bionic to tzdata 2014h.
2014-10-02 12:37:01 +00:00
Elliott Hughes
26ce6c215b am b5f5b0e4: Fix update-tzdata.py to rebuild icu4c .dat file.
* commit 'b5f5b0e418e5c382573e367dd4aff9373180bbe4':
  Fix update-tzdata.py to rebuild icu4c .dat file.
2014-10-02 12:37:00 +00:00
Dmitriy Ivanov
1cd0c6777f L-MR1 specific fixes
Reset soinfo version to 0.
 Disable ifunc test for arm64 because of old toolchain
 in lmp-mr1-dev branch

 Note: this commit should be reverted in -plus-aosp branch.

Change-Id: I2d6d996d43bc35d5d4975c745779f43a988b31e6
2014-10-01 16:26:49 -07:00
Dmitriy Ivanov
7d971ec14b Fix unload of recursively linked library
Expanded test for recursive libs. Fixed bug with unnecessary
  soinfo_free of already loaded library.

(cherry picked from commit a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5)

Change-Id: I6907c723d9fbdf6b2777f3f236b1e29b0843edd6
2014-10-01 16:04:58 -07:00
Dmitriy Ivanov
f4cb631364 Add IFUNC support for arm64 and IRELATIVE reloc
There are number of changes in the way IFUNC related relocations are done:
 1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.
 2. IFUNC relocations are now relying on static linker to generate
    them in correct order - this removes necessety of additional
    relocation pass for ifuncs.
 3. Related to 2: rela?.dyn relocations are preformed before .plt ones.
 4. Ifunc are resolved on symbol lookup this approach allowed to avoid
    mprotect(PROT_WRITE) call on r-x program segments.

Bug: 17399706
Bug: 17177284

(cherry picked from commit 9aea164457c269c475592da36b4655d45f55c7bc)

Change-Id: Ie19d900fc203beb93faf8943b0d06d534a6de4ad
2014-10-01 16:04:31 -07:00
Dmitriy Ivanov
ef1306d777 Refactoring: C++11 style DISABLE_ bionic marcos
Enable the -std=gnu++11 flag for libstdc++ static and
  dynamic libs.

  ScopeGuard uses DISABLE_ macros instead of '= delete';

(cherry picked from commit d9ff7226613014056c9edd79a68dc5af939107a0)

Change-Id: If2573d080770e18b36b56106f2369f7bb682cd3c
2014-10-01 16:03:51 -07:00
Dmitriy Ivanov
61c4147fa8 Reset enviroment for math_tests
Bug: 17390824

(cherry picked from commit 7b956ede3f0f40bd8a085a8ad3729bb3e0e030f2)

Change-Id: I5d804ceb5e69533584161bfed6787529cd8296fb
2014-10-01 16:03:40 -07:00
Dmitriy Ivanov
ae69a9584b Load libraries in breadth-first order
This patch fixes the problem with symbol search order
  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
  and ld_preloads in correct order.

Bug: https://code.google.com/p/android/issues/detail?id=74255
Attempt: 2

(cherry picked from commit 14669a939d113214a4a20b9318fca0992d5453f0)

Change-Id: Id87540c96a2242220967b6fa5d84ddcd829e2b97
2014-10-01 16:01:28 -07:00
Dmitriy Ivanov
c0133a73b6 Revert "Load libraries in breadth-first order"
This reverts commit a3ad450a2e3fb6b3fe359683b247eba20896f646.

(cherry picked from commit 498eb18b82a425f9f30132e4832f327b2ee0e545)

Change-Id: Iec7eab83d0c0ed1604e1e8ea3f9e9d0ce1d29680
2014-10-01 16:00:52 -07:00
Dmitriy Ivanov
8de1ddece0 Fix order of soinfo links (repairs libcxx tests).
(cherry picked from commit b2a30ee8d209154efc367db11b4167a5d6db605f)

Change-Id: I59c5333bc050cbbea14051cea9220be2f64ee383
2014-10-01 16:00:41 -07:00
Dmitriy Ivanov
59c12a6527 Load libraries in breadth-first order
This patch fixes the problem with symbol search order
  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
  and ld_preloads in correct order.

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

(cherry picked from commit a3ad450a2e3fb6b3fe359683b247eba20896f646)

Change-Id: I1125de10272c84e4f075cbc72859c1f6b3e89943
2014-10-01 16:00:29 -07:00
Chih-Hung Hsieh
81fe2b16dc Enable clang compilation with libc but not linker.
Clang is still disabled for x86 and x86_64 long double code,
for x86_64 special assembly instruction, and the linker module.

BUG: 17163651
BUG: 17302991
BUG: 17403674

(cherry picked from commit b58db8b083ce41798a5310616e4f20885cec611f)

Change-Id: I916c05056d37a9c287b0a5ae3b1a209d98c8f70e
2014-10-01 15:57:09 -07:00
Dmitriy Ivanov
7210c41fdc Encapsulate soinfo_link_image and soinfo_relocate
Also get rid of needed[] array for these functions

(cherry picked from commit 29bbc9dd4c606de9187e46d8899a2a744715c967)

Change-Id: Id208621f66afa2e02a6b3facacee7d874466d81b
2014-10-01 15:56:44 -07:00
Dmitriy Ivanov
4466bd72fb Implement LinkedList::visit()
(cherry picked from commit a4926058496c1c24c00ac07e42d45048dac7c487)

Change-Id: I59554be45c910bfe33494016595a5ade9daad230
2014-10-01 15:56:23 -07:00
Dmitriy Ivanov
ff01f6fcce Introduce size-based r/w allocators
(cherry picked from commit 0cd83ebb0e9784827d9ec0a8028a710e73a28b2b)

Change-Id: Ib037bd5313c9a78b6051482f14e789aa820b4dd1
2014-10-01 15:55:58 -07:00
Dmitriy Ivanov
4d01d08c29 Erase elements in LinkedList::remove_if
(cherry picked from commit 4bea498544bb1377f610520d7f58856382a6e5fc)

Change-Id: I1ffe248bc2b7572f38fbd987e9c6db5ecbd4559d
2014-10-01 15:55:35 -07:00
Dmitriy Ivanov
cfad7ae934 Replace NULL with nullptr
(cherry picked from commit 851135bf9941b3813adb9b4f43d76e040c4ba157)

Change-Id: Ic4997907680db7472ef38ffb0f0ca66fff37b797
2014-10-01 15:54:26 -07:00
Dmitriy Ivanov
5dfe802d0d Remove unnecessary calls to LinkedList::clear()
(cherry picked from commit 608217e1674d8fd8b334fe18c753b6c4638ed783)

Change-Id: I031359d79b2e77977ace197ef410e41539dc0ce6
2014-10-01 15:53:07 -07:00
Dmitriy Ivanov
93c3f4203c Enable __cxa_atexit && __cxa_finalize for linker
This allows adding destructors to classes used
 for global variables.

(cherry picked from commit 14241402de0faa4b244b1bd6b1f0799ce169b880)

Change-Id: I1d8776130d1e01a8c53d23a2949f5010f4c96b16
2014-10-01 15:52:38 -07:00
Dmitriy Ivanov
3bbd218ef1 Bump soinfo version
This includes:
 1. Placing has_ifunc after fields with version = 0
 2. Switch to has_min_version(v) function.
 3. Minor soinfo initialization refactoring (placement new + ctor)

(cherry picked from commit 0d15094287fe0f288d9c258953143fc1998b6b5a)

Change-Id: Idf135fdd3d4826b5653f32add2adc6db5d4a4f95
2014-10-01 15:52:15 -07:00
Dmitriy Ivanov
bd321c1106 Run constructors before resolving ifunc functions
Bug: 17177284

(cherry picked from commit 9598b8c415e2fa9f240508185fe8c964b83f538d)

Change-Id: I2c9631ee1cd77f8cf95ec0216a35b605c8786454
2014-10-01 15:51:47 -07:00
Brigid Smith
31b88da843 Added test for ifunc support in dynamic linker.
ifuncs now work in i386 and x86_64 when called in the same library as
well as in a different library.

Bug:6657325
(cherry picked from commit c5a13efa9bc4264be0a9a9e37c00633af01584ed)

Change-Id: I321d780bc2f9bd1baa749e1acacd2683aefe827b
2014-10-01 15:50:38 -07:00
Hans Boehm
b24442611c am 4aa38919: am 2d111d9e: Merge "Make memory_order_acquire visible in global namespace"
* commit '4aa389193e79d98754f928f9a3624c6c3fffe2ca':
  Make memory_order_acquire visible in global namespace
2014-10-01 19:27:12 +00:00
Hans Boehm
f26a55e13a am 2d111d9e: Merge "Make memory_order_acquire visible in global namespace"
* commit '2d111d9eb10b6c48e2e47251be66b418a6109dd9':
  Make memory_order_acquire visible in global namespace
2014-10-01 19:23:05 +00:00
Hans Boehm
4aa389193e am 2d111d9e: Merge "Make memory_order_acquire visible in global namespace"
* commit '2d111d9eb10b6c48e2e47251be66b418a6109dd9':
  Make memory_order_acquire visible in global namespace
2014-10-01 19:23:03 +00:00
Hans Boehm
2d111d9eb1 Merge "Make memory_order_acquire visible in global namespace" 2014-10-01 19:16:50 +00:00
Christopher Ferris
3d5f6c4997 am 7239135e: am b19bd93f: Merge "Add stpcpy assembler version."
* commit '7239135eb4d651140a40cd4549b8d9e1101a0c20':
  Add stpcpy assembler version.
2014-10-01 18:29:10 +00:00
Christopher Ferris
7239135eb4 am b19bd93f: Merge "Add stpcpy assembler version."
* commit 'b19bd93f8b83307f2f7530545f7c78824914f4eb':
  Add stpcpy assembler version.
2014-10-01 18:24:26 +00:00
Christopher Ferris
3a25cdfd33 am b19bd93f: Merge "Add stpcpy assembler version."
* commit 'b19bd93f8b83307f2f7530545f7c78824914f4eb':
  Add stpcpy assembler version.
2014-10-01 18:24:16 +00:00
Christopher Ferris
b19bd93f8b Merge "Add stpcpy assembler version." 2014-10-01 18:16:14 +00:00
Dmitriy Ivanov
1b20dafdbe Add RTLD_NODELETE flag support
Bug: https://code.google.com/p/android/issues/detail?id=64069
Change-Id: Ie5f90482feae86391172be4b32d6cb7d76f446fb
2014-10-01 11:09:37 -07:00
Elliott Hughes
e4f8962ab5 Merge "Update bionic to tzdata 2014h." into lmp-mr1-dev 2014-10-01 18:02:51 +00:00
Elliott Hughes
e24825bc9c am 600ab1ca: am cadccfd7: Merge "Update bionic to tzdata 2014h."
* commit '600ab1ca01bbd302e122ae66b79c70d20e1d7621':
  Update bionic to tzdata 2014h.
2014-10-01 17:42:53 +00:00
Elliott Hughes
67cd68a321 am 0d1fa6f2: am 89fd3236: Merge "Fix update-tzdata.py to rebuild icu4c .dat file."
* commit '0d1fa6f29bd60ea08791b8c7f4e9c2fe5728706c':
  Fix update-tzdata.py to rebuild icu4c .dat file.
2014-10-01 17:42:52 +00:00
Elliott Hughes
600ab1ca01 am cadccfd7: Merge "Update bionic to tzdata 2014h."
* commit 'cadccfd70821aeb107b8fc0084da04faecbfde2f':
  Update bionic to tzdata 2014h.
2014-10-01 17:38:45 +00:00
Elliott Hughes
0d1fa6f29b am 89fd3236: Merge "Fix update-tzdata.py to rebuild icu4c .dat file."
* commit '89fd32362bb62775aad001802bc79e3f07d7d62f':
  Fix update-tzdata.py to rebuild icu4c .dat file.
2014-10-01 17:38:44 +00:00
Elliott Hughes
1f84254edb am cadccfd7: Merge "Update bionic to tzdata 2014h."
* commit 'cadccfd70821aeb107b8fc0084da04faecbfde2f':
  Update bionic to tzdata 2014h.
2014-10-01 17:35:56 +00:00
Elliott Hughes
44ba5935e9 am 89fd3236: Merge "Fix update-tzdata.py to rebuild icu4c .dat file."
* commit '89fd32362bb62775aad001802bc79e3f07d7d62f':
  Fix update-tzdata.py to rebuild icu4c .dat file.
2014-10-01 17:35:55 +00:00
Elliott Hughes
d18205049d Update bionic to tzdata 2014h.
From the release notes:

  Changes affecting past time stamps

    America/Jamaica's 1974 spring-forward transition was Jan. 6, not Apr. 28.

    Shanks says Asia/Novokuznetsk switched from LMT (not "NMT") on 1924-05-01,
    not 1920-01-06.  The old entry was based on a misinterpretation of Shanks.

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Africa/Blantyre, Africa/Bujumbura,
    Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi,
    Africa/Lusaka, Africa/Maseru, and Africa/Mbabane.

Bug: 17731498

(cherry picked from commit 0c8fb51e6b8cfcd00d453cb5ebfa516f02009854)

Change-Id: Icf8a9cbd309951b4ffc20c74eb1e78c1e39c222f
2014-10-01 10:21:07 -07:00
Elliott Hughes
cadccfd708 Merge "Update bionic to tzdata 2014h." 2014-10-01 17:20:34 +00:00
Elliott Hughes
b5f5b0e418 Fix update-tzdata.py to rebuild icu4c .dat file.
Bug: 17731498

(cherry picked from commit f8896c6c93fd698b129742780878123a3a19ae07)

Change-Id: If97e1ccf593a2ed6c2356077e660d6fd88a05875
2014-10-01 10:07:24 -07:00
Elliott Hughes
89fd32362b Merge "Fix update-tzdata.py to rebuild icu4c .dat file." 2014-10-01 17:00:23 +00:00
Christopher Ferris
7d849ac378 Add stpcpy assembler version.
For generic, continue to use the C version of the code.

Bug: 13746695
Change-Id: I77426a70b06131f2373bb51265bea1240bb3f101
2014-09-30 19:23:26 -07:00
Dan Albert
27d1976f0c am 3c113851: am 81156d93: Merge "Add coverage flag for libm."
* commit '3c1138510e6e8e0b9c87cc5cf45a7a8780aaf961':
  Add coverage flag for libm.
2014-10-01 02:12:33 +00:00
Dan Albert
92df938168 am 81156d93: Merge "Add coverage flag for libm."
* commit '81156d93c557e88379dd3e9d869dcc97a15293f5':
  Add coverage flag for libm.
2014-10-01 01:38:35 +00:00
Dan Albert
3c1138510e am 81156d93: Merge "Add coverage flag for libm."
* commit '81156d93c557e88379dd3e9d869dcc97a15293f5':
  Add coverage flag for libm.
2014-10-01 01:38:13 +00:00
Hans Boehm
76ac4d0853 Make memory_order_acquire visible in global namespace
We were missing that using directive when including <atomic>.

Bug:17736764
Change-Id: Ie8ca92a952749415567bcd5fa21d56629a364660
2014-09-30 18:35:04 -07:00
Dan Albert
81156d93c5 Merge "Add coverage flag for libm." 2014-10-01 01:28:25 +00:00
Elliott Hughes
0c8fb51e6b Update bionic to tzdata 2014h.
From the release notes:

  Changes affecting past time stamps

    America/Jamaica's 1974 spring-forward transition was Jan. 6, not Apr. 28.

    Shanks says Asia/Novokuznetsk switched from LMT (not "NMT") on 1924-05-01,
    not 1920-01-06.  The old entry was based on a misinterpretation of Shanks.

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Africa/Blantyre, Africa/Bujumbura,
    Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi,
    Africa/Lusaka, Africa/Maseru, and Africa/Mbabane.

Bug: 17731498
Change-Id: If65b740d4e3a67075cca770655a1df17952c3da0
2014-09-30 17:35:38 -07:00
Elliott Hughes
f8896c6c93 Fix update-tzdata.py to rebuild icu4c .dat file.
Bug: 17731498
Change-Id: I4c810507c0ca9883dde1bece14530db80485b8f6
2014-09-30 17:30:01 -07:00
Elliott Hughes
420b580cdc am 31052a12: am 252c1ac9: Merge "Update our FreeBSD realpath(3) to upstream head."
* commit '31052a12eb8c339364cd383c5a99997c02436409':
  Update our FreeBSD realpath(3) to upstream head.
2014-10-01 00:08:06 +00:00
Elliott Hughes
d0fb0873f5 am 252c1ac9: Merge "Update our FreeBSD realpath(3) to upstream head."
* commit '252c1ac9738ff6187354f243ef118eac962b65dc':
  Update our FreeBSD realpath(3) to upstream head.
2014-10-01 00:05:58 +00:00
Elliott Hughes
31052a12eb am 252c1ac9: Merge "Update our FreeBSD realpath(3) to upstream head."
* commit '252c1ac9738ff6187354f243ef118eac962b65dc':
  Update our FreeBSD realpath(3) to upstream head.
2014-10-01 00:05:10 +00:00
Dmitriy Ivanov
fe1cfb1e09 am 701cf941: Merge "Fix mips build"
* commit '701cf9419b4df92bd959bbc6f18150f6ae76df7c':
  Fix mips build
2014-09-30 23:57:33 +00:00
Dan Albert
090b25e8a9 am e04aa450: Merge "Clean up the pthread key tests."
* commit 'e04aa450c2b51ea066d1a1c37978cce808d13872':
  Clean up the pthread key tests.
2014-09-30 23:57:33 +00:00
Dan Albert
12e3f22c7c Add coverage flag for libm.
Change-Id: I195d38c5e1f50d1cc6d4353dc8857f11b803b7a3
2014-09-30 16:56:43 -07:00
Elliott Hughes
252c1ac973 Merge "Update our FreeBSD realpath(3) to upstream head." 2014-09-30 23:55:57 +00:00
Dmitriy Ivanov
ad93ccb2a6 am 18ab39b7: am 701cf941: Merge "Fix mips build"
* commit '18ab39b79a4b1df8af1820688196379b5e670018':
  Fix mips build
2014-09-30 23:55:22 +00:00
Dan Albert
af2f7d2db8 am 63de1998: am e04aa450: Merge "Clean up the pthread key tests."
* commit '63de199882ac6a34897f5e6f42387a14b234d975':
  Clean up the pthread key tests.
2014-09-30 23:55:21 +00:00
Dmitriy Ivanov
c1429de2eb am 1f7d5ac5: Merge "Fix unused DT entry warnings."
* commit '1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3':
  Fix unused DT entry warnings.
2014-09-30 23:52:10 +00:00
Dan Albert
483319a776 am 0481471b: Merge "Switch benchmarks and tests to libc++."
* commit '0481471b1bb95a90f632a9fb59c7a1767b9836c8':
  Switch benchmarks and tests to libc++.
2014-09-30 23:51:26 +00:00
Dan Albert
c014e66a86 am e49491ad: Merge "Ignore multiple symbol definition errors."
* commit 'e49491ada4c8e7827329b56a93e5377433aa9084':
  Ignore multiple symbol definition errors.
2014-09-30 23:51:25 +00:00
Dmitriy Ivanov
18ab39b79a am 701cf941: Merge "Fix mips build"
* commit '701cf9419b4df92bd959bbc6f18150f6ae76df7c':
  Fix mips build
2014-09-30 23:51:07 +00:00
Dan Albert
63de199882 am e04aa450: Merge "Clean up the pthread key tests."
* commit 'e04aa450c2b51ea066d1a1c37978cce808d13872':
  Clean up the pthread key tests.
2014-09-30 23:51:07 +00:00
Dmitriy Ivanov
701cf9419b Merge "Fix mips build" 2014-09-30 23:42:24 +00:00
Dan Albert
e04aa450c2 Merge "Clean up the pthread key tests." 2014-09-30 23:41:06 +00:00
Elliott Hughes
31e072fc9b Update our FreeBSD realpath(3) to upstream head.
Change-Id: I8c89728184ecd2c1a28a05cefa84a5037d28b552
2014-09-30 16:40:41 -07:00
Dmitriy Ivanov
ecf532fa1c Fix mips build
Change-Id: I4454e69a982f239b168678c5a681d1078b4bd4f1
2014-09-30 16:30:22 -07:00
Dan Albert
c4bcc75f09 Clean up the pthread key tests.
The previous pthread_key_create_many test was really
pthread_key_create_all, which has proven very difficult to test
correctly (because it is affected by any other parts of the system using
pthread keys, and that can vary with test ordering). It also tested
expected values of PTHREAD_KEYS_MAX and the associated sysconf() value,
rather than those being in their own test.

Instead, split this test into a few distinct tests:

 * pthread.pthread_keys_max
 * pthread._SC_THREAD_KEYS_MAX_big_enough_for_POSIX
 * pthread.pthread_key_many_distinct
     * We actually didn't have a test to ensure that the keys we were
       creating were distinct.
 * pthread.pthread_key_EAGAIN
     * Make sure pthread_key_create() will _eventually_ fail with
       EAGAIN, not at a (sometimes incorrectly) predetermined maximum.

Change-Id: Iff1e4fdcc02404094bde0418122c64c227cf1702
2014-09-30 15:40:14 -07:00
Dmitriy Ivanov
addec2929d am 3e05ac0f: am 1f7d5ac5: Merge "Fix unused DT entry warnings."
* commit '3e05ac0ffe333bade13e4961aa4cc0e445f08536':
  Fix unused DT entry warnings.
2014-09-30 22:30:11 +00:00
Dmitriy Ivanov
3e05ac0ffe am 1f7d5ac5: Merge "Fix unused DT entry warnings."
* commit '1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3':
  Fix unused DT entry warnings.
2014-09-30 22:26:16 +00:00
Dmitriy Ivanov
1f7d5ac538 Merge "Fix unused DT entry warnings." 2014-09-30 22:14:33 +00:00
Dmitriy Ivanov
6cdeb5234d Fix unused DT entry warnings.
DT_STRSZ Implement strtab boundary checks
 DT_FLAGS_1 Warn if flags other than DF_1_NOW|DF_1_GLOBAL are set

Bug: 17552334
Change-Id: Iaad29cd52f5b2d7d2f785fb351697906dc1617d9
2014-09-30 14:41:29 -07:00
Dan Albert
b0dfdec557 am 9d9b7d7e: am 0481471b: Merge "Switch benchmarks and tests to libc++."
* commit '9d9b7d7e7c55cdc7f10a2882e16b864673a3f7e7':
  Switch benchmarks and tests to libc++.
2014-09-30 17:44:13 +00:00
Dan Albert
75894fc9f1 am 0b5f8c7a: am e49491ad: Merge "Ignore multiple symbol definition errors."
* commit '0b5f8c7a7d82bdaf0a8030f3be6561c0e67e0378':
  Ignore multiple symbol definition errors.
2014-09-30 17:44:13 +00:00
Dan Albert
9d9b7d7e7c am 0481471b: Merge "Switch benchmarks and tests to libc++."
* commit '0481471b1bb95a90f632a9fb59c7a1767b9836c8':
  Switch benchmarks and tests to libc++.
2014-09-30 17:39:04 +00:00
Dan Albert
0b5f8c7a7d am e49491ad: Merge "Ignore multiple symbol definition errors."
* commit 'e49491ada4c8e7827329b56a93e5377433aa9084':
  Ignore multiple symbol definition errors.
2014-09-30 17:39:04 +00:00
Dan Albert
0481471b1b Merge "Switch benchmarks and tests to libc++." 2014-09-30 17:30:57 +00:00
Dan Albert
e49491ada4 Merge "Ignore multiple symbol definition errors." 2014-09-30 17:30:52 +00:00
Dan Albert
3a5aeba4bd Switch benchmarks and tests to libc++.
Change-Id: I3b9c8f8c14a1e227e67ae1977cc29b0e8fccef5d
2014-09-30 10:28:30 -07:00
Dan Albert
d9898c5b82 Ignore multiple symbol definition errors.
libc and libc++ both define std::nothrow. libc's is a private symbol,
but this still causes issues when linking libc.a and libc++.a, since
private isn't effective until it has been linked. To fix this, just
allow multiple symbol definitions for the static tests.

Change-Id: Idbf19fefda47298c39360e3f5b6242b0b1a52fcc
2014-09-30 10:28:30 -07:00
Dmitriy Ivanov
64da5c186d am d1d4e153: am 9997daa0: Merge "Return has_DT_SYMBOLIC flag."
* commit 'd1d4e153e8adb29048b9bf79a41027b49294a47c':
  Return has_DT_SYMBOLIC flag.
2014-09-30 16:56:09 +00:00
Dmitriy Ivanov
d1d4e153e8 am 9997daa0: Merge "Return has_DT_SYMBOLIC flag."
* commit '9997daa0ff8f630bee5d3b8eb0ab15a0ba1e5cf6':
  Return has_DT_SYMBOLIC flag.
2014-09-30 16:50:04 +00:00
Dmitriy Ivanov
02be1b2283 am 9997daa0: Merge "Return has_DT_SYMBOLIC flag."
* commit '9997daa0ff8f630bee5d3b8eb0ab15a0ba1e5cf6':
  Return has_DT_SYMBOLIC flag.
2014-09-30 16:49:46 +00:00
Dmitriy Ivanov
9997daa0ff Merge "Return has_DT_SYMBOLIC flag." 2014-09-30 16:40:27 +00:00
Andrew Hsieh
47f97dedd0 am ccf9a9d4: am b104be32: Merge "Remove arch-mips64/bionic/__get_sp.S"
* commit 'ccf9a9d4498f0bd6d5e16d14741b9d776f5737ab':
  Remove arch-mips64/bionic/__get_sp.S
2014-09-30 06:30:09 +00:00
Christopher Ferris
8211790e3f am 2ef71b1d: am 85a932c0: Merge "Cleanup arm assembly."
* commit '2ef71b1d09afe2557aeafa8d6e230c4161efd3f5':
  Cleanup arm assembly.
2014-09-30 06:30:08 +00:00
Andrew Hsieh
ccf9a9d449 am b104be32: Merge "Remove arch-mips64/bionic/__get_sp.S"
* commit 'b104be321f2538a6e0bbd566bc958537d1f65cef':
  Remove arch-mips64/bionic/__get_sp.S
2014-09-30 06:03:31 +00:00
Christopher Ferris
2ef71b1d09 am 85a932c0: Merge "Cleanup arm assembly."
* commit '85a932c0c9225e0f71d94a0d8cbac85089a398cf':
  Cleanup arm assembly.
2014-09-30 06:03:31 +00:00
Andrew Hsieh
98630f6cb7 am b104be32: Merge "Remove arch-mips64/bionic/__get_sp.S"
* commit 'b104be321f2538a6e0bbd566bc958537d1f65cef':
  Remove arch-mips64/bionic/__get_sp.S
2014-09-30 04:17:06 +00:00
Christopher Ferris
7de591d19b am 85a932c0: Merge "Cleanup arm assembly."
* commit '85a932c0c9225e0f71d94a0d8cbac85089a398cf':
  Cleanup arm assembly.
2014-09-30 04:17:05 +00:00
Andrew Hsieh
b104be321f Merge "Remove arch-mips64/bionic/__get_sp.S" 2014-09-30 00:01:02 +00:00
Andrew Hsieh
b0c0037370 Remove arch-mips64/bionic/__get_sp.S
__get_sp.S doesn't exist

Change-Id: Id84f8904c8022c683263a317a18fabeb50fed992
2014-09-30 07:55:32 +08:00
Christopher Ferris
85a932c0c9 Merge "Cleanup arm assembly." 2014-09-29 23:12:39 +00:00
Christopher Ferris
c8bd2abab2 Cleanup arm assembly.
Remove the old arm directives.
Change the non-local labels to .L labels.
Add cfi directives to strcpy.S.

Change-Id: I9bafee1ffe5d85c92d07cfa8a85338cef9759562
2014-09-29 15:53:10 -07:00
Dan Albert
a0489c0093 am 22b9dec9: am 73e6c9b3: Merge "Static libc++ is being renamed libc++_static."
* commit '22b9dec925a219e6cdada2fbfcbd3a7c72f4fbdc':
  Static libc++ is being renamed libc++_static.
2014-09-29 21:02:32 +00:00
Dan Albert
6251d58e66 am 73e6c9b3: Merge "Static libc++ is being renamed libc++_static."
* commit '73e6c9b39353807aae80170355ec0b67b7a4ce16':
  Static libc++ is being renamed libc++_static.
2014-09-29 20:55:46 +00:00
Dan Albert
22b9dec925 am 73e6c9b3: Merge "Static libc++ is being renamed libc++_static."
* commit '73e6c9b39353807aae80170355ec0b67b7a4ce16':
  Static libc++ is being renamed libc++_static.
2014-09-29 20:55:26 +00:00
Dan Albert
d288a657dd am b3995bff: am 7ca5c4b9: Merge "Make __aeabi_*() symbols weak."
* commit 'b3995bff21c3e1f592dfbb29eb47cbe0e15a53b0':
  Make __aeabi_*() symbols weak.
2014-09-29 19:44:59 +00:00
Dan Albert
c4dd2d05a6 am 68017e28: am 98ab0c52: Merge "Add a dummy libdl.a."
* commit '68017e2875262c8d434dfcb41c15d727a06bc04f':
  Add a dummy libdl.a.
2014-09-29 19:44:59 +00:00
Elliott Hughes
5991f0f1a8 am 3db6ed61: am d644fecc: Merge "Fix gdb could not get shared library list issue"
* commit '3db6ed61eb328a9b4805ab4a736027440a529ad5':
  Fix gdb could not get shared library list issue
2014-09-29 19:44:46 +00:00
Dmitriy Ivanov
96bc37f2e1 Return has_DT_SYMBOLIC flag.
This reverts commit 8f61d991831f0ea515fa50a5c38dbbcfbab0dd28

 Despite the fact that static linker does all the work while linking
 -Bsymbolic executables, according to the SCO doc following DT_SYMBOLIC
 and DF_SYMBOLIC flags is still a requirement for the dynamic linker
 as well.

 (see http://www.sco.com/developers/gabi/2012-12-31/ch5.dynamic.html)

Change-Id: I23f6a5e9b662e40cdbc462b64feff912431e800c
2014-09-29 12:10:36 -07:00
Dan Albert
73e6c9b393 Merge "Static libc++ is being renamed libc++_static." 2014-09-29 16:08:35 +00:00
Christopher Ferris
429479e5e1 am 0fc3711b: am aa66e882: Merge "Add __memcpy_chk assembly for 64 bit."
* commit '0fc3711b22f4819c5d346fe7507e8800e2a64b09':
  Add __memcpy_chk assembly for 64 bit.
2014-09-29 13:14:06 +00:00
Dan Albert
188d093993 Static libc++ is being renamed libc++_static.
Change-Id: I1596110e4ed7e8f9ab9e2605dfcd9fd0489ca0d1
2014-09-27 09:22:07 -07:00
Dan Albert
b3995bff21 am 7ca5c4b9: Merge "Make __aeabi_*() symbols weak."
* commit '7ca5c4b99b308550e34e185ed632b8a5ad5341ee':
  Make __aeabi_*() symbols weak.
2014-09-27 00:30:06 +00:00
Dan Albert
68017e2875 am 98ab0c52: Merge "Add a dummy libdl.a."
* commit '98ab0c52f5672540c442611d838011be9252079b':
  Add a dummy libdl.a.
2014-09-27 00:30:05 +00:00
Dan Albert
5eb62b3919 am 7ca5c4b9: Merge "Make __aeabi_*() symbols weak."
* commit '7ca5c4b99b308550e34e185ed632b8a5ad5341ee':
  Make __aeabi_*() symbols weak.
2014-09-27 00:29:49 +00:00
Dan Albert
e39c9f87e0 am 98ab0c52: Merge "Add a dummy libdl.a."
* commit '98ab0c52f5672540c442611d838011be9252079b':
  Add a dummy libdl.a.
2014-09-27 00:29:48 +00:00
Dan Albert
7ca5c4b99b Merge "Make __aeabi_*() symbols weak." 2014-09-27 00:19:14 +00:00
Dan Albert
98ab0c52f5 Merge "Add a dummy libdl.a." 2014-09-27 00:19:05 +00:00
Elliott Hughes
f799da9f17 am d644fecc: Merge "Fix gdb could not get shared library list issue"
* commit 'd644fecc8e5eec0107ca4e2011cee0e5c0a10bdd':
  Fix gdb could not get shared library list issue
2014-09-26 23:10:41 +00:00
Elliott Hughes
3db6ed61eb am d644fecc: Merge "Fix gdb could not get shared library list issue"
* commit 'd644fecc8e5eec0107ca4e2011cee0e5c0a10bdd':
  Fix gdb could not get shared library list issue
2014-09-26 23:09:52 +00:00
Elliott Hughes
d644fecc8e Merge "Fix gdb could not get shared library list issue" 2014-09-26 23:01:00 +00:00
Ningsheng Jian
e93be99da0 Fix gdb could not get shared library list issue
Get dynamic flags from phdr table's correct entry rather the first
entry, so that the following DT_DEBUG entry can be set.

Also fix the undefined reference to LoadTask::deleter issue under gcc
-O0 option.

Bug: 17524778
Change-Id: I9c679af197b034761fb739d6c980e628ff2ab84c
2014-09-26 22:58:57 +00:00
Dan Albert
690211fcf8 Make __aeabi_*() symbols weak.
This is needed to avoid multiple symbol definitions when linking with
libstdc++ or with compiler-rt.

Change-Id: I2f713bcff113222f0d2538e49691e715d8a8475d
2014-09-26 15:36:14 -07:00
Dan Albert
a4ed64d4c3 Add a dummy libdl.a.
Change-Id: I4b30b8875f14352bae2948ab8cf544ae818795ab
2014-09-26 15:23:07 -07:00
Christopher Ferris
0fc3711b22 am aa66e882: Merge "Add __memcpy_chk assembly for 64 bit."
* commit 'aa66e8828048d8d6fd7e4bb9c5e341ed89614266':
  Add __memcpy_chk assembly for 64 bit.
2014-09-26 21:04:56 +00:00
Christopher Ferris
1d8b9213a9 am aa66e882: Merge "Add __memcpy_chk assembly for 64 bit."
* commit 'aa66e8828048d8d6fd7e4bb9c5e341ed89614266':
  Add __memcpy_chk assembly for 64 bit.
2014-09-26 21:04:41 +00:00
Christopher Ferris
aa66e88280 Merge "Add __memcpy_chk assembly for 64 bit." 2014-09-26 20:39:21 +00:00
Christopher Ferris
8cf61dab5f Add __memcpy_chk assembly for 64 bit.
Bug: 17623887
Change-Id: I443723bc941b40f84884b330d222baabee01f868
2014-09-26 12:47:04 -07:00
Elliott Hughes
6be4e2c648 am 0d7599e0: am aaad5485: Merge "Re-expose more stdio implementation details for LP32." into lmp-dev
* commit '0d7599e0b58a6916eeb1d2b62e5cc33fd8da1b3a':
  Re-expose more stdio implementation details for LP32.
2014-09-26 15:24:41 +00:00
Christopher Ferris
d518b91cde am 860f51d7: am 6c69afdb: Fix sys_stat.mkfifo when not run as root.
* commit '860f51d7f2efde058716376fcacc2746a9041c41':
  Fix sys_stat.mkfifo when not run as root.
2014-09-26 15:24:41 +00:00
Elliott Hughes
0d7599e0b5 am aaad5485: Merge "Re-expose more stdio implementation details for LP32." into lmp-dev
* commit 'aaad548535c34e2bba16b2a0b71173e0ae4b16c0':
  Re-expose more stdio implementation details for LP32.
2014-09-26 00:22:27 +00:00
Christopher Ferris
860f51d7f2 am 6c69afdb: Fix sys_stat.mkfifo when not run as root.
* commit '6c69afdb6ddd56e011b59e3060f12a5bdffb5f5c':
  Fix sys_stat.mkfifo when not run as root.
2014-09-26 00:22:26 +00:00
Dan Albert
b812af0557 am 775c852e: am 852d4fbb: Merge "Prevent benchmarks from being optimized away."
* commit '775c852e14554689b957996acf7da17b8afbb34a':
  Prevent benchmarks from being optimized away.
2014-09-25 23:26:16 +00:00
Dan Albert
775c852e14 am 852d4fbb: Merge "Prevent benchmarks from being optimized away."
* commit '852d4fbbe9ddee0261c6b3dcadcd75185157ed46':
  Prevent benchmarks from being optimized away.
2014-09-25 23:14:43 +00:00
Dan Albert
4247fbd6f9 am 852d4fbb: Merge "Prevent benchmarks from being optimized away."
* commit '852d4fbbe9ddee0261c6b3dcadcd75185157ed46':
  Prevent benchmarks from being optimized away.
2014-09-25 23:14:39 +00:00
Dan Albert
852d4fbbe9 Merge "Prevent benchmarks from being optimized away." 2014-09-25 22:52:53 +00:00
Dan Albert
055a59c3ed Prevent benchmarks from being optimized away.
Change-Id: I2d27b39ecdfc50e78098314567c295a2f113f8d3
2014-09-25 15:43:48 -07:00
Elliott Hughes
a3ab14c054 am 184fd813: am 17e7d320: Merge "Re-expose more stdio implementation details for LP32."
* commit '184fd8135c193be8a5d0b51e20fe5b86374913f1':
  Re-expose more stdio implementation details for LP32.
2014-09-25 03:42:05 +00:00
Elliott Hughes
184fd8135c am 17e7d320: Merge "Re-expose more stdio implementation details for LP32."
* commit '17e7d3208c68ff69819179d8a63ca234be2d1ab9':
  Re-expose more stdio implementation details for LP32.
2014-09-25 03:31:24 +00:00
Elliott Hughes
94503a1578 am 17e7d320: Merge "Re-expose more stdio implementation details for LP32."
* commit '17e7d3208c68ff69819179d8a63ca234be2d1ab9':
  Re-expose more stdio implementation details for LP32.
2014-09-25 03:31:19 +00:00
Elliott Hughes
e74a9d0b35 am aaad5485: Merge "Re-expose more stdio implementation details for LP32." into lmp-dev
* commit 'aaad548535c34e2bba16b2a0b71173e0ae4b16c0':
  Re-expose more stdio implementation details for LP32.
2014-09-25 03:13:56 +00:00
Elliott Hughes
17e7d3208c Merge "Re-expose more stdio implementation details for LP32." 2014-09-25 03:08:23 +00:00
Elliott Hughes
abefc93ff3 Re-expose more stdio implementation details for LP32.
Keeps a variety of apps running.

(cherry-pick of 5def2f5aecd968e4022b0afbe4441fa7ba3e7c7e.)

Bug: 17047819
Change-Id: I55882ec95f2b59a5df76e5a89c23aa315609e01d
2014-09-24 20:07:10 -07:00
Christopher Ferris
7a941b86e1 am 17c23691: am a864e72b: Merge "Fix sys_stat.mkfifo when not run as root."
* commit '17c236912ba89dfba11887b7e73bf31e0780f6df':
  Fix sys_stat.mkfifo when not run as root.
2014-09-25 00:27:51 +00:00
Christopher Ferris
10c951bf38 am a864e72b: Merge "Fix sys_stat.mkfifo when not run as root."
* commit 'a864e72b566234fdc41344725aa9b4f47c5baba3':
  Fix sys_stat.mkfifo when not run as root.
2014-09-25 00:17:22 +00:00
Christopher Ferris
17c236912b am a864e72b: Merge "Fix sys_stat.mkfifo when not run as root."
* commit 'a864e72b566234fdc41344725aa9b4f47c5baba3':
  Fix sys_stat.mkfifo when not run as root.
2014-09-25 00:17:18 +00:00
Christopher Ferris
a864e72b56 Merge "Fix sys_stat.mkfifo when not run as root." 2014-09-24 23:56:06 +00:00
Christopher Ferris
983de79b36 am 6c69afdb: Fix sys_stat.mkfifo when not run as root.
* commit '6c69afdb6ddd56e011b59e3060f12a5bdffb5f5c':
  Fix sys_stat.mkfifo when not run as root.
2014-09-24 23:55:08 +00:00
Christopher Ferris
528ad742c6 Fix sys_stat.mkfifo when not run as root.
It's not allowed for a shell user to create a fifo in /data/local/tmp.
Make the test do nothing if not run as root.

Bug: 17646702

(cherry picked from commit 6c69afdb6ddd56e011b59e3060f12a5bdffb5f5c)

Change-Id: Ia3a862ed4586413b7bb393557ab57e0a7141d888
2014-09-24 16:50:30 -07:00
Elliott Hughes
e5ffc54701 am a15cff61: am 567d3fcb: Merge "Switch to OpenBSD fopen/fclose."
* commit 'a15cff614f894933d00ec7256c9762ac76d64178':
  Switch to OpenBSD fopen/fclose.
2014-09-24 20:57:23 +00:00
Elliott Hughes
4d1d536fc4 am 4492dde6: am 4fcfd3a4: Merge "Sync with current upstream getopt_long.c."
* commit '4492dde63e1d1a22a5708906102284b1fb06e5dc':
  Sync with current upstream getopt_long.c.
2014-09-24 20:57:23 +00:00
Elliott Hughes
a15cff614f am 567d3fcb: Merge "Switch to OpenBSD fopen/fclose."
* commit '567d3fcb7ece287a84912183e91eff851fa48fc2':
  Switch to OpenBSD fopen/fclose.
2014-09-24 20:45:22 +00:00
Elliott Hughes
4492dde63e am 4fcfd3a4: Merge "Sync with current upstream getopt_long.c."
* commit '4fcfd3a474ae5a9e5095ca92a10a8aaa0a3dae5a':
  Sync with current upstream getopt_long.c.
2014-09-24 20:45:22 +00:00
Elliott Hughes
49471f3809 am 567d3fcb: Merge "Switch to OpenBSD fopen/fclose."
* commit '567d3fcb7ece287a84912183e91eff851fa48fc2':
  Switch to OpenBSD fopen/fclose.
2014-09-24 20:44:46 +00:00
Elliott Hughes
d98cac5fbb am 4fcfd3a4: Merge "Sync with current upstream getopt_long.c."
* commit '4fcfd3a474ae5a9e5095ca92a10a8aaa0a3dae5a':
  Sync with current upstream getopt_long.c.
2014-09-24 20:44:45 +00:00
Elliott Hughes
567d3fcb7e Merge "Switch to OpenBSD fopen/fclose." 2014-09-24 20:24:48 +00:00
Elliott Hughes
4fcfd3a474 Merge "Sync with current upstream getopt_long.c." 2014-09-24 20:24:19 +00:00
Elliott Hughes
af12924f67 Sync with current upstream getopt_long.c.
Change-Id: I269195aa581a688fd3eb99552d506b8f5f6a8395
2014-09-24 12:39:34 -07:00
Elliott Hughes
3da19dffb3 am def2d26a: am f05410ed: Merge "Sync with upstream findfp.c."
* commit 'def2d26a5dcb0436fe133c7dbd9008b01982083d':
  Sync with upstream findfp.c.
2014-09-24 18:22:27 +00:00
Elliott Hughes
5a69da8d7a Switch to OpenBSD fopen/fclose.
This means all our stdio implementation is now the OpenBSD implementation.
The only thing we lose is the STDIO_THREAD_LOCK calls but they were no-ops
anyway.

We should probably talk to upstream about this. Either fix the locking or,
preferably, encourage them to move away from this pooling (especially since
there's no eviction policy).

Bug: 17154680
Change-Id: Ie2523e444a7d0965b8d141d57e3e11f6432d5b9a
2014-09-24 11:14:36 -07:00
Elliott Hughes
def2d26a5d am f05410ed: Merge "Sync with upstream findfp.c."
* commit 'f05410edc634040f96643b8f378320faddfef423':
  Sync with upstream findfp.c.
2014-09-24 18:09:47 +00:00
Elliott Hughes
7a2a1a8b6c am f05410ed: Merge "Sync with upstream findfp.c."
* commit 'f05410edc634040f96643b8f378320faddfef423':
  Sync with upstream findfp.c.
2014-09-24 18:09:37 +00:00
Dan Albert
5023cbd146 am 9b73b6bf: am 21db6ff1: Merge "Coverage configs for bionic."
* commit '9b73b6bf6327ff94a2e26d0ab60709989a6751c7':
  Coverage configs for bionic.
2014-09-24 17:56:37 +00:00
Dan Albert
fff829d9cd am 13b50586: am 4a6e7110: Merge "Add a dummy atexit(3) to the linker."
* commit '13b50586da02270a93a1ab666c0290a2bbfa4289':
  Add a dummy atexit(3) to the linker.
2014-09-24 17:56:36 +00:00
Elliott Hughes
f05410edc6 Merge "Sync with upstream findfp.c." 2014-09-24 17:48:59 +00:00
Dan Albert
0d78bad579 am 21db6ff1: Merge "Coverage configs for bionic."
* commit '21db6ff108a8df43582bf2ca0d7d6c925f26b5e5':
  Coverage configs for bionic.
2014-09-24 17:45:54 +00:00
Dan Albert
8be25c646d am 4a6e7110: Merge "Add a dummy atexit(3) to the linker."
* commit '4a6e71100e9c99b90b517be5a8e1c21616772d16':
  Add a dummy atexit(3) to the linker.
2014-09-24 17:45:54 +00:00
Dan Albert
9b73b6bf63 am 21db6ff1: Merge "Coverage configs for bionic."
* commit '21db6ff108a8df43582bf2ca0d7d6c925f26b5e5':
  Coverage configs for bionic.
2014-09-24 17:45:24 +00:00
Dan Albert
13b50586da am 4a6e7110: Merge "Add a dummy atexit(3) to the linker."
* commit '4a6e71100e9c99b90b517be5a8e1c21616772d16':
  Add a dummy atexit(3) to the linker.
2014-09-24 17:45:23 +00:00
Elliott Hughes
c08c25b4c9 Sync with upstream findfp.c.
Change-Id: Ib298f46de0c4d0fd4ce0a9b456c163e8b8b06342
2014-09-24 10:32:30 -07:00
Dan Albert
56da92b213 am c3c75301: am 086bb382: Fix incorrect parameter types for locale funcs.
* commit 'c3c75301b1592a5a3c913a72e92da3bfd7b49ad1':
  Fix incorrect parameter types for locale funcs.
2014-09-24 17:31:54 +00:00
Dan Albert
21db6ff108 Merge "Coverage configs for bionic." 2014-09-24 17:28:04 +00:00
Dan Albert
4a6e71100e Merge "Add a dummy atexit(3) to the linker." 2014-09-24 17:27:38 +00:00
Dan Albert
c2d39088d8 Coverage configs for bionic.
Bug: 17553780
Change-Id: Iee7d0c210e2379e71e0c1e4e7058bce23f61e8cd
2014-09-24 10:26:41 -07:00
Dan Albert
9a05e3818a Add a dummy atexit(3) to the linker.
This is needed when building the linker against a libc that was built
with coverage information.

Bug: 17553780
Change-Id: If131002e067dd7768fc657c30e62c42a45c05ace
2014-09-24 10:26:41 -07:00
Dan Albert
c3c75301b1 am 086bb382: Fix incorrect parameter types for locale funcs.
* commit '086bb382db3de7459bc5fad6bb1c257ca331b0e8':
  Fix incorrect parameter types for locale funcs.
2014-09-24 17:24:11 +00:00
Dan Albert
22c07f16df am d51ca155: am fc5a93f7: Merge "Fix incorrect parameter types for locale funcs."
* commit 'd51ca1556753fed5f20cd09a8608d0ee1553e41c':
  Fix incorrect parameter types for locale funcs.
2014-09-24 17:18:35 +00:00
Elliott Hughes
9c12d60f3d am fe1e08f6: am ebf37e38: Merge "Switch to OpenBSD flags.c."
* commit 'fe1e08f61c1514757e66b2295a354816afb81816':
  Switch to OpenBSD flags.c.
2014-09-24 17:18:26 +00:00
Christopher Ferris
bd14d312f4 am 7eb3f742: am 04643c18: Merge "Remove the unnecessary generic-neon code."
* commit '7eb3f742b4ea9bc3d321b241be86e6828a28dc73':
  Remove the unnecessary generic-neon code.
2014-09-24 17:17:06 +00:00
Elliott Hughes
55078ef297 am 39e47991: am c57e5c82: Merge "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps."
* commit '39e479913c30d003cac0716bb27352fc191c7617':
  CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.
2014-09-24 17:16:59 +00:00
Dan Albert
81981b7301 am 086bb382: Fix incorrect parameter types for locale funcs.
* commit '086bb382db3de7459bc5fad6bb1c257ca331b0e8':
  Fix incorrect parameter types for locale funcs.
2014-09-24 16:52:32 +00:00
Dan Albert
b14a903421 am fc5a93f7: Merge "Fix incorrect parameter types for locale funcs."
* commit 'fc5a93f7a2ea2be740f2c909e8a6a192fa65adc8':
  Fix incorrect parameter types for locale funcs.
2014-09-24 16:13:50 +00:00
Dan Albert
d51ca15567 am fc5a93f7: Merge "Fix incorrect parameter types for locale funcs."
* commit 'fc5a93f7a2ea2be740f2c909e8a6a192fa65adc8':
  Fix incorrect parameter types for locale funcs.
2014-09-24 16:13:43 +00:00
Dan Albert
fc5a93f7a2 Merge "Fix incorrect parameter types for locale funcs." 2014-09-24 16:00:07 +00:00
Elliott Hughes
fe1e08f61c am ebf37e38: Merge "Switch to OpenBSD flags.c."
* commit 'ebf37e38861e376ae47c72d45ab8de6703dd18f0':
  Switch to OpenBSD flags.c.
2014-09-24 05:08:58 +00:00
Elliott Hughes
f6067fa2e0 am ebf37e38: Merge "Switch to OpenBSD flags.c."
* commit 'ebf37e38861e376ae47c72d45ab8de6703dd18f0':
  Switch to OpenBSD flags.c.
2014-09-24 05:08:23 +00:00
Elliott Hughes
ebf37e3886 Merge "Switch to OpenBSD flags.c." 2014-09-24 04:50:45 +00:00
Christopher Ferris
f5da2641c3 am 04643c18: Merge "Remove the unnecessary generic-neon code."
* commit '04643c181c3256348a6fd78e54c8bc5527ad0b0a':
  Remove the unnecessary generic-neon code.
2014-09-24 04:15:16 +00:00
Christopher Ferris
7eb3f742b4 am 04643c18: Merge "Remove the unnecessary generic-neon code."
* commit '04643c181c3256348a6fd78e54c8bc5527ad0b0a':
  Remove the unnecessary generic-neon code.
2014-09-24 04:15:10 +00:00
Christopher Ferris
04643c181c Merge "Remove the unnecessary generic-neon code." 2014-09-24 04:01:23 +00:00
Elliott Hughes
a71b4c3f14 Switch to OpenBSD flags.c.
Change-Id: I0a35e5bd9f8edba27e0c73e5c8150636346d6a81
2014-09-23 20:02:42 -07:00
Elliott Hughes
39e479913c am c57e5c82: Merge "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps."
* commit 'c57e5c828914714a283dd41f0a4adb064f6b8763':
  CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.
2014-09-24 02:14:31 +00:00
Elliott Hughes
42317a0e50 am c57e5c82: Merge "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps."
* commit 'c57e5c828914714a283dd41f0a4adb064f6b8763':
  CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.
2014-09-24 02:10:59 +00:00
Elliott Hughes
c57e5c8289 Merge "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps." 2014-09-24 01:49:06 +00:00
Christopher Ferris
2169e17482 Remove the unnecessary generic-neon code.
Change-Id: Ib75c33caafd76750ec1aca3a74dec5e4b881e965
2014-09-23 18:31:45 -07:00
Elliott Hughes
31165edf57 CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.
Change-Id: I74ea88e0d4973d6ab3c57da7d8bb643c31592b14
2014-09-23 18:21:52 -07:00
Dan Albert
3c5037f1b3 Fix incorrect parameter types for locale funcs.
strtoll(3), strtoull(3), wcstoll(3), and wcstoull(3) all take an _int_
as a base, not a size_t. This is an ABI compatibility issue.

Bug: 17628622
Change-Id: I17f8eead34ce2112005899fc30162067573023ec
2014-09-23 15:32:24 -07:00
Elliott Hughes
671bee9cdb am 151c3e0a: am 87b6906f: Merge "Pull in upstream fixes to reject invalid bases."
* commit '151c3e0a220f7b90695bda3e05364c11ba56f46a':
  Pull in upstream fixes to reject invalid bases.
2014-09-23 22:23:47 +00:00
Elliott Hughes
151c3e0a22 am 87b6906f: Merge "Pull in upstream fixes to reject invalid bases."
* commit '87b6906f6e0c17b2541535be8e054324cc2fef4a':
  Pull in upstream fixes to reject invalid bases.
2014-09-23 22:13:17 +00:00
Elliott Hughes
0d44da9eb4 am 87b6906f: Merge "Pull in upstream fixes to reject invalid bases."
* commit '87b6906f6e0c17b2541535be8e054324cc2fef4a':
  Pull in upstream fixes to reject invalid bases.
2014-09-23 22:12:57 +00:00
Elliott Hughes
46fc634758 am e4cdb462: am 86421653: Merge "Sync with some upstream OpenBSD #include cleanup."
* commit 'e4cdb462dd955576c7b5cde6d2cb65d234536f36':
  Sync with some upstream OpenBSD #include cleanup.
2014-09-23 21:59:58 +00:00
Elliott Hughes
66c47bd60c am c7ee90e4: am 0ab5fd9a: Merge "Switch to OpenBSD insque/remque/killpg."
* commit 'c7ee90e4c142184eafb523a974d6980a9c8976e8':
  Switch to OpenBSD insque/remque/killpg.
2014-09-23 21:59:57 +00:00
Elliott Hughes
87b6906f6e Merge "Pull in upstream fixes to reject invalid bases." 2014-09-23 21:59:15 +00:00
Elliott Hughes
b05ec5ae93 Pull in upstream fixes to reject invalid bases.
Also add tests to make sure the full set works correctly.

Change-Id: I3e7f237f12c9c93e1185a97c9717803e7e55a73c
2014-09-23 14:53:10 -07:00
Elliott Hughes
e4cdb462dd am 86421653: Merge "Sync with some upstream OpenBSD #include cleanup."
* commit '8642165344217877b8a70811d19e09b584a0e10a':
  Sync with some upstream OpenBSD #include cleanup.
2014-09-23 21:49:18 +00:00
Elliott Hughes
c7ee90e4c1 am 0ab5fd9a: Merge "Switch to OpenBSD insque/remque/killpg."
* commit '0ab5fd9a5af4cd00572e4881f46c1e6f974f657c':
  Switch to OpenBSD insque/remque/killpg.
2014-09-23 21:49:17 +00:00
Elliott Hughes
3a86c0fd90 am 86421653: Merge "Sync with some upstream OpenBSD #include cleanup."
* commit '8642165344217877b8a70811d19e09b584a0e10a':
  Sync with some upstream OpenBSD #include cleanup.
2014-09-23 21:48:00 +00:00
Elliott Hughes
0c1008b9d8 am 0ab5fd9a: Merge "Switch to OpenBSD insque/remque/killpg."
* commit '0ab5fd9a5af4cd00572e4881f46c1e6f974f657c':
  Switch to OpenBSD insque/remque/killpg.
2014-09-23 21:48:00 +00:00
Elliott Hughes
8642165344 Merge "Sync with some upstream OpenBSD #include cleanup." 2014-09-23 21:27:29 +00:00
Elliott Hughes
0ab5fd9a5a Merge "Switch to OpenBSD insque/remque/killpg." 2014-09-23 21:26:27 +00:00
Elliott Hughes
49eed7db79 Switch to OpenBSD insque/remque/killpg.
Change-Id: Ie02290ad3187b1c1596dd776fd1c8a743a55f7ef
2014-09-23 14:06:56 -07:00
Elliott Hughes
08dc9d83a2 Sync with some upstream OpenBSD #include cleanup.
Change-Id: Ibcd7adb19e9a6b9ad8c24d77e23935f19f56a144
2014-09-23 13:55:15 -07:00
Elliott Hughes
719e8a4b88 am 5d953ddd: am 93951cfa: Merge "Fix a couple more cases of missing CLOEXEC."
* commit '5d953ddd40445f337c1f54a4fb1e2b3741245809':
  Fix a couple more cases of missing CLOEXEC.
2014-09-23 16:20:22 +00:00
Elliott Hughes
1decd9642d am f06c55ac: am e8a95624: Merge "Test pthread_cleanup_push(3)/pthread_cleanup_pop(3)."
* commit 'f06c55ac43dfcdb233be195ca770a9ad25517149':
  Test pthread_cleanup_push(3)/pthread_cleanup_pop(3).
2014-09-23 16:20:07 +00:00
Elliott Hughes
9c8e85f60d am 12766c45: am b2da4562: Merge "Clean up fpathconf(3)/pathconf(3)."
* commit '12766c458e06e8d3a7f27d1b079443827b40aa48':
  Clean up fpathconf(3)/pathconf(3).
2014-09-23 16:20:00 +00:00
Elliott Hughes
da08f6ca5f am c0226cc7: am d9cb0ed2: Merge "Unit test for abort(3)."
* commit 'c0226cc767580b9b3cd097ab77557c721b4b2c88':
  Unit test for abort(3).
2014-09-23 16:19:57 +00:00
Elliott Hughes
5d953ddd40 am 93951cfa: Merge "Fix a couple more cases of missing CLOEXEC."
* commit '93951cfa96c3c7504a78f94e7ec408936e5db9bf':
  Fix a couple more cases of missing CLOEXEC.
2014-09-23 01:40:10 +00:00
Elliott Hughes
c65a1d5ee0 am 93951cfa: Merge "Fix a couple more cases of missing CLOEXEC."
* commit '93951cfa96c3c7504a78f94e7ec408936e5db9bf':
  Fix a couple more cases of missing CLOEXEC.
2014-09-23 01:39:11 +00:00
Elliott Hughes
93951cfa96 Merge "Fix a couple more cases of missing CLOEXEC." 2014-09-23 01:19:52 +00:00
Elliott Hughes
0dc39f9952 Fix a couple more cases of missing CLOEXEC.
The debuggerd case can probably never happen, because you're crashing at this
point anyway. The system property one seems possible though.

Change-Id: Idba6a4f1d68587ec5b320d1e25f0b6a987ea32a0
2014-09-22 17:43:09 -07:00
Elliott Hughes
eaf288d100 am e8a95624: Merge "Test pthread_cleanup_push(3)/pthread_cleanup_pop(3)."
* commit 'e8a95624b6ee37f7ee85f0318f1fccd916292ebd':
  Test pthread_cleanup_push(3)/pthread_cleanup_pop(3).
2014-09-22 23:47:29 +00:00
Elliott Hughes
f06c55ac43 am e8a95624: Merge "Test pthread_cleanup_push(3)/pthread_cleanup_pop(3)."
* commit 'e8a95624b6ee37f7ee85f0318f1fccd916292ebd':
  Test pthread_cleanup_push(3)/pthread_cleanup_pop(3).
2014-09-22 23:46:23 +00:00
Elliott Hughes
e8a95624b6 Merge "Test pthread_cleanup_push(3)/pthread_cleanup_pop(3)." 2014-09-22 23:28:32 +00:00
Elliott Hughes
34c987a6dd Test pthread_cleanup_push(3)/pthread_cleanup_pop(3).
Change-Id: I5a623fa1e1da55f11d51f3a9bdfa0627698c486f
2014-09-22 16:27:19 -07:00
Elliott Hughes
1f2e845f9a am b2da4562: Merge "Clean up fpathconf(3)/pathconf(3)."
* commit 'b2da45625353336452112e28872310903dc70a8f':
  Clean up fpathconf(3)/pathconf(3).
2014-09-22 23:05:35 +00:00
Elliott Hughes
12766c458e am b2da4562: Merge "Clean up fpathconf(3)/pathconf(3)."
* commit 'b2da45625353336452112e28872310903dc70a8f':
  Clean up fpathconf(3)/pathconf(3).
2014-09-22 23:04:51 +00:00
Elliott Hughes
b2da456253 Merge "Clean up fpathconf(3)/pathconf(3)." 2014-09-22 22:50:11 +00:00
Elliott Hughes
a186b2e0ca Clean up fpathconf(3)/pathconf(3).
fpathconf(3) and pathconf(3) can share code. There's no such
header file as <pathconf.h>. glibc/POSIX and BSD disagree about where
the _POSIX_* definitions should go.

Change-Id: I4a67f1595c9f5fbb26700a131178eedebd6bf712
2014-09-22 22:49:40 +00:00
Elliott Hughes
3ff4698f0a am d9cb0ed2: Merge "Unit test for abort(3)."
* commit 'd9cb0ed281f0301ec2ca6828f0acc1ed08dceb8a':
  Unit test for abort(3).
2014-09-22 22:08:38 +00:00
Elliott Hughes
c0226cc767 am d9cb0ed2: Merge "Unit test for abort(3)."
* commit 'd9cb0ed281f0301ec2ca6828f0acc1ed08dceb8a':
  Unit test for abort(3).
2014-09-22 22:08:03 +00:00
Elliott Hughes
d9cb0ed281 Merge "Unit test for abort(3)." 2014-09-22 21:46:56 +00:00
Elliott Hughes
60452a211c Unit test for abort(3).
Change-Id: I021604b977572801f228a193741624df26e76d72
2014-09-22 14:41:30 -07:00
Elliott Hughes
6c960a2121 am 34732f1a: am 9f423c55: Merge "Use the uapi fs magic in <sys/vfs.h>."
* commit '34732f1a17521f0fd744b977cd917df998c879e6':
  Use the uapi fs magic in <sys/vfs.h>.
2014-09-22 17:23:15 +00:00
Elliott Hughes
bb54a0d47a am 9f423c55: Merge "Use the uapi fs magic in <sys/vfs.h>."
* commit '9f423c554a0ffcee2e34472bf0bc1aef3621a822':
  Use the uapi fs magic in <sys/vfs.h>.
2014-09-22 17:08:51 +00:00
Elliott Hughes
34732f1a17 am 9f423c55: Merge "Use the uapi fs magic in <sys/vfs.h>."
* commit '9f423c554a0ffcee2e34472bf0bc1aef3621a822':
  Use the uapi fs magic in <sys/vfs.h>.
2014-09-22 17:08:49 +00:00
Elliott Hughes
9f423c554a Merge "Use the uapi fs magic in <sys/vfs.h>." 2014-09-22 16:51:07 +00:00
Elliott Hughes
c296e4f151 Use the uapi fs magic in <sys/vfs.h>.
Change-Id: I712b856a6d786bba400c9a8d08f596b826403731
2014-09-22 09:47:21 -07:00
Elliott Hughes
18a229d29e am 31c5030d: am 413de5b0: Merge "Add semaphore tests, fix sem_destroy."
* commit '31c5030d9f4297ee99cbd05cd2aa451e7602d74d':
  Add semaphore tests, fix sem_destroy.
2014-09-20 20:23:45 +00:00
Elliott Hughes
31c5030d9f am 413de5b0: Merge "Add semaphore tests, fix sem_destroy."
* commit '413de5b0d4ddcf039aaef8b40a5f02d41dbb06e6':
  Add semaphore tests, fix sem_destroy.
2014-09-20 20:09:50 +00:00
Elliott Hughes
7d8796feaa am 413de5b0: Merge "Add semaphore tests, fix sem_destroy."
* commit '413de5b0d4ddcf039aaef8b40a5f02d41dbb06e6':
  Add semaphore tests, fix sem_destroy.
2014-09-20 20:06:21 +00:00
Christopher Ferris
b03f2831b8 am b743da01: am e7160449: Merge "Remove references to MALLOC_LEAK_CHECK."
* commit 'b743da019164231da807000af8440e646da45b99':
  Remove references to MALLOC_LEAK_CHECK.
2014-09-20 03:14:53 +00:00
Christopher Ferris
b743da0191 am e7160449: Merge "Remove references to MALLOC_LEAK_CHECK."
* commit 'e716044918d85cd3c34425779a09a24348f7f67a':
  Remove references to MALLOC_LEAK_CHECK.
2014-09-20 02:54:07 +00:00
Elliott Hughes
413de5b0d4 Merge "Add semaphore tests, fix sem_destroy." 2014-09-20 01:34:11 +00:00
Christopher Ferris
1b0654f4a7 am e7160449: Merge "Remove references to MALLOC_LEAK_CHECK."
* commit 'e716044918d85cd3c34425779a09a24348f7f67a':
  Remove references to MALLOC_LEAK_CHECK.
2014-09-20 00:50:08 +00:00
Elliott Hughes
04303f5a8a Add semaphore tests, fix sem_destroy.
Bug: https://code.google.com/p/android/issues/detail?id=76088
Change-Id: I4a0561b23e90312384d40a1c804ca64ee98f4066
2014-09-19 17:37:06 -07:00
Christopher Ferris
e716044918 Merge "Remove references to MALLOC_LEAK_CHECK." 2014-09-20 00:29:09 +00:00
Christopher Ferris
6fe376d392 Remove references to MALLOC_LEAK_CHECK.
This define isn't really used any more.

Bug: 17378595
Change-Id: I39722b83cd98955a3a2514577de34a239524617f
2014-09-19 17:15:12 -07:00
Elliott Hughes
9dd308d0c3 am ff4187e9: am adc01348: Merge "Add greg_t for arm64."
* commit 'ff4187e9a34a84e3f08e259ab7080b55a47eb3c3':
  Add greg_t for arm64.
2014-09-19 18:40:12 +00:00
Elliott Hughes
ff4187e9a3 am adc01348: Merge "Add greg_t for arm64."
* commit 'adc01348ee51a4ad678b1c277f85cbbed5c2e728':
  Add greg_t for arm64.
2014-09-19 18:24:40 +00:00
Elliott Hughes
954782240e am adc01348: Merge "Add greg_t for arm64."
* commit 'adc01348ee51a4ad678b1c277f85cbbed5c2e728':
  Add greg_t for arm64.
2014-09-19 18:23:59 +00:00
Elliott Hughes
adc01348ee Merge "Add greg_t for arm64." 2014-09-19 18:01:23 +00:00
Elliott Hughes
8e4d371091 Add greg_t for arm64.
This was already present for the other architectures. I think we skipped
this because glibc seems to have an incorrect definition (int rather than
long), but the kernel has the sane definition (just not in a uapi header).

Change-Id: I0d47a424b505804389853dd8632693dad55a3907
2014-09-19 10:31:49 -07:00
Dan Albert
93b294f26b am abc5e4db: am 13d6023a: Merge "Exclude libstdc++ from linked libraries."
* commit 'abc5e4db15b3b1cc31c1f2a01d19581f66fec2a0':
  Exclude libstdc++ from linked libraries.
2014-09-19 08:32:10 +00:00
Christopher Ferris
d7fc04aa7b am b925c1c7: am d5e1c583: Merge "Move to v3.16.3 kernel headers."
* commit 'b925c1c78da02e117afb04ccb637117c1704c166':
  Move to v3.16.3 kernel headers.
2014-09-19 08:31:05 +00:00
Elliott Hughes
643c712b22 am c12827e5: am fb8d60f7: Merge "Fix lgamma_r/lgammaf_r/lgammal_r for -0."
* commit 'c12827e5f9589649839d1a31345bdcf028973bbb':
  Fix lgamma_r/lgammaf_r/lgammal_r for -0.
2014-09-19 08:31:04 +00:00
Elliott Hughes
0ac1ba5592 am 9969481d: Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
* commit '9969481d5bf05954fff9c0f3d1c95bb99c36b9a8':
  Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
2014-09-19 08:27:03 +00:00
Elliott Hughes
703544f299 am c189ffaa: More cases where libc should use O_CLOEXEC.
* commit 'c189ffaaec45efb49e785517e504b41a5e57b088':
  More cases where libc should use O_CLOEXEC.
2014-09-19 08:27:03 +00:00
Dan Albert
50cc4a25c0 am 411ff42f: Hide ScopedTrace.
* commit '411ff42f20729200c0fc2e24a83bc1dcd7a42a51':
  Hide ScopedTrace.
2014-09-19 08:27:00 +00:00
Elliott Hughes
0b356b2213 am d0be539e: (-s ours) Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
* commit 'd0be539e01424fa720840dfe702dedf8e54379fb':
  Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
2014-09-19 08:26:59 +00:00
Elliott Hughes
7f4a8e8579 am 7d3a8cf6: am 82e71085: Merge "The nextafter functions use the wrong next representable value"
* commit '7d3a8cf66768118fb1384384469aae2647d9d4ef':
2014-09-19 08:13:51 +00:00
Elliott Hughes
fee7bbb8ab am 397335a0: am 6ced0051: Merge "Stack unwinding unit tests."
* commit '397335a0c89058361ecb5d5f67bc4134d441c099':
2014-09-19 08:13:50 +00:00
Christopher Ferris
98f03fe4aa am cd7f93d3: am 0bd28a43: Merge "Update kernel uapi headers to v3.16.1."
* commit 'cd7f93d31f9d8f16cbd730f493964076bccc4d28':
2014-09-19 08:11:19 +00:00
Dmitriy Ivanov
d37685b39a am e7c3c9e9: am 6a310f4a: Merge "Temporary disable DL_WARNs for unused DT_*"
* commit 'e7c3c9e91f04a566f250c37b94f04e1a50b65317':
2014-09-19 08:10:49 +00:00
Dmitriy Ivanov
ac6149369c am e594a6e9: am 77784cb9: Merge "Add Android*.mk files to additional dependencies"
* commit 'e594a6e9a88ad73461f7c753a906d069b91d1a05':
2014-09-19 08:10:03 +00:00
Elliott Hughes
bc62d3d067 am a9a920d5: am 03fef1f5: Merge "Fix some 32-bit-isms in <stdio.h>."
* commit 'a9a920d52aa3f1d28541b8b8d12fd33688eb8dfb':
2014-09-19 08:09:27 +00:00
Elliott Hughes
01b9019eef am de3b2bfe: am 2f5cf100: Merge "Pull input.h from v3.16.1 kernel headers."
* commit 'de3b2bfe114d1f280b38f1ff7cb90ecb8cf91b01':
2014-09-19 08:09:26 +00:00
Elliott Hughes
a815fe12e7 am 18ce8e5d: am 36a5aa05: Merge "Use the kernel\'s sa_restorer for aarch64."
* commit '18ce8e5d031225b33c7815ccd18ac0099a437ae1':
2014-09-19 07:42:44 +00:00
Elliott Hughes
e5fa4617aa am 289dd568: am 56433ee2: Merge "Clean up the architecture-specific makefiles."
* commit '289dd568be03f30bb8b9b66f90dae47249ad24bc':
2014-09-19 07:42:30 +00:00
Dmitriy Ivanov
8eb8ca0d50 am 415658c9: am e7c9a387: Merge "Fix 64bit build"
* commit '415658c922a5a6f07a7dc225b47bd8b0e533a1d6':
2014-09-19 07:36:25 +00:00
Dmitriy Ivanov
3a233698ee am ab1b06a8: am 34ac60ca: Merge "Fix some unused DT_ warnings"
* commit 'ab1b06a87bf8048d8f0a6a2eb0b650e098640d06':
2014-09-19 07:36:25 +00:00
Elliott Hughes
07be4ab760 am 6bf74ba5: am 17cc8e53: Merge "No arm source refers to SOFTFLOAT."
* commit '6bf74ba536ae254f1439bd40f0c9c62c13546353':
2014-09-19 07:19:25 +00:00
Dmitriy Ivanov
9b3211528d am 29be5408: am aea393c0: Merge "Remove has_DT_SYMBOLIC flag"
* commit '29be5408dd9dcfcffb46f23aa6fb8c7d557927a4':
2014-09-19 07:19:22 +00:00
Elliott Hughes
a1bacb8b05 am 63b63c14: am 380a3be7: Merge "Fix 32-bit arm unwinding through signal frames."
* commit '63b63c146e4cbe73be483f1238d081a488521875':
2014-09-19 07:19:20 +00:00
Calin Juravle
8229d8938b am b414c62e: am 370704d6: Merge "Add benchmarks for pthread_rw_locks"
* commit 'b414c62e60a50c8ee502362ce2dc841c2effefab':
2014-09-19 06:16:42 +00:00
Elliott Hughes
3349bc33e2 am 78946d41: am 5cba3c6f: Merge "Fix signal trampolines."
* commit '78946d41892177ed87354d1d682213a6984271d7':
2014-09-19 06:16:19 +00:00
Dmitriy Ivanov
148674a86e am 9a44ef61: am 2997ae83: Merge "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '9a44ef61ae1619cf7b2025072ba8ac3adaba6834':
2014-09-19 06:16:09 +00:00
Dmitriy Ivanov
8455bc6cb3 am b9263dd1: am 0b8f6d59: Merge "Add dlfcn_test to glibc test suite."
* commit 'b9263dd173312097274b68d701d56efc86a517cb':
2014-09-19 06:16:08 +00:00
Elliott Hughes
9a1dd02d56 am c47a5402: am 95b0c6a9: Merge "POSIX says <signal.h> gets you ucontext_t."
* commit 'c47a5402e7568b1d8f14a6f2fda6106b9973a43b':
2014-09-19 04:44:36 +00:00
Dan Albert
abc5e4db15 am 13d6023a: Merge "Exclude libstdc++ from linked libraries."
* commit '13d6023aac62091a7d1df1c1afa1e228515832cb':
  Exclude libstdc++ from linked libraries.
2014-09-19 00:05:37 +00:00
Dan Albert
05ce5ff3f2 am 13d6023a: Merge "Exclude libstdc++ from linked libraries."
* commit '13d6023aac62091a7d1df1c1afa1e228515832cb':
  Exclude libstdc++ from linked libraries.
2014-09-19 00:05:23 +00:00
Dan Albert
13d6023aac Merge "Exclude libstdc++ from linked libraries." 2014-09-18 23:43:24 +00:00
Christopher Ferris
cbf33a9988 am d5e1c583: Merge "Move to v3.16.3 kernel headers."
* commit 'd5e1c583a66a821c7d7e8f43e1238a4569981b90':
  Move to v3.16.3 kernel headers.
2014-09-18 21:48:49 +00:00
Elliott Hughes
88e6b2b5d0 am fb8d60f7: Merge "Fix lgamma_r/lgammaf_r/lgammal_r for -0."
* commit 'fb8d60f7436d8f90f951fb2efc27449c3aee8046':
  Fix lgamma_r/lgammaf_r/lgammal_r for -0.
2014-09-18 21:48:49 +00:00
Christopher Ferris
b925c1c78d am d5e1c583: Merge "Move to v3.16.3 kernel headers."
* commit 'd5e1c583a66a821c7d7e8f43e1238a4569981b90':
  Move to v3.16.3 kernel headers.
2014-09-18 21:47:50 +00:00
Elliott Hughes
c12827e5f9 am fb8d60f7: Merge "Fix lgamma_r/lgammaf_r/lgammal_r for -0."
* commit 'fb8d60f7436d8f90f951fb2efc27449c3aee8046':
  Fix lgamma_r/lgammaf_r/lgammal_r for -0.
2014-09-18 21:47:50 +00:00
Christopher Ferris
d5e1c583a6 Merge "Move to v3.16.3 kernel headers." 2014-09-18 21:34:43 +00:00
Elliott Hughes
fb8d60f743 Merge "Fix lgamma_r/lgammaf_r/lgammal_r for -0." 2014-09-18 21:28:35 +00:00
Christopher Ferris
653676dde8 Move to v3.16.3 kernel headers.
Change-Id: Ife491bd7630b853a78532dd74e4644438256a3a1
2014-09-18 13:14:58 -07:00
Elliott Hughes
755318548d Fix lgamma_r/lgammaf_r/lgammal_r for -0.
Upstream has implemented lgammal/lgammal_r for ld128, and fixed the
sign problem we reported with all the lgamma*_r functions and -0.

Bug: 17471883
Change-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc
2014-09-18 11:23:58 -07:00
Elliott Hughes
9969481d5b Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
Whitespace difference presumably introduced while fixing a merge conflict.

Bug: 17549448

(cherry picked from commit 8fa377eb6afdea4b03b6a0d112471f7ee988fb96)

Change-Id: I7e30f37da4430af19d09a661e489c8ff65e42297
2014-09-18 10:57:57 -07:00
Elliott Hughes
c189ffaaec More cases where libc should use O_CLOEXEC.
(cherry picked from commit f73183f1a34df22b62a3d0bbf82e18d5797c9cde)

(cherry picked from commit 21ce3f506f3b54e4f57a37847375cef9f8aff57f)

Change-Id: I70b240bd40ad8d2ba33ae7ab2618782709fd0d6a
2014-09-18 10:57:16 -07:00
Dan Albert
411ff42f20 Hide ScopedTrace.
(cherry-pick of f2c1e7ee78a167ff323b9f45d20532d064d6778d.)

Bug: 11156955

(cherry picked from commit ebb6b4a4d3fab87800b912c9d6ea917f5359f8af)

Change-Id: Ifc10364b35384a9f34e4c2c634dd78a16065a817
2014-09-18 10:54:30 -07:00
Elliott Hughes
d0be539e01 Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
This reverts commit 26c1420fbb68916d66a8621b5efe8bb25cfdad7b.

(cherry picked from commit 9e87f2f876243225deef37645ddceaa5d225cb41)

Change-Id: I46a71a456952e3dd2c2bb0d9934820ffe8dc8469
2014-09-18 10:46:04 -07:00
Elliott Hughes
711a0a60eb am f2cab6f8: am 82e71085: Merge "The nextafter functions use the wrong next representable value"
* commit 'f2cab6f808fa22f71efa7ce206df76ffcd5503cc':
  The nextafter functions use the wrong next representable value
2014-09-18 16:18:18 +00:00
Elliott Hughes
b3b72f9278 am 14dfe3e6: am 6ced0051: Merge "Stack unwinding unit tests."
* commit '14dfe3e62b2a96f35ad455f0b1dd996343d9aeeb':
  Stack unwinding unit tests.
2014-09-18 16:18:18 +00:00
Elliott Hughes
7d3a8cf667 am 82e71085: Merge "The nextafter functions use the wrong next representable value"
* commit '82e71085c23d11030e9950d8d08e30ef249fd73b':
  The nextafter functions use the wrong next representable value
2014-09-18 16:11:46 +00:00
Elliott Hughes
397335a0c8 am 6ced0051: Merge "Stack unwinding unit tests."
* commit '6ced005123aaedeed7cd653d0baab3fbd511a492':
  Stack unwinding unit tests.
2014-09-18 16:11:45 +00:00
Elliott Hughes
f2cab6f808 am 82e71085: Merge "The nextafter functions use the wrong next representable value"
* commit '82e71085c23d11030e9950d8d08e30ef249fd73b':
  The nextafter functions use the wrong next representable value
2014-09-18 16:11:30 +00:00
Elliott Hughes
14dfe3e62b am 6ced0051: Merge "Stack unwinding unit tests."
* commit '6ced005123aaedeed7cd653d0baab3fbd511a492':
  Stack unwinding unit tests.
2014-09-18 16:11:30 +00:00
Elliott Hughes
82e71085c2 Merge "The nextafter functions use the wrong next representable value" 2014-09-18 15:51:46 +00:00
Jingwei Zhang
90be6c5fc5 The nextafter functions use the wrong next representable value
From C99 standard: “The nextafter functions determine the next representable value, in the type of the function,
after x in the direction of y, where x and y are first converted to the type of the function”.
The next representable value of 0.0 in direction of -1.0 is -4.9406564584124654e-324, not 0.0.

Similar thing holds for nextafterf, nextafterl, nexttowardf, nexttoward, and nexttowardl.
The tests pass either way, since the error is within the tolerance, but how it is written is wrong.

Change-Id: I1338eeffe3de8031a48f46e1b07146bc07dc2f0a
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2014-09-19 00:50:00 +08:00
Elliott Hughes
6ced005123 Merge "Stack unwinding unit tests." 2014-09-18 15:49:30 +00:00
Elliott Hughes
bee1993a14 Stack unwinding unit tests.
Bug: 17436734
Change-Id: I1e98da7eaeab646b448fb3f2b683973dddc319b0
2014-09-17 19:52:14 -07:00
Christopher Ferris
bac0957527 am aac37784: am 0bd28a43: Merge "Update kernel uapi headers to v3.16.1."
* commit 'aac37784dfd696f7469361e91e2444941c3eafb1':
  Update kernel uapi headers to v3.16.1.
2014-09-18 00:52:35 +00:00
Christopher Ferris
cd7f93d31f am 0bd28a43: Merge "Update kernel uapi headers to v3.16.1."
* commit '0bd28a43dae87c808f6af61ad3dba042b35be7e7':
  Update kernel uapi headers to v3.16.1.
2014-09-18 00:41:36 +00:00
Christopher Ferris
aac37784df am 0bd28a43: Merge "Update kernel uapi headers to v3.16.1."
* commit '0bd28a43dae87c808f6af61ad3dba042b35be7e7':
  Update kernel uapi headers to v3.16.1.
2014-09-18 00:41:24 +00:00
Dmitriy Ivanov
824912dbe3 am 4dcc5888: am 6a310f4a: Merge "Temporary disable DL_WARNs for unused DT_*"
* commit '4dcc58887e303b0427886af1712c550c25b8542e':
  Temporary disable DL_WARNs for unused DT_*
2014-09-18 00:26:40 +00:00
Christopher Ferris
0bd28a43da Merge "Update kernel uapi headers to v3.16.1." 2014-09-18 00:18:46 +00:00
Dmitriy Ivanov
4dcc58887e am 6a310f4a: Merge "Temporary disable DL_WARNs for unused DT_*"
* commit '6a310f4ad6c06b6f513d6dd9784ce0377f94f9bd':
  Temporary disable DL_WARNs for unused DT_*
2014-09-18 00:16:52 +00:00
Dmitriy Ivanov
e7c3c9e91f am 6a310f4a: Merge "Temporary disable DL_WARNs for unused DT_*"
* commit '6a310f4ad6c06b6f513d6dd9784ce0377f94f9bd':
  Temporary disable DL_WARNs for unused DT_*
2014-09-18 00:16:41 +00:00
Christopher Ferris
ba8d4f460b Update kernel uapi headers to v3.16.1.
Other changes to support the new headers:

- Remove the flock64 structure it is defined in the new headers.
- Update the syscalls to correspond with the headers.

Change-Id: I49a6b07e8b2bfffb67be71b07b58e4e6848fcc09
2014-09-17 17:05:17 -07:00
Dmitriy Ivanov
6a310f4ad6 Merge "Temporary disable DL_WARNs for unused DT_*" 2014-09-17 23:56:45 +00:00
Dmitriy Ivanov
1b77423eff Temporary disable DL_WARNs for unused DT_*
Bug: 17552334
Change-Id: I2f7b5e4b4d1db96e812a7f86adc929e113d4c11a
2014-09-17 16:46:40 -07:00
Dmitriy Ivanov
eb7cb8e5f8 am f412f82d: am 77784cb9: Merge "Add Android*.mk files to additional dependencies"
* commit 'f412f82d4107ea485fb8c60adfd05c1953032f1f':
  Add Android*.mk files to additional dependencies
2014-09-17 23:31:59 +00:00
Dmitriy Ivanov
e594a6e9a8 am 77784cb9: Merge "Add Android*.mk files to additional dependencies"
* commit '77784cb9b7bad354601a3f965c3eaffecf6798ca':
  Add Android*.mk files to additional dependencies
2014-09-17 23:21:00 +00:00
Dmitriy Ivanov
f412f82d41 am 77784cb9: Merge "Add Android*.mk files to additional dependencies"
* commit '77784cb9b7bad354601a3f965c3eaffecf6798ca':
  Add Android*.mk files to additional dependencies
2014-09-17 23:20:01 +00:00
Dmitriy Ivanov
77784cb9b7 Merge "Add Android*.mk files to additional dependencies" 2014-09-17 23:01:49 +00:00
Dmitriy Ivanov
bf50e2645d Add Android*.mk files to additional dependencies
Bug: 17548097
Change-Id: Ie0d9c8f33459320008f561217c54eba42d283b47
2014-09-17 15:55:01 -07:00
Elliott Hughes
b7fb8b6156 am 58fe4f0b: am 03fef1f5: Merge "Fix some 32-bit-isms in <stdio.h>."
* commit '58fe4f0b079d780f25f1c34a758550368024a44d':
  Fix some 32-bit-isms in <stdio.h>.
2014-09-17 22:53:12 +00:00
Elliott Hughes
3fa99dd4f3 am d75695d8: am 2f5cf100: Merge "Pull input.h from v3.16.1 kernel headers."
* commit 'd75695d8e0093ddf1ad298ef6aacae0782816962':
  Pull input.h from v3.16.1 kernel headers.
2014-09-17 22:53:11 +00:00
Elliott Hughes
58fe4f0b07 am 03fef1f5: Merge "Fix some 32-bit-isms in <stdio.h>."
* commit '03fef1f51179de5cb65eafd9b57ea05c8e061542':
  Fix some 32-bit-isms in <stdio.h>.
2014-09-17 22:37:18 +00:00
Elliott Hughes
d75695d8e0 am 2f5cf100: Merge "Pull input.h from v3.16.1 kernel headers."
* commit '2f5cf100a8cfaf51296fda69d31ef9e59c6d1da3':
  Pull input.h from v3.16.1 kernel headers.
2014-09-17 22:37:17 +00:00
Elliott Hughes
a9a920d52a am 03fef1f5: Merge "Fix some 32-bit-isms in <stdio.h>."
* commit '03fef1f51179de5cb65eafd9b57ea05c8e061542':
  Fix some 32-bit-isms in <stdio.h>.
2014-09-17 22:37:09 +00:00
Elliott Hughes
de3b2bfe11 am 2f5cf100: Merge "Pull input.h from v3.16.1 kernel headers."
* commit '2f5cf100a8cfaf51296fda69d31ef9e59c6d1da3':
  Pull input.h from v3.16.1 kernel headers.
2014-09-17 22:37:08 +00:00
Elliott Hughes
a7c448810d am 8fa377eb: Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
* commit '8fa377eb6afdea4b03b6a0d112471f7ee988fb96':
  Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
2014-09-17 22:36:10 +00:00
Elliott Hughes
8fa377eb6a Fix an unintended difference between aosp/master and lmp-dev-plus-aosp.
Whitespace difference presumably introduced while fixing a merge conflict.

Bug: 17549448
Change-Id: If688330bf1dbaed23ba687d843d9744d6261023b
2014-09-17 15:25:35 -07:00
Elliott Hughes
03fef1f511 Merge "Fix some 32-bit-isms in <stdio.h>." 2014-09-17 22:22:32 +00:00
Elliott Hughes
2ad11a96a1 Fix some 32-bit-isms in <stdio.h>.
(cherry-pick of 2d80400a9e8454038a3ec29959436184be0c4c65.)

Bug: 17157793
Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
2014-09-17 15:21:10 -07:00
Elliott Hughes
1f82cf40bb am 21ce3f50: More cases where libc should use O_CLOEXEC.
* commit '21ce3f506f3b54e4f57a37847375cef9f8aff57f':
  More cases where libc should use O_CLOEXEC.
2014-09-17 22:19:00 +00:00
Dan Albert
23b8947da5 am ebb6b4a4: Hide ScopedTrace.
* commit 'ebb6b4a4d3fab87800b912c9d6ea917f5359f8af':
  Hide ScopedTrace.
2014-09-17 22:19:00 +00:00
Elliott Hughes
2f5cf100a8 Merge "Pull input.h from v3.16.1 kernel headers." 2014-09-17 22:18:48 +00:00
Christopher Ferris
e2d86feb7b Pull input.h from v3.16.1 kernel headers.
(cherry-pick of 027d2717d067c3706f22bf84dc1226ede7c1566d.)

Bug: 17407564
Change-Id: Idcfc40a7254605280e3d5474c61ae1ab7b2b7b51
2014-09-17 15:18:21 -07:00
Elliott Hughes
21ce3f506f More cases where libc should use O_CLOEXEC.
Change-Id: Idfa111aeebc5deca2399dae919e8b72eb54c23c0
(cherry picked from commit f73183f1a34df22b62a3d0bbf82e18d5797c9cde)
2014-09-17 15:13:35 -07:00
Elliott Hughes
b391e05a25 am 9e87f2f8: Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
* commit '9e87f2f876243225deef37645ddceaa5d225cb41':
  Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
2014-09-17 22:13:23 +00:00
Dan Albert
ebb6b4a4d3 Hide ScopedTrace.
(cherry-pick of f2c1e7ee78a167ff323b9f45d20532d064d6778d.)

Bug: 11156955
Change-Id: I6cddc868d1c6503e30f1ffcf460f45670631d64a
2014-09-17 15:11:25 -07:00
Elliott Hughes
9e87f2f876 Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""
This reverts commit 26c1420fbb68916d66a8621b5efe8bb25cfdad7b.
2014-09-17 14:59:24 -07:00
Dan Albert
3ec67de051 Exclude libstdc++ from linked libraries.
Also explicitly add libstdc++ includes for necessary targets.

Change-Id: If712ba0ae7908d8147a69e29da5c453a183d6540
2014-09-17 14:22:36 -07:00
Elliott Hughes
7eb56f8031 am 39f46864: am 36a5aa05: Merge "Use the kernel\'s sa_restorer for aarch64."
* commit '39f4686461889c2a733caf3ea55bb11719ca9036':
  Use the kernel's sa_restorer for aarch64.
2014-09-17 17:24:31 +00:00
Elliott Hughes
18ce8e5d03 am 36a5aa05: Merge "Use the kernel\'s sa_restorer for aarch64."
* commit '36a5aa057cf1738577754a3fc16a14a5f817109f':
  Use the kernel's sa_restorer for aarch64.
2014-09-17 17:17:26 +00:00
Elliott Hughes
39f4686461 am 36a5aa05: Merge "Use the kernel\'s sa_restorer for aarch64."
* commit '36a5aa057cf1738577754a3fc16a14a5f817109f':
  Use the kernel's sa_restorer for aarch64.
2014-09-17 17:17:14 +00:00
Elliott Hughes
5aeb5f7b11 am 0bbd77af: am 56433ee2: Merge "Clean up the architecture-specific makefiles."
* commit '0bbd77af89efdd66e7e265284044ca5894f056be':
  Clean up the architecture-specific makefiles.
2014-09-17 17:11:46 +00:00
Elliott Hughes
36a5aa057c Merge "Use the kernel's sa_restorer for aarch64." 2014-09-17 17:04:40 +00:00
Elliott Hughes
0bbd77af89 am 56433ee2: Merge "Clean up the architecture-specific makefiles."
* commit '56433ee2a2ccc097ac3ad753168722b0fc76f3b1':
  Clean up the architecture-specific makefiles.
2014-09-17 17:00:39 +00:00
Elliott Hughes
289dd568be am 56433ee2: Merge "Clean up the architecture-specific makefiles."
* commit '56433ee2a2ccc097ac3ad753168722b0fc76f3b1':
  Clean up the architecture-specific makefiles.
2014-09-17 17:00:22 +00:00
Elliott Hughes
56433ee2a2 Merge "Clean up the architecture-specific makefiles." 2014-09-17 16:36:47 +00:00
Dmitriy Ivanov
578b8dd727 am b5f0464d: am e7c9a387: Merge "Fix 64bit build"
* commit 'b5f0464d825ee1ef80e8652a12b0743433020ab4':
  Fix 64bit build
2014-09-17 07:05:51 +00:00
Dmitriy Ivanov
b5f0464d82 am e7c9a387: Merge "Fix 64bit build"
* commit 'e7c9a387fa190b786b1f7becfe99cb22a6f2934a':
  Fix 64bit build
2014-09-17 06:53:52 +00:00
Dmitriy Ivanov
415658c922 am e7c9a387: Merge "Fix 64bit build"
* commit 'e7c9a387fa190b786b1f7becfe99cb22a6f2934a':
  Fix 64bit build
2014-09-17 06:53:24 +00:00
Dmitriy Ivanov
e7c9a387fa Merge "Fix 64bit build" 2014-09-17 06:36:19 +00:00
Dmitriy Ivanov
f240aa8089 Fix 64bit build
Change-Id: I6ef55b5951270c46ee5e9a11385bd09e33a9f969
2014-09-16 23:34:20 -07:00
Dmitriy Ivanov
cdd93e0885 am f5a56f21: am 34ac60ca: Merge "Fix some unused DT_ warnings"
* commit 'f5a56f21806a3535d3e32b172b417bb4cedf00f5':
  Fix some unused DT_ warnings
2014-09-17 06:01:55 +00:00
Dmitriy Ivanov
ab1b06a87b am 34ac60ca: Merge "Fix some unused DT_ warnings"
* commit '34ac60ca16713be227844798f4b20a2f68c8a241':
  Fix some unused DT_ warnings
2014-09-17 05:50:49 +00:00
Dmitriy Ivanov
f5a56f2180 am 34ac60ca: Merge "Fix some unused DT_ warnings"
* commit '34ac60ca16713be227844798f4b20a2f68c8a241':
  Fix some unused DT_ warnings
2014-09-17 05:49:55 +00:00
Dmitriy Ivanov
34ac60ca16 Merge "Fix some unused DT_ warnings" 2014-09-17 05:28:30 +00:00
Elliott Hughes
7c02d9428c Clean up the architecture-specific makefiles.
Group things appropriately and name each group.

Change-Id: I0da45eb0ccde19c31d5e984d0e6eb3dad26630dc
2014-09-16 19:06:31 -07:00
Dmitriy Ivanov
4a6e9a835a Fix some unused DT_ warnings
* DT_PLTGOT - ignored for non-mips
 * DT_RELCOUNT/RELACOUNT - ignored
 * DT_RELENT/RELAENT - sanity checks
 * DT_SYMENT - sanity check
 * DT_SONAME - ignore for now.

Change-Id: Ied90748d12f733a84f6c38a1250567a2f77608b7
2014-09-16 18:19:36 -07:00
Elliott Hughes
8b7cb0560f am 894f7f58: am 17cc8e53: Merge "No arm source refers to SOFTFLOAT."
* commit '894f7f5819e9447d7a7418f180c2275c4c7d9f2f':
  No arm source refers to SOFTFLOAT.
2014-09-17 00:25:04 +00:00
Elliott Hughes
894f7f5819 am 17cc8e53: Merge "No arm source refers to SOFTFLOAT."
* commit '17cc8e539a578184662c1966a60f37c7d4fed65e':
  No arm source refers to SOFTFLOAT.
2014-09-17 00:07:22 +00:00
Elliott Hughes
6bf74ba536 am 17cc8e53: Merge "No arm source refers to SOFTFLOAT."
* commit '17cc8e539a578184662c1966a60f37c7d4fed65e':
  No arm source refers to SOFTFLOAT.
2014-09-17 00:07:11 +00:00
Elliott Hughes
17cc8e539a Merge "No arm source refers to SOFTFLOAT." 2014-09-16 23:45:40 +00:00
Elliott Hughes
b1a6c319c4 No arm source refers to SOFTFLOAT.
So why bother #defining it?

Change-Id: I539e91916cee082cacac594ddf628419b737fa9d
2014-09-16 16:27:35 -07:00
Dmitriy Ivanov
dc428a17d6 am 7ccb499c: am aea393c0: Merge "Remove has_DT_SYMBOLIC flag"
* commit '7ccb499c63931b0863d2792f3d2548acca78c90a':
  Remove has_DT_SYMBOLIC flag
2014-09-16 23:07:04 +00:00
Dmitriy Ivanov
7ccb499c63 am aea393c0: Merge "Remove has_DT_SYMBOLIC flag"
* commit 'aea393c096460669647acbe803617affc5bc0697':
  Remove has_DT_SYMBOLIC flag
2014-09-16 22:54:00 +00:00
Dmitriy Ivanov
29be5408dd am aea393c0: Merge "Remove has_DT_SYMBOLIC flag"
* commit 'aea393c096460669647acbe803617affc5bc0697':
  Remove has_DT_SYMBOLIC flag
2014-09-16 22:53:57 +00:00
Elliott Hughes
1cff9a8964 Use the kernel's sa_restorer for aarch64.
gdb was happy with what we had, but libgcc and libunwind weren't.
libgcc is happy with the kernel's restorer (because of the extra nop),
though libunwind looks like it's going to need code changes regardless.

We could make our restorer more like the kernel's one, but why bother
when we can just let the kernel supply the canonical one?

Bug: 17436734
Change-Id: I330fa5e68f23b1cf8133aa552896657b0b873ed3
2014-09-16 15:49:50 -07:00
Dmitriy Ivanov
aea393c096 Merge "Remove has_DT_SYMBOLIC flag" 2014-09-16 22:37:37 +00:00
Elliott Hughes
48ac72d070 am 67c12a83: am 380a3be7: Merge "Fix 32-bit arm unwinding through signal frames."
* commit '67c12a8392f869b39d4676081d76ebcf5aa9fd05':
  Fix 32-bit arm unwinding through signal frames.
2014-09-16 22:27:59 +00:00
Dmitriy Ivanov
8f61d99183 Remove has_DT_SYMBOLIC flag
From the elf-spec: "Symbolically bound shared objects are
  identified by the .dynamic entry DT_SYMBOLIC. This tag is
  informational only; the runtime linker processes symbol
  lookups from these objects in the same manner as any
  other object."

Change-Id: I4aae0e502ed9fac096fbf076f4d6b2e055d784f6
2014-09-16 15:26:47 -07:00
Elliott Hughes
63b63c146e am 380a3be7: Merge "Fix 32-bit arm unwinding through signal frames."
* commit '380a3be757b04378edecad6ecb96017d2ec6a8b9':
  Fix 32-bit arm unwinding through signal frames.
2014-09-16 22:25:54 +00:00
Elliott Hughes
67c12a8392 am 380a3be7: Merge "Fix 32-bit arm unwinding through signal frames."
* commit '380a3be757b04378edecad6ecb96017d2ec6a8b9':
  Fix 32-bit arm unwinding through signal frames.
2014-09-16 22:13:34 +00:00
Elliott Hughes
380a3be757 Merge "Fix 32-bit arm unwinding through signal frames." 2014-09-16 21:17:20 +00:00
Elliott Hughes
148dff3ec6 Fix 32-bit arm unwinding through signal frames.
gdb was already okay; libgcc and libunwind need a little extra help.

Bug: 17436734
Change-Id: I1f5108f9877373be078554a1ea4938aa4436204e
2014-09-16 14:10:53 -07:00
Calin Juravle
82f4e27b4b am c417053e: am 370704d6: Merge "Add benchmarks for pthread_rw_locks"
* commit 'c417053e808af9a23e579723aed0d110f6841f2c':
  Add benchmarks for pthread_rw_locks
2014-09-16 19:57:29 +00:00
Elliott Hughes
8790f37b07 am ca2d1258: am 5cba3c6f: Merge "Fix signal trampolines."
* commit 'ca2d1258fc45252d6f60fc33af02501de340ceed':
  Fix signal trampolines.
2014-09-16 19:57:27 +00:00
Dmitriy Ivanov
7c76969732 am 3d76a5a1: am 2997ae83: Merge "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '3d76a5a1c7f7b10aa15ac2abddf12b37b6d45027':
  Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
2014-09-16 19:57:25 +00:00
Dmitriy Ivanov
4cdd5ae852 am fe78876f: am 0b8f6d59: Merge "Add dlfcn_test to glibc test suite."
* commit 'fe78876f94949ba46b76e23e3ab5bb5542565db4':
  Add dlfcn_test to glibc test suite.
2014-09-16 19:57:24 +00:00
Calin Juravle
c417053e80 am 370704d6: Merge "Add benchmarks for pthread_rw_locks"
* commit '370704d69db15ec0b4d24e6412b5d30ded0ffc03':
  Add benchmarks for pthread_rw_locks
2014-09-16 19:52:58 +00:00
Elliott Hughes
ca2d1258fc am 5cba3c6f: Merge "Fix signal trampolines."
* commit '5cba3c6f8e571cd4e6e2468263b778a90331101f':
  Fix signal trampolines.
2014-09-16 19:42:51 +00:00
Dmitriy Ivanov
3d76a5a1c7 am 2997ae83: Merge "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '2997ae83d55486ab86a6100265fa502eff721ce2':
  Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
2014-09-16 19:42:45 +00:00
Dmitriy Ivanov
fe78876f94 am 0b8f6d59: Merge "Add dlfcn_test to glibc test suite."
* commit '0b8f6d592ac20ec81dbc96766123c67655f34842':
  Add dlfcn_test to glibc test suite.
2014-09-16 19:42:44 +00:00
Calin Juravle
b414c62e60 am 370704d6: Merge "Add benchmarks for pthread_rw_locks"
* commit '370704d69db15ec0b4d24e6412b5d30ded0ffc03':
  Add benchmarks for pthread_rw_locks
2014-09-16 17:59:09 +00:00
Calin Juravle
370704d69d Merge "Add benchmarks for pthread_rw_locks" 2014-09-16 17:31:39 +00:00
Calin Juravle
837a962bf5 Add benchmarks for pthread_rw_locks
Benchmarks for the following sequences:
1) pthread_rwlock_rdlock -> pthread_rwlock_unlock
2) pthread_rwlock_wrlock -> pthread_rwlock_unlock

Change-Id: I8d87d4d8afab8637ea7ff5d23a0b3a81d6d40835
2014-09-16 18:02:30 +01:00
Elliott Hughes
78946d4189 am 5cba3c6f: Merge "Fix signal trampolines."
* commit '5cba3c6f8e571cd4e6e2468263b778a90331101f':
  Fix signal trampolines.
2014-09-16 16:52:11 +00:00
Dmitriy Ivanov
9a44ef61ae am 2997ae83: Merge "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL"
* commit '2997ae83d55486ab86a6100265fa502eff721ce2':
  Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
2014-09-16 16:44:36 +00:00
Dmitriy Ivanov
b9263dd173 am 0b8f6d59: Merge "Add dlfcn_test to glibc test suite."
* commit '0b8f6d592ac20ec81dbc96766123c67655f34842':
  Add dlfcn_test to glibc test suite.
2014-09-16 16:44:35 +00:00
Elliott Hughes
5cba3c6f8e Merge "Fix signal trampolines." 2014-09-16 15:19:06 +00:00
Elliott Hughes
0b981eb9d5 am b104f0c4: am 95b0c6a9: Merge "POSIX says <signal.h> gets you ucontext_t."
* commit 'b104f0c4382215acf8e8ed30793140cf13624056':
  POSIX says <signal.h> gets you ucontext_t.
2014-09-16 08:48:12 +00:00
Dmitriy Ivanov
2997ae83d5 Merge "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL" 2014-09-16 01:27:56 +00:00
Dmitriy Ivanov
e8ba50fe0d Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
Symbols from libraries opened with RTLD_LOCAL (default)
  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)

Bug: 17512583
Change-Id: I1758943081a67cf3d49ba5808e061b8251a91964
2014-09-15 17:39:48 -07:00
Dmitriy Ivanov
0b8f6d592a Merge "Add dlfcn_test to glibc test suite." 2014-09-15 22:12:06 +00:00
Elliott Hughes
36f451a6d9 Fix signal trampolines.
* LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86
  kernels will apparently stop supporting the case where SA_RESTORER isn't
  set.

* gdb and libunwind care about the exact instruction sequences, so we need to
  modify the code slightly in a few cases to match what they're looking for.

* gdb also cares about the exact function names (for some architectures),
  so we need to use __restore and __restore_rt rather than __sigreturn and
  __rt_sigreturn.

* It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume
  that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer.

This fixes unwinding through a signal handler in gdb for all architectures.
It doesn't fix libunwind for arm and arm64. I'll keep investigating that...

Bug: 17436734
Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
2014-09-15 15:04:14 -07:00
Dmitriy Ivanov
eb27bbae8f Add dlfcn_test to glibc test suite.
Change-Id: I955e4f7dfcc23ea5c767f967b3532dc31663b876
2014-09-15 15:03:15 -07:00
Elliott Hughes
b104f0c438 am 95b0c6a9: Merge "POSIX says <signal.h> gets you ucontext_t."
* commit '95b0c6a9407d7a4084d956e273ad1697550452d3':
  POSIX says <signal.h> gets you ucontext_t.
2014-09-15 22:02:31 +00:00
Elliott Hughes
c47a5402e7 am 95b0c6a9: Merge "POSIX says <signal.h> gets you ucontext_t."
* commit '95b0c6a9407d7a4084d956e273ad1697550452d3':
  POSIX says <signal.h> gets you ucontext_t.
2014-09-15 22:02:12 +00:00
Elliott Hughes
95b0c6a940 Merge "POSIX says <signal.h> gets you ucontext_t." 2014-09-15 17:17:37 +00:00
Dan Albert
73c923f9f4 am 73c605e2: am 2c581047: Merge "Fix filename in comment in cmath"
* commit '73c605e234eb873f5d198e8e420ac74f5bcc2c81':
  Fix filename in comment in cmath
2014-09-14 20:06:20 +00:00
Christopher Ferris
ca87b17819 am 07ce9767: am 027d2717: Pull input.h from v3.16.1 kernel headers.
* commit '07ce9767884051a781a2dfe7877c2715e9ef712c':
  Pull input.h from v3.16.1 kernel headers.
2014-09-14 20:06:19 +00:00
Dan Albert
73c605e234 am 2c581047: Merge "Fix filename in comment in cmath"
* commit '2c58104718187ae99ea381a19ce8395b5349fded':
  Fix filename in comment in cmath
2014-09-14 19:59:41 +00:00
Christopher Ferris
07ce976788 am 027d2717: Pull input.h from v3.16.1 kernel headers.
* commit '027d2717d067c3706f22bf84dc1226ede7c1566d':
  Pull input.h from v3.16.1 kernel headers.
2014-09-14 19:51:38 +00:00
Dan Albert
2c58104718 Merge "Fix filename in comment in cmath" 2014-09-14 19:33:44 +00:00
m4tx
2214a1ce17 Fix filename in comment in cmath
It looks like the file comment was copy-pasted from ctime. Fixed filename in comment to "math.h".

Change-Id: I27b0c2a7827076a91fc7b63913fad6eee4d6a79e
Signed-off-by: m4tx <m4tx@m4tx.pl>
2014-09-14 16:41:31 +02:00
Elliott Hughes
ce1658bde0 am 35981194: am 85ef3b5b: Merge "Update NOTICE files."
* commit '35981194d8f458884417ecf794f9edb4684f5adf':
  Update NOTICE files.
2014-09-13 17:41:00 +00:00
Elliott Hughes
2e40c43fdf am 79f40ff9: am ae51accf: Merge "Remove an unused file."
* commit '79f40ff929374a5b6b783ef641fc9661cd315c25':
  Remove an unused file.
2014-09-13 17:40:59 +00:00
Elliott Hughes
35981194d8 am 85ef3b5b: Merge "Update NOTICE files."
* commit '85ef3b5b80da353afa24d0ab21c35be01951e0b7':
  Update NOTICE files.
2014-09-13 17:23:58 +00:00
Elliott Hughes
79f40ff929 am ae51accf: Merge "Remove an unused file."
* commit 'ae51accf22a897eecda329202431faa11e0f6015':
  Remove an unused file.
2014-09-13 17:23:57 +00:00
Elliott Hughes
85ef3b5b80 Merge "Update NOTICE files." 2014-09-13 17:01:08 +00:00
Elliott Hughes
ae51accf22 Merge "Remove an unused file." 2014-09-13 17:00:27 +00:00
Elliott Hughes
5c2264a136 Update NOTICE files.
Change-Id: I37a2c297b318b8e1b1ce8b29a7ccc58ba214708a
2014-09-13 09:42:41 -07:00
Elliott Hughes
5681fe8eae Remove an unused file.
Also remove a reference to it and two other files that have already
been removed in a script --- these files were problematic because they
weren't UTF-8.

Change-Id: Ibf597bac1903c34d8d0fe0a09615c42f24d4f23d
2014-09-13 09:24:28 -07:00
Elliott Hughes
26a8eb50a8 POSIX says <signal.h> gets you ucontext_t.
POSIX also says that ucontext_t's uc_sigmask has type sigset_t.

MIPS64 strace needs this.

The #define is to keep chromium off our lawn; otherwise it tries to redefine
all this stuff itself. We should probably clean that up and remove the #define.

Change-Id: I765d6a765a33dca7db33cd8c40f408dc98e5c95b
2014-09-12 20:47:35 -07:00
Elliott Hughes
bd44263101 am 934028eb: am 73d2059f: Merge "Explain why clock(3) isn\'t broken."
* commit '934028eba35b04a965c89c431e7e9a60c06eb17c':
  Explain why clock(3) isn't broken.
2014-09-13 02:28:01 +00:00
Elliott Hughes
f206217660 am 8bd96e06: am 21451f5b: Merge "Get new coshl, sinhl, and tanhl implementations from upstream."
* commit '8bd96e067c2c7c9bdec03de41147e13a531850a9':
  Get new coshl, sinhl, and tanhl implementations from upstream.
2014-09-13 02:27:57 +00:00
Elliott Hughes
df61319444 am 8ce73725: am a40a16ea: Merge "Add a test for pthread_gettid_np."
* commit '8ce73725a3e185d9d36a3913d9713eb9d9062a3c':
  Add a test for pthread_gettid_np.
2014-09-13 02:25:37 +00:00
Elliott Hughes
c63a12128c am 4cc9c6cc: am 69c2d7dc: Merge "Sync libm with upstream."
* commit '4cc9c6cc83e7fcd9d62bac152a9f4fc4c7b8eaf9':
  Sync libm with upstream.
2014-09-13 02:25:13 +00:00
Elliott Hughes
6b9a41e082 am ecd6be3b: am e39e47c6: Merge "Remove "private/bionic_pthread.h"."
* commit 'ecd6be3bd2963ef69500e4b5a0186114f01a282d':
  Remove "private/bionic_pthread.h".
2014-09-13 02:22:42 +00:00
Dmitriy Ivanov
1f08f1a3c8 am b58b8210: am d74aa580: Merge "Fix unload of recursively linked library"
* commit 'b58b821056ab45ece313181fb2d55856957fe2a6':
  Fix unload of recursively linked library
2014-09-13 02:22:41 +00:00
Dmitriy Ivanov
9da0ae4ddd am 75386aa5: am aad92067: Merge "Reformatting"
* commit '75386aa5ffb4f66810b7e267fcd16d69420bb8e2':
  Reformatting
2014-09-13 02:22:41 +00:00
Dmitriy Ivanov
2e3fd896cc am bb5e2968: am 66bbf159: Merge "Refactoring: C++11 style DISABLE_ bionic marcos"
* commit 'bb5e2968ca909903605364e5d7b199d121fcae40':
  Refactoring: C++11 style DISABLE_ bionic marcos
2014-09-13 02:22:40 +00:00
Elliott Hughes
934028eba3 am 73d2059f: Merge "Explain why clock(3) isn\'t broken."
* commit '73d2059f9b3f53446e25d800d64a86efb3bf3f9f':
  Explain why clock(3) isn't broken.
2014-09-13 00:16:26 +00:00
Elliott Hughes
73d2059f9b Merge "Explain why clock(3) isn't broken." 2014-09-12 23:52:13 +00:00
Elliott Hughes
8bd96e067c am 21451f5b: Merge "Get new coshl, sinhl, and tanhl implementations from upstream."
* commit '21451f5bf65ecaa00c9f3b7ac721738b97f41599':
  Get new coshl, sinhl, and tanhl implementations from upstream.
2014-09-12 23:49:31 +00:00
Elliott Hughes
f83c208b82 Explain why clock(3) isn't broken.
Bug: 17441123
Change-Id: I6ee9b7f54bab55b1a8760ce9bcaaa6eab1dcc492
2014-09-12 16:33:37 -07:00
Elliott Hughes
21451f5bf6 Merge "Get new coshl, sinhl, and tanhl implementations from upstream." 2014-09-12 23:13:43 +00:00
Elliott Hughes
8ce73725a3 am a40a16ea: Merge "Add a test for pthread_gettid_np."
* commit 'a40a16eab13b770c3ce80f4e4241dfcd9518022f':
  Add a test for pthread_gettid_np.
2014-09-12 23:12:45 +00:00
Elliott Hughes
c729d4f237 Get new coshl, sinhl, and tanhl implementations from upstream.
Change-Id: I92f9cd53d12efb2e0f4f8a9590b9fe42398233f6
2014-09-12 16:09:40 -07:00
Elliott Hughes
a40a16eab1 Merge "Add a test for pthread_gettid_np." 2014-09-12 22:52:38 +00:00
Elliott Hughes
8fb639ca91 Add a test for pthread_gettid_np.
Bug: 17475191
Change-Id: I8c6a2f4ceba2d24a77ae9a21269edce523aea421
2014-09-12 14:43:07 -07:00
Elliott Hughes
4cc9c6cc83 am 69c2d7dc: Merge "Sync libm with upstream."
* commit '69c2d7dc6434c7e7e9bd22797deb7f727199ab0c':
  Sync libm with upstream.
2014-09-12 21:34:56 +00:00
Elliott Hughes
69c2d7dc64 Merge "Sync libm with upstream." 2014-09-12 21:07:48 +00:00
Elliott Hughes
460ad7454a Sync libm with upstream.
Change-Id: I8ac8ee52122ee19a2e423c3211092023cb4896eb
2014-09-12 14:00:02 -07:00
Elliott Hughes
ecd6be3bd2 am e39e47c6: Merge "Remove "private/bionic_pthread.h"."
* commit 'e39e47c6b377170d696c6b9b5b523a28c1382ca4':
  Remove "private/bionic_pthread.h".
2014-09-12 20:08:45 +00:00
Dmitriy Ivanov
b58b821056 am d74aa580: Merge "Fix unload of recursively linked library"
* commit 'd74aa580354037b9972524e9d654c0a336974838':
  Fix unload of recursively linked library
2014-09-12 20:08:44 +00:00
Dmitriy Ivanov
75386aa5ff am aad92067: Merge "Reformatting"
* commit 'aad92067bf4eecda81a4c331ee4dec70483c5104':
  Reformatting
2014-09-12 20:08:42 +00:00
Dmitriy Ivanov
bb5e2968ca am 66bbf159: Merge "Refactoring: C++11 style DISABLE_ bionic marcos"
* commit '66bbf1595c0fc25d4bc47457d8020b11e135996d':
  Refactoring: C++11 style DISABLE_ bionic marcos
2014-09-12 20:08:41 +00:00
Elliott Hughes
f0a6d5db8f am 0654250e: am 8d8a789c: Merge "Expose __swsetup for LP32 binary compatibility."
* commit '0654250eb99b825abfc4368063c725526018ef77':
  Expose __swsetup for LP32 binary compatibility.
2014-09-12 19:27:34 +00:00
Dmitriy Ivanov
c5cb043819 am 5a6e31c3: am 6487f0d8: Merge "Add IFUNC support for arm64 and IRELATIVE reloc"
* commit '5a6e31c3cbaf5ebbcc6cc6221a12ee1ce10e1e82':
  Add IFUNC support for arm64 and IRELATIVE reloc
2014-09-12 19:27:33 +00:00
Elliott Hughes
d455758e99 am 7f4c7060: am 5920a9ad: Merge "Add pthread_gettid_np and re-expose __get_thread for LP32."
* commit '7f4c7060f0856da7f3624f87b4547615c29130b8':
  Add pthread_gettid_np and re-expose __get_thread for LP32.
2014-09-12 19:27:33 +00:00
Elliott Hughes
6cd84274b8 am da7fe217: am 7e00b44e: Expose __swsetup for LP32 binary compatibility.
* commit 'da7fe217d8ef5aaa1c7f8837719e1c7f1d482679':
  Expose __swsetup for LP32 binary compatibility.
2014-09-12 19:27:27 +00:00
Elliott Hughes
1bd1f3a401 am 66265e80: am 27efc488: Add pthread_gettid_np and re-expose __get_thread for LP32.
* commit '66265e80a13e60ac06153af88936fb4c90a99f66':
  Add pthread_gettid_np and re-expose __get_thread for LP32.
2014-09-12 19:27:27 +00:00
Elliott Hughes
3e4ae3ec09 am d415e27d: am 9e833bf0: Fix mips __fadvise64.S build failure.
* commit 'd415e27d5bcfaba5b8fcd868d98173db708ffa9c':
  Fix mips __fadvise64.S build failure.
2014-09-12 19:19:40 +00:00
Elliott Hughes
ba55c8984e am 5691dcfc: am ea66004c: Merge "Fix mips __fadvise64.S build failure."
* commit '5691dcfc0d8b1418e53d75b3c3428f8f65a87727':
  Fix mips __fadvise64.S build failure.
2014-09-12 19:17:48 +00:00
Elliott Hughes
c3932cca0b am 65e61977: am 176c3278: Merge "Add posix_fadvise(3)." into lmp-dev
* commit '65e619775e3f4517edc7ac68c6b85a9443a67da7':
  Add posix_fadvise(3).
2014-09-12 19:17:03 +00:00
Elliott Hughes
612db11844 am db1e9581: am 33df10f2: Merge "Add posix_fadvise(3)."
* commit 'db1e9581098ad19465d2d81fbe368743b648a071':
  Add posix_fadvise(3).
2014-09-12 19:16:56 +00:00
Elliott Hughes
e39e47c6b3 Merge "Remove "private/bionic_pthread.h"." 2014-09-12 18:43:05 +00:00
Elliott Hughes
0f001b67fe Remove "private/bionic_pthread.h".
Bug: 17476168
Change-Id: Id642987e641de81e914a28daea4ffe9d11e090ed
2014-09-12 11:35:05 -07:00
Dmitriy Ivanov
d74aa58035 Merge "Fix unload of recursively linked library" 2014-09-12 16:55:42 +00:00
Dmitriy Ivanov
aad92067bf Merge "Reformatting" 2014-09-12 16:50:29 +00:00
Dmitriy Ivanov
66bbf1595c Merge "Refactoring: C++11 style DISABLE_ bionic marcos" 2014-09-12 16:50:05 +00:00
Dmitriy Ivanov
6abf624d12 Reformatting
No functional changes.

Change-Id: If71775e5fc207e91ebd31ba3c5f9d2c13dc8dada
2014-09-12 09:43:13 -07:00
Elliott Hughes
0654250eb9 am 8d8a789c: Merge "Expose __swsetup for LP32 binary compatibility."
* commit '8d8a789c49ffb6b71e4b8f34df937cfaaff86e40':
  Expose __swsetup for LP32 binary compatibility.
2014-09-12 05:59:18 +00:00
Dmitriy Ivanov
5a6e31c3cb am 6487f0d8: Merge "Add IFUNC support for arm64 and IRELATIVE reloc"
* commit '6487f0d8341b00b476995e0174dc92e5ae8efbbe':
  Add IFUNC support for arm64 and IRELATIVE reloc
2014-09-12 05:59:16 +00:00
Elliott Hughes
7f4c7060f0 am 5920a9ad: Merge "Add pthread_gettid_np and re-expose __get_thread for LP32."
* commit '5920a9ad5fd9f8d515c683e164f946bcfef1f1c3':
  Add pthread_gettid_np and re-expose __get_thread for LP32.
2014-09-12 05:59:16 +00:00
Elliott Hughes
da7fe217d8 am 7e00b44e: Expose __swsetup for LP32 binary compatibility.
* commit '7e00b44e80d6e38b8ab86d0ebc86b666c0ac2ef6':
  Expose __swsetup for LP32 binary compatibility.
2014-09-12 05:48:54 +00:00
Elliott Hughes
66265e80a1 am 27efc488: Add pthread_gettid_np and re-expose __get_thread for LP32.
* commit '27efc48814b8153c55cbcd0af5d9add824816e69':
  Add pthread_gettid_np and re-expose __get_thread for LP32.
2014-09-12 05:48:52 +00:00
Dmitriy Ivanov
a6ac54a215 Fix unload of recursively linked library
Expanded test for recursive libs. Fixed bug with unnecessary
  soinfo_free of already loaded library.

Change-Id: I2cc19f2650c8b12a35feeac127ef608ebba44d88
2014-09-11 22:40:48 -07:00
Elliott Hughes
8d8a789c49 Merge "Expose __swsetup for LP32 binary compatibility." 2014-09-12 01:27:45 +00:00
Elliott Hughes
5f35710fad Expose __swsetup for LP32 binary compatibility.
(cherry-pick of 7e00b44e80d6e38b8ab86d0ebc86b666c0ac2ef6.)

Bug: 17476127
Change-Id: I0ef1355ac913d782c268a638f88642d6cfc236c2
2014-09-11 18:23:46 -07:00
Dmitriy Ivanov
6487f0d834 Merge "Add IFUNC support for arm64 and IRELATIVE reloc" 2014-09-12 00:40:12 +00:00
Dmitriy Ivanov
9aea164457 Add IFUNC support for arm64 and IRELATIVE reloc
There are number of changes in the way IFUNC related relocations are done:
 1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.
 2. IFUNC relocations are now relying on static linker to generate
    them in correct order - this removes necessety of additional
    relocation pass for ifuncs.
 3. Related to 2: rela?.dyn relocations are preformed before .plt ones.
 4. Ifunc are resolved on symbol lookup this approach allowed to avoid
    mprotect(PROT_WRITE) call on r-x program segments.

Bug: 17399706
Bug: 17177284
Change-Id: I414dd3e82bd47cc03442c5dfc7c279949aec51ed
2014-09-11 16:30:45 -07:00
Elliott Hughes
5920a9ad5f Merge "Add pthread_gettid_np and re-expose __get_thread for LP32." 2014-09-11 23:25:46 +00:00
Elliott Hughes
a4831cb4a3 Add pthread_gettid_np and re-expose __get_thread for LP32.
A lot of third-party code calls the private __get_thread symbol,
often as part of a backport of bionic's pthread_rwlock implementation.
Hopefully this will go away for LP64 (since you're guaranteed the
real implementation there), but there are still APIs that take a tid
and no way to convert between a pthread_t and a tid. pthread_gettid_np
is a public API for that. To aid the transition, make __get_thread
available again for LP32.

(cherry-pick of 27efc48814b8153c55cbcd0af5d9add824816e69.)

Bug: 14079438
Change-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1
2014-09-11 16:22:50 -07:00
Elliott Hughes
d415e27d5b am 9e833bf0: Fix mips __fadvise64.S build failure.
* commit '9e833bf0cf2c5bc0e6b65e4d96aa4f2b33113771':
  Fix mips __fadvise64.S build failure.
2014-09-11 18:32:24 +00:00
Elliott Hughes
5691dcfc0d am ea66004c: Merge "Fix mips __fadvise64.S build failure."
* commit 'ea66004c4a051e40c49314d808e7359634f6c641':
  Fix mips __fadvise64.S build failure.
2014-09-11 17:32:03 +00:00
Lorenzo Colitti
77f01f4306 am 993a2315: am 33a73bfa: When comparing DNS server configs, also compare number of servers
* commit '993a2315a7ddc786ce9180258aa3db498bf9326e':
  When comparing DNS server configs, also compare number of servers
2014-09-11 17:27:10 +00:00
Elliott Hughes
ea66004c4a Merge "Fix mips __fadvise64.S build failure." 2014-09-11 17:12:49 +00:00
Elliott Hughes
9990b3973b Fix mips __fadvise64.S build failure.
Bug: 12449798
Change-Id: I0663b741108ba2f1d286904d6414b3ff4d475551
2014-09-11 10:10:08 -07:00
Elliott Hughes
65e619775e am 176c3278: Merge "Add posix_fadvise(3)." into lmp-dev
* commit '176c32787c53e720bf4664592fd0b8ea4ffbdd75':
  Add posix_fadvise(3).
2014-09-11 16:08:32 +00:00
Elliott Hughes
db1e958109 am 33df10f2: Merge "Add posix_fadvise(3)."
* commit '33df10f284a8adbf58f9734c0f43537db4206b2c':
  Add posix_fadvise(3).
2014-09-11 15:58:49 +00:00
Elliott Hughes
33df10f284 Merge "Add posix_fadvise(3)." 2014-09-11 15:46:44 +00:00
Elliott Hughes
b587f339db Add posix_fadvise(3).
(cherry-pick of 00008263782e484020420c606f7d145fe7d0a4d8.)

Bug: 12449798
Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
2014-09-11 08:45:46 -07:00
Lorenzo Colitti
993a2315a7 am 33a73bfa: When comparing DNS server configs, also compare number of servers
* commit '33a73bfa0712c483830e4c9abbf4d6a0551478bf':
  When comparing DNS server configs, also compare number of servers
2014-09-11 00:13:20 +00:00
Lorenzo Colitti
b5e7bd0013 am da0ed4cb: am c71483c0: Merge "When comparing DNS server configs, also compare number of servers"
* commit 'da0ed4cbfa10eb3f6a48ef116ae0441239daf7bf':
  When comparing DNS server configs, also compare number of servers
2014-09-09 15:03:50 +00:00
Lorenzo Colitti
da0ed4cbfa am c71483c0: Merge "When comparing DNS server configs, also compare number of servers"
* commit 'c71483c0b38a6b4f2675f0bffa221dcf175c34ac':
  When comparing DNS server configs, also compare number of servers
2014-09-09 10:42:23 +00:00
Lorenzo Colitti
c71483c0b3 Merge "When comparing DNS server configs, also compare number of servers" 2014-09-09 10:22:18 +00:00
Lorenzo Colitti
bce18c9163 When comparing DNS server configs, also compare number of servers
Bug: 16070602
Change-Id: I605f1cca50b08479ebcad290b3bd179f59be8a96
2014-09-09 19:20:26 +09:00
Dmitriy Ivanov
9c8ff91dcc am 06bd5e2d: am 3c3624f3: Merge "Load libraries in breadth-first order"
* commit '06bd5e2d0ade82b9fc70fd8928c1746ca529a2f4':
  Load libraries in breadth-first order
2014-09-09 01:25:51 +00:00
Dmitriy Ivanov
06bd5e2d0a am 3c3624f3: Merge "Load libraries in breadth-first order"
* commit '3c3624f3df14590e7213d35c3b39a0a11c7d2d34':
  Load libraries in breadth-first order
2014-09-09 01:11:41 +00:00
Dmitriy Ivanov
d9ff722661 Refactoring: C++11 style DISABLE_ bionic marcos
Enable the -std=gnu++11 flag for libstdc++ static and
  dynamic libs.

  ScopeGuard uses DISABLE_ macros instead of '= delete';

Change-Id: I07e21b306f95fffd49345f7fa136cfdac61e0225
2014-09-08 17:51:31 -07:00
Dmitriy Ivanov
3c3624f3df Merge "Load libraries in breadth-first order" 2014-09-09 00:49:38 +00:00
Elliott Hughes
d7928dc803 am 5574335d: am 671f96cd: Merge "Ensure __set_errno is still visible on LP32."
* commit '5574335dc5f380b96aa1f93caeceeeb1bc69bbe2':
  Ensure __set_errno is still visible on LP32.
2014-09-09 00:11:52 +00:00
Elliott Hughes
4a454760b5 am e70e541e: am 201f36d2: Merge "Don\'t expose non-standard basename_r and dirname_r in LP64."
* commit 'e70e541e7f97ddef3c262bbd71a01710d9f57e65':
  Don't expose non-standard basename_r and dirname_r in LP64.
2014-09-09 00:11:52 +00:00
Elliott Hughes
5574335dc5 am 671f96cd: Merge "Ensure __set_errno is still visible on LP32."
* commit '671f96cd440d306dc2baf5e8631e927cd1aa759d':
  Ensure __set_errno is still visible on LP32.
2014-09-09 00:05:24 +00:00
Elliott Hughes
e70e541e7f am 201f36d2: Merge "Don\'t expose non-standard basename_r and dirname_r in LP64."
* commit '201f36d23bb778b29c8d305fa40a41990e0487bc':
  Don't expose non-standard basename_r and dirname_r in LP64.
2014-09-09 00:05:23 +00:00
Elliott Hughes
671f96cd44 Merge "Ensure __set_errno is still visible on LP32." 2014-09-08 23:47:53 +00:00
Elliott Hughes
011e111d29 Ensure __set_errno is still visible on LP32.
The use of the .hidden directive to avoid going via the PLT for
__set_errno had the side-effect of actually making __set_errno
hidden (which is odd because assembler directives don't usually
affect symbols defined in a different file --- you can't even
create a weak reference to a symbol that's defined in a different
file).

This change switches the system call stubs over to a new always-hidden
__set_errno_internal and has a visible __set_errno on LP32 just for
binary compatibility with old NDK apps.

(cherry-pick of 7efad83d430f4d824f2aaa75edea5106f6ff8aae.)

Bug: 17423135
Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
2014-09-08 16:46:50 -07:00
Elliott Hughes
201f36d23b Merge "Don't expose non-standard basename_r and dirname_r in LP64." 2014-09-08 23:46:04 +00:00
Elliott Hughes
cf5fc80c3e Don't expose non-standard basename_r and dirname_r in LP64.
(cherry-pick of f0e9458ea596227720fa745df15f5357f6c0c8f6.)

Bug: 17407423
Change-Id: I47fe499a4c396bf09d7b78fd828728d04777398b
2014-09-08 16:44:48 -07:00
Elliott Hughes
eeb13c6bdb am 938473a7: resolved conflicts for merge of 7efad83d to lmp-dev-plus-aosp
* commit '938473a7f031822d7449624f5844c07d23814422':
  Ensure __set_errno is still visible on LP32.
2014-09-08 23:32:32 +00:00
Elliott Hughes
938473a7f0 resolved conflicts for merge of 7efad83d to lmp-dev-plus-aosp
Change-Id: I3994c3c69e187e08d69642e097de14b5040c5b3b
2014-09-08 16:21:24 -07:00
Dmitriy Ivanov
14669a939d Load libraries in breadth-first order
This patch fixes the problem with symbol search order
  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
  and ld_preloads in correct order.

Bug: https://code.google.com/p/android/issues/detail?id=74255
Change-Id: If1ba5c807322409faa914e27ecb675e2c4541f0d
Attempt: 2
2014-09-08 13:02:50 -07:00
Elliott Hughes
b614b05942 am 2af51cac: Merge "resolved conflicts for merge of c8f6b82f to lmp-dev-plus-aosp" into lmp-dev-plus-aosp
* commit '2af51cacde8e8e15639352f96e46cbc9e9e6a4f6':
  Don't expose non-standard basename_r and dirname_r in LP64.
2014-09-08 18:52:42 +00:00
Elliott Hughes
347e873bfb am 6b779c6b: am 51c8355d: Add arc4random_addrandom binary compatibility.
* commit '6b779c6b61ec662f19f9ea30fd003c770799196c':
  Add arc4random_addrandom binary compatibility.
2014-09-08 18:52:42 +00:00
Elliott Hughes
2af51cacde Merge "resolved conflicts for merge of c8f6b82f to lmp-dev-plus-aosp" into lmp-dev-plus-aosp 2014-09-08 18:41:54 +00:00
Elliott Hughes
08df25419f resolved conflicts for merge of c8f6b82f to lmp-dev-plus-aosp
Change-Id: I03a4645eb5fbb54e41da25018729b270ba0ed48e
2014-09-08 11:41:30 -07:00
Elliott Hughes
6b779c6b61 am 51c8355d: Add arc4random_addrandom binary compatibility.
* commit '51c8355d5cf4b83ccd2ad250ca4c61a616356c2b':
  Add arc4random_addrandom binary compatibility.
2014-09-08 18:36:55 +00:00
Elliott Hughes
b03d3102c3 am ffa8672b: am d3d89f0d: Merge "Add arc4random_addrandom binary compatibility."
* commit 'ffa8672bd5722b9bb2f13dcabffb2814b2edd0ea':
  Add arc4random_addrandom binary compatibility.
2014-09-08 18:26:26 +00:00
Elliott Hughes
ffa8672bd5 am d3d89f0d: Merge "Add arc4random_addrandom binary compatibility."
* commit 'd3d89f0d28aba2db9f11cc0a9b3a865fa1d9d265':
  Add arc4random_addrandom binary compatibility.
2014-09-08 18:11:52 +00:00
Elliott Hughes
d3d89f0d28 Merge "Add arc4random_addrandom binary compatibility." 2014-09-08 17:53:04 +00:00
Elliott Hughes
fc829736e1 Add arc4random_addrandom binary compatibility.
This was in <stdlib.h> in older releases. It's no longer used, but we can
preserve backwards compatibility by making it a no-op.

(cherry-pick of 51c8355d5cf4b83ccd2ad250ca4c61a616356c2b.)

Bug: 16205834
Change-Id: Idde7b46df4f253e39675600bcf82352879a716e7
2014-09-08 10:52:28 -07:00
Christopher Ferris
d790900d5f am 9e7abe2e: am b4673c41: Merge "Add dlmalloc_usable_size for 32 bit arches."
* commit '9e7abe2e60c16ca3ffb3d1839c040fe2c3d34551':
  Add dlmalloc_usable_size for 32 bit arches.
2014-09-06 20:37:54 +00:00
Christopher Ferris
9e7abe2e60 am b4673c41: Merge "Add dlmalloc_usable_size for 32 bit arches."
* commit 'b4673c41025f3a16804aff8438c2810c739a11ef':
  Add dlmalloc_usable_size for 32 bit arches.
2014-09-06 20:28:37 +00:00
Christopher Ferris
7f6006d232 am eb1dd673: am 47ed03f7: Merge "Add dlmalloc_usable_size for 32 bit arches." into lmp-dev
* commit 'eb1dd673ecb660a56c19a04697a14ed56db5eb91':
  Add dlmalloc_usable_size for 32 bit arches.
2014-09-06 20:24:21 +00:00
Christopher Ferris
b4673c4102 Merge "Add dlmalloc_usable_size for 32 bit arches." 2014-09-06 20:17:02 +00:00
Christopher Ferris
eb1dd673ec am 47ed03f7: Merge "Add dlmalloc_usable_size for 32 bit arches." into lmp-dev
* commit '47ed03f70c6c9addc7f05e4ee4dc71c96d215105':
  Add dlmalloc_usable_size for 32 bit arches.
2014-09-06 20:14:17 +00:00
Christopher Ferris
f903558446 Add dlmalloc_usable_size for 32 bit arches.
Bug: 17337831

(cherry picked from commit 1c365cb494d8cab1b639ecef21514425647e606b)

Change-Id: Ice100e42eeac4b9c3b77737a546ec33174adcb2f
2014-09-06 13:06:57 -07:00
Ying Wang
dc787b75d5 am 455577d3: am e07b4da5: Merge "Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker."
* commit '455577d3ce64135fcb6ce33cd6d3c73b06189e40':
  Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker.
2014-09-06 00:10:28 +00:00
Dmitriy Ivanov
2f06081a97 am 2a0105f9: am 320a01d5: Merge "Revert "Load libraries in breadth-first order""
* commit '2a0105f95d91653626996fa3e8416bfcb41d3048':
  Revert "Load libraries in breadth-first order"
2014-09-06 00:10:28 +00:00
Ying Wang
455577d3ce am e07b4da5: Merge "Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker."
* commit 'e07b4da53ddcb34939c1b5a88db36dec34352add':
  Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker.
2014-09-05 23:58:08 +00:00
Dmitriy Ivanov
2a0105f95d am 320a01d5: Merge "Revert "Load libraries in breadth-first order""
* commit '320a01d51693408dad859094ca52e5f315ff1d15':
  Revert "Load libraries in breadth-first order"
2014-09-05 23:58:07 +00:00
Ying Wang
e07b4da53d Merge "Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker." 2014-09-05 23:41:25 +00:00
Dmitriy Ivanov
fa0f9cc9f1 am 4a4dc7b3: am b3ebfecd: Merge "Fix order of soinfo links (repairs libcxx tests)."
* commit '4a4dc7b37c3a26a349d771755fb8bfb0ba4a05c9':
  Fix order of soinfo links (repairs libcxx tests).
2014-09-05 23:38:02 +00:00
Dmitriy Ivanov
320a01d516 Merge "Revert "Load libraries in breadth-first order"" 2014-09-05 23:36:22 +00:00
Dmitriy Ivanov
498eb18b82 Revert "Load libraries in breadth-first order"
This reverts commit a3ad450a2e3fb6b3fe359683b247eba20896f646.

Change-Id: Ia2b838ad2159c643b80c514849582f4b4f4f40e5
2014-09-05 16:27:54 -07:00
Dmitriy Ivanov
4a4dc7b37c am b3ebfecd: Merge "Fix order of soinfo links (repairs libcxx tests)."
* commit 'b3ebfecdae05e29062bf4d0234239a54a2733ce0':
  Fix order of soinfo links (repairs libcxx tests).
2014-09-05 23:27:30 +00:00
Ying Wang
f9e147b0bf Use LOCAL_POST_LINK_CMD to insert the objcopy command for linker.
Previously we duplicated code in build/core/executable.mk and it's hard
to maintain. LOCAL_POST_LINK_CMD is a clean solution for this.

Bug: 17403674
Change-Id: I8c054bf782af68cf1f88b8d787a78ca74a7968b5
2014-09-05 16:16:35 -07:00
Dmitriy Ivanov
b3ebfecdae Merge "Fix order of soinfo links (repairs libcxx tests)." 2014-09-05 23:11:19 +00:00
Dmitriy Ivanov
b2a30ee8d2 Fix order of soinfo links (repairs libcxx tests).
Change-Id: Iee9de09657351cd6a7512784ca797e4b84cdd98b
2014-09-05 16:01:47 -07:00
Chih-Hung Hsieh
6d4d735ae5 am 1325d50c: am 8adace5f: Merge "Enable clang compilation with libc but not linker."
* commit '1325d50c721717032bce940554e21f0cc28c08e5':
  Enable clang compilation with libc but not linker.
2014-09-05 19:21:38 +00:00
Chih-Hung Hsieh
1325d50c72 am 8adace5f: Merge "Enable clang compilation with libc but not linker."
* commit '8adace5f2c185bd616f79159eaf90d2982157069':
  Enable clang compilation with libc but not linker.
2014-09-05 19:11:06 +00:00
Chih-Hung Hsieh
8adace5f2c Merge "Enable clang compilation with libc but not linker." 2014-09-05 18:54:48 +00:00
Chih-Hung Hsieh
b58db8b083 Enable clang compilation with libc but not linker.
Clang is still disabled for x86 and x86_64 long double code,
for x86_64 special assembly instruction, and the linker module.

BUG: 17163651
BUG: 17302991
BUG: 17403674
Change-Id: I43c5f5f0ddc0c2a31918f00b57150dadd8f3f26b
2014-09-05 11:18:35 -07:00
Elliott Hughes
911b47f684 am 3fd8eee5: am 5beddb7d: Fix pthread_attr_getstack__main_thread.
* commit '3fd8eee516e9376351c0c06af47154765f1ca647':
  Fix pthread_attr_getstack__main_thread.
2014-09-05 15:43:29 +00:00
Elliott Hughes
3fd8eee516 am 5beddb7d: Fix pthread_attr_getstack__main_thread.
* commit '5beddb7d642524ecb6655ab2823caf2add679917':
  Fix pthread_attr_getstack__main_thread.
2014-09-05 15:32:44 +00:00
Dmitriy Ivanov
feb717abdd am b7f09d06: am 001815ed: Merge "Reset enviroment for math_tests"
* commit 'b7f09d065473adf6b504ccb08f0b0d25c09e70b4':
  Reset enviroment for math_tests
2014-09-05 02:33:04 +00:00
Dmitriy Ivanov
b7f09d0654 am 001815ed: Merge "Reset enviroment for math_tests"
* commit '001815ed197280409d08e9622890e7462c6e6831':
  Reset enviroment for math_tests
2014-09-05 02:21:28 +00:00
Dmitriy Ivanov
001815ed19 Merge "Reset enviroment for math_tests" 2014-09-05 01:56:44 +00:00
Dmitriy Ivanov
7b956ede3f Reset enviroment for math_tests
Bug: 17390824
Change-Id: I42f4c8d9199a2efe7641f0b0e64580cacb5695da
2014-09-04 18:38:21 -07:00
Elliott Hughes
32f8fef668 am 5c5bb4d0: am aca9cae3: Merge "Fix pthread_attr_getstack__main_thread."
* commit '5c5bb4d04ea5221088b0b3cdb63225237c1ff11a':
  Fix pthread_attr_getstack__main_thread.
2014-09-04 23:46:35 +00:00
Elliott Hughes
d3e1b1c59c am fc8f246a: am c74a7680: Merge "Fix mips signed/unsigned signal_test.cpp build breakage."
* commit 'fc8f246a49240b6fc7ed0d83a971219989fd290a':
  Fix mips signed/unsigned signal_test.cpp build breakage.
2014-09-04 23:36:33 +00:00
Dmitriy Ivanov
ff5a8672e1 am 4effe38a: am 44352f5f: Merge "Revert "Register __libc_fini as early as possible.""
* commit '4effe38ae68170539869753aa77855807ed4b970':
  Revert "Register __libc_fini as early as possible."
2014-09-04 23:36:32 +00:00
Dmitriy Ivanov
ec6099ec64 am 24d40f2d: am c0cd9ce5: Merge "Revert "Fix arm64 build""
* commit '24d40f2df06fc5fafd938bd828ba7c9e264c2a0d':
  Revert "Fix arm64 build"
2014-09-04 23:36:32 +00:00
Elliott Hughes
5c5bb4d04e am aca9cae3: Merge "Fix pthread_attr_getstack__main_thread."
* commit 'aca9cae30972ba2cd7a1158520dccd83b056513c':
  Fix pthread_attr_getstack__main_thread.
2014-09-04 23:33:50 +00:00
Elliott Hughes
fc8f246a49 am c74a7680: Merge "Fix mips signed/unsigned signal_test.cpp build breakage."
* commit 'c74a7680a409cd9f0cd3847b59e20ac16ad05806':
  Fix mips signed/unsigned signal_test.cpp build breakage.
2014-09-04 23:22:50 +00:00
Dmitriy Ivanov
4effe38ae6 am 44352f5f: Merge "Revert "Register __libc_fini as early as possible.""
* commit '44352f5f7f06ff9383d695b0a7d4243f5268f430':
  Revert "Register __libc_fini as early as possible."
2014-09-04 23:22:37 +00:00
Dmitriy Ivanov
24d40f2df0 am c0cd9ce5: Merge "Revert "Fix arm64 build""
* commit 'c0cd9ce5df753161aabb393420a8ada8f369b551':
  Revert "Fix arm64 build"
2014-09-04 23:22:37 +00:00
Elliott Hughes
aca9cae309 Merge "Fix pthread_attr_getstack__main_thread." 2014-09-04 23:20:53 +00:00
Elliott Hughes
27a9aed819 Fix pthread_attr_getstack__main_thread.
There were two problems here:

* This would fail when run with unlimited stack, because it didn't know
  that bionic reports unlimited stacks as 8MiB.

* This would leave RLIMIT_STACK small, causing failures to exec (so the
  popen and system tests would fail).

Change-Id: I5b92dc64ca089400223b2d9a3743e9b9d57c1bc2
2014-09-04 16:09:25 -07:00
Elliott Hughes
c74a7680a4 Merge "Fix mips signed/unsigned signal_test.cpp build breakage." 2014-09-04 22:48:16 +00:00
Elliott Hughes
aa13e839f0 Fix mips signed/unsigned signal_test.cpp build breakage.
Change-Id: I045ce017c0c51e1843193759a2eb6fc5b93e3867
2014-09-04 15:43:10 -07:00
Elliott Hughes
32db68c510 am ac5c1119: am 05f0bfd6: Merge "Don\'t mask out SA_RESTORER from sa_flags."
* commit 'ac5c111924097387499f6163cf3bf2275690de9b':
  Don't mask out SA_RESTORER from sa_flags.
2014-09-04 22:33:01 +00:00
Chih-Hung Hsieh
3e8c441de9 am 020ccc3c: am 4ee7c325: Merge "Disable Clang, due to x86 LDBL_MANT_DIG errors."
* commit '020ccc3c75866ccf333c4a6ebf279002ead371de':
  Disable Clang, due to x86 LDBL_MANT_DIG errors.
2014-09-04 22:33:01 +00:00
Elliott Hughes
ac5c111924 am 05f0bfd6: Merge "Don\'t mask out SA_RESTORER from sa_flags."
* commit '05f0bfd6c56746aa4f737804ebb62b555dc0d921':
  Don't mask out SA_RESTORER from sa_flags.
2014-09-04 22:20:50 +00:00
Chih-Hung Hsieh
020ccc3c75 am 4ee7c325: Merge "Disable Clang, due to x86 LDBL_MANT_DIG errors."
* commit '4ee7c325df9662b344304f207faf73cc9c3b735c':
  Disable Clang, due to x86 LDBL_MANT_DIG errors.
2014-09-04 22:20:48 +00:00
Dmitriy Ivanov
44352f5f7f Merge "Revert "Register __libc_fini as early as possible."" 2014-09-04 21:55:59 +00:00
Dmitriy Ivanov
c0cd9ce5df Merge "Revert "Fix arm64 build"" 2014-09-04 21:55:55 +00:00
Dmitriy Ivanov
4b41555ba5 Revert "Register __libc_fini as early as possible."
This reverts commit e880c736d6c1d947f6309d5f1f63c74e8345c6a6.

Change-Id: Ide83e442eb5dbfef5298a15bc602c3fe1dda1862
2014-09-04 21:54:34 +00:00
Dmitriy Ivanov
f0d8970435 Revert "Fix arm64 build"
This reverts commit 5c1a7fdbd5a085024019b4c9307d2b2ace35df5e.

Change-Id: Ia5fea0d6a8f59700edce0742e2271b5f02a5d87c
2014-09-04 21:53:14 +00:00
Elliott Hughes
05f0bfd6c5 Merge "Don't mask out SA_RESTORER from sa_flags." 2014-09-04 21:03:34 +00:00
Elliott Hughes
afe58ad989 Don't mask out SA_RESTORER from sa_flags.
glibc doesn't do this, and we probably shouldn't either.

Bug: 16703540
Change-Id: Id5b93c3782e34024a9916463348e8f3caff191bf
2014-09-04 13:54:42 -07:00
Chih-Hung Hsieh
4ee7c325df Merge "Disable Clang, due to x86 LDBL_MANT_DIG errors." 2014-09-04 20:44:34 +00:00
Chih-Hung Hsieh
356a6249d8 Disable Clang, due to x86 LDBL_MANT_DIG errors.
Clang -m32 has incorrect sizeof(long double) = 12.
With -m64, LDBL_MANT_DIG is incorrect 64.

BUG: 17163651
Change-Id: I4b157aa1a8572c3a10aece6070e119a292ab8e83
2014-09-04 12:35:19 -07:00
Elliott Hughes
60a46deba3 am 32dc56a1: am 071bed80: Merge "_GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE."
* commit '32dc56a1ca57b7ea904fe9fd2c0ef43b544561f5':
  _GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE.
2014-09-04 17:24:01 +00:00
Elliott Hughes
32dc56a1ca am 071bed80: Merge "_GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE."
* commit '071bed8091cab4e070a1f5e6b2eb0dd1141f0498':
  _GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE.
2014-09-04 17:16:01 +00:00
Elliott Hughes
071bed8091 Merge "_GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE." 2014-09-04 17:02:10 +00:00
Elliott Hughes
fc8974b7aa _GNU_SOURCE implies _BSD_SOURCE and the latest _POSIX_C_SOURCE.
This showed up as open_memstream not being visible in <stdio.h>
if only _GNU_SOURCE was defined.

Bug: 17361504
Change-Id: I38f9843f4e6ee770a6325ad50f779bda5495ffca
2014-09-04 08:53:16 -07:00
Dmitriy Ivanov
eb5009617d am 04ecc77d: am 1737b159: Merge "Load libraries in breadth-first order"
* commit '04ecc77df663d9a0b55e5b2e503657b5ad3a75e6':
  Load libraries in breadth-first order
2014-09-04 02:09:52 +00:00
Dmitriy Ivanov
04ecc77df6 am 1737b159: Merge "Load libraries in breadth-first order"
* commit '1737b159374468a21859d97d8be70a726af0ec9e':
  Load libraries in breadth-first order
2014-09-04 01:48:48 +00:00
Dmitriy Ivanov
1737b15937 Merge "Load libraries in breadth-first order" 2014-09-04 00:59:23 +00:00
Elliott Hughes
3333a8b2f4 am 40acbd69: am 1e010d60: Add back a dummy arc4random_stir for compatibility.
* commit '40acbd6904ef56b7a8d13904a37cf78b39763fe3':
  Add back a dummy arc4random_stir for compatibility.
2014-09-04 00:16:06 +00:00
Dmitriy Ivanov
d9b342498d am f851d60c: am 8f3b8f52: Merge "Fix arm64 build"
* commit 'f851d60c13899773f9b0f5a1296f1ebd2cf99b59':
  Fix arm64 build
2014-09-03 23:55:38 +00:00
Elliott Hughes
621fc3b046 am d05ad930: am 58bb54c3: Merge "Add back a dummy arc4random_stir for compatibility."
* commit 'd05ad93003aa3ebbf87aa040ee8eb93396b80fd6':
  Add back a dummy arc4random_stir for compatibility.
2014-09-03 23:55:37 +00:00
Elliott Hughes
40acbd6904 am 1e010d60: Add back a dummy arc4random_stir for compatibility.
* commit '1e010d60397db706cd3d1c4d5701a2bced441aa8':
  Add back a dummy arc4random_stir for compatibility.
2014-09-03 23:49:36 +00:00
Dmitriy Ivanov
f851d60c13 am 8f3b8f52: Merge "Fix arm64 build"
* commit '8f3b8f523ed594b48d28ca0b9a2651d209f29e26':
  Fix arm64 build
2014-09-03 23:47:01 +00:00
Elliott Hughes
d05ad93003 am 58bb54c3: Merge "Add back a dummy arc4random_stir for compatibility."
* commit '58bb54c38bf31fa5cdad8ddbdc44bbed04aaf0cf':
  Add back a dummy arc4random_stir for compatibility.
2014-09-03 23:47:00 +00:00
Dmitriy Ivanov
8f3b8f523e Merge "Fix arm64 build" 2014-09-03 23:36:35 +00:00
Elliott Hughes
58bb54c38b Merge "Add back a dummy arc4random_stir for compatibility." 2014-09-03 23:34:05 +00:00
Dmitriy Ivanov
5c1a7fdbd5 Fix arm64 build
Bug: 14611536
Change-Id: I4f7f4d1f5c0a37ef38fa0956778393f8d7668512
2014-09-03 16:33:08 -07:00
Elliott Hughes
5dea47221a Add back a dummy arc4random_stir for compatibility.
The current arc4random implementation stirs itself as needed, but we
need to keep an arc4random_stir symbol around for binary compatibility.

(cherry-pick of 1e010d60397db706cd3d1c4d5701a2bced441aa8.)

Bug: 17291075
Change-Id: Iaf6171c3ec65c39c1868364d5b35ea280e29a363
2014-09-03 16:30:22 -07:00
Dmitriy Ivanov
af9b0c4dab am bd00ae89: am 450aaa01: Merge "Register __libc_fini as early as possible."
* commit 'bd00ae89921e3715ddbf89a1aac069347e5cf3d4':
  Register __libc_fini as early as possible.
2014-09-03 22:49:59 +00:00
Dmitriy Ivanov
bd00ae8992 am 450aaa01: Merge "Register __libc_fini as early as possible."
* commit '450aaa018df19464cb4e01ea3059a2a075ebde52':
  Register __libc_fini as early as possible.
2014-09-03 22:44:15 +00:00
Dmitriy Ivanov
43ecbc8520 am 40412333: am 8da304b9: Merge "Make string tests check all alignment combinations"
* commit '40412333b42910e3edde20072aaf32afe3aaca7f':
  Make string tests check all alignment combinations
2014-09-03 22:38:53 +00:00
Dmitriy Ivanov
450aaa018d Merge "Register __libc_fini as early as possible." 2014-09-03 22:29:59 +00:00
Dmitriy Ivanov
40412333b4 am 8da304b9: Merge "Make string tests check all alignment combinations"
* commit '8da304b997bc0f81ebb30fadc79249fafc1c6fce':
  Make string tests check all alignment combinations
2014-09-03 22:29:23 +00:00
Dmitriy Ivanov
e880c736d6 Register __libc_fini as early as possible.
We want __libc_fini to be called after all the destructors.

Bug: 14611536
Change-Id: Ibb83a94436795ec178fd605fa531ac29608f4a3e
2014-09-03 15:27:29 -07:00
Dmitriy Ivanov
8da304b997 Merge "Make string tests check all alignment combinations" 2014-09-03 22:08:57 +00:00
Dmitriy Ivanov
a3ad450a2e Load libraries in breadth-first order
This patch fixes the problem with symbol search order
  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
  and ld_preloads in correct order.

Bug: https://code.google.com/p/android/issues/detail?id=74255
Change-Id: I4cf84c70dbaabe99310230dfda12385ae5401859
2014-09-03 15:06:14 -07:00
Dan Albert
77ed51e266 am c71129a4: am 28f17701: Merge "Don\'t fail a test just because we aren\'t root."
* commit 'c71129a4e82211bc2db62ea10311548da5e2c20f':
  Don't fail a test just because we aren't root.
2014-09-03 20:09:51 +00:00
Dan Albert
c71129a4e8 am 28f17701: Merge "Don\'t fail a test just because we aren\'t root."
* commit '28f1770101d84153e100ad7bc0628b4ef3b6e85c':
  Don't fail a test just because we aren't root.
2014-09-03 19:59:14 +00:00
Dan Albert
28f1770101 Merge "Don't fail a test just because we aren't root." 2014-09-03 18:37:11 +00:00
Dan Albert
69fb9f3f40 Don't fail a test just because we aren't root.
If the tests are not being run as root, emit a message and don't
continue with the test.

Change-Id: I352e1a4162caaeb18b81b8daf44797009756dcd9
2014-09-03 11:30:21 -07:00
Elliott Hughes
cf9c3aec2b am ce19b10f: am cb093d1f: Merge "Upgrade bionic to tzdata2014g." into lmp-dev
* commit 'ce19b10f5f9db0e73d911faa3ce35ddd2b0837bf':
  Upgrade bionic to tzdata2014g.
2014-09-03 09:12:52 +00:00
Hans Boehm
fd77e895ac am 5c2c5443: am 9ac60bf8: Make stdatomic.h work with gcc4.6 host compiler
* commit '5c2c5443823e30bfb02394f4fc2da06a74bd58df':
  Make stdatomic.h work with gcc4.6 host compiler
2014-09-03 09:12:51 +00:00
Andreas Gampe
4e092df34a am c16f0486: resolved conflicts for merge of 2b10e2f1 to lmp-dev-plus-aosp
* commit 'c16f0486fca0df1125cc381d3f4ef3b652d72d29':
  Undefine _Atomic before redefining
2014-09-03 09:12:50 +00:00
Elliott Hughes
ce19b10f5f am cb093d1f: Merge "Upgrade bionic to tzdata2014g." into lmp-dev
* commit 'cb093d1f55701da419d1013cc3e6fbb8aea3e957':
  Upgrade bionic to tzdata2014g.
2014-09-03 05:07:24 +00:00
Hans Boehm
5c2c544382 am 9ac60bf8: Make stdatomic.h work with gcc4.6 host compiler
* commit '9ac60bf82b1f0e316666b862e9924f90caa60342':
  Make stdatomic.h work with gcc4.6 host compiler
2014-09-03 05:07:24 +00:00
Dmitriy Ivanov
763d17e22f am 69fde6b4: am 3b10ba6f: Merge "Add some missing dlclose(.)"
* commit '69fde6b4a7c7674c8bbc8fba0b82bcc25fdf0539':
  Add some missing dlclose(.)
2014-09-03 05:04:25 +00:00
Dan Albert
6df7c2c80a am f3ba9f71: am c7de9191: Merge "Start math tests with a clean fenv."
* commit 'f3ba9f7171021417a0b6373ecf52136fb5cc9a76':
  Start math tests with a clean fenv.
2014-09-03 05:04:20 +00:00
Dan Albert
7681554de8 am 95742d36: am 847e52b9: Merge "Prevent a few test pthread keys from leaking."
* commit '95742d36038b459704bdd32e22df35956b5aca0d':
  Prevent a few test pthread keys from leaking.
2014-09-03 05:04:17 +00:00
Hans Boehm
cd7f163176 am e8d77291: resolved conflicts for merge of c8cf3513 to lmp-dev-plus-aosp
* commit 'e8d77291670ad435491a08f6c3d83881063e2e12':
  Fix, generalize stdatomic.h; improve test.
2014-09-03 05:04:16 +00:00
Elliott Hughes
6d84bc4c43 am 6c696754: am ec95a9cf: Merge "MIPS64 syscall() arguments"
* commit '6c69675423f3375ba4d9dadfaf9502a15576158c':
  MIPS64 syscall() arguments
2014-09-03 05:03:49 +00:00
Andreas Gampe
c16f0486fc resolved conflicts for merge of 2b10e2f1 to lmp-dev-plus-aosp
Change-Id: Ia41583773abbbe1f52d72d1e7f4b925e621d28ff
2014-09-02 22:02:48 -07:00
Dmitriy Ivanov
69fde6b4a7 am 3b10ba6f: Merge "Add some missing dlclose(.)"
* commit '3b10ba6f1b743ddced32474891ff6d1cb83c027a':
  Add some missing dlclose(.)
2014-09-03 01:08:16 +00:00
Dmitriy Ivanov
3b10ba6f1b Merge "Add some missing dlclose(.)" 2014-09-03 00:36:22 +00:00
Dmitriy Ivanov
319356e39c Add some missing dlclose(.)
Bug: 17358010
Change-Id: I9e427b7681f1a8fe890b0b47812d9e65ab95c792
2014-09-02 17:31:44 -07:00
Dan Albert
f3ba9f7171 am c7de9191: Merge "Start math tests with a clean fenv."
* commit 'c7de919129098bac259f66f973888b1814ae0d1a':
  Start math tests with a clean fenv.
2014-09-02 23:35:33 +00:00
Dan Albert
c7de919129 Merge "Start math tests with a clean fenv." 2014-09-02 23:11:42 +00:00
Dan Albert
95742d3603 am 847e52b9: Merge "Prevent a few test pthread keys from leaking."
* commit '847e52b9b7bca9dee20e33d1006dfc23885e7494':
  Prevent a few test pthread keys from leaking.
2014-09-02 23:02:57 +00:00
Dan Albert
6676a7d4ee Start math tests with a clean fenv.
We always want the default floating point environment when running these
tests.

Bug: 17358010
Change-Id: I6ca2552e9f2d3e07d7b9dcaf0aec66905401c466
2014-09-02 16:00:10 -07:00
Dan Albert
847e52b9b7 Merge "Prevent a few test pthread keys from leaking." 2014-09-02 22:43:18 +00:00
Hans Boehm
e8d7729167 resolved conflicts for merge of c8cf3513 to lmp-dev-plus-aosp
Change-Id: If1181e3496d0309eebbaa1f1d2696269e61c64bc
2014-09-02 15:24:33 -07:00
Dan Albert
1d53ae2a01 Prevent a few test pthread keys from leaking.
Bug: 17358010
Change-Id: Ie718dc215ddfd431650295a1630c1b1716760c3d
2014-09-02 15:24:26 -07:00
Elliott Hughes
6c69675423 am ec95a9cf: Merge "MIPS64 syscall() arguments"
* commit 'ec95a9cf11f7c4d2211c61da7ce05262a54409d1':
  MIPS64 syscall() arguments
2014-09-02 21:18:55 +00:00
Elliott Hughes
ec95a9cf11 Merge "MIPS64 syscall() arguments" 2014-09-02 20:53:31 +00:00
Dmitriy Ivanov
32ef431b6c am a1d14f62: am 86f594b1: Merge "Encapsulate soinfo_link_image and soinfo_relocate"
* commit 'a1d14f62f6efb78dbb601c0c2be79a036da05854':
  Encapsulate soinfo_link_image and soinfo_relocate
2014-09-02 19:53:32 +00:00
Dmitriy Ivanov
a1d14f62f6 am 86f594b1: Merge "Encapsulate soinfo_link_image and soinfo_relocate"
* commit '86f594b19bc51ffe87bfacb6b42687af94c3c648':
  Encapsulate soinfo_link_image and soinfo_relocate
2014-09-02 19:45:29 +00:00
Chris Dearman
296895f1a9 MIPS64 syscall() arguments
The seventh argument for syscall is passed in a register, not on the stack

Change-Id: Idb69fac77d1f710cff5a3ab4ae1259feb61ae69d
2014-09-02 12:41:01 -07:00
Dmitriy Ivanov
86f594b19b Merge "Encapsulate soinfo_link_image and soinfo_relocate" 2014-09-02 19:25:09 +00:00
Dmitriy Ivanov
29bbc9dd4c Encapsulate soinfo_link_image and soinfo_relocate
Also get rid of needed[] array for these functions

Change-Id: I8d12887dbec0724309bb171e6bbd9b9ceb32cc70
2014-09-02 11:47:23 -07:00
Elliott Hughes
299647b814 am a5d70a4b: am 4625dd75: Merge "Upgrade bionic to tzdata2014g."
* commit 'a5d70a4b15c3c6a7eddd2a4593ad28fa8846f383':
  Upgrade bionic to tzdata2014g.
2014-09-02 18:42:28 +00:00
Elliott Hughes
a5d70a4b15 am 4625dd75: Merge "Upgrade bionic to tzdata2014g."
* commit '4625dd751e5f7beb0a9b8ec6a768fc7a2c36367a':
  Upgrade bionic to tzdata2014g.
2014-09-02 18:29:15 +00:00
Dmitriy Ivanov
15a52d7944 am 23fa71f7: am e057b9fc: Merge "Introduce size-based r/w allocators"
* commit '23fa71f7ca7096a25fd0d603061c861e410eb817':
  Introduce size-based r/w allocators
2014-09-02 17:57:20 +00:00
Elliott Hughes
4625dd751e Merge "Upgrade bionic to tzdata2014g." 2014-09-02 17:57:10 +00:00
Dmitriy Ivanov
7b3328a106 am 80ecaf33: am 4cafa3ce: Merge "Implement LinkedList::visit()"
* commit '80ecaf331e16530179f91db565a8862a8a55f3b1':
  Implement LinkedList::visit()
2014-09-02 17:57:07 +00:00
Dmitriy Ivanov
39f5554fe2 am e47b9949: am 5120bcf9: Merge "Look into ld_preloads before current library"
* commit 'e47b994975e8d21c517082914ab3c72afd5cee55':
  Look into ld_preloads before current library
2014-09-02 17:39:37 +00:00
Dmitriy Ivanov
a3dddd9ead am e4c4311f: resolved conflicts for merge of c191a8ad to lmp-dev-plus-aosp
* commit 'e4c4311f4402d8f470b91500acf140baa7c4aa47':
  Look into ld_preloads before current library
2014-09-02 17:39:36 +00:00
Dmitriy Ivanov
29dfcfda4b am a20e37f2: am 11387985: Merge "Erase elements in LinkedList::remove_if"
* commit 'a20e37f291957749091ee3a4f30b35a8d4d5a3f3':
  Erase elements in LinkedList::remove_if
2014-09-02 17:39:36 +00:00
Dmitriy Ivanov
23fa71f7ca am e057b9fc: Merge "Introduce size-based r/w allocators"
* commit 'e057b9fc82e1674198738ff2fdd4eb70c645bf9e':
  Introduce size-based r/w allocators
2014-09-02 17:35:37 +00:00
Elliott Hughes
4eac5ecf2b am 1a96db3e: resolved conflicts for merge of b2eb09a9 to lmp-dev-plus-aosp
* commit '1a96db3e8ea0b2a488a068c6f46f7e7ca2e5fc96':
  Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
2014-09-02 17:34:14 +00:00
Hans Boehm
af09e0337e am 94ea04c5: am e505cc66: Merge "Make stdatomic.h work with gcc4.6 host compiler"
* commit '94ea04c50ac3ca59245999bfe302066e8b5c1c84':
  Make stdatomic.h work with gcc4.6 host compiler
2014-09-02 17:33:33 +00:00
Dmitriy Ivanov
e057b9fc82 Merge "Introduce size-based r/w allocators" 2014-09-02 17:21:51 +00:00
Dmitriy Ivanov
80ecaf331e am 4cafa3ce: Merge "Implement LinkedList::visit()"
* commit '4cafa3ce808419325eefbb8013d21a919e2aabda':
  Implement LinkedList::visit()
2014-09-02 17:15:38 +00:00
Dmitriy Ivanov
4cafa3ce80 Merge "Implement LinkedList::visit()" 2014-09-02 16:54:14 +00:00
Elliott Hughes
9685c30a23 Upgrade bionic to tzdata2014g.
From the release notes:

  Changes affecting future time stamps

    Turks & Caicos is switching from US eastern time to UTC-4 year-round,
    modeled as a switch from EST/EDT to AST on 2014-11-02 at 02:00.

  Changes affecting past time stamps

    Time in Russia or the USSR before 1926 or so has been corrected by
    a few seconds in the following zones: Asia/Irkutsk,
    Asia/Krasnoyarsk, Asia/Omsk, Asia/Samarkand, Asia/Tbilisi,
    Asia/Vladivostok, Asia/Yakutsk, Europe/Riga, Europe/Samara.  For
    Asia/Yekaterinburg the correction is a few minutes.  (Thanks to
    Vladimir Karpinsky.)

    The Portuguese decree of 1911-05-26 took effect on 1912-01-01.
    This affects 1911 time stamps in Africa/Bissau, Africa/Luanda,
    Atlantic/Azores, and Atlantic/Madeira.  Also, Lisbon's pre-1912
    GMT offset was -0:36:45 (rounded from -0:36:44.68), not -0:36:32.
    (Thanks to Stephen Colebourne for pointing to the decree.)

    Asia/Dhaka ended DST on 2009-12-31 at 24:00, not 23:59.

    A new file 'backzone' contains data which may appeal to
    connoisseurs of old time stamps, although it is out of scope for
    the tz database, is often poorly sourced, and contains some data
    that is known to be incorrect.  The new file is not recommended
    for ordinary use and its entries are not installed by default.
    (Thanks to Lester Caine for the high-quality Jersey, Guernsey, and
    Isle of Man entries.)

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Africa/Bangui, Africa/Brazzaville,
    Africa/Douala, Africa/Kinshasa, Africa/Libreville, Africa/Luanda,
    Africa/Malabo, Africa/Niamey, and Africa/Porto-Novo.

Bug: 17277574
Change-Id: Idff4a68e927d49bef1e787af534e1b23b5b8a7fb
2014-09-02 09:51:04 -07:00
Dmitriy Ivanov
a492605849 Implement LinkedList::visit()
Change-Id: Ibd9d133dddf1f2e6e65660e3cd2dacafcc0c84d9
2014-09-02 09:45:40 -07:00
Dmitriy Ivanov
0cd83ebb0e Introduce size-based r/w allocators
Change-Id: I75165fc392e5380124039e6db49b0f559c8a518e
2014-09-01 16:17:05 -07:00
Dmitriy Ivanov
e47b994975 am 5120bcf9: Merge "Look into ld_preloads before current library"
* commit '5120bcf9f11951bffd8ac595c2b70252ed4a4958':
  Look into ld_preloads before current library
2014-09-01 21:36:47 +00:00
Dmitriy Ivanov
e4c4311f44 resolved conflicts for merge of c191a8ad to lmp-dev-plus-aosp
Change-Id: I24dcf9701ebe3344796f757a596754cbefbf358a
2014-09-01 14:34:15 -07:00
Dmitriy Ivanov
a20e37f291 am 11387985: Merge "Erase elements in LinkedList::remove_if"
* commit '11387985d27f7d9794963779c69dcf0056bac43c':
  Erase elements in LinkedList::remove_if
2014-09-01 21:24:50 +00:00
Dmitriy Ivanov
5120bcf9f1 Merge "Look into ld_preloads before current library" 2014-09-01 21:16:42 +00:00
Dmitriy Ivanov
c2048944ff Look into ld_preloads before current library
Change lookup order during relocation so that
 ld_preloads always precede caller (unless caller
 is main executable).

 Asan needs this change in order to intercept libc->libc
 calls.

Bug: 15432753
(cherry picked from commit 05e190c093ad5b04691ed87100a711ef91f380b0)

Change-Id: I5bfb58e18015b1ec5b77842dbb37fb122fa1fd1a
2014-09-01 14:14:09 -07:00
Dmitriy Ivanov
11387985d2 Merge "Erase elements in LinkedList::remove_if" 2014-09-01 21:06:32 +00:00
Elliott Hughes
d711fa3dee am e21a6242: am bbe06e0d: Merge "Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc."
* commit 'e21a624269b198e82c1c9a102d36f1fa21b44f6b':
  Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
2014-09-01 11:25:55 +00:00
Dmitriy Ivanov
016c7e19da am e6f46bfb: am 83b637fa: Merge "Replace NULL with nullptr"
* commit 'e6f46bfb90123757aaa36a3be79b875e18a95c46':
  Replace NULL with nullptr
2014-09-01 11:25:50 +00:00
Elliott Hughes
1a96db3e8e resolved conflicts for merge of b2eb09a9 to lmp-dev-plus-aosp
Change-Id: I0208958d78d6d7bc8c41568aa9abee15605b951e
2014-08-30 22:30:48 -07:00
Hans Boehm
94ea04c50a am e505cc66: Merge "Make stdatomic.h work with gcc4.6 host compiler"
* commit 'e505cc66a6e03f4ba460de3500f8b272421482c1':
  Make stdatomic.h work with gcc4.6 host compiler
2014-08-30 01:25:10 +00:00
Hans Boehm
e505cc66a6 Merge "Make stdatomic.h work with gcc4.6 host compiler" 2014-08-30 00:49:51 +00:00
Dmitriy Ivanov
4bea498544 Erase elements in LinkedList::remove_if
Change-Id: I5119a78c73ffe780a81c53ab5ff0266d5c82d319
2014-08-29 17:09:24 -07:00
Hans Boehm
32429606bf Make stdatomic.h work with gcc4.6 host compiler
This is needed to make L work correctly, and bionic tests pass
again, after applying the equivalent of
commit 00aaea364501b3b0abe58dae461136159df1e356 there.

It makes the preexisting code that uses __sync implementations
much more useful, although we should no longer be exercising that
code in AOSP.

Specifically fixes:

We were invoking __has_extension and __has_builtin for GCC compilations.
They're clang specific. Restructured the tests.

The __sync implementation was not defining the LOCK_FREE macros.

ATOMIC_VAR_INIT was using named field initializations.  These are a
C, not C++, feature, that is not supported by g++ 4.6.

The stdatomic bionic test still failed with 4.6 and glibc with our
questionable LOCK_FREE macro implementation.  Don't run that piece
with 4.6.

In L, this is a prerequisite for fixing:

    Bug:16880454
    Bug:16513433

Change-Id: I9b61e42307f96a114dce7552b6ead4ad1c544eab
2014-08-29 17:03:26 -07:00
Elliott Hughes
e21a624269 am bbe06e0d: Merge "Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc."
* commit 'bbe06e0da1742e9bdc52d3246ffa9f2ab3ce999a':
  Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
2014-08-29 23:30:14 +00:00
Elliott Hughes
bbe06e0da1 Merge "Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc." 2014-08-29 23:08:01 +00:00
Elliott Hughes
e0c56efddf Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
Bug: 16874785
Change-Id: I8512f8be3fd149d8720c5c3b4657bedd5ce2b1d1
2014-08-29 15:54:11 -07:00
Dmitriy Ivanov
e6f46bfb90 am 83b637fa: Merge "Replace NULL with nullptr"
* commit '83b637fa28e072aa73691b5ddc588293f06cb54b':
  Replace NULL with nullptr
2014-08-29 22:51:53 +00:00
Dmitriy Ivanov
83b637fa28 Merge "Replace NULL with nullptr" 2014-08-29 22:30:07 +00:00
Dmitriy Ivanov
851135bf99 Replace NULL with nullptr
Change-Id: Iad50be617d318ca98883b843229c960ad5b9afa9
2014-08-29 14:13:48 -07:00
Elliott Hughes
079841285e am 72dc86ec: am 1f39afc8: Merge "The host prebuilt glibc is 2.11, so remove workarounds for 2.9."
* commit '72dc86ec5f8927d7be03b110a61aba45e94b4cfa':
  The host prebuilt glibc is 2.11, so remove workarounds for 2.9.
2014-08-29 18:49:21 +00:00
Elliott Hughes
72dc86ec5f am 1f39afc8: Merge "The host prebuilt glibc is 2.11, so remove workarounds for 2.9."
* commit '1f39afc8d4cf402a8aa46d6cb121c62d289922d3':
  The host prebuilt glibc is 2.11, so remove workarounds for 2.9.
2014-08-29 18:30:59 +00:00
Elliott Hughes
1f39afc8d4 Merge "The host prebuilt glibc is 2.11, so remove workarounds for 2.9." 2014-08-29 18:12:36 +00:00
Chih-Hung Hsieh
d3acdf1660 am 46623c1c: am cc4259ed: Merge "Ignore all __weak_alias in OpenBSD libC."
* commit '46623c1cc7045d01ad950a4d2cad2a2722efc5ce':
  Ignore all __weak_alias in OpenBSD libC.
2014-08-29 11:56:38 +00:00
Elliott Hughes
7187c84058 am cd6657f9: am 29f06943: Merge "Add GNU-compatible strerror_r."
* commit 'cd6657f9eacb8dff723be48ffff72e153b4c82c6':
  Add GNU-compatible strerror_r.
2014-08-29 11:56:38 +00:00
Chih-Hung Hsieh
46623c1cc7 am cc4259ed: Merge "Ignore all __weak_alias in OpenBSD libC."
* commit 'cc4259ed9254ae66f63cacc3ad50963c4058eb1c':
  Ignore all __weak_alias in OpenBSD libC.
2014-08-29 11:39:56 +00:00
Elliott Hughes
cd6657f9ea am 29f06943: Merge "Add GNU-compatible strerror_r."
* commit '29f06943a19ef2271a08f4223f597a3383f0d9c0':
  Add GNU-compatible strerror_r.
2014-08-29 11:39:55 +00:00
Chih-Hung Hsieh
cc4259ed92 Merge "Ignore all __weak_alias in OpenBSD libC." 2014-08-29 03:10:44 +00:00
Elliott Hughes
f6824b26ae The host prebuilt glibc is 2.11, so remove workarounds for 2.9.
Change-Id: I1072fcebc8b3018580a9d069fe6eca9c4e74e865
2014-08-28 19:28:35 -07:00
Elliott Hughes
29f06943a1 Merge "Add GNU-compatible strerror_r." 2014-08-29 02:26:34 +00:00
Elliott Hughes
416d7ddaff Add GNU-compatible strerror_r.
We already had the POSIX strerror_r, but some third-party code defines
_GNU_SOURCE and expects to get the GNU strerror_r instead.

This exposed a bug in the libc internal logging functions where unlike
their standard brethren they wouldn't return the number of bytes they'd
have liked to have written.

Bug: 16243479
Change-Id: I1745752ccbdc569646d34f5071f6df2be066d5f4
2014-08-28 16:37:09 -07:00
Chih-Hung Hsieh
b6b5cb5389 Ignore all __weak_alias in OpenBSD libC.
GCC assembler allows xyz to be redeclared as weak,
by __weak_alias(xyz, _xyz), while _xyz is undefined.
Clang does not like that but silently generates no code.
It will reject its own .s file if the assembly code is saved first.
Since we have no reason to define xyz or _xyz as weak symbol now,
and _xyz is a macro to xyz, we simplify libC to have only
xyz defined as global.

BUG: 17186746
Change-Id: I24b154425838683cae69248cc750c59e26fd5467
2014-08-28 15:10:01 -07:00
Elliott Hughes
1470c824a9 am eceb417d: am 67f1f3b1: Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
* commit 'eceb417d2817aace3207943cc90b81026d505f80':
  Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
2014-08-28 04:16:11 +00:00
Elliott Hughes
53c39aab6e am 0019c7b5: resolved conflicts for merge of a0eeb0b6 to lmp-dev-plus-aosp
* commit '0019c7b5a05a7c79e3ab9b72cae9bcdf8d22491e':
  Fix pthread_getattr_np for the main thread.
2014-08-28 04:11:48 +00:00
Elliott Hughes
eceb417d28 am 67f1f3b1: Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
* commit '67f1f3b171ecd5f68f51465bbe4b8c8440bb6b2e':
  Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
2014-08-28 03:37:22 +00:00
Elliott Hughes
0019c7b5a0 resolved conflicts for merge of a0eeb0b6 to lmp-dev-plus-aosp
Change-Id: I84193689c0d6a9ee70b8da3c509694eb6d747d4a
2014-08-27 20:03:04 -07:00
Elliott Hughes
f5f59e3756 am 9560aaba: am f4e721dd: Merge "Have pthread_attr_getstack for the main thread report RLIMIT_STACK..."
* commit '9560aaba8ff6c667495de590a097709cb95bba24':
  Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
2014-08-28 00:13:16 +00:00
Elliott Hughes
9560aaba8f am f4e721dd: Merge "Have pthread_attr_getstack for the main thread report RLIMIT_STACK..."
* commit 'f4e721dd519db89c504c8944763811a3df956b32':
  Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
2014-08-28 00:00:07 +00:00
Christopher Ferris
96e0a433f9 am 5f6bab1a: am af9da4a3: Merge "Replace snprintf calls in linker."
* commit '5f6bab1ac2212a23d8afd96dceb51b793b05dd2f':
  Replace snprintf calls in linker.
2014-08-27 23:53:09 +00:00
Elliott Hughes
f4e721dd51 Merge "Have pthread_attr_getstack for the main thread report RLIMIT_STACK..." 2014-08-27 23:43:27 +00:00
Christopher Ferris
5f6bab1ac2 am af9da4a3: Merge "Replace snprintf calls in linker."
* commit 'af9da4a343d8fe2456e9d861bbd75bba67f2193c':
  Replace snprintf calls in linker.
2014-08-27 23:41:56 +00:00
Chih-Hung Hsieh
42e5994ff1 am 2c449617: am fbe9d3df: Merge "Fix strlen function type for mips."
* commit '2c449617c37c7b5419908499740530af2f1ca6f0':
  Fix strlen function type for mips.
2014-08-27 23:36:22 +00:00
Christopher Ferris
af9da4a343 Merge "Replace snprintf calls in linker." 2014-08-27 23:29:18 +00:00
Chih-Hung Hsieh
2c449617c3 am fbe9d3df: Merge "Fix strlen function type for mips."
* commit 'fbe9d3dfeb0e09c0e4aa3221aace8249c0efe881':
  Fix strlen function type for mips.
2014-08-27 23:24:27 +00:00
Yigit Boyar
f227b34d1c am 80f47ca3: Merge branch \'lmp-dev-plus-aosp\' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp
* commit '80f47ca35cf54ac3de8b42b70d81189bd58080c7':
  Replace ambiguous cmp instruction with cmpl.
2014-08-27 23:13:49 +00:00
Christopher Ferris
91f854ee7d am 04f12ef9: am 598d25bf: Merge "Replace snprintf calls in linker." into lmp-dev
* commit '04f12ef91c7f4235d6657583679f1dc39718344f':
  Replace snprintf calls in linker.
2014-08-27 23:13:48 +00:00
Chih-Hung Hsieh
fbe9d3dfeb Merge "Fix strlen function type for mips." 2014-08-27 23:09:30 +00:00
Christopher Ferris
052fa3a34c Replace snprintf calls in linker.
When enabling debug malloc, the snprintf calls in the linker fails to
update the buffer.

The problem is that snprintf makes a call to pthread_getspecific that
returns a valid pointer, but the data it points to is zero. This should
never happen and causes the snprintf to stop and do nothing.

Temporarily replace snprintf with a different implementation to work
around this issue.

Bug: 16874447
Bug: 17302493

(cherry pick from commit 172955a4e30b88ce8239a7ef426b4e8903e9923c)

Change-Id: Idca9d417978403d61debfd0434aaa82fd770f33b
2014-08-27 16:01:57 -07:00
Chih-Hung Hsieh
15b914c8f3 Fix strlen function type for mips.
Clang complains about incompatible-library-redeclaration.

BUG: 17302369
Change-Id: I3ae36f24846408c6464b84b5bddb1747e1e4a971
2014-08-27 16:00:46 -07:00
Yigit Boyar
80f47ca35c Merge branch 'lmp-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp 2014-08-27 23:00:12 +00:00
Christopher Ferris
04f12ef91c am 598d25bf: Merge "Replace snprintf calls in linker." into lmp-dev
* commit '598d25bf78fa632e70cb80d4033572328f5bd1b7':
  Replace snprintf calls in linker.
2014-08-27 23:00:10 +00:00
Chih-Hung Hsieh
e561e5db73 am 4f8268e3: Merge "Replace ambiguous cmp instruction with cmpl."
* commit '4f8268e38f151724722bcb489c32185a93fd86ba':
  Replace ambiguous cmp instruction with cmpl.
2014-08-27 23:00:09 +00:00
Chih-Hung Hsieh
4f8268e38f Merge "Replace ambiguous cmp instruction with cmpl." 2014-08-27 22:46:07 +00:00
Elliott Hughes
9e4ffa7032 Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
...rather than just what's already mapped in. This seems somewhat
contrary to POSIX's "All pages within the stack described by stackaddr
and stacksize shall be both readable and writable by the thread", but
it's what glibc does.

Bug: 17111575
Change-Id: If9e2dfad9a603c0d0615a8123aacda4946e95b2c
2014-08-27 15:32:01 -07:00
Chih-Hung Hsieh
71405a84da am 2dc7fd03: am 34da32e7: Merge "Add missing type casts before comparison."
* commit '2dc7fd03e77e32f85422786cc4bea157354d50be':
  Add missing type casts before comparison.
2014-08-27 22:13:22 +00:00
Chih-Hung Hsieh
2dc7fd03e7 am 34da32e7: Merge "Add missing type casts before comparison."
* commit '34da32e7dd00270e98b845f8a810a6f12ffffb9b':
  Add missing type casts before comparison.
2014-08-27 22:05:14 +00:00
Chih-Hung Hsieh
857fa6b2a3 Replace ambiguous cmp instruction with cmpl.
Clang assembler rejects ambiguous cmp instruction.

BUG: 17302482
Change-Id: I74f49de87464541f9fe6fa288e4093a9fbf37120
2014-08-27 15:04:23 -07:00
Christopher Ferris
895854f430 am 725fae1d: am 6ecd1cd1: Merge "Use the default unwind code."
* commit '725fae1de487cb202d5429afb440541b79e8381e':
  Use the default unwind code.
2014-08-27 21:50:09 +00:00
Chih-Hung Hsieh
34da32e7dd Merge "Add missing type casts before comparison." 2014-08-27 21:44:12 +00:00
Christopher Ferris
725fae1de4 am 6ecd1cd1: Merge "Use the default unwind code."
* commit '6ecd1cd195546ecaf4317beda3f1a1a27f1d0d57':
  Use the default unwind code.
2014-08-27 21:35:16 +00:00
Christopher Ferris
6ecd1cd195 Merge "Use the default unwind code." 2014-08-27 21:21:28 +00:00
Chih-Hung Hsieh
a2c6ae6f84 Add missing type casts before comparison.
BUG: 17300548
Change-Id: Ice9868f36c8fa8cd40bb13741b0e33c8f8d354fd
2014-08-27 13:45:37 -07:00
Christopher Ferris
b78e60e7b7 Use the default unwind code.
This speeds up the debug malloc code by using the original unwinding code.
The only catch is that it has to link in the libc++ arm unwind code or
there will be crashes when attempting to unwind through libc++ compiled
code.

Bug: 16874447

(cherry picked from commit 3f7635f4906c53fa744731efc35235456b7d93bf)

Change-Id: If8a3821cdd95ed481bb496bf2daab449d13790f8
2014-08-27 13:13:21 -07:00
Baligh Uddin
0570368a79 am 388369b7: Merge branch \'lmp-dev-plus-aosp\' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp
* commit '388369b788f93670551fe32233b6c4b55d3879d9':
  call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
  Switch to OpenBSD <err.h> implementation.
2014-08-27 17:55:30 +00:00
Elliott Hughes
c15ee16fb3 am b489ba48: am 6cc4e3b6: Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale." into lmp-dev
* commit 'b489ba48a11ae91bd51bd99b3741ad452484684d':
  call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
2014-08-27 17:55:29 +00:00
Baligh Uddin
388369b788 Merge branch 'lmp-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp 2014-08-27 17:39:51 +00:00
Elliott Hughes
6c3e6e7c40 am cb322a11: Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale."
* commit 'cb322a116804a690fdde6096d7efef4819151ad9':
  call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
2014-08-27 17:39:29 +00:00
Elliott Hughes
7a9471d815 am 64ae11ab: Merge "Switch to OpenBSD <err.h> implementation."
* commit '64ae11ab766421fe2c49ebdecb14c36fe0a047fe':
  Switch to OpenBSD <err.h> implementation.
2014-08-27 17:39:28 +00:00
Elliott Hughes
b489ba48a1 am 6cc4e3b6: Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale." into lmp-dev
* commit '6cc4e3b6ce726fb7aab6eff1ca8f4a28f9f21ee9':
  call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
2014-08-27 17:39:01 +00:00
Elliott Hughes
cb322a1168 Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale." 2014-08-27 17:27:46 +00:00
Wally Yau
a40fdbd565 call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
For tests that call uselocale(), the locale is stored in the
g_userlocale_key thread-specific key. If freelocale() is called later,
then g_uselocal_key points to a deleted pointer. CTS eventually calls
vfprintf to print the result, which calls MB_CUR_MAX and MB_CUR_MAX
accesses the deleted locale stored in g_uselocale_key, causing unpredictable
errors.

Fixed the tests by calling uselocale() with the old locale before
calling freelocale.

(cherry-pick of 8a46cf0fcf82b8c76e05be7e066ec854f974603a.)

Bug: 17299565
Change-Id: I87efa2a9b16999a11d587f68d3aeedcbe6ac8a2c
2014-08-27 10:26:49 -07:00
Elliott Hughes
64ae11ab76 Merge "Switch to OpenBSD <err.h> implementation." 2014-08-27 17:26:03 +00:00
Christopher Ferris
e94c0e6abf am 7bad1a90: am 3f7635f4: Use the default unwind code.
* commit '7bad1a90f1f270d5e2e3ca798d1e0f35c79bec6b':
  Use the default unwind code.
2014-08-27 04:55:00 +00:00
Christopher Ferris
7bad1a90f1 am 3f7635f4: Use the default unwind code.
* commit '3f7635f4906c53fa744731efc35235456b7d93bf':
  Use the default unwind code.
2014-08-27 04:46:05 +00:00
Hans Boehm
c0c0e0404f am 3b32ba0e: am 6bfcefe0: Merge "Undefine _Atomic before redefining"
* commit '3b32ba0e2c1851e20f72a73c606dcbfc79e687bb':
  Undefine _Atomic before redefining
2014-08-27 00:11:45 +00:00
Elliott Hughes
e294a02c0c am d961078f: am 07401c71: Merge "Switch to OpenBSD daemon(3)."
* commit 'd961078f2d1ee42f41ae967d33ba583dd42475f8':
  Switch to OpenBSD daemon(3).
2014-08-27 00:11:45 +00:00
Elliott Hughes
edbd5b2659 am 3e95a0d6: am f1e64b5c: (-s ours) Merge "More cases where libc should use O_CLOEXEC."
* commit '3e95a0d6f0fb3e15485c4671643b4c61e89c49d3':
  More cases where libc should use O_CLOEXEC.
2014-08-27 00:11:44 +00:00
Hans Boehm
3b32ba0e2c am 6bfcefe0: Merge "Undefine _Atomic before redefining"
* commit '6bfcefe02f8fbeec1f6790bd5ebb1fdd5dba1e33':
  Undefine _Atomic before redefining
2014-08-27 00:01:46 +00:00
Elliott Hughes
d961078f2d am 07401c71: Merge "Switch to OpenBSD daemon(3)."
* commit '07401c7136af113304a22f4a8245ef3fc1b6929b':
  Switch to OpenBSD daemon(3).
2014-08-27 00:01:45 +00:00
Elliott Hughes
3e95a0d6f0 am f1e64b5c: (-s ours) Merge "More cases where libc should use O_CLOEXEC."
* commit 'f1e64b5c171a374f36cd970df0c84558d4209e1c':
  More cases where libc should use O_CLOEXEC.
2014-08-27 00:01:42 +00:00
Elliott Hughes
cc7e5f489f Switch to OpenBSD <err.h> implementation.
Change-Id: Ia950d88871a30f68e74f9ac7dbd87788e128e02f
2014-08-26 17:00:37 -07:00
Elliott Hughes
77fd54ae1c am f975bc2d: am 7b87d441: Merge "Switch to OpenBSD res_random."
* commit 'f975bc2d59b064e08f5d01ecd0724cb76351727f':
  Switch to OpenBSD res_random.
2014-08-26 23:47:17 +00:00
Elliott Hughes
390a11303d am 06b03394: am 59de803a: Merge "libc should use O_CLOEXEC when opening files for its own use."
* commit '06b033942ae7c6d967e4c58a4dd649e421598eba':
  libc should use O_CLOEXEC when opening files for its own use.
2014-08-26 23:47:16 +00:00
Dmitriy Ivanov
df8e8af8f7 am a04130f5: am 9f5dee55: Merge "Remove unnecessary calls to LinkedList::clear()"
* commit 'a04130f54c087cf2ad2924863a8a1e5c22fdd8a9':
  Remove unnecessary calls to LinkedList::clear()
2014-08-26 23:47:15 +00:00
Elliott Hughes
f975bc2d59 am 7b87d441: Merge "Switch to OpenBSD res_random."
* commit '7b87d441b0f2aa3ad5021ab6bd879a995a1bc2ce':
  Switch to OpenBSD res_random.
2014-08-26 23:41:23 +00:00
Elliott Hughes
06b033942a am 59de803a: Merge "libc should use O_CLOEXEC when opening files for its own use."
* commit '59de803af98a284378303489f614be3e53800b3f':
  libc should use O_CLOEXEC when opening files for its own use.
2014-08-26 23:41:23 +00:00
Dmitriy Ivanov
a04130f54c am 9f5dee55: Merge "Remove unnecessary calls to LinkedList::clear()"
* commit '9f5dee55aa401b11b3eb15806d3f8ffc291c2bb1':
  Remove unnecessary calls to LinkedList::clear()
2014-08-26 23:41:22 +00:00
Dmitriy Ivanov
2ad7cce57c am 8e35e9e7: am d2bd3c47: Merge "Enable __cxa_atexit && __cxa_finalize for linker"
* commit '8e35e9e73ee14fa8c725c83d871db2b58821d8c9':
  Enable __cxa_atexit && __cxa_finalize for linker
2014-08-26 23:35:36 +00:00
Hans Boehm
6bfcefe02f Merge "Undefine _Atomic before redefining" 2014-08-26 23:34:49 +00:00
Elliott Hughes
07401c7136 Merge "Switch to OpenBSD daemon(3)." 2014-08-26 23:33:43 +00:00
Dmitriy Ivanov
8e35e9e73e am d2bd3c47: Merge "Enable __cxa_atexit && __cxa_finalize for linker"
* commit 'd2bd3c4717ed223bca1c68a87f243f4bcf492a4b':
  Enable __cxa_atexit && __cxa_finalize for linker
2014-08-26 23:26:32 +00:00
Elliott Hughes
e5055179fd Switch to OpenBSD daemon(3).
Change-Id: I1fd0be09fdb24aa6f1d945410eba5987f8a949b4
2014-08-26 16:25:19 -07:00
Elliott Hughes
f1e64b5c17 Merge "More cases where libc should use O_CLOEXEC." 2014-08-26 23:23:59 +00:00
Elliott Hughes
f73183f1a3 More cases where libc should use O_CLOEXEC.
Change-Id: Idfa111aeebc5deca2399dae919e8b72eb54c23c0
2014-08-26 16:20:59 -07:00
Elliott Hughes
7b87d441b0 Merge "Switch to OpenBSD res_random." 2014-08-26 23:18:04 +00:00
Elliott Hughes
59de803af9 Merge "libc should use O_CLOEXEC when opening files for its own use." 2014-08-26 23:11:46 +00:00
Dmitriy Ivanov
9f5dee55aa Merge "Remove unnecessary calls to LinkedList::clear()" 2014-08-26 23:00:44 +00:00
Hans Boehm
3e4a0099a1 Undefine _Atomic before redefining
Stdatomic.h was potentially redefining _Atomic, in spite of a
prior definition by <atomic>.  This could cause g++ builds that
included <stdatomic.h> with an available <atomic> header to break.

Change-Id: I562c7115118c0587d594d4d5b62d25101e47bfd8
2014-08-26 15:58:15 -07:00
Elliott Hughes
c674edbf27 libc should use O_CLOEXEC when opening files for its own use.
Change-Id: I159f1d57e0ca090d837f57854fcef5879b8b8248
2014-08-26 15:56:54 -07:00
Dmitriy Ivanov
608217e167 Remove unnecessary calls to LinkedList::clear()
Change-Id: I981d2700cb17322c634b751715543fd33ee49b7c
2014-08-26 15:56:31 -07:00
Dmitriy Ivanov
d2bd3c4717 Merge "Enable __cxa_atexit && __cxa_finalize for linker" 2014-08-26 22:53:16 +00:00
Dmitriy Ivanov
14241402de Enable __cxa_atexit && __cxa_finalize for linker
This allows adding destructors to classes used
 for global variables.

Change-Id: I5e1cd63fe3bf8f66de88cc4f7437cafb350f49b5
2014-08-26 15:44:18 -07:00
Elliott Hughes
8572efefa5 am 05409ded: am c764fb24: Merge "Fix pthread_getattr_np for the main thread."
* commit '05409dedcd6268d8150e5a39327b1b48711834c0':
  Fix pthread_getattr_np for the main thread.
2014-08-26 20:18:50 +00:00
Elliott Hughes
05409dedcd am c764fb24: Merge "Fix pthread_getattr_np for the main thread."
* commit 'c764fb24ccb47e05d8e140cde5b4111225790ef1':
  Fix pthread_getattr_np for the main thread.
2014-08-26 20:08:44 +00:00
Elliott Hughes
c764fb24cc Merge "Fix pthread_getattr_np for the main thread." 2014-08-26 19:53:40 +00:00
Elliott Hughes
57b7a6110e Fix pthread_getattr_np for the main thread.
On most architectures the kernel subtracts a random offset to the stack
pointer in create_elf_tables by calling arch_align_stack before writing
the auxval table and so on. On all but x86 this doesn't cause a problem
because the random offset is less than a page, but on x86 it's up to two
pages. This means that our old technique of rounding the stack pointer
doesn't work. (Our old implementation of that technique was wrong too.)

It's also incorrect to assume that the main thread's stack base and size
are constant. Likewise to assume that the main thread has a guard page.
The main thread is not like other threads.

This patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)
whenever we're asked.

Bug: 17111575
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
Change-Id: I1d4dbffe7bc7bda1d353c3a295dbf68d29f63158
2014-08-26 10:36:38 -07:00
Chih-Hung Hsieh
b4e5b1012b am a9c435e0: am 9e307af9: Merge "Add standard throw() spec to delete operators."
* commit 'a9c435e072111d6e4a90748bb4a34f2c46814162':
  Add standard throw() spec to delete operators.
2014-08-25 22:41:21 +00:00
Chih-Hung Hsieh
a9c435e072 am 9e307af9: Merge "Add standard throw() spec to delete operators."
* commit '9e307af982ea9030849293b5e3307733289e3c2c':
  Add standard throw() spec to delete operators.
2014-08-25 22:29:24 +00:00
Chih-Hung Hsieh
9e307af982 Merge "Add standard throw() spec to delete operators." 2014-08-25 22:08:33 +00:00
Chih-Hung Hsieh
ae558d6b4b Add standard throw() spec to delete operators.
Without these specs, clang will reports mismatch between standard definitions and these declarations/definitions. These specs are ignored when compiled with -fno-exceptions.

BUG: 17136236
Change-Id: I386c712a61dc4fc74dfde45f9ec2d3d037f2e9f1
2014-08-25 21:16:14 +00:00
Hans Boehm
235027e19d am 685c722d: am a4a8c4fe: Merge "Fix, generalize stdatomic.h; improve test."
* commit '685c722d32086f0ded3da9975a934cef34f171c9':
  Fix, generalize stdatomic.h; improve test.
2014-08-22 23:24:37 +00:00
Hans Boehm
685c722d32 am a4a8c4fe: Merge "Fix, generalize stdatomic.h; improve test."
* commit 'a4a8c4feb8cf3cebf8aceace70e699e128095b5c':
  Fix, generalize stdatomic.h; improve test.
2014-08-22 23:15:54 +00:00
Hans Boehm
a4a8c4feb8 Merge "Fix, generalize stdatomic.h; improve test." 2014-08-22 22:52:31 +00:00
Hans Boehm
00aaea3645 Fix, generalize stdatomic.h; improve test.
We seem to use this stdatomic.h sometimes, and slightly different prebuilts
at other times, making them all difficult to test, and making it unclear
which one we're testing.  This generalizes the bionic header so that it
can be used directly as the prebuilt header as well.  So long as they
don't diverge again, that should somewhat improve test coverage.

Use the correct builtin for atomic_is_lock_free.

Fix atomic_flag_init.

Turn on atomic tests even with __GLIBC__, since they now appear to pass.

Include uchar.h in stdatomic.h where needed.

Add a basic memory ordering test.

Fix bit-rotted comments in bionic tests makefile.

Change-Id: If6a14c1075b379395ba5d93357d56025c0ffab68
2014-08-22 15:50:17 -07:00
Dmitriy Ivanov
355ffed60d am 0c3ef375: am 9d34f6a9: Merge "Bump soinfo version"
* commit '0c3ef37501d32444ef333a960e306b33164fa31f':
  Bump soinfo version
2014-08-22 21:13:57 +00:00
Dmitriy Ivanov
0c3ef37501 am 9d34f6a9: Merge "Bump soinfo version"
* commit '9d34f6a90973bea086b4244df6eff74ab2211814':
  Bump soinfo version
2014-08-22 21:03:34 +00:00
Dmitriy Ivanov
9d34f6a909 Merge "Bump soinfo version" 2014-08-22 20:44:56 +00:00
Dmitriy Ivanov
0d15094287 Bump soinfo version
This includes:
 1. Placing has_ifunc after fields with version = 0
 2. Switch to has_min_version(v) function.
 3. Minor soinfo initialization refactoring (placement new + ctor)

Change-Id: I1bf5fde4d930914012ce5f3ad5acb48217da9b2d
2014-08-22 13:29:18 -07:00
Dan Albert
2d516203f3 am 740cf634: am 0b9fa4c9: Merge "Fix dlmalloc build."
* commit '740cf634f78141b37e30a37f9fdf491951d321e4':
  Fix dlmalloc build.
2014-08-22 18:40:23 +00:00
Dan Albert
740cf634f7 am 0b9fa4c9: Merge "Fix dlmalloc build."
* commit '0b9fa4c9bff5d3128f120a2008aa6997c7363b49':
  Fix dlmalloc build.
2014-08-22 18:25:06 +00:00
Dan Albert
66af51131b am a2dcd944: am 4756afe3: Merge "Implement malloc_info(3)."
* commit 'a2dcd9449e7afe93ee9472ea899539b17574908f':
  Implement malloc_info(3).
2014-08-22 18:16:29 +00:00
Dan Albert
0b9fa4c9bf Merge "Fix dlmalloc build." 2014-08-22 18:06:36 +00:00
Dan Albert
ef619cc083 Fix dlmalloc build.
Change-Id: Ied542c40867ab443cdd2076bd2e535b00c4854e4
2014-08-22 11:05:48 -07:00
Dan Albert
a2dcd9449e am 4756afe3: Merge "Implement malloc_info(3)."
* commit '4756afe3d5017b50c89761c47f0da17a6799c81e':
  Implement malloc_info(3).
2014-08-22 18:04:08 +00:00
Dan Albert
4756afe3d5 Merge "Implement malloc_info(3)." 2014-08-22 17:39:18 +00:00
Dan Albert
4caa1f0977 Implement malloc_info(3).
Expose jemalloc stats through the malloc_info(3) interface.

Bug: 16874689
Change-Id: I4358ac283002e60ff161107028d1a3fb1e9afb0a
2014-08-22 10:23:12 -07:00
Elliott Hughes
952e2b839c am 4592c5e9: Merge branch \'lmp-dev-plus-aosp\' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp
* commit '4592c5e993e2ee625b9cfdd8e50cce0be9042114':
  Fix unistd.getpid_caching_and_clone.
2014-08-22 16:53:23 +00:00
Elliott Hughes
a657e1cc6a am 021ce40c: am 84d0683a: Fix unistd.getpid_caching_and_clone.
* commit '021ce40c0ca98ccdd7daa4d468222b951da10c06':
  Fix unistd.getpid_caching_and_clone.
2014-08-22 16:53:23 +00:00
Elliott Hughes
4592c5e993 Merge branch 'lmp-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp 2014-08-22 16:42:23 +00:00
Elliott Hughes
021ce40c0c am 84d0683a: Fix unistd.getpid_caching_and_clone.
* commit '84d0683a824fa02dbaa6d1b56a79223804b54e80':
  Fix unistd.getpid_caching_and_clone.
2014-08-22 16:42:17 +00:00
Elliott Hughes
0bcfedb8d2 am 538db6d2: Merge "Fix unistd.getpid_caching_and_clone."
* commit '538db6d2e63b203622c49344488099eaa5062850':
  Fix unistd.getpid_caching_and_clone.
2014-08-22 16:42:15 +00:00
Elliott Hughes
538db6d2e6 Merge "Fix unistd.getpid_caching_and_clone." 2014-08-22 16:28:02 +00:00
Elliott Hughes
2b3b2ecee8 Fix unistd.getpid_caching_and_clone.
This test only works if you're root (strictly: if you have permission to
CLONE_NEWNS), so it's useful to us when we're doing ad hoc testing (since
that's usually done as root), but it's not useful as part of CTS or when
running the tests on the host.

(cherry-pick of 84d0683a824fa02dbaa6d1b56a79223804b54e80.)

Bug: 16705621
Bug: 17170200
Change-Id: Ia92c871b15f7e45fc174bb59bc95540fd00ae745
2014-08-22 09:26:50 -07:00
Dan Albert
fc7b06fd58 am ab537ae5: am 2e6c5fc4: Merge "Remove _flush_cache(2) for mips64."
* commit 'ab537ae574ba675d3b313c544f5cf5de0c6e77e7':
  Remove _flush_cache(2) for mips64.
2014-08-21 22:26:46 +00:00
Dan Albert
ab537ae574 am 2e6c5fc4: Merge "Remove _flush_cache(2) for mips64."
* commit '2e6c5fc4e903b6ef58bd94e13e51b3f0aa4689b3':
  Remove _flush_cache(2) for mips64.
2014-08-21 22:12:30 +00:00
Dmitriy Ivanov
84c8fc8683 am 87c5f24e: am 2bd88d45: Merge "Run constructors before resolving ifunc functions"
* commit '87c5f24e4e58d7c26e8490f33d8233755b17a551':
  Run constructors before resolving ifunc functions
2014-08-21 21:55:13 +00:00
Dan Albert
2e6c5fc4e9 Merge "Remove _flush_cache(2) for mips64." 2014-08-21 21:51:42 +00:00
Dmitriy Ivanov
87c5f24e4e am 2bd88d45: Merge "Run constructors before resolving ifunc functions"
* commit '2bd88d450ead2ad8b44a76126c720cf4a9772002':
  Run constructors before resolving ifunc functions
2014-08-21 21:45:24 +00:00
Dmitriy Ivanov
2bd88d450e Merge "Run constructors before resolving ifunc functions" 2014-08-21 21:27:52 +00:00
Dmitriy Ivanov
9598b8c415 Run constructors before resolving ifunc functions
Bug: 17177284
Change-Id: I5714b9bc2d1ca8f8711806bfb68da3d524213e99
2014-08-21 14:24:13 -07:00
Dan Albert
47793d6a29 Remove _flush_cache(2) for mips64.
Also remove declaration.

The only user is compiler-rt, and they can replace that call with one to
syscall(2). compiler-rt doesn't currently build on mips64 anyway.

Bug: 11156955
Change-Id: Ieae0ba49c8e7aa50253401fc1d7c2d17bc867d39
2014-08-21 13:32:37 -07:00
Dan Albert
54f4129b79 am ba8dede8: am 31572118: Merge "__gnu_basename(3) is accounted for."
* commit 'ba8dede8585adfc411726496a877a1460fa769c6':
  __gnu_basename(3) is accounted for.
2014-08-21 19:43:28 +00:00
Dan Albert
ba8dede858 am 31572118: Merge "__gnu_basename(3) is accounted for."
* commit '3157211849f808f89a7f1465fd60d6b41917ee4f':
  __gnu_basename(3) is accounted for.
2014-08-21 19:33:19 +00:00
Dan Albert
3157211849 Merge "__gnu_basename(3) is accounted for." 2014-08-21 19:14:44 +00:00
Dan Albert
2320b02c7d __gnu_basename(3) is accounted for.
Change-Id: I3836b14a797c4a8d121c6d29d95791ac768257da
2014-08-21 11:36:07 -07:00
Elliott Hughes
4e8ff5bf33 am d00ce65a: am 2d80400a: Fix some 32-bit-isms in <stdio.h>.
* commit 'd00ce65a16a77921b1835dc52dd31b9206200551':
  Fix some 32-bit-isms in <stdio.h>.
2014-08-21 18:34:41 +00:00
Elliott Hughes
d00ce65a16 am 2d80400a: Fix some 32-bit-isms in <stdio.h>.
* commit '2d80400a9e8454038a3ec29959436184be0c4c65':
  Fix some 32-bit-isms in <stdio.h>.
2014-08-21 18:25:59 +00:00
Elliott Hughes
4c6c024a32 am 1fa71e6c: am d5fbc371: Merge "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream."
* commit '1fa71e6cbb7254e6450701913e5f9cfc6226587a':
  Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream.
2014-08-21 04:07:20 +00:00
Elliott Hughes
1fa71e6cbb am d5fbc371: Merge "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream."
* commit 'd5fbc37119ef6cd757ceb449cb071ee03c66590e':
  Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream.
2014-08-21 03:11:32 +00:00
Elliott Hughes
d5fbc37119 Merge "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream." 2014-08-21 00:17:56 +00:00
Elliott Hughes
6b841db2ba Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream.
Bug: 17164505
Change-Id: I59e28a08ff8b6ab632230b11a5807cfd5278aeb5
2014-08-20 17:03:46 -07:00
Elliott Hughes
8aab5c927f am ff3adf16: am b6ed5407: Merge "Simplify _ALIGN_TEXT."
* commit 'ff3adf163222cf8351c9968149509615bc936552':
  Simplify _ALIGN_TEXT.
2014-08-20 20:57:47 +00:00
Elliott Hughes
497a10b311 am 1b6b56a9: am 7134fc30: Merge "Regenerate "services.h" from /etc/services."
* commit '1b6b56a9a662eb68a0eb707c556287b0f7810556':
  Regenerate "services.h" from /etc/services.
2014-08-20 20:57:46 +00:00
Elliott Hughes
fd66905ac7 am 28bd4fd0: am 3bcd414b: Merge "Clean up some of our python scripts."
* commit '28bd4fd080d290dba0f61275109698d0fe4b5dc4':
  Clean up some of our python scripts.
2014-08-20 20:57:45 +00:00
Elliott Hughes
b22eebf09e am c64b6800: am 55244a9b: Merge "Add <stdio_ext.h> for elfutils."
* commit 'c64b680066d4ceaba908bf43ba7b2b8761b00073':
  Add <stdio_ext.h> for elfutils.
2014-08-20 20:57:45 +00:00
Hans Boehm
f4a27ad738 am c4b55c12: am b61c5064: Merge "Work around atomic_load(const T*) issues."
* commit 'c4b55c1221581b5ab8dc7cc21d9eead85b79eaa2':
  Work around atomic_load(const T*) issues.
2014-08-20 20:57:44 +00:00
Elliott Hughes
ff3adf1632 am b6ed5407: Merge "Simplify _ALIGN_TEXT."
* commit 'b6ed54076abdd337150d7a92a661247b69d26cb4':
  Simplify _ALIGN_TEXT.
2014-08-20 20:54:13 +00:00
Elliott Hughes
1b6b56a9a6 am 7134fc30: Merge "Regenerate "services.h" from /etc/services."
* commit '7134fc30892bff763e7c24ac722151e0777b5409':
  Regenerate "services.h" from /etc/services.
2014-08-20 20:49:21 +00:00
Elliott Hughes
28bd4fd080 am 3bcd414b: Merge "Clean up some of our python scripts."
* commit '3bcd414b78e515482139c7dc3dad8cad3357b374':
  Clean up some of our python scripts.
2014-08-20 20:49:21 +00:00
Elliott Hughes
c64b680066 am 55244a9b: Merge "Add <stdio_ext.h> for elfutils."
* commit '55244a9bdbc661212999655644c374352ae92040':
  Add <stdio_ext.h> for elfutils.
2014-08-20 20:49:14 +00:00
Hans Boehm
c4b55c1221 am b61c5064: Merge "Work around atomic_load(const T*) issues."
* commit 'b61c50647b85b3c33af8ca155e88ec098d9e8cb0':
  Work around atomic_load(const T*) issues.
2014-08-20 20:48:45 +00:00
Elliott Hughes
b6ed54076a Merge "Simplify _ALIGN_TEXT." 2014-08-20 20:25:32 +00:00
Elliott Hughes
0e7f8a9e52 Simplify _ALIGN_TEXT.
Bug: 16872067
Change-Id: I2b622f252c21ce1b344c040f828ab3f4bf9b6c0a
2014-08-20 13:11:58 -07:00
Hans Boehm
b61c50647b Merge "Work around atomic_load(const T*) issues." 2014-08-19 22:32:42 +00:00
Elliott Hughes
7888f4d5ad am d61f102b: am b9d674c8: Merge "Implement the GNU basename(3) in addition to the POSIX one."
* commit 'd61f102bf8015686806f20bf5895fd05b967ce09':
  Implement the GNU basename(3) in addition to the POSIX one.
2014-08-19 22:25:59 +00:00
Elliott Hughes
d61f102bf8 am b9d674c8: Merge "Implement the GNU basename(3) in addition to the POSIX one."
* commit 'b9d674c8ada9c1e9c22b41bc7c89e35f11f4eb1e':
  Implement the GNU basename(3) in addition to the POSIX one.
2014-08-19 22:19:07 +00:00
Hans Boehm
1e8587a479 Work around atomic_load(const T*) issues.
Bug:17067219
Change-Id: I78e753bcf03464f5f05c3f37e394f2727d282589
2014-08-19 14:50:54 -07:00
Dan Albert
a9cfc7750d am f642846c: am 1506fc17: Expose android_set_abort_message().
* commit 'f642846c1cec8554ec4f09686eb9ce999f6edf59':
  Expose android_set_abort_message().
2014-08-19 20:35:04 +00:00
Elliott Hughes
e232b38314 am b8a8d1d6: am c5d6df6f: Merge "Add in_port_t and move it and in_addr_t to the correct header file."
* commit 'b8a8d1d68e5e7c7df8187f76bbd452a9822fab6d':
  Add in_port_t and move it and in_addr_t to the correct header file.
2014-08-19 20:35:03 +00:00
Dan Albert
f642846c1c am 1506fc17: Expose android_set_abort_message().
* commit '1506fc178e9dcd873eaf95535ac7625ebb59388f':
  Expose android_set_abort_message().
2014-08-19 20:29:23 +00:00
Elliott Hughes
b8a8d1d68e am c5d6df6f: Merge "Add in_port_t and move it and in_addr_t to the correct header file."
* commit 'c5d6df6f2fe57fd5aadbd9ebb131023234c30a0c':
  Add in_port_t and move it and in_addr_t to the correct header file.
2014-08-19 20:26:45 +00:00
Elliott Hughes
74dae62e5a am 59b5f585: am 6f4220c4: Merge "Move the meat of <features.h> into <sys/cdefs.h>."
* commit '59b5f5852219cbfc266f619177990955022a31d1':
  Move the meat of <features.h> into <sys/cdefs.h>.
2014-08-19 19:11:58 +00:00
Elliott Hughes
59b5f58522 am 6f4220c4: Merge "Move the meat of <features.h> into <sys/cdefs.h>."
* commit '6f4220c49e90b18a50d36e47cc9287c7593af939':
  Move the meat of <features.h> into <sys/cdefs.h>.
2014-08-19 19:04:24 +00:00
Dan Albert
62e1e86e33 am f01d69e9: am 2222eae6: Merge "Missing #include <sys/cdefs.h>."
* commit 'f01d69e9def62d67da15e50ff40afab55f5c140c':
  Missing #include <sys/cdefs.h>.
2014-08-19 18:47:16 +00:00
Dan Albert
f01d69e9de am 2222eae6: Merge "Missing #include <sys/cdefs.h>."
* commit '2222eae61e723d946029899edaf7afcbaa160bb7':
  Missing #include <sys/cdefs.h>.
2014-08-19 18:39:11 +00:00
Elliott Hughes
b969ed0786 am f00e8620: am 17f83c93: Merge "Remove unused defines from <features.h>."
* commit 'f00e86209d8b6b846c376786230ae07667534507':
  Remove unused defines from <features.h>.
2014-08-19 17:59:32 +00:00
Elliott Hughes
f00e86209d am 17f83c93: Merge "Remove unused defines from <features.h>."
* commit '17f83c93cbbde3e38a03182931f40b7390061a7d':
  Remove unused defines from <features.h>.
2014-08-19 17:50:01 +00:00
Dan Albert
3a240cc3bb am d971171d: am 934c8015: Merge "Expose android_set_abort_message()."
* commit 'd971171dfb5dffae9d41c07a3961389689f333e7':
  Expose android_set_abort_message().
2014-08-19 17:43:20 +00:00
Elliott Hughes
b6463733ca am ecd48356: am e4fcc3ad: Merge "Fix _BSD_SOURCE/__USE_BSD."
* commit 'ecd48356e38f2aec61639545c9656e8c67bcd6bd':
  Fix _BSD_SOURCE/__USE_BSD.
2014-08-19 17:37:54 +00:00
Dmitriy Ivanov
f9ac267bd3 am 707ed62b: am 8a76ee82: Merge "Revert "Add support for protected local symbol lookup.""
* commit '707ed62b9f873af84dc2a3427aadff3bef35f726':
  Revert "Add support for protected local symbol lookup."
2014-08-19 17:37:53 +00:00
Dan Albert
d971171dfb am 934c8015: Merge "Expose android_set_abort_message()."
* commit '934c8015d515f96c1f97255b48357da922cf626a':
  Expose android_set_abort_message().
2014-08-19 17:32:53 +00:00
Elliott Hughes
ecd48356e3 am e4fcc3ad: Merge "Fix _BSD_SOURCE/__USE_BSD."
* commit 'e4fcc3ad2b2965858571f5fb7d485ceb7e4a8266':
  Fix _BSD_SOURCE/__USE_BSD.
2014-08-19 17:11:21 +00:00
Dmitriy Ivanov
707ed62b9f am 8a76ee82: Merge "Revert "Add support for protected local symbol lookup.""
* commit '8a76ee821e49a912d1777fbe83b1ab07c1da541a':
  Revert "Add support for protected local symbol lookup."
2014-08-19 17:11:21 +00:00
Elliott Hughes
c5d6df6f2f Merge "Add in_port_t and move it and in_addr_t to the correct header file." 2014-08-19 15:49:56 +00:00
Elliott Hughes
35d226e05d Add in_port_t and move it and in_addr_t to the correct header file.
No one's reported this, but I saw it in an Android port of fuser(1).

We still have lots of problems in our network headers because we
get most of the structs direct from the kernel, and it doesn't use
types like this (which is why we've got away without this one for
so long). One day we should probably look at cleaning that up, but
doing so can wait.

Change-Id: If15edf0cfc32716fa312d7ed97c48321b760d979
2014-08-19 12:43:50 -07:00
Dmitriy Ivanov
6179fee1f6 am 19bf7f71: resolved conflicts for merge of e3ad34b3 to lmp-dev-plus-aosp
* commit '19bf7f717023558d54312c95f6a6529154204bab':
  Revert "Add support for protected local symbol lookup."
2014-08-19 13:39:57 +00:00
Dmitriy Ivanov
19bf7f7170 resolved conflicts for merge of e3ad34b3 to lmp-dev-plus-aosp
Change-Id: Ib744885890d38fa8dfbc130de8373343f49352cc
2014-08-19 06:28:24 -07:00
Elliott Hughes
55244a9bdb Merge "Add <stdio_ext.h> for elfutils." 2014-08-19 02:44:29 +00:00
Elliott Hughes
2b021e1066 Add <stdio_ext.h> for elfutils.
Bug: 17139679
Change-Id: I1605ac382dbb6f23b2d874dbb9769f3cde4a6a99
2014-08-20 10:23:52 -07:00
Elliott Hughes
b9d674c8ad Merge "Implement the GNU basename(3) in addition to the POSIX one." 2014-08-19 02:44:29 +00:00
Elliott Hughes
09c39d6df0 Implement the GNU basename(3) in addition to the POSIX one.
Code like perf(1) needs this.

Bug: 11860789
Change-Id: I907eb448052a7b165e4012d74303330d32328cb2
2014-08-19 14:30:30 -07:00
Elliott Hughes
6f4220c49e Merge "Move the meat of <features.h> into <sys/cdefs.h>." 2014-08-19 02:44:29 +00:00
Elliott Hughes
f4c948a9e9 Move the meat of <features.h> into <sys/cdefs.h>.
This way it's a lot harder for us to screw up (since we should always
be including <sys/cdefs.h> anyway).

Bug: 14659579
Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53
2014-08-19 11:18:20 -07:00
Elliott Hughes
17f83c93cb Merge "Remove unused defines from <features.h>." 2014-08-19 02:44:29 +00:00
Elliott Hughes
f800969d35 Remove unused defines from <features.h>.
Bug: 14659579
Change-Id: I2ab02b13cafe3faad31248b843d39ab2cdbfeb91
2014-08-19 10:07:00 -07:00
Elliott Hughes
e4fcc3ad2b Merge "Fix _BSD_SOURCE/__USE_BSD." 2014-08-19 02:44:29 +00:00
Elliott Hughes
b810462028 Fix _BSD_SOURCE/__USE_BSD.
Bug: 14659579
Change-Id: I80ec9584f054c02d1078828f6bca759c42bc1d4c
2014-08-19 09:18:03 -07:00
Dmitriy Ivanov
8a76ee821e Merge "Revert "Add support for protected local symbol lookup."" 2014-08-19 02:44:29 +00:00
Dmitriy Ivanov
02aa70589d Revert "Add support for protected local symbol lookup."
This reverts commit d97e9f546ea195686a78e539315b273393609b9e.

Bug: 17107521
(cherry picked from commit 9419420919ea846bbad5510850c7aaec95021648)

Change-Id: I1a6df946ac8075699e77d68ffa6ac4a21b88e4bf
2014-08-19 05:19:53 -07:00
Elliott Hughes
ef7f99d2b5 am 38ba927c: am 0baf2ca3: Merge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."
* commit '38ba927c35295f935568a8b8c508dcc666780e8c':
  Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).
2014-08-19 00:48:15 +00:00
Elliott Hughes
38ba927c35 am 0baf2ca3: Merge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."
* commit '0baf2ca34c7d9ec067b1f33bad69782c2dedc231':
  Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).
2014-08-19 00:41:14 +00:00
Elliott Hughes
269bef726b am c2289796: am 205cc415: Merge "Improve <sys/cdefs.h>."
* commit 'c228979648e0812b2032d9d622af20153ddf4f29':
  Improve <sys/cdefs.h>.
2014-08-18 22:35:55 +00:00
Elliott Hughes
c228979648 am 205cc415: Merge "Improve <sys/cdefs.h>."
* commit '205cc41556d44b104a21bc6839b7ea44f72df9ba':
  Improve <sys/cdefs.h>.
2014-08-18 22:28:12 +00:00
Dan Albert
8e0eabadba am 247e441b: Resolved conflicts for merge of 6df7b609 to lmp-dev-plus-aosp.
* commit '247e441b0c039046d7ab355424a3d5e41c9bab91':
  Hide C++ stuff in libc. Put it back in libstdc++.
2014-08-18 22:06:30 +00:00
Dan Albert
247e441b0c Resolved conflicts for merge of 6df7b609 to lmp-dev-plus-aosp.
Change-Id: I204e5701031c9ba9cd783c0db58cd51d93a5dc61
2014-08-18 14:58:13 -07:00
Elliott Hughes
205cc41556 Merge "Improve <sys/cdefs.h>." 2014-08-18 21:31:43 +00:00
Elliott Hughes
2cfb4e8e2e Improve <sys/cdefs.h>.
Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522
2014-08-18 14:45:42 -07:00
Christopher Ferris
cc7e938ce1 am bd4351f9: am 54d24e09: Merge "Fix leak_realloc, copy entire allocation."
* commit 'bd4351f9452c1e095e02894c198fe4ee8a99832c':
  Fix leak_realloc, copy entire allocation.
2014-08-18 21:15:06 +00:00
Christopher Ferris
c3bc045a5a am 3290fd46: am 3c7c9a8d: (-s ours) Merge "malloc_usable_size returns the original size."
* commit '3290fd4625fc67f35b641b52c1142bb64dc25d67':
  malloc_usable_size returns the original size.
2014-08-18 21:15:06 +00:00
Christopher Ferris
bd4351f945 am 54d24e09: Merge "Fix leak_realloc, copy entire allocation."
* commit '54d24e099c24d0811ae723640d4e12e9558cab73':
  Fix leak_realloc, copy entire allocation.
2014-08-18 21:05:59 +00:00
Christopher Ferris
3290fd4625 am 3c7c9a8d: (-s ours) Merge "malloc_usable_size returns the original size."
* commit '3c7c9a8d3fda1057b8a4dea85f357a044dd21563':
  malloc_usable_size returns the original size.
2014-08-18 21:05:59 +00:00
Dan Albert
754e884618 am 2b91cf32: am db2e0247: Merge "Hide C++ stuff in libc. Put it back in libstdc++."
* commit '2b91cf32e646481657d951e1bb2d2493116a4edc':
  Hide C++ stuff in libc. Put it back in libstdc++.
2014-08-18 20:22:56 +00:00
Dan Albert
2b91cf32e6 am db2e0247: Merge "Hide C++ stuff in libc. Put it back in libstdc++."
* commit 'db2e0247ed67dfdf6e16eb47348db81dc8ccd04d':
  Hide C++ stuff in libc. Put it back in libstdc++.
2014-08-18 20:14:48 +00:00
Christopher Ferris
0d9b41e1a8 am 3d7f92e9: am 9e56ce4c: Merge "Fix leak_realloc, copy entire allocation." into lmp-dev
* commit '3d7f92e914b5a89a74d33757379775cc6abaebc1':
  Fix leak_realloc, copy entire allocation.
2014-08-18 19:47:21 +00:00
Christopher Ferris
3d7f92e914 am 9e56ce4c: Merge "Fix leak_realloc, copy entire allocation." into lmp-dev
* commit '9e56ce4cd387cfa45de3a71dcccedd061e09d2f5':
  Fix leak_realloc, copy entire allocation.
2014-08-18 19:33:55 +00:00
Elliott Hughes
7134fc3089 Merge "Regenerate "services.h" from /etc/services." 2014-08-16 04:28:29 +00:00
Elliott Hughes
c4a1de1ae2 Regenerate "services.h" from /etc/services.
Change-Id: Iec118f9a342b5c1f6ce6d48965798b12a7159ad3
2014-08-20 12:11:31 -07:00
Elliott Hughes
3bcd414b78 Merge "Clean up some of our python scripts." 2014-08-16 04:28:29 +00:00
Elliott Hughes
dc1fb7000a Clean up some of our python scripts.
Change-Id: Ifa75345db43434298cfb6113fbe2f7a33b88c79d
2014-08-20 11:16:11 -07:00
Dan Albert
2222eae61e Merge "Missing #include <sys/cdefs.h>." 2014-08-16 04:28:29 +00:00
Dan Albert
3a25ab952b Missing #include <sys/cdefs.h>.
Needed for __BEGIN_DECLS/__END_DECLS. Currently fine because it's being
included after other files that do this.

Change-Id: I1f12368fc461f6ef5ca90992cf19f317f0b5d7af
2014-08-19 11:08:02 -07:00
Dan Albert
934c8015d5 Merge "Expose android_set_abort_message()." 2014-08-16 04:20:19 +00:00
Dan Albert
ce6b1abbb1 Expose android_set_abort_message().
Removes the leading underscores from __android_set_abort_message() and
moves its declaration into a public header file.

Bug: 17059126
Change-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab
2014-08-18 14:37:42 -07:00
Christopher Ferris
3c7c9a8d3f Merge "malloc_usable_size returns the original size." 2014-08-16 04:09:33 +00:00
Christopher Ferris
5d9e145c62 malloc_usable_size returns the original size.
Bug: 16874447

(cherry picked from commit 59c1ee44d0a560a754513fab12641c8a57a20d9e)

Change-Id: I70839632974367c8b9893fb1f9c5ee4364608470
2014-08-18 13:10:16 -07:00
Christopher Ferris
54d24e099c Merge "Fix leak_realloc, copy entire allocation." 2014-08-16 04:08:14 +00:00
Christopher Ferris
6d40d34908 Fix leak_realloc, copy entire allocation.
Bug: 16874447

(cherry picked from commit 5df0839cea98bd8c37d8dba5b94b98e99c681a94)

Change-Id: I9280505c0c1c3b5da24ba590448dcd6e7a230406
2014-08-18 13:10:47 -07:00
Dan Albert
db2e0247ed Merge "Hide C++ stuff in libc. Put it back in libstdc++." 2014-08-16 04:08:14 +00:00
Dan Albert
fd5ee9aebc Hide C++ stuff in libc. Put it back in libstdc++.
Bug: 17062445
Change-Id: I027b186719654c2865b08c3fa83f90fa00c1e838
2014-08-18 12:01:01 -07:00
Elliott Hughes
0baf2ca34c Merge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)." 2014-08-16 04:03:35 +00:00
Elliott Hughes
5f5cc45cf0 Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).
<features.h> is supposed to take user-settable stuff like _GNU_SOURCE
and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in
the C library headers. Instead, bionic used to unconditionally define
_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header
files (which makes no sense whatsoever).

Bug: 14659579
Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987
2014-08-18 16:04:03 -07:00
Dmitriy Ivanov
32efc8ea0f am 05d2a981: am 2b6cdb5e: Merge "Add atexit test for attributed c-tor/d-tor"
* commit '05d2a98133b5432f70e1f830aa55c5f50bfb3e29':
  Add atexit test for attributed c-tor/d-tor
2014-08-16 00:44:40 +00:00
Dmitriy Ivanov
7677b6f382 am 18fbdce8: am d8e00769: Merge "Keep symbols for linker" into lmp-dev
* commit '18fbdce86e02726581a13954f27a7ab05e438a2e':
  Keep symbols for linker
2014-08-16 00:43:44 +00:00
Dmitriy Ivanov
05d2a98133 am 2b6cdb5e: Merge "Add atexit test for attributed c-tor/d-tor"
* commit '2b6cdb5e459661727c99e81660c7c3df5cdbe024':
  Add atexit test for attributed c-tor/d-tor
2014-08-15 23:13:30 +00:00
Dmitriy Ivanov
18fbdce86e am d8e00769: Merge "Keep symbols for linker" into lmp-dev
* commit 'd8e007695c755bba75b7243077271b6d655d818a':
  Keep symbols for linker
2014-08-15 21:42:47 +00:00
Hans Boehm
e91a58a164 am a1ff9e8e: am f0f66c02: Have stdatomic.h punt to C++ atomic when possible
* commit 'a1ff9e8eb00d189b01d7f3cdb21541ce0445a3b1':
  Have stdatomic.h punt to C++ atomic when possible
2014-08-15 21:27:05 +00:00
Dmitriy Ivanov
2b6cdb5e45 Merge "Add atexit test for attributed c-tor/d-tor" 2014-08-15 21:23:56 +00:00
Dmitriy Ivanov
4571f31bd4 Add atexit test for attributed c-tor/d-tor
1. Add test for __attribute__((constructor/destructor))
    and static constructor

 2. Compile C++ testlibs with -std=gnu++11

Change-Id: I67f9308144a0c638a51f111fcba8e1933fe0ba41
2014-08-15 14:22:07 -07:00
Hans Boehm
a1ff9e8eb0 am f0f66c02: Have stdatomic.h punt to C++ atomic when possible
* commit 'f0f66c0264eb4b6ee56072af34c91a78a9184f23':
  Have stdatomic.h punt to C++ atomic when possible
2014-08-15 21:16:51 +00:00
Hans Boehm
cc6c2324a7 am e9c7a452: am 7d05f741: Merge "Have stdatomic.h punt to C++ atomic when possible"
* commit 'e9c7a4528cf33f571e9ba4d3ccc032b4f377a89b':
  Have stdatomic.h punt to C++ atomic when possible
2014-08-15 18:33:22 +00:00
Hans Boehm
e9c7a4528c am 7d05f741: Merge "Have stdatomic.h punt to C++ atomic when possible"
* commit '7d05f741e7885ad42f853b5fe2b1d31cdc756b5c':
  Have stdatomic.h punt to C++ atomic when possible
2014-08-15 18:27:38 +00:00
Dan Albert
e7bf334437 am 47822dae: am e2050ae1: Merge "Change name of MB_CUR_MAX implementation function." into lmp-dev
* commit '47822dae63d939b58ca9b946b90396475ac14930':
  Change name of MB_CUR_MAX implementation function.
2014-08-15 13:39:47 +00:00
Dan Albert
6676667b7f am 716fe4ca: am 553c0ea5: Merge "Move mtctxres.c to libc_dns.a." into lmp-dev
* commit '716fe4caacff804a689ac84eaeb5cc5a9311edcd':
  Move mtctxres.c to libc_dns.a.
2014-08-15 13:39:46 +00:00
Christopher Ferris
033c2787c4 am c3731ea8: am 0533195e: Merge "malloc_usable_size returns the original size." into lmp-dev
* commit 'c3731ea8fdeb5d4d0152b986b4bb9316dc49ead8':
  malloc_usable_size returns the original size.
2014-08-15 11:52:10 +00:00
Dan Albert
47822dae63 am e2050ae1: Merge "Change name of MB_CUR_MAX implementation function." into lmp-dev
* commit 'e2050ae1aa9d7e8e6f425bbb7a3991fe612f3913':
  Change name of MB_CUR_MAX implementation function.
2014-08-15 11:49:36 +00:00
Dan Albert
716fe4caac am 553c0ea5: Merge "Move mtctxres.c to libc_dns.a." into lmp-dev
* commit '553c0ea52bde59800fda2ddd380dd18d4f3ab192':
  Move mtctxres.c to libc_dns.a.
2014-08-15 11:49:36 +00:00
Christopher Ferris
c3731ea8fd am 0533195e: Merge "malloc_usable_size returns the original size." into lmp-dev
* commit '0533195e16b86794f14dfb1800ca170ce2548b9f':
  malloc_usable_size returns the original size.
2014-08-15 11:36:56 +00:00
Hans Boehm
7d05f741e7 Merge "Have stdatomic.h punt to C++ atomic when possible" 2014-08-15 05:01:31 +00:00
Hans Boehm
019d395811 Have stdatomic.h punt to C++ atomic when possible
This is an alternate, somewhat simpler, fix that makes it safe to
include both <atomic> and <stdatomic.h> from C++ code in either order.
It means that C code consistently uses one implementation of atomics
and C++ another.  We still have to make sure that those two
implementations interoperate correctly at runtime; in particular,
any flavor of atomic object needs to be represented exactly like the
underlying type, with the proper alignment constraint.

Bug:17007799
Change-Id: Iffcfc5220d8fa150f89dd083a121b24d23f268fc
2014-08-15 10:38:20 -07:00
Dmitriy Ivanov
337527f4a7 am a43011da: am 4bea4c63: Label pages mapped by linker_allocator
* commit 'a43011daf05cf0b22f4c0d387254351e87898035':
  Label pages mapped by linker_allocator
2014-08-14 23:49:22 +00:00
Dmitriy Ivanov
a43011daf0 am 4bea4c63: Label pages mapped by linker_allocator
* commit '4bea4c631f747cc6b570ecd42c744a9b1103bf28':
  Label pages mapped by linker_allocator
2014-08-14 23:34:48 +00:00
Dan Albert
cf59e8ca66 am 3dbab7a7: am d0cce143: Merge "Move mtctxres.c to libc_dns.a."
* commit '3dbab7a709c1048e5051c4496f65def3b2f2c44c':
  Move mtctxres.c to libc_dns.a.
2014-08-14 23:33:27 +00:00
Dan Albert
3dbab7a709 am d0cce143: Merge "Move mtctxres.c to libc_dns.a."
* commit 'd0cce1436435bfcb477f2c5a670ea6675473c2f8':
  Move mtctxres.c to libc_dns.a.
2014-08-14 23:28:19 +00:00
Dmitriy Ivanov
4eb28d6278 am f6829737: am 8457779b: Merge "Keep symbols for linker"
* commit 'f6829737ccaec1af17290283d2c571dd06600f96':
  Keep symbols for linker
2014-08-14 23:00:44 +00:00
Dmitriy Ivanov
f6829737cc am 8457779b: Merge "Keep symbols for linker"
* commit '8457779b3469f5fa6b8104c2fd3869a72f1345dd':
  Keep symbols for linker
2014-08-14 22:55:53 +00:00
Dmitriy Ivanov
1467dfe3e8 Make string tests check all alignment combinations
Reduce randomization of the test by (1) replacing random() & 255
 with hard-coded char and (2) by making State *Iteration function
 visit every possible alignment combination instead of 10 random ones.

Change-Id: I0ff0b4ca817ba9fbbcce53e09b25eb10a1a853c2
2014-08-14 15:05:20 -07:00
Dan Albert
db4b9e600e am 49af4264: am 0d4ccee3: Merge "Change name of MB_CUR_MAX implementation function."
* commit '49af4264ab57618f5e189287f4f2aa9f8aae2231':
  Change name of MB_CUR_MAX implementation function.
2014-08-14 21:35:56 +00:00
Dan Albert
7fe5957503 am 72de5013: am 104a4729: Merge "Add more functionality to glibc symbol checker."
* commit '72de50139dd7bccebb57b2764eae0f534b6ecdca':
  Add more functionality to glibc symbol checker.
2014-08-14 21:35:56 +00:00
Dan Albert
49af4264ab am 0d4ccee3: Merge "Change name of MB_CUR_MAX implementation function."
* commit '0d4ccee35101c6bcd6cc28c23fe79d7b48a98dd0':
  Change name of MB_CUR_MAX implementation function.
2014-08-14 21:31:21 +00:00
Dan Albert
72de50139d am 104a4729: Merge "Add more functionality to glibc symbol checker."
* commit '104a472958f86eafafe0c1d9e2c58ba6403f99e7':
  Add more functionality to glibc symbol checker.
2014-08-14 21:31:20 +00:00
Dmitriy Ivanov
8457779b34 Merge "Keep symbols for linker" 2014-08-14 19:49:27 +00:00
Dmitriy Ivanov
ad5e8b5073 Keep symbols for linker
Bug: 17011146
Change-Id: I314e72a1ac9325bf5ea84d52e3d5bc51d8ea00cf
2014-08-14 15:46:36 -07:00
Dan Albert
0d4ccee351 Merge "Change name of MB_CUR_MAX implementation function." 2014-08-14 19:41:13 +00:00
Dan Albert
224ff048ef Change name of MB_CUR_MAX implementation function.
Glibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down
on differences between bionic and glibc.

Bug: 11156955
Change-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73
2014-08-14 13:56:51 -07:00
Dan Albert
104a472958 Merge "Add more functionality to glibc symbol checker." 2014-08-14 19:41:13 +00:00
Dan Albert
76212eeb53 Add more functionality to glibc symbol checker.
Also scan NDK's unwanted symbols list (to show the things that we're
exporting but the NDK isn't. Symbols hidden in the NDK will be marked
with a *.

Add a -u (--unwanted) flag to disable the first two printed groups
(all symbols in bionic, all symbols in glibc). This is helpful when
wanting to grep in the list of unwanted symbols.

Finally, update the list of known differences between us and glibc.

Change-Id: I6fdb4126823098430454763c391bd8cd369a75bb
2014-08-14 14:02:34 -07:00
Hans Boehm
6486388ee3 am faa0a7b7: am 4f85c6ff: Merge "Add memory ordering constraint, convert to C11 atomics"
* commit 'faa0a7b7886e98c63078b4874224c7ea66a70036':
  Add memory ordering constraint, convert to C11 atomics
2014-08-14 03:38:37 +00:00
Hans Boehm
faa0a7b788 am 4f85c6ff: Merge "Add memory ordering constraint, convert to C11 atomics"
* commit '4f85c6ffd31d1f8cc000ab326edd8edb7ecd55a9':
  Add memory ordering constraint, convert to C11 atomics
2014-08-14 01:21:44 +00:00
Dmitriy Ivanov
3435d89666 am 63ea43de: am e942b3ed: Merge "Added test for ifunc support in dynamic linker."
* commit '63ea43de8f2f5aa5c260165a1d4415f642656d75':
  Added test for ifunc support in dynamic linker.
2014-08-14 00:38:50 +00:00
Dmitriy Ivanov
63ea43de8f am e942b3ed: Merge "Added test for ifunc support in dynamic linker."
* commit 'e942b3ed81ad4e0161f3ffa4f8d0017bfbb750e2':
  Added test for ifunc support in dynamic linker.
2014-08-14 00:36:41 +00:00
Dan Albert
89c57c8728 am 07337271: am 9a74e4c1: Merge "Hide __libc_init_vdso()."
* commit '0733727194593db83aa10ecce74028745a75460a':
  Hide __libc_init_vdso().
2014-08-13 23:11:48 +00:00
Dan Albert
0733727194 am 9a74e4c1: Merge "Hide __libc_init_vdso()."
* commit '9a74e4c15c17b9126ad348d865002880fc36bd12':
  Hide __libc_init_vdso().
2014-08-13 23:05:11 +00:00
Dan Albert
808a44c37f am 9b4410b9: am 1f4c536f: (-s ours) Merge "Hide ScopedTrace."
* commit '9b4410b9123b32ecb3b48eb17ef67e029660a821':
  Hide ScopedTrace.
2014-08-13 20:21:59 +00:00
Dan Albert
9b4410b912 am 1f4c536f: (-s ours) Merge "Hide ScopedTrace."
* commit '1f4c536fd53c69ba8122528435251b894e877e2a':
  Hide ScopedTrace.
2014-08-13 20:16:54 +00:00
Dmitriy Ivanov
41fa785698 am af2ee506: am 8a84d383: Optimize symbol lookup
* commit 'af2ee5068d8516919f38b2785de1ccac996d7d64':
  Optimize symbol lookup
2014-08-13 16:52:47 +00:00
Dmitriy Ivanov
af2ee5068d am 8a84d383: Optimize symbol lookup
* commit '8a84d383fb74135e928d341baa180c55854f2f42':
  Optimize symbol lookup
2014-08-13 16:47:03 +00:00
Dmitriy Ivanov
f759d4cb51 am 15921382: am db0785cb: Merge "Optimize symbol lookup"
* commit '15921382fb94bbbfa559f76eb2aaca9f54fb98d0':
  Optimize symbol lookup
2014-08-13 16:36:08 +00:00
Dmitriy Ivanov
15921382fb am db0785cb: Merge "Optimize symbol lookup"
* commit 'db0785cbf9ee6cc0ace5c89496d7e9f12c288a83':
  Optimize symbol lookup
2014-08-13 16:33:27 +00:00
Dan Albert
0f30332e89 am 4b100dd7: am d332bc68: Hide __libc_malloc_dispatch.
* commit '4b100dd72fe368296882e91ad76d2dedf89e1fa2':
  Hide __libc_malloc_dispatch.
2014-08-13 15:54:50 +00:00
Dan Albert
4b100dd72f am d332bc68: Hide __libc_malloc_dispatch.
* commit 'd332bc68783b9bdef4ecb38bec4e45765a5e9a94':
  Hide __libc_malloc_dispatch.
2014-08-13 15:51:06 +00:00
Dmitriy Ivanov
db0785cbf9 Merge "Optimize symbol lookup" 2014-08-13 01:32:01 +00:00
Dmitriy Ivanov
042426ba63 Optimize symbol lookup
Do not run symbol lookup on already visited soinfos
 Not taking into account already visited libraries
 dramatically slows down dlsym in cases when there
 are multiple occurrences of a large library in
 dependency tree.

Bug: 16977077
Change-Id: I1379f30ed8b06758dd1cc76b80833ac8589afa50
2014-08-13 09:21:57 -07:00
Dan Albert
fe9633c555 am 25b55a09: am 6e3823d3: Merge "Hide __libc_malloc_dispatch."
* commit '25b55a09f661e07e920a8e68951517e1be22349d':
  Hide __libc_malloc_dispatch.
2014-08-13 00:06:04 +00:00
Dan Albert
25b55a09f6 am 6e3823d3: Merge "Hide __libc_malloc_dispatch."
* commit '6e3823d37e54929558990d7c475bc30d381098fe':
  Hide __libc_malloc_dispatch.
2014-08-13 00:02:04 +00:00
Dan Albert
9a74e4c15c Merge "Hide __libc_init_vdso()." 2014-08-12 23:11:16 +00:00
Dan Albert
b3aaf398e1 Hide __libc_init_vdso().
Bug: 11156955
Change-Id: I7ee31e1ee2ce479c5746b374a239637d582815fe
2014-08-13 13:11:58 -07:00
Dan Albert
d0cce14364 Merge "Move mtctxres.c to libc_dns.a." 2014-08-12 19:23:43 +00:00
Dan Albert
891ec7a6e4 Move mtctxres.c to libc_dns.a.
Has the effect of making ___mtctxres hidden.

Bug: 17007799
Change-Id: I5aa5f49344ad5ecb33f48737430561b329bcbb0d
2014-08-14 22:50:45 +00:00
Hans Boehm
4f85c6ffd3 Merge "Add memory ordering constraint, convert to C11 atomics" 2014-08-12 19:23:43 +00:00
Dmitriy Ivanov
e942b3ed81 Merge "Added test for ifunc support in dynamic linker." 2014-08-12 19:23:43 +00:00
Dan Albert
1f4c536fd5 Merge "Hide ScopedTrace." 2014-08-12 19:23:43 +00:00
Dan Albert
f2c1e7ee78 Hide ScopedTrace.
Bug: 11156955
Change-Id: I6cddc868d1c6503e30f1ffcf460f45670631d64a
2014-08-13 11:25:01 -07:00
Dan Albert
6e3823d37e Merge "Hide __libc_malloc_dispatch." 2014-08-12 19:23:43 +00:00
Dan Albert
edd81faff0 Hide __libc_malloc_dispatch.
Now that -Bsymbolic is fixed, we can hide __libc_malloc_dispatch without
breaking ASAN.

Bug: 11156955
Change-Id: Ia2fc9b046a74e666b33aa6c6c5435f70a63b8021
2014-08-12 16:53:14 -07:00
Dmitriy Ivanov
b37298f436 am ab63b6b0: am 00c16c1b: Merge "Label pages mapped by linker_allocator"
* commit 'ab63b6b067c848aa789c6bda4f420b929d5f3c14':
  Label pages mapped by linker_allocator
2014-08-11 16:47:03 +00:00
Dmitriy Ivanov
ab63b6b067 am 00c16c1b: Merge "Label pages mapped by linker_allocator"
* commit '00c16c1b921dfeab42eb92ac53c6d79addc9f549':
  Label pages mapped by linker_allocator
2014-08-11 16:42:25 +00:00
Elliott Hughes
d4f4df8bd9 am a466df52: am 72d7e667: Fix our x86 PIC_PROLOGUE.
* commit 'a466df528c90495931f46fbe39ed37ea3893d5ee':
  Fix our x86 PIC_PROLOGUE.
2014-08-10 08:59:06 +00:00
Elliott Hughes
a466df528c am 72d7e667: Fix our x86 PIC_PROLOGUE.
* commit '72d7e667c7e926cb120c4edb53cbf74c652ab915':
  Fix our x86 PIC_PROLOGUE.
2014-08-10 08:55:52 +00:00
Elliott Hughes
daf86953fb am cd2cd65c: am 4d0f742a: Merge "Fix our x86 PIC_PROLOGUE."
* commit 'cd2cd65c5f5a65e27610d3cd5a6838395114aa5e':
  Fix our x86 PIC_PROLOGUE.
2014-08-10 08:55:20 +00:00
Elliott Hughes
cd2cd65c5f am 4d0f742a: Merge "Fix our x86 PIC_PROLOGUE."
* commit '4d0f742afe4867a0064d46a5b55df33e07c02c9d':
  Fix our x86 PIC_PROLOGUE.
2014-08-10 08:36:55 +00:00
Dan Albert
8e4d698df8 am 2a8efb81: am f4d21fba: Merge "Make __set_errno hidden in asm." into lmp-dev
* commit '2a8efb8169ff6b1b9375aac01f2263b4f71cb9ec':
  Make __set_errno hidden in asm.
2014-08-09 06:58:53 +00:00
Dan Albert
2a8efb8169 am f4d21fba: Merge "Make __set_errno hidden in asm." into lmp-dev
* commit 'f4d21fba064c398110ec0428afc0a025afb2254e':
  Make __set_errno hidden in asm.
2014-08-09 06:55:08 +00:00
Elliott Hughes
4d0f742afe Merge "Fix our x86 PIC_PROLOGUE." 2014-08-09 00:52:40 +00:00
Elliott Hughes
ca5b6a74a7 Fix our x86 PIC_PROLOGUE.
The old definition only worked for functions that didn't use numbered
local labels. Upstream uses '666' not only as some kind of BSD in-joke,
but also because there's little likelihood of any function having
labels that high.

There's a wider question about whether we actually want to go via the
PLT at all in this code, but that's a question for another day.

(cherry-pick of 72d7e667c7e926cb120c4edb53cbf74c652ab915.)

Bug: 16906712
Change-Id: I3cd8ecc448b33f942bb6e783931808ef39091489
2014-08-09 22:18:33 -07:00
Dmitriy Ivanov
00c16c1b92 Merge "Label pages mapped by linker_allocator" 2014-08-09 00:45:41 +00:00
Dmitriy Ivanov
51a22a12ab Label pages mapped by linker_allocator
Change-Id: I7e0bf29bc1a480e9be0d1ae573ca1063d90d82ff
2014-08-11 09:22:48 -07:00
Dan Albert
8e650110e7 am 21588d1f: am a0db4641: Merge "Make __set_errno hidden in asm."
* commit '21588d1f2e885d42b724d8c22ea313593c69cac5':
  Make __set_errno hidden in asm.
2014-08-08 22:53:57 +00:00
Dan Albert
21588d1f2e am a0db4641: Merge "Make __set_errno hidden in asm."
* commit 'a0db46418757dd1b399acb97ff42083cc274e8ae':
  Make __set_errno hidden in asm.
2014-08-08 22:46:15 +00:00
Dan Albert
16f3c423fa am 287762ed: am 3788a1ee: Merge "Revert "Fix incorrect relocations for x86.""
* commit '287762edb7bc2d13cdd4c02f049eac4cf8630876':
  Revert "Fix incorrect relocations for x86."
2014-08-08 22:45:51 +00:00
Dan Albert
287762edb7 am 3788a1ee: Merge "Revert "Fix incorrect relocations for x86.""
* commit '3788a1ee8eae4180117010bb9302334acfe1d218':
  Revert "Fix incorrect relocations for x86."
2014-08-08 22:42:29 +00:00
Hans Boehm
30214b901e Add memory ordering constraint, convert to C11 atomics
Add an ordering constraint/fence to __system_property_serial.
This slows down a read on a Nexus 5 from about 50 to about 70 ns,
but avoids the possibility of seeing an inconsistent property value.
Use C11 atomic operations where easy and appropriate.
This code remains not fully C++11 memory model conformant, but
I would now expect the generated code to now be correct with current compilers.

Bug:14970171
Change-Id: I0891ff1d0f914ae5c3857e3d76b6a7c8a4a07d83
2014-08-08 11:34:25 -07:00
Brigid Smith
c5a13efa9b Added test for ifunc support in dynamic linker.
ifuncs now work in i386 and x86_64 when called in the same library as
well as in a different library.

Bug:6657325
Change-Id: Ic0c48b1b0a76cb90f36c20c79f68294cc3fd44a1
2014-08-08 11:29:35 -07:00
Dan Albert
a0db464187 Merge "Make __set_errno hidden in asm." 2014-08-08 18:16:13 +00:00
Dan Albert
bc9f9f25bf Make __set_errno hidden in asm.
This fixes the build after the -Bsymbolic change.

Bug: 16853291
Change-Id: I989c9fec3c32e0289ea257a3bd2b7fd2709b6ce2
2014-08-08 15:35:47 -07:00
Christopher Ferris
c455eb2478 am 98d4eaab: am 1c5e415f: Merge "Add a way to disable backtracing in malloc debug."
* commit '98d4eaab3fe8e0a243ce2abaf6647acb99e9d81e':
  Add a way to disable backtracing in malloc debug.
2014-08-08 16:57:32 +00:00
Christopher Ferris
98d4eaab3f am 1c5e415f: Merge "Add a way to disable backtracing in malloc debug."
* commit '1c5e415f8c4cd2cb10ad1d1cf660d17161132772':
  Add a way to disable backtracing in malloc debug.
2014-08-08 16:53:11 +00:00
Christopher Ferris
629552fb67 am f1820351: am 49de01a5: Add a way to disable backtracing in malloc debug.
* commit 'f18203517e61fdefbe42620426cc9990294dda00':
  Add a way to disable backtracing in malloc debug.
2014-08-08 16:38:57 +00:00
Christopher Ferris
f18203517e am 49de01a5: Add a way to disable backtracing in malloc debug.
* commit '49de01a5be7bfb07baaea7415647d838383e1b59':
  Add a way to disable backtracing in malloc debug.
2014-08-08 16:35:57 +00:00
Elliott Hughes
e92e559092 am b763b7d6: am f2d8c357: Merge "Remove misleading arm/arm64 PIC_SYM."
* commit 'b763b7d6d57380eb82f6fe5cb62864ea12b405ae':
  Remove misleading arm/arm64 PIC_SYM.
2014-08-08 16:25:09 +00:00
Elliott Hughes
b763b7d6d5 am f2d8c357: Merge "Remove misleading arm/arm64 PIC_SYM."
* commit 'f2d8c357eec1bbc4e7441942dfc338ad1d9a207a':
  Remove misleading arm/arm64 PIC_SYM.
2014-08-08 16:21:23 +00:00
Christopher Ferris
3c684d4393 am e2005cda: am 92f0c91b: Merge "Create a distinct temp directory for each run."
* commit 'e2005cdae0e6ad103fa18e61d5f46c5549fac4e4':
  Create a distinct temp directory for each run.
2014-08-08 07:19:10 +00:00
Christopher Ferris
e2005cdae0 am 92f0c91b: Merge "Create a distinct temp directory for each run."
* commit '92f0c91b82c60788b14062ca032ccc732f0fba4c':
  Create a distinct temp directory for each run.
2014-08-08 07:17:17 +00:00
Elliott Hughes
d0a07699b4 am 0d9cc846: am 43227c0b: Android is all-PIC/PIE.
* commit '0d9cc846f748c72ad8d8df4b606f5333b61cabf0':
  Android is all-PIC/PIE.
2014-08-08 02:26:42 +00:00
Elliott Hughes
0d9cc846f7 am 43227c0b: Android is all-PIC/PIE.
* commit '43227c0b400a33dc9722269beda26313c391fb1e':
  Android is all-PIC/PIE.
2014-08-08 00:53:31 +00:00
Dan Albert
2f4002d9f8 am d17047ff: am cdd2f072: Merge "Fix incorrect relocations for x86."
* commit 'd17047ffd6a6c54e177bc75b05082afeae40f2f9':
  Fix incorrect relocations for x86.
2014-08-08 00:29:29 +00:00
Dan Albert
d17047ffd6 am cdd2f072: Merge "Fix incorrect relocations for x86."
* commit 'cdd2f072af5c22750e06d1613b72336ecda7e71f':
  Fix incorrect relocations for x86.
2014-08-08 00:23:54 +00:00
Dan Albert
3788a1ee8e Merge "Revert "Fix incorrect relocations for x86."" 2014-08-07 18:51:06 +00:00
Dan Albert
3726f9c38b Revert "Fix incorrect relocations for x86."
Bug: 16853291
This reverts commit 512bc5232689bec9c763c8247b59de970096ff87.
2014-08-08 22:26:47 +00:00
Elliott Hughes
c4a9c129dd am 1636f80b: am d994622e: Merge "Android is all-PIC/PIE."
* commit '1636f80b7d30103f10ab3ccc2632e8f693c0f9c0':
  Android is all-PIC/PIE.
2014-08-07 18:37:50 +00:00
Elliott Hughes
1636f80b7d am d994622e: Merge "Android is all-PIC/PIE."
* commit 'd994622ebf2c4b7e918d9e1f1840f9df88ee7222':
  Android is all-PIC/PIE.
2014-08-07 18:33:33 +00:00
Christopher Ferris
1c5e415f8c Merge "Add a way to disable backtracing in malloc debug." 2014-08-07 17:53:11 +00:00
Christopher Ferris
88a1f520d2 Add a way to disable backtracing in malloc debug.
The property libc.debug.malloc.nobacktrace set to non-zero disables
getting backtracing when using mode 1 or mode 10.

Bug: 16874447

(cherry picked from 49de01a5be7bfb07baaea7415647d838383e1b59)

Change-Id: I6bbefe5420b14991fe84c2f849222dcd7cb592bf
2014-08-08 09:40:17 -07:00
Christopher Ferris
92f0c91b82 Merge "Create a distinct temp directory for each run." 2014-08-07 15:46:11 +00:00
Christopher Ferris
01bd32e0e4 Create a distinct temp directory for each run.
Modify make__NR_name so that only __ARM_NR_ is exempted from the
__NR_ being prepended. This avoids a case where using a name starting
with __ but is not a valid syscall name in SYSCALLS.TXT does not generate
code that will compile but references the function itself and causes
link errors.

Fix all of the directory references from dir_part1 + dir_part2 to
use os.path.join() instead.

Change-Id: Ib9527eba6f25f26a30c5cb0ad431f3f88a7683cf
2014-08-07 19:33:22 -07:00
Dan Albert
cdd2f072af Merge "Fix incorrect relocations for x86." 2014-08-07 14:59:23 +00:00
Dan Albert
512bc52326 Fix incorrect relocations for x86.
These calls were not going through the PLT like they should have been.

Bug: 16853291
Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
2014-08-07 16:21:47 -07:00
Elliott Hughes
d994622ebf Merge "Android is all-PIC/PIE." 2014-08-07 14:59:23 +00:00
Elliott Hughes
6b6364a7fc Android is all-PIC/PIE.
Clean up the x86/x86_64 assembler. The motivator (other than reducing
confusion) was that asm.h incorrectly checked PIC rather than __PIC__.

Bug: 16823325
Change-Id: Iaa9d45009e93a4b31b719021c93ac221e336479b
2014-08-07 10:54:54 -07:00
Christopher Ferris
e552abb0b4 am 1c85152f: am 85ebcfce: Merge "Do a second key cleanup in pthread_exit."
* commit '1c85152f76e0696e117760d5f89d23480a753afd':
  Do a second key cleanup in pthread_exit.
2014-08-07 01:17:28 +00:00
Christopher Ferris
1c85152f76 am 85ebcfce: Merge "Do a second key cleanup in pthread_exit."
* commit '85ebcfceb62f011e0db359affefcf5570f518bd5':
  Do a second key cleanup in pthread_exit.
2014-08-07 01:14:05 +00:00
Christopher Ferris
9e849a64ed am 60b4de13: am 3e7b8e2a: Merge "Do a second key cleanup in pthread_exit." into lmp-dev
* commit '60b4de132cfa2efef75033aefe3322762042ea92':
  Do a second key cleanup in pthread_exit.
2014-08-07 01:13:13 +00:00
Christopher Ferris
60b4de132c am 3e7b8e2a: Merge "Do a second key cleanup in pthread_exit." into lmp-dev
* commit '3e7b8e2a8bd16a37cecdae1135a5e7fc6e64c762':
  Do a second key cleanup in pthread_exit.
2014-08-07 01:05:51 +00:00
Elliott Hughes
984e051bcf am 3ea3982f: am 501eb513: Merge "Upgrade bionic to tzdata2014f." into lmp-dev
* commit '3ea3982f1f810049ad02f658220784ace5eae6db':
  Upgrade bionic to tzdata2014f.
2014-08-07 01:00:59 +00:00
Elliott Hughes
3ea3982f1f am 501eb513: Merge "Upgrade bionic to tzdata2014f." into lmp-dev
* commit '501eb513ae4f037dc5ef5db530886c05b7f5d964':
  Upgrade bionic to tzdata2014f.
2014-08-07 00:53:33 +00:00
Elliott Hughes
5b420a25ac am af0ec906: am 6edf8985: Merge "Fix the tzdata update tools." into lmp-dev
* commit 'af0ec906bd0f77971afaf135466e60e41f7faea7':
  Fix the tzdata update tools.
2014-08-07 00:52:49 +00:00
Elliott Hughes
65077ed577 am 5a092670: am f3868fa7: Merge "Upgrade bionic to tzdata2014f."
* commit '5a0926701997d6ff2189054787147adb956d4b3a':
  Upgrade bionic to tzdata2014f.
2014-08-07 00:52:48 +00:00
Elliott Hughes
a76126a0a3 am 0415a4a6: am b4b7e054: Merge "Fix the tzdata update tools."
* commit '0415a4a6f89e31cd8b3d5126fd7a1b9877d84906':
  Fix the tzdata update tools.
2014-08-07 00:52:48 +00:00
Elliott Hughes
af0ec906bd am 6edf8985: Merge "Fix the tzdata update tools." into lmp-dev
* commit '6edf8985c1fe205d13543212fba0e079ed7dc4a9':
  Fix the tzdata update tools.
2014-08-07 00:44:37 +00:00
Elliott Hughes
5a09267019 am f3868fa7: Merge "Upgrade bionic to tzdata2014f."
* commit 'f3868fa735ad67ec853f3db36936ca184bd5f79a':
  Upgrade bionic to tzdata2014f.
2014-08-07 00:42:12 +00:00
Elliott Hughes
0415a4a6f8 am b4b7e054: Merge "Fix the tzdata update tools."
* commit 'b4b7e0547da259b38b3e31dbd08cf26026cff1ee':
  Fix the tzdata update tools.
2014-08-07 00:42:11 +00:00
Elliott Hughes
f3868fa735 Merge "Upgrade bionic to tzdata2014f." 2014-08-07 00:00:55 +00:00
Elliott Hughes
51fde5b865 Upgrade bionic to tzdata2014f.
From the release notes:

  Changes affecting future time stamps

    Russia will subtract an hour from most of its time zones on
    2014-10-26 at 02:00 local time.  (Thanks to Alexander Krivenyshev.)
    There are a few exceptions: Magadan Oblast (Asia/Magadan) and
    Zabaykalsky Krai are subtracting two hours; conversely, Chukotka
    Autonomous Okrug (Asia/Anadyr), Kamchatka Krai (Asia/Kamchatka),
    Kemerovo Oblast (Asia/Novokuznetsk), and the Samara Oblast and the
    Udmurt Republic (Europe/Samara) are not changing their clocks.  The
    changed zones are Europe/Kaliningrad, Europe/Moscow,
    Europe/Simferopol, Europe/Volgograd, Asia/Yekaterinburg, Asia/Omsk,
    Asia/Novosibirsk, Asia/Krasnoyarsk, Asia/Irkutsk, Asia/Yakutsk,
    Asia/Vladivostok, Asia/Khandyga, Asia/Sakhalin, and Asia/Ust-Nera;
    Asia/Magadan will have two hours subtracted; and Asia/Novokuznetsk's
    time zone abbreviation is affected, but not its UTC offset.  Two
    zones are added: Asia/Chita (split from Asia/Yakutsk, and also with
    two hours subtracted) and Asia/Srednekolymsk (split from
    Asia/Magadan, but with only one hour subtracted).  (Thanks to Tim
    Parenti for much of the above.)

  Changes affecting past time stamps

    China's five zones have been simplified to two, since the post-1970
    differences in the other three seem to have been imaginary.  The
    zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been
    removed; backwards-compatibility links still work, albeit with
    different behaviors for time stamps before May 1980.  Asia/Urumqi's
    1980 transition to UTC+8 has been removed, so that it is now at
    UTC+6 and not UTC+8.  (Thanks to Luther Ma and to Alois Treindl;
    Treindl sent helpful translations of two papers by Guo Qingsheng.)

    Some zones have been turned into links, when they differed from
    existing zones only for older UTC offsets where the data were likely
    invented.  These changes affect UTC offsets in pre-1970 time stamps
    only.  This is similar to the change in release 2013e, except this
    time for western Africa.  The affected zones are: Africa/Bamako,
    Africa/Banjul, Africa/Conakry, Africa/Dakar, Africa/Freetown,
    Africa/Lome, Africa/Nouakchott, Africa/Ouagadougou, Africa/Sao_Tome,
    and Atlantic/St_Helena.  This also affects the
    backwards-compatibility link Africa/Timbuktu.  (Thanks to Alan
    Barrett, Stephen Colebourne, Tim Parenti, and David Patte for
    reporting problems in earlier versions of this change.)

    Asia/Shanghai's pre-standard-time UT offset has been changed from
    8:05:57 to 8:05:43, the location of Xujiahui Observatory.  Its
    transition to standard time has been changed from 1928 to 1901.

    Asia/Taipei switched to JWST on 1896-01-01, then to JST on
    1937-10-01, then to CST on 1945-09-21 at 01:00, and did not observe
    DST in 1945.  In 1946 it observed DST from 05-15 through 09-30; in
    1947 from 04-15 through 10-31; and in 1979 from 07-01 through 09-30.
    (Thanks to Yu-Cheng Chuang.)

    Asia/Riyadh's transition to standard time is now 1947-03-14, not
    1950.

    Europe/Helsinki's 1942 fall-back transition was 10-04 at 01:00, not
    10-03 at 00:00.  (Thanks to Konstantin Hyppönen.)

    Pacific/Pago_Pago has been changed from UTC-11:30 to UTC-11 for the
    period from 1911 to 1950.

    Pacific/Chatham has been changed to New Zealand standard time plus
    45 minutes for the period before 1957, reflecting a 1956 remark in
    the New Zealand parliament.

    Europe/Budapest has several pre-1946 corrections: in 1918 the
    transition out of DST was on 09-16, not 09-29; in 1919 it was on
    11-24, not 09-15; in 1945 it was on 11-01, not 11-03; in 1941 the
    transition to DST was 04-08 not 04-06 at 02:00; and there was no DST
    in 1920.

    Africa/Accra is now assumed to have observed DST from 1920 through
    1935.

    Time in Russia before 1927 or so has been corrected by a few seconds
    in the following zones: Europe/Moscow, Asia/Irkutsk, Asia/Tbilisi,
    Asia/Tashkent, Asia/Vladivostok, Asia/Yekaterinburg,
    Europe/Helsinki, and Europe/Riga.  Also, Moscow's location has been
    changed to its Kilometer 0 point.  (Thanks to Vladimir Karpinsky for
    the Moscow changes.)

(cherry-pick of 0dc2c1db6fc84b4526f2a5f8d73e1187500f2300.)

Bug: 16168653
Change-Id: I23827254bcf50dd07a2192ed34b02224d73e07a0
2014-08-06 17:38:01 -07:00
Elliott Hughes
b4b7e0547d Merge "Fix the tzdata update tools." 2014-08-06 23:55:49 +00:00
Elliott Hughes
13bab43337 Fix the tzdata update tools.
The recent libcore ZoneInfo changes mean that we can no longer
compile libcore's ZoneInfo against the RI. Luckily, the field in
our data file that we needed ZoneInfo for isn't actually used.
This change removes our dependence on libcore.

I've left the field in to avoid a file format change. We can remove
the field if/when we next have a real need to bump the file format.

(cherry-pick of 90cb5ffb85a9bc2e725824b3ca8db932d02c45db.)

Bug: 16168653
Change-Id: Iedad2252c2b49f4d8bb2c7d9078b39b622444ca7
2014-08-06 17:31:48 -07:00
Elliott Hughes
f2d8c357ee Merge "Remove misleading arm/arm64 PIC_SYM." 2014-08-06 23:49:29 +00:00
Elliott Hughes
651a0683ca Remove misleading arm/arm64 PIC_SYM.
Bug: 16823325
Change-Id: Ic8ff3a628bb4cd71361e3a1c2cfde4b3d39c50b1
2014-08-07 11:52:38 -07:00
Christopher Ferris
85ebcfceb6 Merge "Do a second key cleanup in pthread_exit." 2014-08-06 23:49:29 +00:00
Christopher Ferris
e380960813 Do a second key cleanup in pthread_exit.
During pthread_exit, the keys are cleaned. Unfortunately, a call to
free occurs after the cleanup and the memory for some of the keys
is recreated when using jemalloc. The solution is to do the key
cleanup twice.

Also, modify the pthread_detach__leak test to be less flaky
when run on a jemalloc system.

Bug: 16513133

(cherry picked from commit 18d93f2793fad393b6aa6eae6afe1054958339d5)

Change-Id: Idb32e7f9b09e2c088d256ed9eb881df80c81ff8e
2014-08-06 17:57:04 -07:00
Dan Albert
9f7bca69e9 am 0f3b73aa: am bc0d65c1: Merge "Proper MB_CUR_MAX." into lmp-dev
* commit '0f3b73aa22ca3bed476ec2800a7b06f0eecdcf88':
  Proper MB_CUR_MAX.
2014-08-06 23:02:32 +00:00
Dan Albert
914d64980b am 589859a1: am 5b39a445: Merge "Fix mbsrtowcs(3) src param for finished string." into lmp-dev
* commit '589859a125fc0c67d0f56706ee18f7ae2f3e45ee':
  Fix mbsrtowcs(3) src param for finished string.
2014-08-06 23:02:28 +00:00
Dan Albert
a56d8fd6de am d14344ad: am 40079b00: Fixes build.
* commit 'd14344adf295c3870bc8454d9989da3c5e320312':
  Fixes build.
2014-08-06 23:02:28 +00:00
Dan Albert
5511dd46fd am 8b1af476: am 5386a741: Revert "Replaces vfork() implementation with fork()"
* commit '8b1af4762c3f1fb35173830ba417564a5b3dc0ad':
  Revert "Replaces vfork() implementation with fork()"
2014-08-06 23:02:27 +00:00
Elliott Hughes
bd5cc87362 am fa70bacc: am 3a238ae7: Merge "Revert "Add a hack to <stdlib.h> until we can fix libvpx.""
* commit 'fa70bacc6cfe78793743696b91c7fe3158a01a3f':
  Revert "Add a hack to <stdlib.h> until we can fix libvpx."
2014-08-06 23:01:37 +00:00
Elliott Hughes
7ef16e88e8 am 5fb6ce29: am 00a8344a: Merge "Workaround b/16818336 which fails build under aggressive inlining." into lmp-dev
* commit '5fb6ce295038d345dee354b93c2fc408effdd29c':
  Workaround b/16818336 which fails build under aggressive inlining.
2014-08-06 23:00:48 +00:00
Paul Jensen
2e2d7dee1d am 8019e6f0: am 7a5f0952: Merge "Revert most of "Cleanup: Delete dead code."" into lmp-dev
* commit '8019e6f0fd39a9b76034a12ef1598b50588fb719':
  Revert most of "Cleanup: Delete dead code."
2014-08-06 23:00:47 +00:00
Dan Albert
0f3b73aa22 am bc0d65c1: Merge "Proper MB_CUR_MAX." into lmp-dev
* commit 'bc0d65c114f3ead6d89f8e92622bc941d731b01c':
  Proper MB_CUR_MAX.
2014-08-06 21:26:13 +00:00
Dan Albert
589859a125 am 5b39a445: Merge "Fix mbsrtowcs(3) src param for finished string." into lmp-dev
* commit '5b39a44575e01ecf65397ffb7518efc3c65a6d8b':
  Fix mbsrtowcs(3) src param for finished string.
2014-08-06 21:26:13 +00:00
Dan Albert
d14344adf2 am 40079b00: Fixes build.
* commit '40079b003168b39dab91e106c7a877b677e64ef1':
  Fixes build.
2014-08-06 21:26:12 +00:00
Dan Albert
8b1af4762c am 5386a741: Revert "Replaces vfork() implementation with fork()"
* commit '5386a741e77bfff4e72ca6861fdd3fe2208452ce':
  Revert "Replaces vfork() implementation with fork()"
2014-08-06 21:26:09 +00:00
Elliott Hughes
fa70bacc6c am 3a238ae7: Merge "Revert "Add a hack to <stdlib.h> until we can fix libvpx.""
* commit '3a238ae7620298608e1d463901051c397e4f8a2f':
  Revert "Add a hack to <stdlib.h> until we can fix libvpx."
2014-08-06 20:38:40 +00:00
Elliott Hughes
5fb6ce2950 am 00a8344a: Merge "Workaround b/16818336 which fails build under aggressive inlining." into lmp-dev
* commit '00a8344ae82a691209b665adae828a5abe570cfb':
  Workaround b/16818336 which fails build under aggressive inlining.
2014-08-06 19:50:02 +00:00
Paul Jensen
8019e6f0fd am 7a5f0952: Merge "Revert most of "Cleanup: Delete dead code."" into lmp-dev
* commit '7a5f0952a293fd6e511db0e0a72e18f20bb4c500':
  Revert most of "Cleanup: Delete dead code."
2014-08-06 19:50:01 +00:00
Elliott Hughes
a69fd4651a am 42848344: am bb91a1b8: Merge "Workaround b/16818336 which fails build under aggressive inlining."
* commit '428483446e7cd52cb608481c091f2ac4521081ae':
  Workaround b/16818336 which fails build under aggressive inlining.
2014-08-06 18:57:22 +00:00
Elliott Hughes
428483446e am bb91a1b8: Merge "Workaround b/16818336 which fails build under aggressive inlining."
* commit 'bb91a1b845f7c8b3b09d07fe467aa32d2aeddc4f':
  Workaround b/16818336 which fails build under aggressive inlining.
2014-08-06 18:53:23 +00:00
Elliott Hughes
5801991bdd am 987e533e: am 59b0933e: Explain how wcswcs ended up in ndk_cruft.cpp.
* commit '987e533ed466a51a1b269f6707765d4a6243d27e':
  Explain how wcswcs ended up in ndk_cruft.cpp.
2014-08-06 18:17:01 +00:00
Elliott Hughes
987e533ed4 am 59b0933e: Explain how wcswcs ended up in ndk_cruft.cpp.
* commit '59b0933e6d4cd9671ad3b6baeae424bc72c8ece0':
  Explain how wcswcs ended up in ndk_cruft.cpp.
2014-08-06 18:09:18 +00:00
Elliott Hughes
f69f0b9ac2 am 10d197c6: am 8b91980e: Merge "Explain how wcswcs ended up in ndk_cruft.cpp."
* commit '10d197c681e96187645eaf6341d13967e33a0308':
  Explain how wcswcs ended up in ndk_cruft.cpp.
2014-08-06 18:08:43 +00:00
Elliott Hughes
10d197c681 am 8b91980e: Merge "Explain how wcswcs ended up in ndk_cruft.cpp."
* commit '8b91980e4c139558f9cca4e9a0980dad07c06e68':
  Explain how wcswcs ended up in ndk_cruft.cpp.
2014-08-06 18:02:59 +00:00
Elliott Hughes
f77fbbb53e am 0a693b4f: am afc86723: Merge "Add an obvious comment to <stdio.h> for fixincludes."
* commit '0a693b4fc88bc6e0f3b0672a994931cce5d42716':
  Add an obvious comment to <stdio.h> for fixincludes.
2014-08-06 17:40:42 +00:00
Dmitriy Ivanov
694d295e5e am 36730936: am db7a17d4: Revert "Revert "Fix dlsym(3) to do breadth first search.""
* commit '36730936a13b1948240641739a15c3ef56c501f3':
  Revert "Revert "Fix dlsym(3) to do breadth first search.""
2014-08-06 17:36:10 +00:00
Dan Albert
282638f7f5 am 909464c2: am de69069f: Merge "Fixes build."
* commit '909464c2cb90fa8b530ae53fa849d3bc5818b676':
  Fixes build.
2014-08-06 17:25:40 +00:00
Elliott Hughes
8b91980e4c Merge "Explain how wcswcs ended up in ndk_cruft.cpp." 2014-08-06 17:20:04 +00:00
Elliott Hughes
1628eb1d43 Explain how wcswcs ended up in ndk_cruft.cpp.
Change-Id: Ie45148095b2d5c3896c0df623d5d06a700c33c70
2014-08-06 10:47:33 -07:00
Elliott Hughes
3a238ae762 Merge "Revert "Add a hack to <stdlib.h> until we can fix libvpx."" 2014-08-06 17:15:22 +00:00
Elliott Hughes
9d2a05a6dd Revert "Add a hack to <stdlib.h> until we can fix libvpx."
This reverts commit 3fb5097a7eec40404760c304b36c8b657b374cab.
libvpx is now fixed.

(cherry-pick of 2be1be47aa9b63568fe6ce1e0a4029b37d90764d.)

Bug: 15598056
Change-Id: Icca974e667f92206505f484bd291726eb0150f68
2014-08-06 13:20:41 -07:00
Elliott Hughes
0a693b4fc8 am afc86723: Merge "Add an obvious comment to <stdio.h> for fixincludes."
* commit 'afc8672387438f9c8926a12831f43a6dd1f59323':
  Add an obvious comment to <stdio.h> for fixincludes.
2014-08-06 16:13:37 +00:00
Ben Murdoch
62c69c25d2 fix the build
Change-Id: I8a3b26014ced1ce95b9a0f675099c3fdfbe041f3
2014-08-06 16:17:04 +01:00
Dan Albert
74508b2fec am dfe8417a: am a7ef8188: Merge "Revert "Replaces vfork() implementation with fork()""
* commit 'dfe8417a58a8413cce6c7bb2b224950c7085245c':
  Revert "Replaces vfork() implementation with fork()"
2014-08-06 12:10:50 +00:00
Dmitriy Ivanov
36730936a1 am db7a17d4: Revert "Revert "Fix dlsym(3) to do breadth first search.""
* commit 'db7a17d4ff56a05af01ee2fee1f3c55245bfc630':
  Revert "Revert "Fix dlsym(3) to do breadth first search.""
2014-08-06 01:23:25 +00:00
Dan Albert
909464c2cb am de69069f: Merge "Fixes build."
* commit 'de69069fcfee8d89dfc70da374760ef0c29fe0a4':
  Fixes build.
2014-08-05 21:55:18 +00:00
Dan Albert
dfe8417a58 am a7ef8188: Merge "Revert "Replaces vfork() implementation with fork()""
* commit 'a7ef8188e24446d41c5abbe9addf55cc6a128968':
  Revert "Replaces vfork() implementation with fork()"
2014-08-05 21:43:20 +00:00
Elliott Hughes
afc8672387 Merge "Add an obvious comment to <stdio.h> for fixincludes." 2014-08-05 17:41:26 +00:00
Elliott Hughes
df85f50b82 Add an obvious comment to <stdio.h> for fixincludes.
We don't want GCC's fixincludes to touch our <stdio.h> because we
want to support multiple platform versions with one toolchain. Give
them a nice easy unambiguous string to look for.

Bug: http://code.google.com/p/android/issues/detail?id=73728
Change-Id: I15cb9a2c9eb0a44b0965dc2139f224f2b6e68ea1
2014-08-06 09:03:52 -07:00
Dan Albert
de69069fcf Merge "Fixes build." 2014-08-05 17:41:26 +00:00
Dan Albert
9eae8405e8 Fixes build.
This change somehow went missing from the vfork change.

Change-Id: I807a2072080eac20601c694e85ba5723220289d8
2014-08-05 14:46:03 -07:00
Dan Albert
a7ef8188e2 Merge "Revert "Replaces vfork() implementation with fork()"" 2014-08-05 17:41:26 +00:00
Dan Albert
6a918870ba Revert "Replaces vfork() implementation with fork()"
We're getting cold feet on this one... let's put it back.

This reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.

Change-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269
2014-08-05 14:11:38 -07:00
Elliott Hughes
bb91a1b845 Merge "Workaround b/16818336 which fails build under aggressive inlining." 2014-08-05 00:30:25 +00:00
Dehao Chen
28285f85a1 Workaround b/16818336 which fails build under aggressive inlining.
(cherry-pick of 7aa27e1c1a53afe28f6180fd1fc50d096cabea7b.)

Change-Id: Ifcd596714c427a2ec39502b9c0af9082ded91884
2014-08-06 11:43:38 -07:00
Dmitriy Ivanov
83a1c15907 am f9a0af9c: am 1b1966d9: Revert "Fix dlsym(3) to do breadth first search."
* commit 'f9a0af9c9343ba48ab42decbb8aab7fbefed1bd4':
  Revert "Fix dlsym(3) to do breadth first search."
2014-08-04 16:50:33 +00:00
Dmitriy Ivanov
f9a0af9c93 am 1b1966d9: Revert "Fix dlsym(3) to do breadth first search."
* commit '1b1966d9448e979d1503a3d8843708bfa8880dc6':
  Revert "Fix dlsym(3) to do breadth first search."
2014-08-04 16:46:55 +00:00
Dan Albert
74a7a4d296 am b782c20b: am 447fe1c2: Merge "Fix mbsrtowcs(3) src param for finished string."
* commit 'b782c20b8244ec5cc348547291503a4c30ca65ba':
  Fix mbsrtowcs(3) src param for finished string.
2014-07-31 22:35:45 +00:00
Dan Albert
b782c20b82 am 447fe1c2: Merge "Fix mbsrtowcs(3) src param for finished string."
* commit '447fe1c23bc5adaded9a51d3b58f3adaf2cce7b3':
  Fix mbsrtowcs(3) src param for finished string.
2014-07-31 22:28:59 +00:00
Dan Albert
ce6fe525d5 am 0c4ad535: am 36bacd23: Merge "Proper MB_CUR_MAX."
* commit '0c4ad535dc8d1aea6ee2bbeb8a68fc3a4363f246':
  Proper MB_CUR_MAX.
2014-07-31 00:26:18 +00:00
Dan Albert
0c4ad535dc am 36bacd23: Merge "Proper MB_CUR_MAX."
* commit '36bacd237de931c48714d1a8aa4aa9522283e407':
  Proper MB_CUR_MAX.
2014-07-31 00:22:22 +00:00
Dan Albert
36bacd237d Merge "Proper MB_CUR_MAX." 2014-07-31 00:14:55 +00:00
Dan Albert
1aec7c1a35 Proper MB_CUR_MAX.
Previously this was hard coded to 4. This is only the case for UTF-8
locales.

As a side effect, this properly reports C.UTF-8 as the default locale
instead of C.

Change-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc
2014-07-30 17:09:46 -07:00
Christopher Ferris
828c7b396d am 592cfa90: am 61833de6: Fix memchr with a zero length.
* commit '592cfa90c3cc397a2a0415ac0d8c88f8f03210de':
  Fix memchr with a zero length.
2014-07-30 23:51:25 +00:00
Christopher Ferris
592cfa90c3 am 61833de6: Fix memchr with a zero length.
* commit '61833de613990f2fdaf357bb3d854d72a4980890':
  Fix memchr with a zero length.
2014-07-30 23:46:26 +00:00
Christopher Ferris
f2eef5159a am 30ac3d58: am 0f7ed163: Merge "Fix memchr with a zero length."
* commit '30ac3d58eaa6e502d053eaaabf163b173884cceb':
  Fix memchr with a zero length.
2014-07-30 23:39:12 +00:00
Christopher Ferris
30ac3d58ea am 0f7ed163: Merge "Fix memchr with a zero length."
* commit '0f7ed163cf6c1fe6d71a1d7e5fb6d0989213be85':
  Fix memchr with a zero length.
2014-07-30 23:33:45 +00:00
Elliott Hughes
aa1cbcb131 am 63b6416f: am 4f76469e: Implement <sys/fsuid.h>.
* commit '63b6416f339c70855e4bb44cd1c6fbb9a85a60fe':
  Implement <sys/fsuid.h>.
2014-07-30 23:31:46 +00:00
Elliott Hughes
796d419f2e am 897aca77: am 83b9826e: Merge "Implement <sys/fsuid.h>."
* commit '897aca77eeb9286574ddec58bb893df7c02a8912':
  Implement <sys/fsuid.h>.
2014-07-30 23:31:46 +00:00
Elliott Hughes
63b6416f33 am 4f76469e: Implement <sys/fsuid.h>.
* commit '4f76469e88e255bab1f8264e9ff8b95bff84365f':
  Implement <sys/fsuid.h>.
2014-07-30 23:27:43 +00:00
Elliott Hughes
897aca77ee am 83b9826e: Merge "Implement <sys/fsuid.h>."
* commit '83b9826e683db30e9b359737253b87ef8b3ba3df':
  Implement <sys/fsuid.h>.
2014-07-30 23:25:22 +00:00
Duane Sand
5750c7cc49 am 66fa2c87: am cd541952: [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
* commit '66fa2c87d6dea6c316a9984146c306011e3afb80':
  [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
2014-07-30 22:32:41 +00:00
Duane Sand
66fa2c87d6 am cd541952: [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
* commit 'cd54195262ac5531fff892255849925ebbbd303e':
  [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
2014-07-30 22:28:55 +00:00
Elliott Hughes
8ead392b05 am abd28445: am c7706a02: Merge "[MIPSR6] Use C-coded string ops on mips32r6/mips64r6"
* commit 'abd284457884c4972a6dd72e2a2b647d935b1fe3':
  [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
2014-07-30 22:27:49 +00:00
Elliott Hughes
abd2844578 am c7706a02: Merge "[MIPSR6] Use C-coded string ops on mips32r6/mips64r6"
* commit 'c7706a02ad90ab73f3a056040d2c4a3464ab1ab1':
  [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
2014-07-30 22:21:57 +00:00
Elliott Hughes
adc2a59383 am 84093b17: am 11bf8a30: Only wipe TLS for user-supplied stacks.
* commit '84093b174eb30f52414838d4a54847b19c621c93':
  Only wipe TLS for user-supplied stacks.
2014-07-30 22:10:49 +00:00
Elliott Hughes
84093b174e am 11bf8a30: Only wipe TLS for user-supplied stacks.
* commit '11bf8a3025a7b5aee891c521255a7db1860e5b12':
  Only wipe TLS for user-supplied stacks.
2014-07-30 22:06:54 +00:00
Elliott Hughes
aed19ee769 am 594a5275: am 18a1bbe6: Merge "Only wipe TLS for user-supplied stacks."
* commit '594a5275188df203bb720afc2b2c898643fff6e3':
  Only wipe TLS for user-supplied stacks.
2014-07-30 22:06:45 +00:00
Elliott Hughes
594a527518 am 18a1bbe6: Merge "Only wipe TLS for user-supplied stacks."
* commit '18a1bbe6e18770694d489f2e140e779dc59fde86':
  Only wipe TLS for user-supplied stacks.
2014-07-30 22:02:31 +00:00
Christopher Ferris
0f7ed163cf Merge "Fix memchr with a zero length." 2014-07-30 20:40:05 +00:00
Christopher Ferris
e03e1eac0b Fix memchr with a zero length.
The memchr implementation for 64 bit fails if these conditions occur:

- The buffer is 32 byte aligned.
- The buffer contains the character in the first byte.
- The count sent in is zero.

The function should return NULL, but it's not.

Bug: 16676625
Change-Id: Iab33cc7a8b79920350c72f054dff0e0a3cde69ce
2014-07-30 16:06:56 -07:00
Elliott Hughes
18a1bbe6e1 Merge "Only wipe TLS for user-supplied stacks." 2014-07-30 19:31:16 +00:00
Elliott Hughes
40a5217448 Only wipe TLS for user-supplied stacks.
Bug: 16667988
Change-Id: Id180ab2bc6713e1612386120a306db5bbf1d6046
2014-07-30 14:49:40 -07:00
Christopher Ferris
a6d698d914 am 0770ed06: am c701e5b3: Use libunwindbacktrace for debug malloc code.
* commit '0770ed068078786aa2e38ddc6eecbbf2a5fccef0':
  Use libunwindbacktrace for debug malloc code.
2014-07-30 17:02:14 +00:00
Elliott Hughes
46975d966c am a99a69a6: am 1242f7eb: Remove declarations for things that don\'t exist.
* commit 'a99a69a6400ed5078749656ee120fad1ad09ba97':
  Remove declarations for things that don't exist.
2014-07-30 17:02:13 +00:00
Elliott Hughes
8fc6d6807f am 4d17c6c3: am f6aa1779: Merge "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."" into lmp-dev
* commit '4d17c6c39f8aeae13b177ed7a22be1895068830a':
  Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."
2014-07-30 17:02:12 +00:00
Christopher Ferris
0770ed0680 am c701e5b3: Use libunwindbacktrace for debug malloc code.
* commit 'c701e5b3357b6484572d46f29c5d1e51063dfcbb':
  Use libunwindbacktrace for debug malloc code.
2014-07-30 16:42:36 +00:00
Elliott Hughes
a99a69a640 am 1242f7eb: Remove declarations for things that don\'t exist.
* commit '1242f7eb67c678922b55e2077d9cf2d5cdc85b15':
  Remove declarations for things that don't exist.
2014-07-30 16:41:43 +00:00
Elliott Hughes
4d17c6c39f am f6aa1779: Merge "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."" into lmp-dev
* commit 'f6aa17798c5b0015d002b982c3684595b817d2d0':
  Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."
2014-07-30 16:41:43 +00:00
Dan Albert
f61f354583 am 5fce71b5: am e872c923: Merge "en_US.UTF-8 is also supported." into lmp-dev
* commit '5fce71b56e567a0e578e8ec8c1cab2bbc2e783ec':
  en_US.UTF-8 is also supported.
2014-07-30 14:28:40 +00:00
Dan Albert
28124017d6 am d735a072: am 9379ce69: Merge "There is no _MIN for unsigned types." into lmp-dev
* commit 'd735a0723a185568997b443b338ccf7a171ab254':
  There is no _MIN for unsigned types.
2014-07-30 14:28:39 +00:00
Dan Albert
fd4f86ccc2 am bb0c0531: am a1a813da: Merge "Fix mbsrtowcs(3)\'s handling of len parameter." into lmp-dev
* commit 'bb0c0531057018175a3e610501334f821973c67d':
  Fix mbsrtowcs(3)'s handling of len parameter.
2014-07-30 14:28:39 +00:00
Dan Albert
d0e6c73aec am ff20ad98: am 8db0ce70: Merge "__libc_fatal should print a newline to stderr." into lmp-dev
* commit 'ff20ad985ec54a72a2bc749cbd042373e8453116':
  __libc_fatal should print a newline to stderr.
2014-07-30 14:28:38 +00:00
Dmitriy Ivanov
aed8b1ceff am 2d361732: am 422106a2: Fix dlsym(3) to do breadth first search.
* commit '2d36173271512d9dd63a2193a8efc1d51f44d5fa':
  Fix dlsym(3) to do breadth first search.
2014-07-30 14:28:37 +00:00
Dan Albert
5fce71b56e am e872c923: Merge "en_US.UTF-8 is also supported." into lmp-dev
* commit 'e872c9239af180df6bf4b28a623241c6b1c7f1c3':
  en_US.UTF-8 is also supported.
2014-07-30 14:15:47 +00:00
Dan Albert
d735a0723a am 9379ce69: Merge "There is no _MIN for unsigned types." into lmp-dev
* commit '9379ce694d8a6bd70341eee003e23e96e21352e5':
  There is no _MIN for unsigned types.
2014-07-30 14:15:46 +00:00
Dan Albert
bb0c053105 am a1a813da: Merge "Fix mbsrtowcs(3)\'s handling of len parameter." into lmp-dev
* commit 'a1a813da8184153606bfcf8ffcce557eda09a5ba':
  Fix mbsrtowcs(3)'s handling of len parameter.
2014-07-30 14:15:46 +00:00
Dan Albert
ff20ad985e am 8db0ce70: Merge "__libc_fatal should print a newline to stderr." into lmp-dev
* commit '8db0ce7050b0f6ee3874456394a1d7cb0d336c3a':
  __libc_fatal should print a newline to stderr.
2014-07-30 14:15:45 +00:00
Dmitriy Ivanov
2d36173271 am 422106a2: Fix dlsym(3) to do breadth first search.
* commit '422106a24d620af4be58e8d92a2e9b7b6167b72d':
  Fix dlsym(3) to do breadth first search.
2014-07-30 14:15:44 +00:00
Dan Albert
447fe1c23b Merge "Fix mbsrtowcs(3) src param for finished string." 2014-07-30 11:26:00 +00:00
Dan Albert
b6cc8e00cd Fix mbsrtowcs(3) src param for finished string.
A mistake I made while cleaning this up the first time through.
mbstrtowcs(3) sets the src param to null if it finishes the string.

Change-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2
2014-07-31 11:31:03 -07:00
Christopher Ferris
880ac3255a am 4cc7dba9: am 4ad5066e: Merge "Use libunwindbacktrace for debug malloc code."
* commit '4cc7dba978de80fe8dfd0424a36719e37991cfbd':
  Use libunwindbacktrace for debug malloc code.
2014-07-30 02:28:03 +00:00
Christopher Ferris
4cc7dba978 am 4ad5066e: Merge "Use libunwindbacktrace for debug malloc code."
* commit '4ad5066e1de326e5db46df18eeade9a88bc11bec':
  Use libunwindbacktrace for debug malloc code.
2014-07-30 02:23:58 +00:00
Elliott Hughes
e0414f6f04 am eb0642a2: am 17886971: Merge "Remove declarations for things that don\'t exist."
* commit 'eb0642a2b98d052adf10d9079e51f23b5b49a45a':
  Remove declarations for things that don't exist.
2014-07-30 01:23:39 +00:00
Elliott Hughes
eb0642a2b9 am 17886971: Merge "Remove declarations for things that don\'t exist."
* commit '17886971ffc758270bb3da3fecec86fa5b2bb3c3':
  Remove declarations for things that don't exist.
2014-07-30 01:12:55 +00:00
Dmitriy Ivanov
c7c4c60628 am 60abfd28: am 2b591b37: Merge "Fix dlsym(3) to do breadth first search."
* commit '60abfd28ca734e500e4a51ee46b2fd7fa3ce7b8d':
  Fix dlsym(3) to do breadth first search.
2014-07-29 22:13:07 +00:00
Dmitriy Ivanov
60abfd28ca am 2b591b37: Merge "Fix dlsym(3) to do breadth first search."
* commit '2b591b37420b4186bda7fa823b9058d4b19565f6':
  Fix dlsym(3) to do breadth first search.
2014-07-29 22:09:23 +00:00
Elliott Hughes
c7706a02ad Merge "[MIPSR6] Use C-coded string ops on mips32r6/mips64r6" 2014-07-29 21:36:05 +00:00
Dmitriy Ivanov
2b591b3742 Merge "Fix dlsym(3) to do breadth first search." 2014-07-29 21:36:05 +00:00
Dmitriy Ivanov
aa0f2bdbc2 Fix dlsym(3) to do breadth first search.
dlsym(3) with handle != RTLD_DEFAULT|RTLD_NEXT performs
  breadth first search through the dependency tree.

Bug: 16653281
Change-Id: I017a6975d1a62abb0218a7eb59ae4deba458e324
2014-07-29 14:35:13 -07:00
Elliott Hughes
4d72c3b2b3 am 0950f263: am 2ea0a58e: Fix linkage of grantpt(3).
* commit '0950f2633524dd97413b019858a0f3820307d2bb':
  Fix linkage of grantpt(3).
2014-07-29 18:09:11 +00:00
Elliott Hughes
0950f26335 am 2ea0a58e: Fix linkage of grantpt(3).
* commit '2ea0a58e01c1ed6db1da9dd0314ee053f5a32026':
  Fix linkage of grantpt(3).
2014-07-29 18:01:25 +00:00
Elliott Hughes
3b3e9d67d5 am e9c1d673: am a7dc7600: Merge "Fix linkage of grantpt(3)."
* commit 'e9c1d673759a45df3aff144bfb51a4ac637427ec':
  Fix linkage of grantpt(3).
2014-07-29 17:56:21 +00:00
Elliott Hughes
e9c1d67375 am a7dc7600: Merge "Fix linkage of grantpt(3)."
* commit 'a7dc7600fe1be1f3fd61856b407bb7065307e711':
  Fix linkage of grantpt(3).
2014-07-29 17:52:05 +00:00
Brigid Smith
e5e62aa0a5 am 674e245c: am a09fe118: Added a bionic systrace class and tracing to pthread_mutex.cpp.
* commit '674e245cd42a22c33fa31dd9df1777fb76c5891d':
  Added a bionic systrace class and tracing to pthread_mutex.cpp.
2014-07-29 17:32:36 +00:00
Brigid Smith
674e245cd4 am a09fe118: Added a bionic systrace class and tracing to pthread_mutex.cpp.
* commit 'a09fe118b1a5eb876ddaa2620965c4a8fb8b007c':
  Added a bionic systrace class and tracing to pthread_mutex.cpp.
2014-07-29 17:25:00 +00:00
Elliott Hughes
45e3d3e96c am 1b369540: am 52f8271f: Merge "Added a bionic systrace class and tracing to pthread_mutex.cpp."
* commit '1b36954017e3f4761627cf96b42fbe33bf3c280c':
  Added a bionic systrace class and tracing to pthread_mutex.cpp.
2014-07-29 16:50:19 +00:00
Elliott Hughes
1b36954017 am 52f8271f: Merge "Added a bionic systrace class and tracing to pthread_mutex.cpp."
* commit '52f8271fa9fd3f84849465f3c978580fbed866c1':
  Added a bionic systrace class and tracing to pthread_mutex.cpp.
2014-07-29 16:47:01 +00:00
Dmitriy Ivanov
a0abc0daa7 am 46330ed4: am 24dcda0f: Merge "Fix mips/mips64 build"
* commit '46330ed4104a59a935d89d69bec66e1b908f1c08':
  Fix mips/mips64 build
2014-07-29 14:27:16 +00:00
Dmitriy Ivanov
46330ed410 am 24dcda0f: Merge "Fix mips/mips64 build"
* commit '24dcda0f4febe7d257b31c68887183c81d1b8791':
  Fix mips/mips64 build
2014-07-29 14:23:25 +00:00
Dmitriy Ivanov
72f8f35502 am fed22f73: am 1a5db57d: Fix mips/mips64 build
* commit 'fed22f73c1d83e07cf0781c23b2032131902c229':
  Fix mips/mips64 build
2014-07-29 13:33:19 +00:00
Dmitriy Ivanov
fed22f73c1 am 1a5db57d: Fix mips/mips64 build
* commit '1a5db57d5a0f633a83f20e667a4698757a63413e':
  Fix mips/mips64 build
2014-07-29 13:15:21 +00:00
Dmitriy Ivanov
793ef05a52 am 4139020d: am 5febb0da: Fix \'adb shell /system/bin/linker\' crash
* commit '4139020da37574e0ed8ac5bb18a3ea6d58170be1':
  Fix 'adb shell /system/bin/linker' crash
2014-07-29 01:02:37 +00:00
Dmitriy Ivanov
4139020da3 am 5febb0da: Fix \'adb shell /system/bin/linker\' crash
* commit '5febb0da6f6d7106c403e6809917d89d6ee081ad':
  Fix 'adb shell /system/bin/linker' crash
2014-07-29 00:56:21 +00:00
Elliott Hughes
e56a2dbdbc am 3164805b: am 2be1be47: Revert "Add a hack to <stdlib.h> until we can fix libvpx."
* commit '3164805b2e075a515d99fd7e88bfbc70e1fada4c':
  Revert "Add a hack to <stdlib.h> until we can fix libvpx."
2014-07-28 23:55:02 +00:00
Elliott Hughes
3164805b2e am 2be1be47: Revert "Add a hack to <stdlib.h> until we can fix libvpx."
* commit '2be1be47aa9b63568fe6ce1e0a4029b37d90764d':
  Revert "Add a hack to <stdlib.h> until we can fix libvpx."
2014-07-28 23:50:42 +00:00
Dmitriy Ivanov
f98721d5b4 am 18358f0e: am 337c0cef: Merge "Fix \'adb shell /system/bin/linker\' crash"
* commit '18358f0e67d56e71ef098384b45767c1f4651f6d':
  Fix 'adb shell /system/bin/linker' crash
2014-07-28 23:48:51 +00:00
Dmitriy Ivanov
18358f0e67 am 337c0cef: Merge "Fix \'adb shell /system/bin/linker\' crash"
* commit '337c0cefdc4667143a1f4f2c30113b452c5d188f':
  Fix 'adb shell /system/bin/linker' crash
2014-07-28 23:45:07 +00:00
Elliott Hughes
7c963f4840 am 63b5e167: am 78e4f8fe: syscall(3)\'s return type should be long.
* commit '63b5e167ad9f76b7f4917deceac840f929c72934':
  syscall(3)'s return type should be long.
2014-07-28 23:36:02 +00:00
Elliott Hughes
52ed4cdfb9 am a032277b: am 8a2ecf86: Merge "syscall(3)\'s return type should be long."
* commit 'a032277bb40c0327ba5b6c7d7a8c1cb196acaf89':
  syscall(3)'s return type should be long.
2014-07-28 23:35:17 +00:00
Elliott Hughes
63b5e167ad am 78e4f8fe: syscall(3)\'s return type should be long.
* commit '78e4f8fed2c162f8ada55180e48487ef2180cf93':
  syscall(3)'s return type should be long.
2014-07-28 23:21:28 +00:00
Elliott Hughes
a032277bb4 am 8a2ecf86: Merge "syscall(3)\'s return type should be long."
* commit '8a2ecf868feebaa39caddc6cdf9500b5385651f0':
  syscall(3)'s return type should be long.
2014-07-28 22:47:57 +00:00
Christopher Ferris
4ad5066e1d Merge "Use libunwindbacktrace for debug malloc code." 2014-07-28 22:45:44 +00:00
Christopher Ferris
861c0ef37b Use libunwindbacktrace for debug malloc code.
Create a method of disabling the debug allocation code paths so that
it's possible to use the libunwindbacktrace library without any
modifications.

Use this path to create and destroy the maps for the process. It's not
stricly necessary in the init code since the symbols are not modified
until after the initialize calls.

Also, remove the debug_XXX source files that doesn't need to be in libc.so.

Fix the maps reading code since it was completely broken for 64 bit.

Bug: 16408686

Change-Id: I6b02ef6ce26fdb7a59ad1029e7cbba9accceb704
2014-07-29 18:10:00 -07:00
Elliott Hughes
a7dc7600fe Merge "Fix linkage of grantpt(3)." 2014-07-28 22:45:44 +00:00
Elliott Hughes
d7e6ed0feb am 36666a4d: am 8c66fd79: Merge "Use vsnprintf(3) in syslog(3)."
* commit '36666a4d51e49caf13a75bcfb447ed322a874d84':
  Use vsnprintf(3) in syslog(3).
2014-07-28 16:56:40 +00:00
Elliott Hughes
b38b3887c8 am d201486c: am b1b60c30: Use vsnprintf(3) in syslog(3).
* commit 'd201486cdb2ed28d4162270c01d85e5047555628':
  Use vsnprintf(3) in syslog(3).
2014-07-28 16:52:59 +00:00
Elliott Hughes
36666a4d51 am 8c66fd79: Merge "Use vsnprintf(3) in syslog(3)."
* commit '8c66fd798ed5b7cefe1568d9a000d01b69d29dd9':
  Use vsnprintf(3) in syslog(3).
2014-07-28 16:51:57 +00:00
Elliott Hughes
d201486cdb am b1b60c30: Use vsnprintf(3) in syslog(3).
* commit 'b1b60c30bf321c0fc02264b953b5c16c49d34457':
  Use vsnprintf(3) in syslog(3).
2014-07-28 16:47:40 +00:00
Elliott Hughes
4916706cfe 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
Change-Id: I0fb36438cd1abf8d4e87c29415f03db9ba13c3c2
2014-07-25 19:55:23 -07:00
Elliott Hughes
fbaedd30e6 am a09f2ebb: am c1a6a725: Remove localtime_tz and strftime_tz.
* commit 'a09f2ebb408e9d562aa41cbe9b8f50e6f0d0a6bd':
  Remove localtime_tz and strftime_tz.
2014-07-26 00:40:05 +00:00
Elliott Hughes
a09f2ebb40 am c1a6a725: Remove localtime_tz and strftime_tz.
* commit 'c1a6a7256026431a9ae49ef2a6139ea99410819b':
  Remove localtime_tz and strftime_tz.
2014-07-26 00:36:25 +00:00
Elliott Hughes
5f7597d5a3 am e7e5e37c: am 1a918d9b: Merge "Remove localtime_tz and strftime_tz."
* commit 'e7e5e37ca47125bb95905e708588159431798f3c':
  Remove localtime_tz and strftime_tz.
2014-07-25 23:29:28 +00:00
Elliott Hughes
e7e5e37ca4 am 1a918d9b: Merge "Remove localtime_tz and strftime_tz."
* commit '1a918d9be83013cdc8e194edf35b5295eba4ab1c':
  Remove localtime_tz and strftime_tz.
2014-07-25 23:26:24 +00:00
Elliott Hughes
05caeb1d11 am d76f4a9b: am 708c1120: Start hiding "private/bionic_time.h".
* commit 'd76f4a9b6fa3542fb8b9dc406f4bc5b4e3166675':
  Start hiding "private/bionic_time.h".
2014-07-25 23:08:45 +00:00
Elliott Hughes
d76f4a9b6f am 708c1120: Start hiding "private/bionic_time.h".
* commit '708c11205443cda14cfb21138d441106aa77a5f9':
  Start hiding "private/bionic_time.h".
2014-07-25 23:04:23 +00:00
Elliott Hughes
cdb6a40f8f am 4b4ee2fc: am 50a9630c: Merge "Start hiding "private/bionic_time.h"."
* commit '4b4ee2fc1bdfde285392a68c2facf9f16bb92f14':
  Start hiding "private/bionic_time.h".
2014-07-25 22:27:35 +00:00
Elliott Hughes
4b4ee2fc1b am 50a9630c: Merge "Start hiding "private/bionic_time.h"."
* commit '50a9630cc26cbc1e38e3ddc589f04fa5cd91697b':
  Start hiding "private/bionic_time.h".
2014-07-25 22:21:42 +00:00
Elliott Hughes
17886971ff Merge "Remove declarations for things that don't exist." 2014-07-25 21:16:27 +00:00
Elliott Hughes
f4c1a36a45 Remove declarations for things that don't exist.
The <grp.h> ones prevent gdb from building out of the box.

Change-Id: I0efbffad2215cfcd75b4d442dfc972444b51d97c
2014-07-29 16:57:47 -07:00
Elliott Hughes
52f8271fa9 Merge "Added a bionic systrace class and tracing to pthread_mutex.cpp." 2014-07-25 21:16:27 +00:00
Brigid Smith
a406ee6d5f 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
Change-Id: I30ed5b377c91ca4c36568a0e647ddf95d4e4a61a
2014-07-28 19:38:08 -07:00
Dmitriy Ivanov
24dcda0f4f Merge "Fix mips/mips64 build" 2014-07-25 21:16:27 +00:00
Dmitriy Ivanov
ed48534718 Fix mips/mips64 build
Add _start entry label to mips/mips64 linker begin.S

Change-Id: Idcdfc3391427b53880650798be0583a7ac022bcc
2014-07-28 21:03:17 -07:00
Dan Albert
8522cc62e8 am 779fdd7c: am a4c14fda: Merge "en_US.UTF-8 is also supported."
* commit '779fdd7c0d6b85c733c2c0c562e8174828cf9fca':
  en_US.UTF-8 is also supported.
2014-07-25 19:18:16 +00:00
Dan Albert
779fdd7c0d am a4c14fda: Merge "en_US.UTF-8 is also supported."
* commit 'a4c14fda9176678cadb65fb53f503fda6668f8d1':
  en_US.UTF-8 is also supported.
2014-07-25 19:06:44 +00:00
Elliott Hughes
ad922e7d03 am f4fd7cf1: am 123172ae: Merge "[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."
* commit 'f4fd7cf1380b0cbd29806196959673802f1c769a':
  [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.
2014-07-25 02:19:29 +00:00
Dmitriy Ivanov
95f3983e1d am ceaec0d9: am dbf52ec3: Merge "Fix global variable initialization for linker"
* commit 'ceaec0d95ccff34ea2c2403528f7678f4a5b5355':
  Fix global variable initialization for linker
2014-07-25 02:19:28 +00:00
Elliott Hughes
11c5dd17ab am e7b2b02d: am d6f614a4: Merge "Implement twalk(3), add unit tests."
* commit 'e7b2b02dec81271938e29aae09901ca37d2c3a12':
  Implement twalk(3), add unit tests.
2014-07-25 02:19:28 +00:00
Elliott Hughes
f4fd7cf138 am 123172ae: Merge "[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."
* commit '123172ae370fe51e2d1fc26fe0aafa095af52919':
  [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.
2014-07-25 01:03:46 +00:00
Dmitriy Ivanov
ceaec0d95c am dbf52ec3: Merge "Fix global variable initialization for linker"
* commit 'dbf52ec37b835973d8f357af2a16694c98894c4d':
  Fix global variable initialization for linker
2014-07-25 01:03:45 +00:00
Elliott Hughes
e7b2b02dec am d6f614a4: Merge "Implement twalk(3), add unit tests."
* commit 'd6f614a4e16b0fcf4a4fba748bf21fc0017d3619':
  Implement twalk(3), add unit tests.
2014-07-25 01:03:33 +00:00
Dmitriy Ivanov
cae44d4f8f am a9b2185b: am 65549969: Fix global variable initialization for linker
* commit 'a9b2185bc4ece0fcf0c360b39b5643497aabf26a':
  Fix global variable initialization for linker
2014-07-25 00:05:20 +00:00
Raghu Gandham
b8e30d7320 am 56152a8b: am 34b258dd: [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.
* commit '56152a8b81bd5972391df562e4e3cd8a4cdda613':
  [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.
2014-07-24 23:59:35 +00:00
Dmitriy Ivanov
a9b2185bc4 am 65549969: Fix global variable initialization for linker
* commit '65549969488bbce7f5d1b57714ba32c466943470':
  Fix global variable initialization for linker
2014-07-24 23:58:31 +00:00
Elliott Hughes
29b1858f9c am d00b2327: am b902641d: Implement twalk(3), add unit tests.
* commit 'd00b2327c50ae6c22a565813d6fa385a9cce3ec5':
  Implement twalk(3), add unit tests.
2014-07-24 23:47:02 +00:00
Duane Sand
706654d3c1 am eb1fbf17: am 5ade7e3f: [MIPS] Drop soft-fp targets
* commit 'eb1fbf1781119ef12b257bfe1254032a7f487c31':
  [MIPS] Drop soft-fp targets
2014-07-24 23:47:02 +00:00
Raghu Gandham
56152a8b81 am 34b258dd: [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.
* commit '34b258dd692951ab2236e134e5520367cda60125':
  [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.
2014-07-24 23:46:28 +00:00
Elliott Hughes
d00b2327c5 am b902641d: Implement twalk(3), add unit tests.
* commit 'b902641d7303d2ea24c10f6d6e7ff49e7ee75611':
  Implement twalk(3), add unit tests.
2014-07-24 23:36:16 +00:00
Duane Sand
eb1fbf1781 am 5ade7e3f: [MIPS] Drop soft-fp targets
* commit '5ade7e3f6bb43d419402aab2c7adca2173e2c584':
  [MIPS] Drop soft-fp targets
2014-07-24 23:33:44 +00:00
Elliott Hughes
d6f614a4e1 Merge "Implement twalk(3), add unit tests." 2014-07-24 22:07:52 +00:00
Elliott Hughes
3e424d0a24 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
Change-Id: I97397a7b921e2e860fd9c8032cafd9097380498a
2014-07-24 14:55:29 -07:00
Elliott Hughes
8a2ecf868f Merge "syscall(3)'s return type should be long." 2014-07-24 20:55:36 +00:00
Elliott Hughes
21972b61ec 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
Change-Id: I9866c3579a7a94de27bfbe80ad7a822c3183c7fb
2014-07-28 12:33:07 -07:00
Elliott Hughes
8c66fd798e Merge "Use vsnprintf(3) in syslog(3)." 2014-07-24 20:55:36 +00:00
Elliott Hughes
f1e83cc34a 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.

(cherry-pick of b1b60c30bf321c0fc02264b953b5c16c49d34457.)

Bug: 14292866
Change-Id: I9c83500ba9cbb209b6f496067a91bf69434eeef5
2014-07-28 09:43:21 -07:00
Elliott Hughes
50a9630cc2 Merge "Start hiding "private/bionic_time.h"." 2014-07-24 20:55:36 +00:00
Elliott Hughes
905e6d58aa Start hiding "private/bionic_time.h".
Bug: 15765976
Change-Id: Ibd9cf07067ec8dffe9fda6c3d498d4ab90708220
2014-07-25 12:03:51 -07:00
Elliott Hughes
1a918d9be8 Merge "Remove localtime_tz and strftime_tz." 2014-07-24 20:55:36 +00:00
Elliott Hughes
39d903aea9 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
Change-Id: Ic9ef36e8acd3619504ecc4d73feec2b61fd4dfa1
2014-07-25 15:50:31 -07:00
Dan Albert
a4c14fda91 Merge "en_US.UTF-8 is also supported." 2014-07-24 20:55:36 +00:00
Dan Albert
1abb8bd21d en_US.UTF-8 is also supported.
Change-Id: Ic35fad3596dc5e24ee8ae35543a274a471f27bb2
2014-07-25 11:24:03 -07:00
Dmitriy Ivanov
dbf52ec37b Merge "Fix global variable initialization for linker" 2014-07-24 20:55:36 +00:00
Dmitriy Ivanov
4151ea73b7 Fix global variable initialization for linker
Linker now calls init functions for itself.

Change-Id: Ibd099812493041ac70f591e3f379ee742b4683b8
2014-07-24 15:33:25 -07:00
Duane Sand
d57a935c44 am 3a11c10a: am c86950cb: [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
* commit '3a11c10ad6f6f8fc6cf1031c9862ab5275b5a27e':
  [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
2014-07-24 19:57:08 +00:00
Christopher Ferris
3c58853a7d am efbb837d: am bc74ecfa: HACK: Disable syslog going to android log.
* commit 'efbb837dc42c8df3a4a94e5a9aeac1a72aba4e47':
  HACK: Disable syslog going to android log.
2014-07-24 19:57:07 +00:00
Nick Kralevich
c10499eaba am 9a2778a3: am 92d8b232: debuggerd: if PR_GET_DUMPABLE=0, don\'t ask for dumping
* commit '9a2778a3a60a59aae415acdfbfa9168651ce8292':
  debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping
2014-07-24 19:57:07 +00:00
Duane Sand
3a11c10ad6 am c86950cb: [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
* commit 'c86950cb3f50ead0c9a9d0366b870d6c6e1b91c8':
  [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
2014-07-24 19:48:30 +00:00
Christopher Ferris
efbb837dc4 am bc74ecfa: HACK: Disable syslog going to android log.
* commit 'bc74ecfaf5de47056fd8a48db65c0e5aef892f0c':
  HACK: Disable syslog going to android log.
2014-07-24 19:47:58 +00:00
Nick Kralevich
9a2778a3a6 am 92d8b232: debuggerd: if PR_GET_DUMPABLE=0, don\'t ask for dumping
* commit '92d8b2320a4c3911452227f560ae4a39e83b0abf':
  debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping
2014-07-24 19:46:25 +00:00
Colin Cross
174fcc628f am abca8709: am 49fbec6d: HACK: remove %m support from printf.
* commit 'abca8709895d5a67fb8acdfbc5e859463099f1f0':
  HACK: remove %m support from printf.
2014-07-24 19:26:52 +00:00
Colin Cross
abca870989 am 49fbec6d: HACK: remove %m support from printf.
* commit '49fbec6d9aee62462a4acf3ba47788ca1e35be37':
  HACK: remove %m support from printf.
2014-07-24 19:23:45 +00:00
Elliott Hughes
4298c7ab41 am c6f39339: am 8dbe3f0f: Merge "[MIPS] Drop soft-fp targets"
* commit 'c6f39339de4ef6da583bc078a4d5f73da8dac8f2':
  [MIPS] Drop soft-fp targets
2014-07-24 18:36:19 +00:00
Elliott Hughes
c6f39339de am 8dbe3f0f: Merge "[MIPS] Drop soft-fp targets"
* commit '8dbe3f0f51f0cd26c22df82bdef9a2f8caea7ef6':
  [MIPS] Drop soft-fp targets
2014-07-24 18:29:55 +00:00
Elliott Hughes
1289ef8743 am 0caa27b1: am 7d22a451: Merge "[MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models"
* commit '0caa27b148ea15b1292d4ace1f4a14fe79e8d953':
  [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
2014-07-24 04:07:00 +00:00
Elliott Hughes
0caa27b148 am 7d22a451: Merge "[MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models"
* commit '7d22a4519610f830178bbff32d961a2784354397':
  [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models
2014-07-24 04:03:03 +00:00
Nick Kralevich
cd438324f7 am 3363e16a: am f9650757: Merge "debuggerd: if PR_GET_DUMPABLE=0, don\'t ask for dumping"
* commit '3363e16ac93c444d06988702122481bf33e8d33a':
  debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping
2014-07-23 23:13:15 +00:00
Nick Kralevich
3363e16ac9 am f9650757: Merge "debuggerd: if PR_GET_DUMPABLE=0, don\'t ask for dumping"
* commit 'f9650757493060d950cc28c5a58acdcdd41f02e9':
  debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping
2014-07-23 23:00:01 +00:00
Nick Kralevich
1c5bb20b0d 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: I1e2af2300db56e6c8e6f304a666e66f6904c2be6
2014-07-23 15:57:39 -07:00
Elliott Hughes
83b9826e68 Merge "Implement <sys/fsuid.h>." 2014-07-23 22:55:49 +00:00
Elliott Hughes
79310994d2 Implement <sys/fsuid.h>.
Change-Id: I1e5e50444a1b5a430ba5b5d9b8b1d91219af5e92
2014-07-30 15:19:29 -07:00
Elliott Hughes
123172ae37 Merge "[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." 2014-07-23 22:55:49 +00:00
Raghu Gandham
f1837377d2 [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.

Change-Id: I78e7807e50f899a0fea0d5b388d9ebb53228aaa0
2014-07-24 16:11:52 -07:00
Duane Sand
bc5a3ec6df [MIPSR6] Use C-coded string ops on mips32r6/mips64r6
The existing assembler code uses deprecated lwl/lwr/swl/swr ops.
Replacing those with misalignment-forgiving lw/sw ops may
involve careful performance tuning.

Change-Id: I47a042f7b22b87d7d52e46c29c44b1db1ba8b693
2014-07-23 14:00:21 -07:00
Elliott Hughes
c39ab91dfe am aa8672cb: am 4126c129: Fix belated review comments on syslog change.
* commit 'aa8672cb6ddddaa88025f38ad5fe77f0891a219d':
  Fix belated review comments on syslog change.
2014-07-23 20:24:42 +00:00
Elliott Hughes
e5e120b214 am 0200a285: am f9bfc2ff: Merge "Fix belated review comments on syslog change."
* commit '0200a28583670ce4e20e4c4f7e6f2e358d48ba2a':
  Fix belated review comments on syslog change.
2014-07-23 20:24:41 +00:00
Elliott Hughes
aa8672cb6d am 4126c129: Fix belated review comments on syslog change.
* commit '4126c129613e27717c110626070c44ea7e3f29ce':
  Fix belated review comments on syslog change.
2014-07-23 20:20:33 +00:00
Elliott Hughes
0200a28583 am f9bfc2ff: Merge "Fix belated review comments on syslog change."
* commit 'f9bfc2ff8eb5db99a106a8a384498165361291ce':
  Fix belated review comments on syslog change.
2014-07-23 20:18:59 +00:00
Elliott Hughes
06a416c202 am 5e1183c2: am 467e49be: Merge "Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros."
* commit '5e1183c2169b8b56d6330182886d711c5ec2366f':
  Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
2014-07-23 19:08:25 +00:00
Elliott Hughes
5e1183c216 am 467e49be: Merge "Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros."
* commit '467e49be70231f55bd7ba908407b4413294d3bfc':
  Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
2014-07-23 19:02:16 +00:00
Nick Kralevich
f965075749 Merge "debuggerd: if PR_GET_DUMPABLE=0, don't ask for dumping" 2014-07-23 18:51:55 +00:00
Nick Kralevich
be0e43b776 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
Change-Id: Idc7857b089f3545758f4d9b436b783d580fb653f
2014-07-23 15:48:49 -07:00
Elliott Hughes
508dd2e67b am e34ce374: am 2aa142ff: Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
* commit 'e34ce3741f88d53ef1400548e4e8702cbe73fa23':
  Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
2014-07-23 18:45:38 +00:00
Elliott Hughes
7d22a45196 Merge "[MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models" 2014-07-23 18:45:08 +00:00
Duane Sand
dd37251c47 [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.

Change-Id: I7f617a3ffea8da41c402ef3a68ab32c91d3d7622
2014-07-23 13:57:30 -07:00
Elliott Hughes
f9bfc2ff8e Merge "Fix belated review comments on syslog change." 2014-07-23 18:45:08 +00:00
Elliott Hughes
e34ce3741f am 2aa142ff: Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
* commit '2aa142ffb20337e60f81642bed1c11d24a3756b1':
  Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
2014-07-23 18:42:30 +00:00
Elliott Hughes
afe6360627 Fix belated review comments on syslog change.
Bug: 14292866
Change-Id: I3cd92084cb55b5673f6ba62d51952941b79deb51
2014-07-23 11:38:38 -07:00
Dmitriy Ivanov
337c0cefdc Merge "Fix 'adb shell /system/bin/linker' crash" 2014-07-23 17:53:27 +00:00
Dmitriy Ivanov
efe13832dc Fix 'adb shell /system/bin/linker' crash
Bug: https://code.google.com/p/android/issues/detail?id=63174
Change-Id: I072290ea11109c07f277ad3dec7f44fcb7bf6aa6
2014-07-28 16:29:52 -07:00
Elliott Hughes
8dbe3f0f51 Merge "[MIPS] Drop soft-fp targets" 2014-07-23 17:53:27 +00:00
Duane Sand
ba23bd0a40 [MIPS] Drop soft-fp targets
Change-Id: I583bf8242d3034ebfc48548499cdb3316094c8e3
2014-07-24 18:04:21 +00:00
Elliott Hughes
ade1be3e6a am 66544dd1: am 4ac83fad: Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
* commit '66544dd13674fc0a1d9af48816797c1c762a4382':
  Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
2014-07-23 16:58:39 +00:00
Elliott Hughes
66544dd136 am 4ac83fad: Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
* commit '4ac83fad3cdc486c00199eef9ea2a95d354839c4':
  Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
2014-07-23 16:50:57 +00:00
Elliott Hughes
656fde84a0 am 5cd06abd: am ea42a6ca: Merge "Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files."
* commit '5cd06abdcf8980b22bc7ca803ed6c4b2c06b00c5':
  Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
2014-07-23 16:49:25 +00:00
Elliott Hughes
5cd06abdcf am ea42a6ca: Merge "Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files."
* commit 'ea42a6caea9d5cb5a92939ba0696856306b1d56b':
  Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
2014-07-23 16:42:30 +00:00
Elliott Hughes
f6c8d26680 am be0ee5a6: am 3ff6d95a: Remove the unused swab.S.
* commit 'be0ee5a62600b98533b0c072f61ab1470ab4a843':
  Remove the unused swab.S.
2014-07-23 03:56:31 +00:00
Elliott Hughes
be0ee5a626 am 3ff6d95a: Remove the unused swab.S.
* commit '3ff6d95a9b26154c94b5cf130649cf99eb6a4010':
  Remove the unused swab.S.
2014-07-23 03:51:55 +00:00
Elliott Hughes
5017fbda4e am ad87093f: am e26ac7f7: Merge "Remove the unused swab.S."
* commit 'ad87093f04f567573afa3bcdbc6a5f967e86834f':
  Remove the unused swab.S.
2014-07-23 03:37:56 +00:00
Elliott Hughes
ad87093f04 am e26ac7f7: Merge "Remove the unused swab.S."
* commit 'e26ac7f776c4011d17e7609efafa116ac4db25ff':
  Remove the unused swab.S.
2014-07-23 03:33:41 +00:00
Duane Sand
439910983e am f6ab6bfe: am 5d7775c6: [MIPS] Allow united mipsel and mips64el gcc toolchain
* commit 'f6ab6bfeb0ee36ac30421d203b750f80627d21ee':
  [MIPS] Allow united mipsel and mips64el gcc toolchain
2014-07-23 02:53:41 +00:00
Elliott Hughes
98a685f5fd am b5031b5d: am 79b5a396: Merge "[MIPS] Allow united mipsel and mips64el gcc toolchain"
* commit 'b5031b5d6b207484f2cf831d4dd46c17da055044':
  [MIPS] Allow united mipsel and mips64el gcc toolchain
2014-07-23 02:50:08 +00:00
Duane Sand
f6ab6bfeb0 am 5d7775c6: [MIPS] Allow united mipsel and mips64el gcc toolchain
* commit '5d7775c6dfa8f9b2ae313c9493525d54a2d04b38':
  [MIPS] Allow united mipsel and mips64el gcc toolchain
2014-07-23 02:48:41 +00:00
Elliott Hughes
b5031b5d6b am 79b5a396: Merge "[MIPS] Allow united mipsel and mips64el gcc toolchain"
* commit '79b5a396178e798af4ba9b327b884ae014f15bb2':
  [MIPS] Allow united mipsel and mips64el gcc toolchain
2014-07-23 02:44:48 +00:00
Sreeram Ramachandran
3a14439b6b am 1a1d0b7a: am 2582f02a: Cleanup: Delete dead code.
* commit '1a1d0b7abff01ed8d731e3590720c611a1db2daa':
  Cleanup: Delete dead code.
2014-07-23 00:13:13 +00:00
Sreeram Ramachandran
1a1d0b7abf am 2582f02a: Cleanup: Delete dead code.
* commit '2582f02a01cd56c56a4e6c9de4444a6ec937cc37':
  Cleanup: Delete dead code.
2014-07-23 00:10:16 +00:00
Elliott Hughes
e26ac7f776 Merge "Remove the unused swab.S." 2014-07-22 21:56:40 +00:00
Elliott Hughes
ca70453e84 Remove the unused swab.S.
Change-Id: Id30eac5a21b649d6a039a0d7ca0496177fbfb571
2014-07-22 20:21:31 -07:00
Elliott Hughes
467e49be70 Merge "Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros." 2014-07-22 16:35:00 +00:00
Elliott Hughes
5d2f86f363 Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.
Change-Id: I99f9d2e0a28342663cec6aed483e1a23c12e5e87
2014-07-23 11:10:48 -07:00
Elliott Hughes
79b5a39617 Merge "[MIPS] Allow united mipsel and mips64el gcc toolchain" 2014-07-22 16:35:00 +00:00
Duane Sand
f541650828 [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.

Change-Id: I70cbd3f5867e59b1f6f829793444242fb0894aa6
2014-07-22 14:27:48 -07:00
Elliott Hughes
ea42a6caea Merge "Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files." 2014-07-22 16:25:43 +00:00
Elliott Hughes
3758a244cf Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.
Change-Id: Id6fcb74292e661504d0758bfce24abdc18cb8d32
2014-07-22 21:29:00 -07:00
Elliott Hughes
3dde5101c4 am f6771114: am 6209c81d: Use upstream OpenBSD\'s arc4random.
* commit 'f6771114dddb8ec5802dbfdc13cc81e7c6f91d59':
  Use upstream OpenBSD's arc4random.
2014-07-22 02:35:52 +00:00
Elliott Hughes
f6b20f4156 am e41d7b4e: am b7661362: Rewrite syslog(3) to use Android logging.
* commit 'e41d7b4e83418b73a18416f7a50a5dd842ac65b5':
  Rewrite syslog(3) to use Android logging.
2014-07-22 02:35:51 +00:00
Elliott Hughes
f6771114dd am 6209c81d: Use upstream OpenBSD\'s arc4random.
* commit '6209c81d40e2b4e129a28bda3259150d79d507e8':
  Use upstream OpenBSD's arc4random.
2014-07-22 02:30:52 +00:00
Elliott Hughes
e41d7b4e83 am b7661362: Rewrite syslog(3) to use Android logging.
* commit 'b76613627d045acd3bdb7294f424f14c21584872':
  Rewrite syslog(3) to use Android logging.
2014-07-22 02:30:49 +00:00
Elliott Hughes
72602a4682 am 55383d57: am 4d421901: Merge "Use upstream OpenBSD\'s arc4random."
* commit '55383d57d4b1507391923bbd59bf063a6eca7f7e':
  Use upstream OpenBSD's arc4random.
2014-07-22 02:12:22 +00:00
Elliott Hughes
55383d57d4 am 4d421901: Merge "Use upstream OpenBSD\'s arc4random."
* commit '4d421901e587fd1563da94baf59b015017c01b91':
  Use upstream OpenBSD's arc4random.
2014-07-22 02:07:58 +00:00
Elliott Hughes
91f1b3998f am 85287b29: am 925d388e: Merge "Rewrite syslog(3) to use Android logging."
* commit '85287b29eaeeefa46cac16cdc97551422f7449a2':
  Rewrite syslog(3) to use Android logging.
2014-07-22 01:58:50 +00:00
Elliott Hughes
85287b29ea am 925d388e: Merge "Rewrite syslog(3) to use Android logging."
* commit '925d388e24945afb17f66d5c132f993e6a0d4fee':
  Rewrite syslog(3) to use Android logging.
2014-07-22 01:54:47 +00:00
Dan Albert
3ce32b86ff am 607458ff: am b828eaeb: Merge "There is no _MIN for unsigned types."
* commit '607458ffe1cf8486116f3cb23c667785a8cdc2eb':
  There is no _MIN for unsigned types.
2014-07-22 00:50:55 +00:00
Dan Albert
607458ffe1 am b828eaeb: Merge "There is no _MIN for unsigned types."
* commit 'b828eaeb4512baba6d43a56da682bd7329079822':
  There is no _MIN for unsigned types.
2014-07-22 00:43:15 +00:00
Elliott Hughes
0f7d882bb7 Switch to OpenBSD res_random.
Change-Id: Ia971d647832893e9bb4601697132a105524d2f96
2014-07-21 15:31:53 -07:00
Dan Albert
b61f7f8316 am e226b640: am 1fb90a8a: Merge "Fix mbsrtowcs(3)\'s handling of len parameter."
* commit 'e226b64061207358f5489bc5c119e768d5761b99':
  Fix mbsrtowcs(3)'s handling of len parameter.
2014-07-21 19:24:46 +00:00
Dan Albert
96a820327f am 75fcd01a: am e9731387: Merge "__libc_fatal should print a newline to stderr."
* commit '75fcd01a6ecdee67f55751557ebceb0f31a73682':
  __libc_fatal should print a newline to stderr.
2014-07-21 19:24:27 +00:00
Dan Albert
e226b64061 am 1fb90a8a: Merge "Fix mbsrtowcs(3)\'s handling of len parameter."
* commit '1fb90a8aa0086f7e4f7960a5b916b8605a9a3c96':
  Fix mbsrtowcs(3)'s handling of len parameter.
2014-07-21 18:56:06 +00:00
Hans Boehm
3033608b86 am 50f2de91: am ed68221a: Define atomic_charN_t only if charN_t is supported.
* commit '50f2de914f24c0bb38a51ab7759698d11b38a9ad':
  Define atomic_charN_t only if charN_t is supported.
2014-07-21 18:27:40 +00:00
Christopher Ferris
41370acfef am b290796f: am b0815aea: Make sure not to construct illegal property names.
* commit 'b290796ff99151cd13f9d480cc186ceae4713c9f':
  Make sure not to construct illegal property names.
2014-07-21 18:27:40 +00:00
Elliott Hughes
2e138c41d9 am ebb47455: am fbd00819: Merge "Clean up some misinformation around prctl." into lmp-dev
* commit 'ebb474553165cf72c1b3908755aeb3b690f40ad8':
  Clean up some misinformation around prctl.
2014-07-21 18:27:39 +00:00
Christopher Ferris
44d1b00305 am 2affffac: am a6945179: Merge "Add gen syscalls step to instructions." into lmp-dev
* commit '2affffac74eac349b0981cfe8fd65743835896f5':
  Add gen syscalls step to instructions.
2014-07-21 18:27:38 +00:00
Elliott Hughes
065d312a53 am 4aa12034: am 291da8d3: Remove SIOCKILLADDR from <sys/socket.h>.
* commit '4aa120347435481cf439e0378ef12a60b546d2a8':
  Remove SIOCKILLADDR from <sys/socket.h>.
2014-07-21 18:27:38 +00:00
Elliott Hughes
a0d633c2f7 am 6f9e6124: am b5bef263: (-s ours) Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
* commit '6f9e612413a281d69c8d2dbbe00442d75a1f5abb':
  Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
2014-07-21 18:27:37 +00:00
Dan Albert
75fcd01a6e am e9731387: Merge "__libc_fatal should print a newline to stderr."
* commit 'e9731387f46938dd73fcda0193460b33655400c4':
  __libc_fatal should print a newline to stderr.
2014-07-21 18:23:56 +00:00
Elliott Hughes
beb24d0dd6 am 841c633f: resolved conflicts for merge of b5bef263 to lmp-dev-plus-aosp
* commit '841c633fa13ba8d48563fbda247e75bab3bd6f49':
  resolved conflicts for merge of b5bef263 to lmp-dev-plus-aosp
2014-07-21 18:21:55 +00:00
Christopher Ferris
451b910deb am bdfb313c: am e8bc5813: Use the mmap/munmap for allocation routines.
* commit 'bdfb313cf1cefd4ffaa59c6aea20a49608a73a52':
  Use the mmap/munmap for allocation routines.
2014-07-21 18:21:35 +00:00
Elliott Hughes
4d421901e5 Merge "Use upstream OpenBSD's arc4random." 2014-07-21 15:45:37 +00:00
Elliott Hughes
2b67d7dee0 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.

Change-Id: If32229fc28aba908035fb38703190d41ddcabc95
2014-07-21 14:38:16 -07:00
Dan Albert
b828eaeb45 Merge "There is no _MIN for unsigned types." 2014-07-21 15:45:37 +00:00
Dan Albert
ee7f1b5946 There is no _MIN for unsigned types.
Change-Id: I49c38e51197b750210bdbf28c9cf6db30452a206
2014-07-21 17:16:30 -07:00
Hans Boehm
50f2de914f am ed68221a: Define atomic_charN_t only if charN_t is supported.
* commit 'ed68221a8225a6696d2b0b1607ef0b2de1c1b3aa':
  Define atomic_charN_t only if charN_t is supported.
2014-07-20 18:02:21 +00:00
Christopher Ferris
b290796ff9 am b0815aea: Make sure not to construct illegal property names.
* commit 'b0815aeacb86e20cbbd4fa27dd90ad43b9c200fe':
  Make sure not to construct illegal property names.
2014-07-20 17:59:47 +00:00
Elliott Hughes
ebb4745531 am fbd00819: Merge "Clean up some misinformation around prctl." into lmp-dev
* commit 'fbd0081923336e3d2fa697445372a329134d9484':
  Clean up some misinformation around prctl.
2014-07-20 17:59:30 +00:00
Christopher Ferris
2affffac74 am a6945179: Merge "Add gen syscalls step to instructions." into lmp-dev
* commit 'a694517909546cf5c0d0fb54ab40234047238283':
  Add gen syscalls step to instructions.
2014-07-20 17:59:30 +00:00
Elliott Hughes
4aa1203474 am 291da8d3: Remove SIOCKILLADDR from <sys/socket.h>.
* commit '291da8d3533b3ee47f8d742c72d789d3149d15da':
  Remove SIOCKILLADDR from <sys/socket.h>.
2014-07-20 17:59:28 +00:00
Elliott Hughes
6f9e612413 am b5bef263: (-s ours) Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
* commit 'b5bef263b37b1f0def2a6c4e8e714ab871452b72':
  Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
2014-07-20 17:59:27 +00:00
Elliott Hughes
841c633fa1 resolved conflicts for merge of b5bef263 to lmp-dev-plus-aosp
.

Change-Id: Ieef30b3a308ca3cad4a59f17566d4cede0ae2b16
2014-07-20 10:43:16 -07:00
Christopher Ferris
bdfb313cf1 am e8bc5813: Use the mmap/munmap for allocation routines.
* commit 'e8bc581333d1fe19d28211330d1e06d471365d54':
  Use the mmap/munmap for allocation routines.
2014-07-20 02:17:50 +00:00
Elliott Hughes
925d388e24 Merge "Rewrite syslog(3) to use Android logging." 2014-07-19 23:20:08 +00:00
Elliott Hughes
3ad8ecb64e 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
Change-Id: Icee7f088b97f88ccbdaf471b98cbac7f19f9210a
2014-07-21 16:56:48 -07:00
Elliott Hughes
8831e40b19 am 2199ac31: am 7dd126a3: Merge "Clean up some misinformation around prctl."
* commit '2199ac3113d2fa35ff400788aa3d68c0123aacfb':
  Clean up some misinformation around prctl.
2014-07-18 23:39:40 +00:00
Elliott Hughes
2199ac3113 am 7dd126a3: Merge "Clean up some misinformation around prctl."
* commit '7dd126a38ca501818b07927f310dcc0f531c0f1f':
  Clean up some misinformation around prctl.
2014-07-18 23:35:08 +00:00
Christopher Ferris
cf622c1c22 am 3a23030d: am 3c2b71ad: Merge "Use the mmap/munmap for allocation routines."
* commit '3a23030ded42a7ee7a0b3ed2543e8758a6bcfc9a':
  Use the mmap/munmap for allocation routines.
2014-07-18 22:21:29 +00:00
Dan Albert
e9731387f4 Merge "__libc_fatal should print a newline to stderr." 2014-07-18 22:17:02 +00:00
Dan Albert
97e31dedf0 __libc_fatal should print a newline to stderr.
Change-Id: I088dc880d7488a65beac8cda95f530f3db41f112
2014-07-21 11:10:00 -07:00
Christopher Ferris
3a23030ded am 3c2b71ad: Merge "Use the mmap/munmap for allocation routines."
* commit '3c2b71ad5612721c7073a4396cdad2c00e86ba54':
  Use the mmap/munmap for allocation routines.
2014-07-18 22:13:21 +00:00
Elliott Hughes
96674169e0 am c6e9b8ce: am b4669685: Fix private/bionic_name_mem.h build breakage.
* commit 'c6e9b8cebfc0d3faff5ea986a6fc9bbc11413b37':
  Fix private/bionic_name_mem.h build breakage.
2014-07-18 02:57:51 +00:00
Elliott Hughes
c6e9b8cebf am b4669685: Fix private/bionic_name_mem.h build breakage.
* commit 'b46696858b9018ff8a1069d429366e05d4814c52':
  Fix private/bionic_name_mem.h build breakage.
2014-07-18 02:50:37 +00:00
Elliott Hughes
a9fdbb819f am 1b77f3f7: resolved conflicts for merge of d648f557 to lmp-dev-plus-aosp
* commit '1b77f3f7417598414694eb29e17a4873a38a1d18':
  Remove non-standard prctl constants from <sys/prctl.h>.
2014-07-18 00:42:52 +00:00
Elliott Hughes
1b77f3f741 resolved conflicts for merge of d648f557 to lmp-dev-plus-aosp
Change-Id: I406207b390460d5ccb6da338bf84fce674dc8038
2014-07-17 17:37:26 -07:00
Elliott Hughes
3d96532171 am 6e47ddab: am d18b87f3: Merge "Remove SIOCKILLADDR from <sys/socket.h>."
* commit '6e47ddab72841c165b538de198c5858409fb6349':
  Remove SIOCKILLADDR from <sys/socket.h>.
2014-07-18 00:30:05 +00:00
Elliott Hughes
96eef2388e am 1a04da87: am 76282482: Merge "Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>."
* commit '1a04da875064d81829c3ea1b3e8096e2b721cd10':
  Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
2014-07-18 00:30:04 +00:00
Elliott Hughes
6e47ddab72 am d18b87f3: Merge "Remove SIOCKILLADDR from <sys/socket.h>."
* commit 'd18b87f38de8644acdcd1a112bd06d3a70d2ea1d':
  Remove SIOCKILLADDR from <sys/socket.h>.
2014-07-18 00:24:35 +00:00
Elliott Hughes
1a04da8750 am 76282482: Merge "Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>."
* commit '76282482dbb05bf97a834d20b3ccf98de3f5a31d':
  Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
2014-07-18 00:24:34 +00:00
Dan Albert
1fb90a8aa0 Merge "Fix mbsrtowcs(3)'s handling of len parameter." 2014-07-17 22:34:19 +00:00
Dan Albert
6b55ba54ef Fix mbsrtowcs(3)'s handling of len parameter.
The len parameter is a _maximum_ length. The previous code was treating
it as an exact length, causing the following typical call to fail:

    mbsrtowcs(out, &in, sizeof(out), state); // sizeof(out) > strlen(in)

Change-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc
2014-07-21 11:45:48 -07:00
Elliott Hughes
7dd126a38c Merge "Clean up some misinformation around prctl." 2014-07-17 22:33:54 +00:00
Elliott Hughes
9c07aee83b Clean up some misinformation around prctl.
prctl shouldn't be in <unistd.h>.

Change-Id: I29609fc91c033e1ad143b75d9b4eb17aefbd63d6
2014-07-18 16:15:32 -07:00
Christopher Ferris
3c2b71ad56 Merge "Use the mmap/munmap for allocation routines." 2014-07-17 22:33:54 +00:00
Christopher Ferris
6425327c32 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.

Change-Id: Iae2d197145da43dc103ad6024357d8cc2374378f
2014-07-18 14:16:51 -07:00
Elliott Hughes
d18b87f38d Merge "Remove SIOCKILLADDR from <sys/socket.h>." 2014-07-17 22:33:42 +00:00
Elliott Hughes
8a3d1ca183 Remove SIOCKILLADDR from <sys/socket.h>.
Change-Id: I6b64a9abe01c786a9ec26aee1517cb981a4860fb
2014-07-17 17:10:02 -07:00
Elliott Hughes
76282482db Merge "Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>." 2014-07-17 22:33:42 +00:00
Elliott Hughes
9f165d24f0 Remove PR_SET_TIMERSLACK_PID from <sys/prctl.h>.
Change-Id: Ie70f23c80e8473ac9617b74967d7c84709f5b00d
2014-07-17 17:12:35 -07:00
Elliott Hughes
bb74030901 am d377833d: am 6bf42ddc: Merge "Fix private/bionic_name_mem.h build breakage."
* commit 'd377833de61664b57f656aa0111b7a4b166b1df8':
  Fix private/bionic_name_mem.h build breakage.
2014-07-17 22:20:56 +00:00
Elliott Hughes
d377833de6 am 6bf42ddc: Merge "Fix private/bionic_name_mem.h build breakage."
* commit '6bf42ddc7962dec56840eb370bfe7b0469a4efb1':
  Fix private/bionic_name_mem.h build breakage.
2014-07-17 22:16:45 +00:00
Elliott Hughes
c616d304e9 am fdd64140: am 169e2bf6: Merge "Remove non-standard prctl constants from <sys/prctl.h>."
* commit 'fdd64140933bedbefc8633a28bc9478ea954f81a':
  Remove non-standard prctl constants from <sys/prctl.h>.
2014-07-17 22:01:13 +00:00
Elliott Hughes
6bf42ddc79 Merge "Fix private/bionic_name_mem.h build breakage." 2014-07-17 21:58:34 +00:00
Elliott Hughes
2f9c6e38b8 Fix private/bionic_name_mem.h build breakage.
Change-Id: I8fe9c63dbbb5911721ca56791c0bff4bdf403314
2014-07-17 15:09:17 -07:00
Elliott Hughes
fdd6414093 am 169e2bf6: Merge "Remove non-standard prctl constants from <sys/prctl.h>."
* commit '169e2bf6bd092ea3599cfe3426766988ec66658a':
  Remove non-standard prctl constants from <sys/prctl.h>.
2014-07-17 21:54:26 +00:00
Elliott Hughes
2651277e77 am 9633cc3e: am 9a7fdb2d: ptrace(3) should be varargs.
* commit '9633cc3ee9501550463d53929a05829e2824a476':
2014-07-17 18:31:08 +00:00
Elliott Hughes
19391d796c am 2492a8e3: am 3002131d: Use VDSO for clock_gettime(2) and gettimeofday(2).
* commit '2492a8e364e5cc8c606458ffdceda8cdc9d34bcc':
2014-07-17 18:31:07 +00:00
Elliott Hughes
db71f00794 am 9a7fdb2d: ptrace(3) should be varargs.
* commit '9a7fdb2dae8f0ae0f9c5b0596bb2710f782925aa':
  ptrace(3) should be varargs.
2014-07-17 18:18:01 +00:00
Elliott Hughes
0cf2d4902a am 3002131d: Use VDSO for clock_gettime(2) and gettimeofday(2).
* commit '3002131da33401cf1b45abbdbec58b7c751fc43a':
  Use VDSO for clock_gettime(2) and gettimeofday(2).
2014-07-17 18:16:35 +00:00
Elliott Hughes
169e2bf6bd Merge "Remove non-standard prctl constants from <sys/prctl.h>." 2014-07-17 17:59:29 +00:00
Elliott Hughes
d7453860a6 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.

Change-Id: I833744f91e887639f5b2d1269f966ee9032af207
2014-07-17 14:26:33 -07:00
Elliott Hughes
9633cc3ee9 am 9a7fdb2d: ptrace(3) should be varargs.
* commit '9a7fdb2dae8f0ae0f9c5b0596bb2710f782925aa':
  ptrace(3) should be varargs.
2014-07-17 17:01:54 +00:00
Elliott Hughes
2492a8e364 am 3002131d: Use VDSO for clock_gettime(2) and gettimeofday(2).
* commit '3002131da33401cf1b45abbdbec58b7c751fc43a':
  Use VDSO for clock_gettime(2) and gettimeofday(2).
2014-07-17 17:01:12 +00:00
Hans Boehm
a0582bfae6 am ec76a21f: am 43363ab7: Merge "Define atomic_charN_t only if charN_t is supported."
* commit 'ec76a21f27a3727f31c96bcaa27a820765471125':
  Define atomic_charN_t only if charN_t is supported.
2014-07-17 13:45:07 +00:00
Elliott Hughes
e569ff8fbf am 51b9d5ba: am 94f84d36: Merge "ptrace(3) should be varargs."
* commit '51b9d5bad9f011ad509f46622f1a341edf80ad34':
  ptrace(3) should be varargs.
2014-07-17 13:44:35 +00:00
Elliott Hughes
6777948bf2 am 379b1580: am f13aa6fc: Merge "Use VDSO for clock_gettime(2) and gettimeofday(2)."
* commit '379b1580dcad69360f83a6c70c5adc83e483c36b':
  Use VDSO for clock_gettime(2) and gettimeofday(2).
2014-07-17 13:43:35 +00:00
Hans Boehm
ec76a21f27 am 43363ab7: Merge "Define atomic_charN_t only if charN_t is supported."
* commit '43363ab7202a935e12cf6a38d32a48433bdc3705':
  Define atomic_charN_t only if charN_t is supported.
2014-07-17 12:59:40 +00:00
Elliott Hughes
51b9d5bad9 am 94f84d36: Merge "ptrace(3) should be varargs."
* commit '94f84d36a9f16030546a667bab6c66a59e41e4bd':
  ptrace(3) should be varargs.
2014-07-16 23:49:52 +00:00
Hans Boehm
43363ab720 Merge "Define atomic_charN_t only if charN_t is supported." 2014-07-16 23:31:38 +00:00
Hans Boehm
8b002362d9 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.

Change-Id: Ie5a17f20b8b545c97128d00605b4eabd2a6bfe3e
2014-07-16 17:31:05 -07:00
Elliott Hughes
94f84d36a9 Merge "ptrace(3) should be varargs." 2014-07-16 21:56:17 +00:00
Elliott Hughes
98b088dce7 ptrace(3) should be varargs.
Bug: 16352070
Change-Id: Ied72e6e79eaf912fc93fc49ae7637af321a31a59
2014-07-16 16:07:10 -07:00
Elliott Hughes
379b1580dc am f13aa6fc: Merge "Use VDSO for clock_gettime(2) and gettimeofday(2)."
* commit 'f13aa6fc5b66d1c98b7fd4b43e20515033707e56':
  Use VDSO for clock_gettime(2) and gettimeofday(2).
2014-07-16 21:44:46 +00:00
Elliott Hughes
f13aa6fc5b Merge "Use VDSO for clock_gettime(2) and gettimeofday(2)." 2014-07-16 19:02:19 +00:00
Elliott Hughes
625993dfbb Use VDSO for clock_gettime(2) and gettimeofday(2).
Bug: 15387103
Change-Id: Ifc3608ea65060c1dc38120b10b6e79874f182a36
2014-07-16 14:27:43 -07:00
Dan Albert
0b0494c01f am 6526098e: am a4465058: Merge "Remove isascii_l(3)." into lmp-dev
* commit '6526098e710364f3ea9266de1a4a9b675b23bd9a':
  Remove isascii_l(3).
2014-07-16 16:08:25 +00:00
Dan Albert
6526098e71 am a4465058: Merge "Remove isascii_l(3)." into lmp-dev
* commit 'a446505874ba52eb6ddb893c0d9c9321a73b235d':
  Remove isascii_l(3).
2014-07-16 16:04:09 +00:00
Elliott Hughes
eb2ab29c32 am 775056ff: am 97ba2a5c: Regenerate the syscalls list after the uapi update.
* commit '775056ff71b9ae06db13dffc150d4d1162e775ab':
  Regenerate the syscalls list after the uapi update.
2014-07-16 03:08:38 +00:00
Elliott Hughes
775056ff71 am 97ba2a5c: Regenerate the syscalls list after the uapi update.
* commit '97ba2a5cc4cf098938bb0a2c19ff01eb57c5536c':
  Regenerate the syscalls list after the uapi update.
2014-07-16 03:04:25 +00:00
Christopher Ferris
94c30175e3 am 04e7056d: am 770d0f61: Merge "Make sure not to construct illegal property names."
* commit '04e7056d06a7098827dcc7060c5d827b1a8afab4':
  Make sure not to construct illegal property names.
2014-07-16 03:00:34 +00:00
Christopher Ferris
20d08f57f6 am f64411e7: am 64035c4a: Merge "Add gen syscalls step to instructions."
* commit 'f64411e7a8479f0e4968d9aa1ea5b7c95334ec6e':
  Add gen syscalls step to instructions.
2014-07-16 03:00:34 +00:00
Elliott Hughes
47840c305f am 99c8508a: am 52023cb7: Merge "Regenerate the syscalls list after the uapi update."
* commit '99c8508a6e1fefbb19e11af4bdde16f353a61615':
  Regenerate the syscalls list after the uapi update.
2014-07-16 03:00:33 +00:00
Christopher Ferris
09bbeac80c am 76dd4a79: am 51c914b7: Merge "Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit."
* commit '76dd4a7911d2b00262d4b60c2828de48818e3226':
  Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
2014-07-16 03:00:33 +00:00
Christopher Ferris
04e7056d06 am 770d0f61: Merge "Make sure not to construct illegal property names."
* commit '770d0f6177ca1ad242b509151fb612f07ef8a07b':
  Make sure not to construct illegal property names.
2014-07-16 02:56:23 +00:00
Christopher Ferris
f64411e7a8 am 64035c4a: Merge "Add gen syscalls step to instructions."
* commit '64035c4a4b52ce87398e3a5945ad6b755c8f35b1':
  Add gen syscalls step to instructions.
2014-07-16 02:56:22 +00:00
Elliott Hughes
99c8508a6e am 52023cb7: Merge "Regenerate the syscalls list after the uapi update."
* commit '52023cb725ade3a4ace8631af8d6df5b47dc4def':
  Regenerate the syscalls list after the uapi update.
2014-07-16 02:56:22 +00:00
Christopher Ferris
76dd4a7911 am 51c914b7: Merge "Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit."
* commit '51c914b7fd0994f09ef11e9038f2b1df4b909358':
  Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
2014-07-16 02:56:21 +00:00
Christopher Ferris
1c050aa140 am cdf48775: am 73c963e4: Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
* commit 'cdf48775d4aaa441d833a85441d67ff990d9897e':
  Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
2014-07-15 22:22:27 +00:00
Christopher Ferris
cdf48775d4 am 73c963e4: Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
* commit '73c963e4c5bf111df3abe9ad7eac98a918b88bb3':
  Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit.
2014-07-15 21:46:28 +00:00
Christopher Ferris
770d0f6177 Merge "Make sure not to construct illegal property names." 2014-07-15 20:47:30 +00:00
Christopher Ferris
53531ccebb Make sure not to construct illegal property names.
Change-Id: I37624e69aec51efd4291f076fb87af3f35d33025
2014-07-15 19:26:28 -07:00
Christopher Ferris
64035c4a4b Merge "Add gen syscalls step to instructions." 2014-07-15 20:47:30 +00:00
Christopher Ferris
ea271fdf26 Add gen syscalls step to instructions.
Also, fix incorrect path to some tools.

Change-Id: I409fc02d7077f0d2811d90be19550e70f5d73c0e
2014-07-15 19:02:33 -07:00
Elliott Hughes
52023cb725 Merge "Regenerate the syscalls list after the uapi update." 2014-07-15 20:36:09 +00:00
Elliott Hughes
3fa60e10bc Regenerate the syscalls list after the uapi update.
Change-Id: I117c5b18f735376dd3ab5061018dc7db9c046202
2014-07-15 18:39:27 -07:00
Elliott Hughes
cea72c11e1 am c80cb8e3: am ca276c40: Fix visibility for a bunch more symbols.
* commit 'c80cb8e3ca36aa0d41f6a58559450aac73b5b565':
  Fix visibility for a bunch more symbols.
2014-07-15 02:35:42 +00:00
Elliott Hughes
c80cb8e3ca am ca276c40: Fix visibility for a bunch more symbols.
* commit 'ca276c40dfdb80ef553c6646da7f984ef7b694ce':
  Fix visibility for a bunch more symbols.
2014-07-15 02:31:51 +00:00
Christopher Ferris
51c914b7fd Merge "Fix BIONIC_ROUND_UP_POWER_OF_2 for 64 bit." 2014-07-15 00:42:07 +00:00
Christopher Ferris
27047faf28 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.

Change-Id: If8cb41536a9d2f5c1bc213676f1e67a7903a36b0
2014-07-15 12:33:48 -07:00
Dan Albert
bfd4849e4f am 84491f5b: am 5656a0c4: Merge "Remove isascii_l(3)."
* commit '84491f5b0620386645beb5acf88f873a32179c35':
  Remove isascii_l(3).
2014-07-15 00:34:02 +00:00
Dan Albert
84491f5b06 am 5656a0c4: Merge "Remove isascii_l(3)."
* commit '5656a0c4943a9b14baa4fc135980f91591723156':
  Remove isascii_l(3).
2014-07-15 00:31:07 +00:00
Elliott Hughes
209422c44f am 1d31b554: am ee3608f9: Merge "Fix visibility for a bunch more symbols."
* commit '1d31b55443c534187ea726e7292dbd308f263d95':
  Fix visibility for a bunch more symbols.
2014-07-14 23:29:34 +00:00
Elliott Hughes
dc5f392158 am 07198cbf: am 99ae0983: Implement rand/srand in terms of random/srandom.
* commit '07198cbf1676665acd2144a5f9ebc71d7e31aebe':
  Implement rand/srand in terms of random/srandom.
2014-07-14 23:29:29 +00:00
Elliott Hughes
c241ad0688 am 0a79e279: am caaf71eb: Sync upstream-openbsd.
* commit '0a79e2798e4d2b05ca32a7912df274c461e96b2b':
  Sync upstream-openbsd.
2014-07-14 23:29:29 +00:00
Dmitriy Ivanov
a41e7e9492 am db3b2995: resolved conflicts for merge of 38778e3b to lmp-dev-plus-aosp
* commit 'db3b29958dbfe23489cc4fa66d42cd95d441391c':
  Upstream atexit
2014-07-14 23:29:28 +00:00
Elliott Hughes
1d31b55443 am ee3608f9: Merge "Fix visibility for a bunch more symbols."
* commit 'ee3608f9d3259a0ef22a27932a3f5149fb2763c8':
  Fix visibility for a bunch more symbols.
2014-07-14 23:15:15 +00:00
Dan Albert
5656a0c494 Merge "Remove isascii_l(3)." 2014-07-14 23:04:02 +00:00
Dan Albert
e612add051 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-14 15:48:02 -07:00
Elliott Hughes
07198cbf16 am 99ae0983: Implement rand/srand in terms of random/srandom.
* commit '99ae0983c0fd22e34e4d2aa61942b04e347447ee':
  Implement rand/srand in terms of random/srandom.
2014-07-14 22:24:33 +00:00
Elliott Hughes
0a79e2798e am caaf71eb: Sync upstream-openbsd.
* commit 'caaf71ebb358f811fe7602bbadb90b897e93eaf7':
  Sync upstream-openbsd.
2014-07-14 22:24:32 +00:00
Dmitriy Ivanov
db3b29958d resolved conflicts for merge of 38778e3b to lmp-dev-plus-aosp
Change-Id: I138f093f20570079af13aee6dc54202e214a56a4
2014-07-14 15:20:59 -07:00
Elliott Hughes
df9777c3b9 am ac56fc86: am 673bff01: Merge "Implement rand/srand in terms of random/srandom."
* commit 'ac56fc8663a01c3cad6fcacab8d2958f20bc047a':
  Implement rand/srand in terms of random/srandom.
2014-07-14 20:14:06 +00:00
Brian Carlstrom
3c5a701f94 am 6835f586: Merge branch \'lmp-dev-plus-aosp\' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp
* commit '6835f5864d56cf6ee10da027c2ca013423a01bb1':
  Upstream atexit
  Sync upstream-openbsd.
2014-07-14 19:29:50 +00:00
Elliott Hughes
93235cabfb am 49e34298: am 3b318a5b: am e2b177a5: am 83ce99d8: Merge "Define SIOCKILLADDR which isn\'t in the common kernel uapi headers."
* commit '49e34298e62eec01eb6ae777a62b421db45adc36':
2014-07-14 19:29:49 +00:00
Elliott Hughes
40c1838322 am 646e7eb4: am f6968e3c: Define SIOCKILLADDR which isn\'t in the common kernel uapi headers.
* commit '646e7eb4bd0b834eeeddcbd1b4b976f849b7ce77':
2014-07-14 19:29:49 +00:00
Elliott Hughes
4cb78fe675 am 5ddb411c: am bae7c206: am b962ab81: am 57a5b338: Merge "Define three prctl constants that went missing from uapi."
* commit '5ddb411c174ee2402b5445bf73db25f1c7fa33f5':
2014-07-14 19:29:48 +00:00
Elliott Hughes
be69279338 am 29ba6754: am f65d552b: am 0594b9dd: am b8e82b5e: Merge "EM_ARM and EM_AARCH64 are now in the uapi header."
* commit '29ba6754e5370b46adad73cc949f507cdb85fd38':
2014-07-14 19:29:45 +00:00
Christopher Ferris
68b180812e am 8edb50a7: am 8832cfb2: am efdf7862: am 385bb1ed: Merge "Add optimized memchr implementation from newlib"
* commit '8edb50a7ce1e16618983179692169ed9a4c83f34':
2014-07-14 19:29:44 +00:00
Christopher Ferris
c03b5b0c87 am 99ad4f90: am d92a6d06: am 55230dd0: am 96502e27: Merge "Make jemalloc the default choice."
* commit '99ad4f9028e62d268190a7b81365153a9a82a868':
2014-07-14 19:29:43 +00:00
Christopher Ferris
a3f8b0b3df am f0fe22cd: am d389809d: am 18a25078: am c6bc0017: Merge "Update kernel headers to v3.14."
* commit 'f0fe22cd13d6e6650f50453d502d64a67ee35a0f':
2014-07-14 19:29:42 +00:00
Elliott Hughes
3df82ef283 am 1edd9758: am 9c98443e: am ce1422b9: am 040e1187: Merge "Enable building libc with clang."
* commit '1edd97580f74ba11f13f383aa70e4b47d163d600':
2014-07-14 19:29:42 +00:00
Dan Albert
9e962e499c am 42eed01a: am 405fd491: am c0afc23e: am 37f09d6d: Merge "Revert "Revert "Add locale aware APIs."""
* commit '42eed01a1f079515ddc64fbd7d1d77d6de576db6':
2014-07-14 19:29:39 +00:00
Elliott Hughes
0310e5d912 am a7d2f57d: am 210a8423: am d19f2d85: am 76df69d1: Merge "The err family allow null format strings."
* commit 'a7d2f57d614dbf6be3308f5d476bae1e29551db4':
2014-07-14 19:29:37 +00:00
Elliott Hughes
a34620eb55 am bad533b4: am d54994a4: am 696c48df: am eba7c15b: Merge "Revert "Switch libm to building with clang.""
* commit 'bad533b465be292c5c609a5edd336bf00ca359e6':
2014-07-14 19:29:36 +00:00
Elliott Hughes
d4a1d6e229 am 84ae9f67: am 2545bf7b: am 37ab54fd: am 5df23dc8: Merge "Switch libm to building with clang."
* commit '84ae9f673bf96c87b54978db396cc5cb7a9e6266':
2014-07-14 19:29:36 +00:00
Elliott Hughes
5cc91d1f54 am 387d52ea: am 3ea96e7b: am 35805377: am 9b491470: Merge "Slim down static binaries by avoiding stdio."
* commit '387d52ea4bdab7c90061d5828f0208a16214fa74':
2014-07-14 19:29:35 +00:00
Elliott Hughes
a102132057 am 32a93da1: am a9e847fd: am 7d9f1cc5: am f0f8cd1f: Merge "Remove the global lock around thread stack creation."
* commit '32a93da106d58ba9329c3f040063c334574e315c':
2014-07-14 19:29:35 +00:00
Elliott Hughes
7eb1cbc6e5 am e6153565: am b2ddd728: am 12ce9115: am cd23370c: Merge "Remove the obsolete _thread_created_hook."
* commit 'e6153565adce260251d8bf0b285abea053c2da8f':
2014-07-14 19:29:34 +00:00
Calin Juravle
3cfac9fe42 am 8ebfc51e: am 9899217a: am 9712d913: am 02459d34: Merge "Move __cmsg_nxthdr to its proper file."
* commit '8ebfc51ee226d7d5ebcb5f34b579a2391589127d':
2014-07-14 19:29:33 +00:00
Calin Juravle
943f25c072 am cd1093fa: am b89ef57d: am cd061f6e: am 8a71a745: Merge "Removed obsolete symbol cmsg_nxthdr."
* commit 'cd1093fab5e24e02214f49de8b37aeace8e48330':
2014-07-14 19:29:32 +00:00
Christopher Ferris
464972fc6e am d0e94fa5: am a35ae1bc: am 4306b0f8: am 25fba981: Merge "Do not include libc_common in malloc debug code."
* commit 'd0e94fa58d775d6980ab6dc7c4cd70de0f16f10c':
2014-07-14 19:29:31 +00:00
Elliott Hughes
6144d69275 am 699cecdd: am 4c28373d: am 96d7251c: am d028b620: Merge "Added a __system_property_serial benchmark."
* commit '699cecdd2ec27a37a1edfc42556e3f9877ae3055':
2014-07-14 19:29:30 +00:00
Elliott Hughes
72085c59a0 am fffca5a9: am 4f459ec6: am 1cad0226: am 84f0c7c2: Merge "update-tzdata.py needs to know where to find icu."
* commit 'fffca5a9f7d3f4fea4e4d88ba8a15d1810239d33':
2014-07-14 19:29:29 +00:00
Dan Albert
b231d97436 am 2f96faad: am d0a7157c: am ea04b5a6: am 7a85d9a1: Merge "Revert "Add locale aware APIs.""
* commit '2f96faadec2dbd3f8a30466de413629e860cdf0a':
2014-07-14 19:29:28 +00:00
Dan Albert
87abe8a43c am 12810d6d: am 1e46158e: am f6b95993: am 430d5f93: Merge "Add locale aware APIs."
* commit '12810d6d6116049aa68fd9c0c16ec0f408933ac0':
2014-07-14 19:29:27 +00:00
Elliott Hughes
4e67f9c453 am df17c1f2: am 67ee7b9d: am 94560b5b: am 4c199170: Merge "Added __system_propery_read benchmark."
* commit 'df17c1f20bb366e59f75869a3396ca8cedd850de':
2014-07-14 19:29:26 +00:00
Elliott Hughes
e9db4fa091 am 26734a7d: am c346c606: am 8d11fb18: am 3139f6fd: Merge "Remove __CTOR_LIST__ from mips/mips64."
* commit '26734a7dd7628f59c70dcad8d732420c92ff6be1':
2014-07-14 19:29:24 +00:00
Elliott Hughes
b6bc601165 am 602492a6: am 53641001: am 986fb565: am c4c67893: Merge "Don\'t zero r1 on entry to the dynamic linker."
* commit '602492a682f1d7fe21f34b1ff7c08942de0fefa4':
2014-07-14 19:29:23 +00:00
Ying Wang
b1be9d8b5c am af47a46d: am 4fae7675: am 6ee2f321: am 6cdd0cfd: Merge "TARGET_OUT_DATA_NATIVE_TESTS now points to /nativetest64 in 64-bit target"
* commit 'af47a46d38d3b5571944e70ed9ea0a0816dd4685':
2014-07-14 19:29:22 +00:00
Dmitriy Ivanov
be0162e1d7 am 3dd6e3d8: am e245060c: am ab164750: am 3c12ae56: Merge "Add test for constructor function."
* commit '3dd6e3d880077ee2632fb055ef17339558a61c03':
2014-07-14 19:29:21 +00:00
Dmitriy Ivanov
9afe125fdb am 065abed9: am 30e596e9: am ca673e73: am b9c5d606: am 006e0770: Merge "Change android_dlextinfo flags to uint64_t"
* commit '065abed9a580e8ad23bd6cbd5721ea1d70474828':
2014-07-14 19:29:20 +00:00
Elliott Hughes
21c8f41d3f am 0ec257dc: am a3eead96: am 7e43f0d4: resolved conflicts for merge of aedc14b1 to lmp-dev
* commit '0ec257dc20ceadde049296246c78b99f02625412':
2014-07-14 19:29:18 +00:00
Calin Juravle
48766828da am 37eca3d3: am 3b0f3112: am f11e7c74: am 02459d34: Merge "Move __cmsg_nxthdr to its proper file."
* commit '37eca3d325de93ce95e0f85c53aab508c18b306d':
2014-07-14 19:29:17 +00:00
Calin Juravle
a7be72e7a2 am b94d0294: am e8ce76c2: am 1d63dd90: am 8a71a745: Merge "Removed obsolete symbol cmsg_nxthdr."
* commit 'b94d0294037a37b60ba2bd403f12c1c7c28efbaa':
2014-07-14 19:29:16 +00:00
Christopher Ferris
450f9a4b83 am c743b189: am 0f8d5a06: am c04e73a6: am 25fba981: Merge "Do not include libc_common in malloc debug code."
* commit 'c743b18961b46b82e5a4770d67071aeeee8753bf':
2014-07-14 19:29:15 +00:00
Elliott Hughes
6bf66f8ce7 am 5252514d: am 05916dda: am cf53885b: am d028b620: Merge "Added a __system_property_serial benchmark."
* commit '5252514d65ee924d53ceafd14e0d566a477cf35a':
2014-07-14 19:29:14 +00:00
Elliott Hughes
04b7898f17 am e4a1004d: am 42775b51: am feccec68: am 84f0c7c2: Merge "update-tzdata.py needs to know where to find icu."
* commit 'e4a1004d875465b39e7d557bdcc5bbfa8acefeda':
2014-07-14 19:29:13 +00:00
Dan Albert
b24b709ea2 am 5b41373d: am 293006c9: am 418fdef2: am 7a85d9a1: Merge "Revert "Add locale aware APIs.""
* commit '5b41373d499b7ab2b72ad5235c5d1a3c06f236b2':
2014-07-14 19:29:11 +00:00
Dan Albert
79465f3d25 am a0ce997e: am 16dd7fd5: am 43e79dab: am 430d5f93: Merge "Add locale aware APIs."
* commit 'a0ce997e1bf7a1074ce78b1ff8cf6acfa59ca2f3':
2014-07-14 19:29:10 +00:00
Elliott Hughes
3cdcfc82eb am 6c804ab1: am e2bcc8bb: am 748d8708: am 4c199170: Merge "Added __system_propery_read benchmark."
* commit '6c804ab1ea8ed48ba9ec78c443f2c7815fa830a0':
2014-07-14 19:29:09 +00:00
Elliott Hughes
129820c8d6 am 7ad8adbe: am 48ad92a4: am 742fce7b: am 3139f6fd: Merge "Remove __CTOR_LIST__ from mips/mips64."
* commit '7ad8adbe51280128ddcad7849f36d091fb05dda1':
2014-07-14 19:29:08 +00:00
Elliott Hughes
845d50ba81 am f7fe0779: am dc0b68e5: am b9d95b5d: am c4c67893: Merge "Don\'t zero r1 on entry to the dynamic linker."
* commit 'f7fe0779027ce54b6936f8210bc867707c969f38':
2014-07-14 19:29:06 +00:00
Ying Wang
8e8d019b5c am de78c2c4: am 76171b2d: am 02406f68: am 6cdd0cfd: Merge "TARGET_OUT_DATA_NATIVE_TESTS now points to /nativetest64 in 64-bit target"
* commit 'de78c2c45181e8a1b16e70c87be981af9c76a092':
2014-07-14 19:29:05 +00:00
Dmitriy Ivanov
fd2fd4398e am 994faff2: am 4e37e7b1: am b9247ada: am 3c12ae56: Merge "Add test for constructor function."
* commit '994faff20941661a557e3a9339768fa8e2ecf21d':
2014-07-14 19:29:04 +00:00
Dmitriy Ivanov
ff181ce7ac am 49b59013: am 4c632335: am b9c5d606: am 006e0770: Merge "Change android_dlextinfo flags to uint64_t"
* commit '49b590136a7269902179bf61258709d2bb6d5611':
2014-07-14 19:29:03 +00:00
Elliott Hughes
d7c9ad906b am f40424d3: am ddf9066e: resolved conflicts for merge of aedc14b1 to master
* commit 'f40424d38fbe540c1a04a27f7ad1c7a89826fd1c':
2014-07-14 19:29:02 +00:00
Elliott Hughes
ac56fc8663 am 673bff01: Merge "Implement rand/srand in terms of random/srandom."
* commit '673bff01aed0c08991b98841ed0bfad78a589672':
  Implement rand/srand in terms of random/srandom.
2014-07-14 19:28:49 +00:00
Brian Carlstrom
6835f5864d Merge branch 'lmp-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/bionic into lmp-dev-plus-aosp 2014-07-14 19:23:02 +00:00
Elliott Hughes
6d3032891a am 4ae93869: Merge "Sync upstream-openbsd."
* commit '4ae938698c89e9e3c79008d9a833db726779accd':
  Sync upstream-openbsd.
2014-07-14 19:21:32 +00:00
Dmitriy Ivanov
7ba7686b46 am 91f2074e: Merge "Upstream atexit"
* commit '91f2074e5f4e475d7c88d9cdaeb7dcdc9d9ff882':
  Upstream atexit
2014-07-14 19:21:31 +00:00
Elliott Hughes
49e34298e6 am 3b318a5b: am e2b177a5: am 83ce99d8: Merge "Define SIOCKILLADDR which isn\'t in the common kernel uapi headers."
* commit '3b318a5b3da4afde3c6f35cab260e93d0adf7a5e':
2014-07-14 19:10:08 +00:00
Elliott Hughes
646e7eb4bd am f6968e3c: Define SIOCKILLADDR which isn\'t in the common kernel uapi headers.
* commit 'f6968e3c0822b27e9aa584c3490573f34b1725c1':
  Define SIOCKILLADDR which isn't in the common kernel uapi headers.
2014-07-14 19:10:07 +00:00
Elliott Hughes
5ddb411c17 am bae7c206: am b962ab81: am 57a5b338: Merge "Define three prctl constants that went missing from uapi."
* commit 'bae7c2067256272a0ce0a0eb4d24cc2d6a091735':
2014-07-14 19:10:06 +00:00
Elliott Hughes
29ba6754e5 am f65d552b: am 0594b9dd: am b8e82b5e: Merge "EM_ARM and EM_AARCH64 are now in the uapi header."
* commit 'f65d552b3de50fd9124f9704eda3e04d02c25a32':
2014-07-14 19:10:06 +00:00
Christopher Ferris
8edb50a7ce am 8832cfb2: am efdf7862: am 385bb1ed: Merge "Add optimized memchr implementation from newlib"
* commit '8832cfb2fea643ccf0378e2864ba25d773cad408':
2014-07-14 19:10:05 +00:00
Christopher Ferris
99ad4f9028 am d92a6d06: am 55230dd0: am 96502e27: Merge "Make jemalloc the default choice."
* commit 'd92a6d06690b63f70126ab55b6909cfae78a20c6':
2014-07-14 19:10:04 +00:00
Christopher Ferris
f0fe22cd13 am d389809d: am 18a25078: am c6bc0017: Merge "Update kernel headers to v3.14."
* commit 'd389809de7d4cccaa54a2ef468c47a6592015afa':
2014-07-14 19:10:04 +00:00
Elliott Hughes
1edd97580f am 9c98443e: am ce1422b9: am 040e1187: Merge "Enable building libc with clang."
* commit '9c98443e2bd2991a41dab118df19ab8cd676ab6b':
2014-07-14 19:10:03 +00:00
Dan Albert
42eed01a1f am 405fd491: am c0afc23e: am 37f09d6d: Merge "Revert "Revert "Add locale aware APIs."""
* commit '405fd491bc71e01dbb0616cff35d508f65803eb6':
2014-07-14 19:10:02 +00:00
Elliott Hughes
a7d2f57d61 am 210a8423: am d19f2d85: am 76df69d1: Merge "The err family allow null format strings."
* commit '210a842354d4a840cab29da6e11aea83a52a6e8c':
2014-07-14 19:10:01 +00:00
Elliott Hughes
bad533b465 am d54994a4: am 696c48df: am eba7c15b: Merge "Revert "Switch libm to building with clang.""
* commit 'd54994a45f1be37cdd7d3ff184027dd57f416703':
2014-07-14 19:10:00 +00:00
Elliott Hughes
84ae9f673b am 2545bf7b: am 37ab54fd: am 5df23dc8: Merge "Switch libm to building with clang."
* commit '2545bf7b411de74e3aede8e4d38d9f44bcef7948':
2014-07-14 19:10:00 +00:00
Elliott Hughes
387d52ea4b am 3ea96e7b: am 35805377: am 9b491470: Merge "Slim down static binaries by avoiding stdio."
* commit '3ea96e7b86fa00ed67c24ea742a6b87ae86df826':
2014-07-14 19:09:59 +00:00
Elliott Hughes
32a93da106 am a9e847fd: am 7d9f1cc5: am f0f8cd1f: Merge "Remove the global lock around thread stack creation."
* commit 'a9e847fdea2821841cfa511d32d86e6298616ee9':
2014-07-14 19:09:59 +00:00
Elliott Hughes
e6153565ad am b2ddd728: am 12ce9115: am cd23370c: Merge "Remove the obsolete _thread_created_hook."
* commit 'b2ddd728c353028bdfa6c2d09c9fa8651876a7bb':
2014-07-14 19:09:58 +00:00
Calin Juravle
8ebfc51ee2 am 9899217a: am 9712d913: am 02459d34: Merge "Move __cmsg_nxthdr to its proper file."
* commit '9899217adbb72f1eadd32ca4319bf1962492935d':
2014-07-14 19:09:58 +00:00
Calin Juravle
cd1093fab5 am b89ef57d: am cd061f6e: am 8a71a745: Merge "Removed obsolete symbol cmsg_nxthdr."
* commit 'b89ef57d092f4326195ce7ec8521c1f78cfd7c71':
2014-07-14 19:09:57 +00:00
Christopher Ferris
d0e94fa58d am a35ae1bc: am 4306b0f8: am 25fba981: Merge "Do not include libc_common in malloc debug code."
* commit 'a35ae1bcaa6a902aa0c434e00948bce4a9ce5113':
2014-07-14 19:09:56 +00:00
Elliott Hughes
699cecdd2e am 4c28373d: am 96d7251c: am d028b620: Merge "Added a __system_property_serial benchmark."
* commit '4c28373da6e90d3f4cfd70c2ade6a9181bbbde39':
2014-07-14 19:09:55 +00:00
Elliott Hughes
fffca5a9f7 am 4f459ec6: am 1cad0226: am 84f0c7c2: Merge "update-tzdata.py needs to know where to find icu."
* commit '4f459ec6bd00a0b269ba5f889c3c7fb32cade14f':
2014-07-14 19:09:54 +00:00
Dan Albert
2f96faadec am d0a7157c: am ea04b5a6: am 7a85d9a1: Merge "Revert "Add locale aware APIs.""
* commit 'd0a7157c974b3d33a7c0d6a2fc514f006737cbf9':
2014-07-14 19:09:54 +00:00
Dan Albert
12810d6d61 am 1e46158e: am f6b95993: am 430d5f93: Merge "Add locale aware APIs."
* commit '1e46158e64f2b90be1ea7fdc569472be297d151c':
2014-07-14 19:09:53 +00:00
Elliott Hughes
df17c1f20b am 67ee7b9d: am 94560b5b: am 4c199170: Merge "Added __system_propery_read benchmark."
* commit '67ee7b9d985255db87c6b7b046d06079baa63148':
2014-07-14 19:09:53 +00:00
Elliott Hughes
26734a7dd7 am c346c606: am 8d11fb18: am 3139f6fd: Merge "Remove __CTOR_LIST__ from mips/mips64."
* commit 'c346c606e95d5ec724ea5efc1124ff348ad86025':
2014-07-14 19:09:52 +00:00
Elliott Hughes
602492a682 am 53641001: am 986fb565: am c4c67893: Merge "Don\'t zero r1 on entry to the dynamic linker."
* commit '536410018a4966333350b330030791b546785296':
2014-07-14 19:09:51 +00:00
Ying Wang
af47a46d38 am 4fae7675: am 6ee2f321: am 6cdd0cfd: Merge "TARGET_OUT_DATA_NATIVE_TESTS now points to /nativetest64 in 64-bit target"
* commit '4fae7675103463a8322a04da707ba1f2d90ca9bb':
2014-07-14 19:09:50 +00:00
Dmitriy Ivanov
3dd6e3d880 am e245060c: am ab164750: am 3c12ae56: Merge "Add test for constructor function."
* commit 'e245060c6d1d0ed4a45909b50fe6bd04de068aa3':
2014-07-14 19:09:50 +00:00
Dmitriy Ivanov
065abed9a5 am 30e596e9: am ca673e73: am b9c5d606: am 006e0770: Merge "Change android_dlextinfo flags to uint64_t"
* commit '30e596e9ead5bd7cfd9599b0e3d5e8bd4f6c1353':
2014-07-14 19:09:49 +00:00
Elliott Hughes
0ec257dc20 am a3eead96: am 7e43f0d4: resolved conflicts for merge of aedc14b1 to lmp-dev
* commit 'a3eead96b9f1000d403541dad0f086c3b175900a':
2014-07-14 19:09:48 +00:00
Calin Juravle
37eca3d325 am 3b0f3112: am f11e7c74: am 02459d34: Merge "Move __cmsg_nxthdr to its proper file."
* commit '3b0f3112d0fed5cf30e2ad3fc6500810b760b35d':
2014-07-14 19:09:48 +00:00
Calin Juravle
b94d029403 am e8ce76c2: am 1d63dd90: am 8a71a745: Merge "Removed obsolete symbol cmsg_nxthdr."
* commit 'e8ce76c26e0bae90b50ece7f8fa3d3f2fefc2476':
2014-07-14 19:09:47 +00:00
Christopher Ferris
c743b18961 am 0f8d5a06: am c04e73a6: am 25fba981: Merge "Do not include libc_common in malloc debug code."
* commit '0f8d5a0664f6b21e4ebde63aa76ee2518bae9114':
2014-07-14 19:09:46 +00:00
Elliott Hughes
5252514d65 am 05916dda: am cf53885b: am d028b620: Merge "Added a __system_property_serial benchmark."
* commit '05916dda8a9a48ce491ea33b9d196741125fe957':
2014-07-14 19:09:45 +00:00
Elliott Hughes
e4a1004d87 am 42775b51: am feccec68: am 84f0c7c2: Merge "update-tzdata.py needs to know where to find icu."
* commit '42775b512fa6f39a93c130513f1c44cebfdb9c8c':
2014-07-14 19:09:45 +00:00
Dan Albert
5b41373d49 am 293006c9: am 418fdef2: am 7a85d9a1: Merge "Revert "Add locale aware APIs.""
* commit '293006c91b22105419e446268dee3b9b6d6e7dac':
2014-07-14 19:09:44 +00:00
Dan Albert
a0ce997e1b am 16dd7fd5: am 43e79dab: am 430d5f93: Merge "Add locale aware APIs."
* commit '16dd7fd5d293ad1fa5d812743cbbbddad20055ae':
2014-07-14 19:09:43 +00:00
Elliott Hughes
6c804ab1ea am e2bcc8bb: am 748d8708: am 4c199170: Merge "Added __system_propery_read benchmark."
* commit 'e2bcc8bbe5b426e627395e88bb1748a3f33ccd98':
2014-07-14 19:09:43 +00:00
Elliott Hughes
7ad8adbe51 am 48ad92a4: am 742fce7b: am 3139f6fd: Merge "Remove __CTOR_LIST__ from mips/mips64."
* commit '48ad92a4b1e3d7a3611eba3bc067989a138802b4':
2014-07-14 19:09:42 +00:00
Elliott Hughes
f7fe077902 am dc0b68e5: am b9d95b5d: am c4c67893: Merge "Don\'t zero r1 on entry to the dynamic linker."
* commit 'dc0b68e5ee7f730adf2864c9c16a38b7ab8c8432':
2014-07-14 19:09:42 +00:00
Ying Wang
de78c2c451 am 76171b2d: am 02406f68: am 6cdd0cfd: Merge "TARGET_OUT_DATA_NATIVE_TESTS now points to /nativetest64 in 64-bit target"
* commit '76171b2d583ee21c1292f402f109e800120f9907':
2014-07-14 19:09:41 +00:00
Dmitriy Ivanov
994faff209 am 4e37e7b1: am b9247ada: am 3c12ae56: Merge "Add test for constructor function."
* commit '4e37e7b1e89c3c9f734a3593838b6ba9b0e0e855':
2014-07-14 19:09:40 +00:00
Dmitriy Ivanov
49b590136a am 4c632335: am b9c5d606: am 006e0770: Merge "Change android_dlextinfo flags to uint64_t"
* commit '4c632335112a9cedee8bb09be7ca56b132ef21ee':
2014-07-14 19:09:40 +00:00
Elliott Hughes
f40424d38f am ddf9066e: resolved conflicts for merge of aedc14b1 to master
* commit 'ddf9066e2e850a1e0dc936a731994ec831581807':
2014-07-14 19:09:39 +00:00
Elliott Hughes
673bff01ae Merge "Implement rand/srand in terms of random/srandom." 2014-07-14 17:20:33 +00:00
Elliott Hughes
76c241b091 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
Change-Id: Ia5a908a816e0a5f0639f514107a6384a51ec157e
2014-07-14 12:02:22 -07:00
Dmitriy Ivanov
91f2074e5f Merge "Upstream atexit" 2014-07-14 17:20:33 +00:00
Dmitriy Ivanov
53c3c271dc Upstream atexit
Change-Id: Ia454a2181b5058ed9783dc02b6b1805d0e4d2715
2014-07-14 12:05:16 -07:00
Elliott Hughes
4ae938698c Merge "Sync upstream-openbsd." 2014-07-14 17:15:23 +00:00
Elliott Hughes
4f0b67a8db Sync upstream-openbsd.
Change-Id: I5b9961a57e2ff05f63bd218c130bf8347850b9be
2014-07-14 11:22:59 -07:00
Elliott Hughes
ee3608f9d3 Merge "Fix visibility for a bunch more symbols." 2014-07-14 17:01:21 +00:00
Elliott Hughes
a167eef548 Fix visibility for a bunch more symbols.
Bug: 11156955
Bug: 15291317
Change-Id: I664f25cce7c17085a101d6593d8e01525a1f6a90
2014-07-14 15:13:30 -07:00
1916 changed files with 348216 additions and 61501 deletions

15
.clang-format Normal file
View File

@ -0,0 +1,15 @@
BasedOnStyle: Google
AllowShortBlocksOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
ColumnLimit: 100
CommentPragmas: NOLINT:.*
DerivePointerAlignment: false
IndentWidth: 2
ContinuationIndentWidth: 2
PointerAlignment: Left
TabWidth: 2
UseTab: Never
PenaltyExcessCharacter: 32
Cpp11BracedListStyle: false

View File

@ -1,12 +0,0 @@
KNOWN ABI BUGS
--------------
time_t is 32-bit. http://b/5819737
off_t is 32-bit. There is off64_t, but no _FILE_OFFSET_BITS support.
sigset_t is too small on ARM and x86 (but correct on MIPS), so support
for real-time signals is broken. http://b/5828899
atexit(3) handlers registered by a shared library aren't called on
dlclose(3); this only affects ARM. http://b/4998315

1
Android.bp Normal file
View File

@ -0,0 +1 @@
subdirs = ["*"]

2
CPPLINT.cfg Normal file
View File

@ -0,0 +1,2 @@
set noparent
filter=-build/header_guard,-runtime/int,-readability/function

View File

@ -1,162 +0,0 @@
Working on bionic
=================
What are the big pieces of bionic?
----------------------------------
libc/ --- libc.so, libc.a
The C library. Stuff like fopen(3) and kill(2).
libm/ --- libm.so, libm.a
The math library. Traditionally Unix systems kept stuff like sin(3) and
cos(3) in a separate library to save space in the days before shared
libraries.
libdl/ --- libdl.so
The dynamic linker interface library. This is actually just a bunch of
stubs that the dynamic linker replaces with pointers to its own
implementation at runtime. This is where stuff like dlopen(3) lives.
libstdc++/ --- libstdc++.so
The C++ ABI support functions. The C++ compiler doesn't know how to
implement thread-safe static initialization and the like, so it just calls
functions that are supplied by the system. Stuff like __cxa_guard_acquire
and __cxa_pure_virtual live here.
linker/ --- /system/bin/linker and /system/bin/linker64
The dynamic linker. When you run a dynamically-linked executable, its ELF
file has a DT_INTERP entry that says "use the following program to start me".
On Android, that's either linker or linker64 (depending on whether it's a
32-bit or 64-bit executable). It's responsible for loading the ELF executable
into memory and resolving references to symbols (so that when your code tries
to jump to fopen(3), say, it lands in the right place).
tests/ --- unit tests
The tests/ directory contains unit tests. Roughly arranged as one file per
publicly-exported header file.
benchmarks/ --- benchmarks
The benchmarks/ directory contains benchmarks.
What's in libc/?
----------------
libc/
arch-arm/
arch-arm64/
arch-common/
arch-mips/
arch-mips64/
arch-x86/
arch-x86_64/
# Each architecture has its own subdirectory for stuff that isn't shared
# because it's architecture-specific. There will be a .mk file in here that
# drags in all the architecture-specific files.
bionic/
# Every architecture needs a handful of machine-specific assembler files.
# They live here.
include/
machine/
# The majority of header files are actually in libc/include/, but many
# of them pull in a <machine/something.h> for things like limits,
# endianness, and how floating point numbers are represented. Those
# headers live here.
string/
# Most architectures have a handful of optional assembler files
# implementing optimized versions of various routines. The <string.h>
# functions are particular favorites.
syscalls/
# The syscalls directories contain script-generated assembler files.
# See 'Adding system calls' later.
include/
# The public header files on everyone's include path. These are a mixture of
# files written by us and files taken from BSD.
kernel/
# The kernel uapi header files. These are scrubbed copies of the originals
# in external/kernel-headers/. These files must not be edited directly. The
# generate_uapi_headers.sh script should be used to go from a kernel tree to
# external/kernel-headers/ --- this takes care of the architecture-specific
# details. The update_all.py script should be used to regenerate bionic's
# scrubbed headers from external/kernel-headers/.
private/
# These are private header files meant for use within bionic itself.
dns/
# Contains the DNS resolver (originates from NetBSD code).
upstream-dlmalloc/
upstream-freebsd/
upstream-netbsd/
upstream-openbsd/
# These directories contain unmolested upstream source. Any time we can
# just use a BSD implementation of something unmodified, we should.
# The structure under these directories mimics the upstream tree,
# but there's also...
android/
include/
# This is where we keep the hacks necessary to build BSD source
# in our world. The *-compat.h files are automatically included
# using -include, but we also provide equivalents for missing
# header/source files needed by the BSD implementation.
bionic/
# This is the biggest mess. The C++ files are files we own, typically
# because the Linux kernel interface is sufficiently different that we
# can't use any of the BSD implementations. The C files are usually
# legacy mess that needs to be sorted out, either by replacing it with
# current upstream source in one of the upstream directories or by
# switching the file to C++ and cleaning it up.
stdio/
# These are legacy files of dubious provenance. We're working to clean
# this mess up, and this directory should disappear.
tools/
# Various tools used to maintain bionic.
tzcode/
# A modified superset of the IANA tzcode. Most of the modifications relate
# to Android's use of a single file (with corresponding index) to contain
# time zone data.
zoneinfo/
# Android-format time zone data.
# See 'Updating tzdata' later.
Adding system calls
-------------------
Adding a system call usually involves:
1. Add entries to SYSCALLS.TXT.
See SYSCALLS.TXT itself for documentation on the format.
2. Run the gensyscalls.py script.
3. Add constants (and perhaps types) to the appropriate header file.
Note that you should check to see whether the constants are already in
kernel uapi header files, in which case you just need to make sure that
the appropriate POSIX header file in libc/include/ includes the
relevant file or files.
4. Add function declarations to the appropriate header file.
5. Add at least basic tests. Even a test that deliberately supplies
an invalid argument helps check that we're generating the right symbol
and have the right declaration in the header file. (And strace(1) can
confirm that the correct system call is being made.)
Updating kernel header files
----------------------------
As mentioned above, this is currently a two-step process:
1. Use generate_uapi_headers.sh to go from a Linux source tree to appropriate
contents for external/kernel-headers/.
2. Run update_all.py to scrub those headers and import them into bionic.
Updating tzdata
---------------
This is fully automated:
1. Run update-tzdata.py.

290
README.md Normal file
View File

@ -0,0 +1,290 @@
Working on bionic
=================
What are the big pieces of bionic?
----------------------------------
#### libc/ --- libc.so, libc.a
The C library. Stuff like `fopen(3)` and `kill(2)`.
#### libm/ --- libm.so, libm.a
The math library. Traditionally Unix systems kept stuff like `sin(3)` and
`cos(3)` in a separate library to save space in the days before shared
libraries.
#### libdl/ --- libdl.so
The dynamic linker interface library. This is actually just a bunch of stubs
that the dynamic linker replaces with pointers to its own implementation at
runtime. This is where stuff like `dlopen(3)` lives.
#### libstdc++/ --- libstdc++.so
The C++ ABI support functions. The C++ compiler doesn't know how to implement
thread-safe static initialization and the like, so it just calls functions that
are supplied by the system. Stuff like `__cxa_guard_acquire` and
`__cxa_pure_virtual` live here.
#### linker/ --- /system/bin/linker and /system/bin/linker64
The dynamic linker. When you run a dynamically-linked executable, its ELF file
has a `DT_INTERP` entry that says "use the following program to start me". On
Android, that's either `linker` or `linker64` (depending on whether it's a
32-bit or 64-bit executable). It's responsible for loading the ELF executable
into memory and resolving references to symbols (so that when your code tries to
jump to `fopen(3)`, say, it lands in the right place).
#### tests/ --- unit tests
The `tests/` directory contains unit tests. Roughly arranged as one file per
publicly-exported header file.
#### benchmarks/ --- benchmarks
The `benchmarks/` directory contains benchmarks.
What's in libc/?
----------------
<pre>
libc/
arch-arm/
arch-arm64/
arch-common/
arch-mips/
arch-mips64/
arch-x86/
arch-x86_64/
# Each architecture has its own subdirectory for stuff that isn't shared
# because it's architecture-specific. There will be a .mk file in here that
# drags in all the architecture-specific files.
bionic/
# Every architecture needs a handful of machine-specific assembler files.
# They live here.
include/
machine/
# The majority of header files are actually in libc/include/, but many
# of them pull in a <machine/something.h> for things like limits,
# endianness, and how floating point numbers are represented. Those
# headers live here.
string/
# Most architectures have a handful of optional assembler files
# implementing optimized versions of various routines. The <string.h>
# functions are particular favorites.
syscalls/
# The syscalls directories contain script-generated assembler files.
# See 'Adding system calls' later.
include/
# The public header files on everyone's include path. These are a mixture of
# files written by us and files taken from BSD.
kernel/
# The kernel uapi header files. These are scrubbed copies of the originals
# in external/kernel-headers/. These files must not be edited directly. The
# generate_uapi_headers.sh script should be used to go from a kernel tree to
# external/kernel-headers/ --- this takes care of the architecture-specific
# details. The update_all.py script should be used to regenerate bionic's
# scrubbed headers from external/kernel-headers/.
private/
# These are private header files meant for use within bionic itself.
dns/
# Contains the DNS resolver (originates from NetBSD code).
upstream-dlmalloc/
upstream-freebsd/
upstream-netbsd/
upstream-openbsd/
# These directories contain unmolested upstream source. Any time we can
# just use a BSD implementation of something unmodified, we should.
# The structure under these directories mimics the upstream tree,
# but there's also...
android/
include/
# This is where we keep the hacks necessary to build BSD source
# in our world. The *-compat.h files are automatically included
# using -include, but we also provide equivalents for missing
# header/source files needed by the BSD implementation.
bionic/
# This is the biggest mess. The C++ files are files we own, typically
# because the Linux kernel interface is sufficiently different that we
# can't use any of the BSD implementations. The C files are usually
# legacy mess that needs to be sorted out, either by replacing it with
# current upstream source in one of the upstream directories or by
# switching the file to C++ and cleaning it up.
stdio/
# These are legacy files of dubious provenance. We're working to clean
# this mess up, and this directory should disappear.
tools/
# Various tools used to maintain bionic.
tzcode/
# A modified superset of the IANA tzcode. Most of the modifications relate
# to Android's use of a single file (with corresponding index) to contain
# time zone data.
zoneinfo/
# Android-format time zone data.
# See 'Updating tzdata' later.
</pre>
Adding system calls
-------------------
Adding a system call usually involves:
1. Add entries to SYSCALLS.TXT.
See SYSCALLS.TXT itself for documentation on the format.
2. Run the gensyscalls.py script.
3. Add constants (and perhaps types) to the appropriate header file.
Note that you should check to see whether the constants are already in
kernel uapi header files, in which case you just need to make sure that
the appropriate POSIX header file in libc/include/ includes the
relevant file or files.
4. Add function declarations to the appropriate header file.
5. Add at least basic tests. Even a test that deliberately supplies
an invalid argument helps check that we're generating the right symbol
and have the right declaration in the header file. (And strace(1) can
confirm that the correct system call is being made.)
Updating kernel header files
----------------------------
As mentioned above, this is currently a two-step process:
1. Use generate_uapi_headers.sh to go from a Linux source tree to appropriate
contents for external/kernel-headers/.
2. Run update_all.py to scrub those headers and import them into bionic.
Updating tzdata
---------------
This is fully automated (and these days handled by the libcore team, because
they own icu, and that needs to be updated in sync with bionic):
1. Run update-tzdata.py in external/icu/tools/.
Verifying changes
-----------------
If you make a change that is likely to have a wide effect on the tree (such as a
libc header change), you should run `make checkbuild`. A regular `make` will
_not_ build the entire tree; just the minimum number of projects that are
required for the device. Tests, additional developer tools, and various other
modules will not be built. Note that `make checkbuild` will not be complete
either, as `make tests` covers a few additional modules, but generally speaking
`make checkbuild` is enough.
Running the tests
-----------------
The tests are all built from the tests/ directory.
### Device tests
$ mma
$ adb remount
$ adb sync
$ adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests32
$ adb shell \
/data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static32
# Only for 64-bit targets
$ adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests64
$ adb shell \
/data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static64
### Host tests
The host tests require that you have `lunch`ed either an x86 or x86_64 target.
$ mma
$ mm bionic-unit-tests-run-on-host32
$ mm bionic-unit-tests-run-on-host64 # For 64-bit *targets* only.
### Against glibc
As a way to check that our tests do in fact test the correct behavior (and not
just the behavior we think is correct), it is possible to run the tests against
the host's glibc. The executables are already in your path.
$ mma
$ bionic-unit-tests-glibc32
$ bionic-unit-tests-glibc64
Gathering test coverage
-----------------------
For either host or target coverage, you must first:
* `$ export NATIVE_COVERAGE=true`
* Note that the build system is ignorant to this flag being toggled, i.e. if
you change this flag, you will have to manually rebuild bionic.
* Set `bionic_coverage=true` in `libc/Android.mk` and `libm/Android.mk`.
### Coverage from device tests
$ mma
$ adb sync
$ adb shell \
GCOV_PREFIX=/data/local/tmp/gcov \
GCOV_PREFIX_STRIP=`echo $ANDROID_BUILD_TOP | grep -o / | wc -l` \
/data/nativetest/bionic-unit-tests/bionic-unit-tests32
$ acov
`acov` will pull all coverage information from the device, push it to the right
directories, run `lcov`, and open the coverage report in your browser.
### Coverage from host tests
First, build and run the host tests as usual (see above).
$ croot
$ lcov -c -d $ANDROID_PRODUCT_OUT -o coverage.info
$ genhtml -o covreport coverage.info # or lcov --list coverage.info
The coverage report is now available at `covreport/index.html`.
Attaching GDB to the tests
--------------------------
Bionic's test runner will run each test in its own process by default to prevent
tests failures from impacting other tests. This also has the added benefit of
running them in parallel, so they are much faster.
However, this also makes it difficult to run the tests under GDB. To prevent
each test from being forked, run the tests with the flag `--no-isolate`.
32-bit ABI bugs
---------------
This probably belongs in the NDK documentation rather than here, but these
are the known ABI bugs in the 32-bit ABI:
* `time_t` is 32-bit. <http://b/5819737>. In the 64-bit ABI, time_t is
64-bit.
* `off_t` is 32-bit. There is `off64_t`, and in newer releases there is
almost-complete support for `_FILE_OFFSET_BITS`. Unfortunately our stdio
implementation uses 32-bit offsets and -- worse -- function pointers to
functions that use 32-bit offsets, so there's no good way to implement
the last few pieces <http://b/24807045>. In the 64-bit ABI, off_t is
off64_t.
* `sigset_t` is too small on ARM and x86 (but correct on MIPS), so support
for real-time signals is broken. <http://b/5828899> In the 64-bit ABI,
`sigset_t` is the correct size for every architecture.

View File

@ -14,23 +14,55 @@
# limitations under the License.
#
ifneq ($(BUILD_TINY_ANDROID), true)
LOCAL_PATH := $(call my-dir)
# -----------------------------------------------------------------------------
# Benchmarks library, usable by projects outside this directory.
# -----------------------------------------------------------------------------
benchmark_cflags := \
-O2 \
-fno-builtin \
-Wall \
-Wextra \
-Werror \
-Wunused \
benchmark_cppflags := \
benchmarklib_src_files := \
Benchmark.cpp \
utils.cpp \
main.cpp \
include $(CLEAR_VARS)
LOCAL_MODULE := libbenchmark
LOCAL_CFLAGS := $(benchmark_cflags)
LOCAL_CPPFLAGS := $(benchmark_cppflags)
LOCAL_SRC_FILES := $(benchmarklib_src_files)
LOCAL_C_INCLUDES := $(benchmark_c_includes)
LOCAL_STATIC_LIBRARIES := libbase
include $(BUILD_STATIC_LIBRARY)
# Only supported on linux systems.
ifeq ($(HOST_OS),linux)
include $(CLEAR_VARS)
LOCAL_MODULE := libbenchmark
LOCAL_CFLAGS := $(benchmark_cflags)
LOCAL_CPPFLAGS := $(benchmark_cppflags)
LOCAL_SRC_FILES := $(benchmarklib_src_files)
LOCAL_C_INCLUDES := $(benchmark_c_includes)
LOCAL_MULTILIB := both
LOCAL_STATIC_LIBRARIES := libbase
include $(BUILD_HOST_STATIC_LIBRARY)
endif
# -----------------------------------------------------------------------------
# Benchmarks.
# -----------------------------------------------------------------------------
benchmark_c_flags = \
-O2 \
-Wall -Wextra -Wunused \
-Werror \
-fno-builtin \
-std=gnu++11 \
benchmark_src_files = \
benchmark_main.cpp \
benchmark_src_files := \
math_benchmark.cpp \
property_benchmark.cpp \
pthread_benchmark.cpp \
@ -41,40 +73,58 @@ benchmark_src_files = \
unistd_benchmark.cpp \
# Build benchmarks for the device (with bionic's .so). Run with:
# adb shell bionic-benchmarks
# adb shell bionic-benchmarks32
# adb shell bionic-benchmarks64
include $(CLEAR_VARS)
LOCAL_MODULE := bionic-benchmarks
LOCAL_MODULE_STEM_32 := bionic-benchmarks32
LOCAL_MODULE_STEM_64 := bionic-benchmarks64
LOCAL_MULTILIB := both
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_CFLAGS += $(benchmark_c_flags)
LOCAL_C_INCLUDES += external/stlport/stlport bionic/ bionic/libstdc++/include
LOCAL_SHARED_LIBRARIES += libstlport
LOCAL_CFLAGS := $(benchmark_cflags)
LOCAL_CPPFLAGS := $(benchmark_cppflags)
LOCAL_SRC_FILES := $(benchmark_src_files)
LOCAL_STATIC_LIBRARIES := libbenchmark libbase
include $(BUILD_EXECUTABLE)
ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
ifeq ($(TARGET_ARCH),x86)
LINKER = linker
NATIVE_SUFFIX=32
else
LINKER = linker64
NATIVE_SUFFIX=64
# We don't build a static benchmark executable because it's not usually
# useful. If you're trying to run the current benchmarks on an older
# release, it's (so far at least) always because you want to measure the
# performance of the old release's libc, and a static benchmark isn't
# going to let you do that.
# Only supported on linux systems.
ifeq ($(HOST_OS),linux)
# Build benchmarks for the host (against glibc!). Run with:
include $(CLEAR_VARS)
LOCAL_MODULE := bionic-benchmarks-glibc
LOCAL_MODULE_STEM_32 := bionic-benchmarks-glibc32
LOCAL_MODULE_STEM_64 := bionic-benchmarks-glibc64
LOCAL_MULTILIB := both
LOCAL_CFLAGS := $(benchmark_cflags)
LOCAL_CPPFLAGS := $(benchmark_cppflags)
LOCAL_LDFLAGS := -lrt
LOCAL_SRC_FILES := $(benchmark_src_files)
LOCAL_STATIC_LIBRARIES := libbenchmark libbase
include $(BUILD_HOST_EXECUTABLE)
endif
bionic-benchmarks-run-on-host: bionic-benchmarks $(TARGET_OUT_EXECUTABLES)/$(LINKER) $(TARGET_OUT_EXECUTABLES)/sh
if [ ! -d /system -o ! -d /system/bin ]; then \
echo "Attempting to create /system/bin"; \
sudo mkdir -p -m 0777 /system/bin; \
fi
mkdir -p $(TARGET_OUT_DATA)/local/tmp
cp $(TARGET_OUT_EXECUTABLES)/$(LINKER) /system/bin
cp $(TARGET_OUT_EXECUTABLES)/sh /system/bin
ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
include $(LOCAL_PATH)/../build/run-on-host.mk
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
bionic-benchmarks-run-on-host32: bionic-benchmarks bionic-prepare-run-on-host
ANDROID_DATA=$(TARGET_OUT_DATA) \
ANDROID_ROOT=$(TARGET_OUT) \
LD_LIBRARY_PATH=$(TARGET_OUT_SHARED_LIBRARIES) \
$(TARGET_OUT_EXECUTABLES)/bionic-benchmarks$(NATIVE_SUFFIX) $(BIONIC_BENCHMARKS_FLAGS)
endif # linux-x86
$(TARGET_OUT_EXECUTABLES)/bionic-benchmarks32 $(BIONIC_BENCHMARKS_FLAGS)
endif
endif # !BUILD_TINY_ANDROID
ifeq ($(TARGET_IS_64_BIT),true)
bionic-benchmarks-run-on-host64: bionic-benchmarks bionic-prepare-run-on-host
ANDROID_DATA=$(TARGET_OUT_DATA) \
ANDROID_ROOT=$(TARGET_OUT) \
$(TARGET_OUT_EXECUTABLES)/bionic-benchmarks64 $(BIONIC_BENCHMARKS_FLAGS)
endif
endif

159
benchmarks/Benchmark.cpp Normal file
View File

@ -0,0 +1,159 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <inttypes.h>
#include <regex.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <vector>
#include <android-base/stringprintf.h>
#include <benchmark/Benchmark.h>
#include "utils.h"
namespace testing {
static uint64_t NanoTime() {
struct timespec t;
t.tv_sec = t.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &t);
return static_cast<uint64_t>(t.tv_sec) * 1000000000LL + t.tv_nsec;
}
bool Benchmark::header_printed_;
std::vector<Benchmark*>& Benchmark::List() {
static std::vector<Benchmark*> list;
return list;
}
int Benchmark::MaxNameColumnWidth() {
size_t max = 20;
for (auto& benchmark : List()) {
max = std::max(max, benchmark->NameColumnWidth());
}
return static_cast<int>(max);
}
size_t Benchmark::RunAll(std::vector<regex_t*>& regs) {
size_t benchmarks_run = 0;
header_printed_ = false;
for (auto& benchmark : List()) {
benchmarks_run += benchmark->RunAllArgs(regs);
}
return benchmarks_run;
}
void Benchmark::PrintHeader() {
if (!header_printed_) {
printf("%-*s %10s %10s\n", MaxNameColumnWidth(), "", "iterations", "ns/op");
header_printed_ = true;
}
}
template <typename T>
bool BenchmarkT<T>::ShouldRun(std::vector<regex_t*>& regs, T arg) {
if (regs.empty()) {
return true;
}
for (const auto& re : regs) {
if (regexec(re, GetNameStr(arg).c_str(), 0, NULL, 0) != REG_NOMATCH) {
return true;
}
}
return false;
}
void Benchmark::StopBenchmarkTiming() {
if (start_time_ns_ != 0) {
total_time_ns_ += NanoTime() - start_time_ns_;
}
start_time_ns_ = 0;
}
void Benchmark::StartBenchmarkTiming() {
if (start_time_ns_ == 0) {
start_time_ns_ = NanoTime();
}
}
std::string BenchmarkWithoutArg::GetNameStr(void*) {
return Name();
}
template <>
std::string BenchmarkWithArg<int>::GetNameStr(int arg) {
return Name() + "/" + PrettyInt(arg, 2);
}
template <>
std::string BenchmarkWithArg<double>::GetNameStr(double arg) {
return Name() + "/" + android::base::StringPrintf("%0.6f", arg);
}
template<typename T>
void BenchmarkT<T>::RunWithArg(T arg) {
int new_iterations = 1;
int iterations;
while (new_iterations < 1e8) {
bytes_processed_ = 0;
total_time_ns_ = 0;
start_time_ns_ = 0;
iterations = new_iterations;
RunIterations(iterations, arg);
if (total_time_ns_ >= 1e9) {
break;
}
if (total_time_ns_/iterations == 0) {
new_iterations = 1e9;
} else {
new_iterations = 1e9/ (total_time_ns_/iterations);
}
new_iterations = std::max(iterations + 1,
std::min(new_iterations + new_iterations/2, 100*iterations));
new_iterations = Round(new_iterations);
}
printf("%-*s %10s %10" PRId64, MaxNameColumnWidth(), GetNameStr(arg).c_str(),
PrettyInt(iterations, 10).c_str(), total_time_ns_/iterations);
if (total_time_ns_ > 0 && bytes_processed_ > 0) {
double gib_processed = static_cast<double>(bytes_processed_)/1e9;
double seconds = static_cast<double>(total_time_ns_)/1e9;
printf(" %8.3f GiB/s", gib_processed/seconds);
}
printf("\n");
fflush(stdout);
}
template class BenchmarkT<int>;
template class BenchmarkT<double>;
template class BenchmarkT<void*>;
template class BenchmarkWithArg<int>;
template class BenchmarkWithArg<double>;
} // namespace testing

View File

@ -1,61 +0,0 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdint.h>
#include <vector>
namespace testing {
class Benchmark {
public:
Benchmark(const char* name, void (*fn)(int)) {
Register(name, fn, NULL);
}
Benchmark(const char* name, void (*fn_range)(int, int)) {
Register(name, NULL, fn_range);
}
Benchmark* Arg(int x);
const char* Name();
bool ShouldRun(int argc, char* argv[]);
void Run();
private:
const char* name_;
void (*fn_)(int);
void (*fn_range_)(int, int);
std::vector<int> args_;
void Register(const char* name, void (*fn)(int), void (*fn_range)(int, int));
void RunRepeatedlyWithArg(int iterations, int arg);
void RunWithArg(int arg);
};
} // namespace testing
void SetBenchmarkBytesProcessed(int64_t);
void StopBenchmarkTiming();
void StartBenchmarkTiming();
#define BENCHMARK(f) \
static ::testing::Benchmark* _benchmark_##f __attribute__((unused)) = \
(new ::testing::Benchmark(#f, f))

View File

@ -0,0 +1,169 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef BENCHMARKS_BENCHMARK_H_
#define BENCHMARKS_BENCHMARK_H_
#include <regex.h>
#include <stdint.h>
#include <string>
#include <vector>
namespace testing {
class Benchmark {
public:
Benchmark() {
List().push_back(this);
}
virtual ~Benchmark() {}
virtual std::string Name() = 0;
virtual size_t RunAllArgs(std::vector<regex_t*>&) = 0;
void SetBenchmarkBytesProcessed(uint64_t bytes) { bytes_processed_ += bytes; }
void StopBenchmarkTiming();
void StartBenchmarkTiming();
// Run all of the benchmarks that have registered.
static size_t RunAll(std::vector<regex_t*>&);
static std::vector<Benchmark*>& List();
static int MaxNameColumnWidth();
protected:
virtual size_t NameColumnWidth() = 0;
uint64_t bytes_processed_;
uint64_t total_time_ns_;
uint64_t start_time_ns_;
static bool header_printed_;
static void PrintHeader();
};
template <typename T>
class BenchmarkT : public Benchmark {
public:
BenchmarkT() {}
virtual ~BenchmarkT() {}
protected:
bool ShouldRun(std::vector<regex_t*>&, T arg);
void RunWithArg(T arg);
virtual void RunIterations(int, T) = 0;
virtual std::string GetNameStr(T) = 0;
};
class BenchmarkWithoutArg : public BenchmarkT<void*> {
public:
BenchmarkWithoutArg() {}
virtual ~BenchmarkWithoutArg() {}
protected:
virtual size_t RunAllArgs(std::vector<regex_t*>& regs) override {
size_t benchmarks_run = 0;
if (BenchmarkT<void*>::ShouldRun(regs, nullptr)) {
PrintHeader();
RunWithArg(nullptr);
benchmarks_run++;
}
return benchmarks_run;
}
virtual void RunIterations(int iters, void*) override {
Run(iters);
}
virtual void Run(int) = 0;
virtual size_t NameColumnWidth() override {
return Name().size();
}
virtual std::string GetNameStr(void *) override;
};
template<typename T>
class BenchmarkWithArg : public BenchmarkT<T> {
public:
BenchmarkWithArg() {}
virtual ~BenchmarkWithArg() {}
BenchmarkWithArg* Arg(T arg) {
args_.push_back(arg);
return this;
}
protected:
virtual size_t NameColumnWidth() override {
size_t max = 0;
for (const auto& arg : args_) {
max = std::max(max, GetNameStr(arg).size());
}
return max;
}
std::string GetNameStr(T arg) override;
virtual size_t RunAllArgs(std::vector<regex_t*>& regs) override {
size_t benchmarks_run = 0;
for (T& arg : args_) {
if (BenchmarkT<T>::ShouldRun(regs, arg)) {
Benchmark::PrintHeader();
BenchmarkT<T>::RunWithArg(arg);
benchmarks_run++;
}
}
return benchmarks_run;
}
virtual void RunIterations(int iters, T arg) override {
Run(iters, arg);
}
virtual void Run(int iters, T arg) = 0;
private:
std::vector<T> args_;
};
} // namespace testing
#define BENCHMARK_START(f, super_class) \
class f : public super_class { \
public: \
f() {} \
virtual ~f() {} \
virtual std::string Name() override { return #f; } \
#define BENCHMARK_NO_ARG(f) \
BENCHMARK_START(f, ::testing::BenchmarkWithoutArg) \
virtual void Run(int) override; \
}; \
static ::testing::Benchmark* __benchmark_##f = new f()
#define BENCHMARK_WITH_ARG(f, arg_type) \
BENCHMARK_START(f, ::testing::BenchmarkWithArg<arg_type>) \
virtual void Run(int, arg_type) override; \
}; \
static ::testing::BenchmarkWithArg<arg_type>* __benchmark_##f = (new f())
#endif // BENCHMARKS_BENCHMARK_H_

View File

@ -1,226 +0,0 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "benchmark.h"
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <map>
#include <inttypes.h>
static int64_t g_bytes_processed;
static int64_t g_benchmark_total_time_ns;
static int64_t g_benchmark_start_time_ns;
typedef std::map<std::string, ::testing::Benchmark*> BenchmarkMap;
typedef BenchmarkMap::iterator BenchmarkMapIt;
static BenchmarkMap g_benchmarks;
static int g_name_column_width = 20;
static int Round(int n) {
int base = 1;
while (base*10 < n) {
base *= 10;
}
if (n < 2*base) {
return 2*base;
}
if (n < 5*base) {
return 5*base;
}
return 10*base;
}
static int64_t NanoTime() {
struct timespec t;
t.tv_sec = t.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &t);
return static_cast<int64_t>(t.tv_sec) * 1000000000LL + t.tv_nsec;
}
namespace testing {
Benchmark* Benchmark::Arg(int arg) {
args_.push_back(arg);
return this;
}
const char* Benchmark::Name() {
return name_;
}
bool Benchmark::ShouldRun(int argc, char* argv[]) {
if (argc == 1) {
return true; // With no arguments, we run all benchmarks.
}
// Otherwise, we interpret each argument as a regular expression and
// see if any of our benchmarks match.
for (int i = 1; i < argc; i++) {
regex_t re;
if (regcomp(&re, argv[i], 0) != 0) {
fprintf(stderr, "couldn't compile \"%s\" as a regular expression!\n", argv[i]);
exit(EXIT_FAILURE);
}
int match = regexec(&re, name_, 0, NULL, 0);
regfree(&re);
if (match != REG_NOMATCH) {
return true;
}
}
return false;
}
void Benchmark::Register(const char* name, void (*fn)(int), void (*fn_range)(int, int)) {
name_ = name;
fn_ = fn;
fn_range_ = fn_range;
if (fn_ == NULL && fn_range_ == NULL) {
fprintf(stderr, "%s: missing function\n", name_);
exit(EXIT_FAILURE);
}
g_benchmarks.insert(std::make_pair(name, this));
}
void Benchmark::Run() {
if (fn_ != NULL) {
RunWithArg(0);
} else {
if (args_.empty()) {
fprintf(stderr, "%s: no args!\n", name_);
exit(EXIT_FAILURE);
}
for (size_t i = 0; i < args_.size(); ++i) {
RunWithArg(args_[i]);
}
}
}
void Benchmark::RunRepeatedlyWithArg(int iterations, int arg) {
g_bytes_processed = 0;
g_benchmark_total_time_ns = 0;
g_benchmark_start_time_ns = NanoTime();
if (fn_ != NULL) {
fn_(iterations);
} else {
fn_range_(iterations, arg);
}
if (g_benchmark_start_time_ns != 0) {
g_benchmark_total_time_ns += NanoTime() - g_benchmark_start_time_ns;
}
}
void Benchmark::RunWithArg(int arg) {
// run once in case it's expensive
int iterations = 1;
RunRepeatedlyWithArg(iterations, arg);
while (g_benchmark_total_time_ns < 1e9 && iterations < 1e9) {
int last = iterations;
if (g_benchmark_total_time_ns/iterations == 0) {
iterations = 1e9;
} else {
iterations = 1e9 / (g_benchmark_total_time_ns/iterations);
}
iterations = std::max(last + 1, std::min(iterations + iterations/2, 100*last));
iterations = Round(iterations);
RunRepeatedlyWithArg(iterations, arg);
}
char throughput[100];
throughput[0] = '\0';
if (g_benchmark_total_time_ns > 0 && g_bytes_processed > 0) {
double mib_processed = static_cast<double>(g_bytes_processed)/1e6;
double seconds = static_cast<double>(g_benchmark_total_time_ns)/1e9;
snprintf(throughput, sizeof(throughput), " %8.2f MiB/s", mib_processed/seconds);
}
char full_name[100];
if (fn_range_ != NULL) {
if (arg >= (1<<20)) {
snprintf(full_name, sizeof(full_name), "%s/%dM", name_, arg/(1<<20));
} else if (arg >= (1<<10)) {
snprintf(full_name, sizeof(full_name), "%s/%dK", name_, arg/(1<<10));
} else {
snprintf(full_name, sizeof(full_name), "%s/%d", name_, arg);
}
} else {
snprintf(full_name, sizeof(full_name), "%s", name_);
}
printf("%-*s %10d %10" PRId64 "%s\n", g_name_column_width, full_name,
iterations, g_benchmark_total_time_ns/iterations, throughput);
fflush(stdout);
}
} // namespace testing
void SetBenchmarkBytesProcessed(int64_t x) {
g_bytes_processed = x;
}
void StopBenchmarkTiming() {
if (g_benchmark_start_time_ns != 0) {
g_benchmark_total_time_ns += NanoTime() - g_benchmark_start_time_ns;
}
g_benchmark_start_time_ns = 0;
}
void StartBenchmarkTiming() {
if (g_benchmark_start_time_ns == 0) {
g_benchmark_start_time_ns = NanoTime();
}
}
int main(int argc, char* argv[]) {
if (g_benchmarks.empty()) {
fprintf(stderr, "No benchmarks registered!\n");
exit(EXIT_FAILURE);
}
for (BenchmarkMapIt it = g_benchmarks.begin(); it != g_benchmarks.end(); ++it) {
int name_width = static_cast<int>(strlen(it->second->Name()));
g_name_column_width = std::max(g_name_column_width, name_width);
}
bool need_header = true;
for (BenchmarkMapIt it = g_benchmarks.begin(); it != g_benchmarks.end(); ++it) {
::testing::Benchmark* b = it->second;
if (b->ShouldRun(argc, argv)) {
if (need_header) {
printf("%-*s %10s %10s\n", g_name_column_width, "", "iterations", "ns/op");
fflush(stdout);
need_header = false;
}
b->Run();
}
}
if (need_header) {
fprintf(stderr, "No matching benchmarks!\n");
fprintf(stderr, "Available benchmarks:\n");
for (BenchmarkMapIt it = g_benchmarks.begin(); it != g_benchmarks.end(); ++it) {
fprintf(stderr, " %s\n", it->second->Name());
}
exit(EXIT_FAILURE);
}
return 0;
}

61
benchmarks/main.cpp Normal file
View File

@ -0,0 +1,61 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <benchmark/Benchmark.h>
int main(int argc, char* argv[]) {
if (::testing::Benchmark::List().empty()) {
fprintf(stderr, "No benchmarks registered!\n");
exit(EXIT_FAILURE);
}
std::vector<regex_t*> regs;
for (int i = 1; i < argc; i++) {
regex_t* re = new regex_t;
int errcode = regcomp(re, argv[i], 0);
if (errcode != 0) {
size_t errbuf_size = regerror(errcode, re, NULL, 0);
if (errbuf_size > 0) {
char* errbuf = new char[errbuf_size];
regerror(errcode, re, errbuf, errbuf_size);
fprintf(stderr, "Couldn't compile \"%s\" as a regular expression: %s\n",
argv[i], errbuf);
} else {
fprintf(stderr, "Unknown compile error for \"%s\" as a regular expression!\n", argv[i]);
}
exit(EXIT_FAILURE);
}
regs.push_back(re);
}
if (::testing::Benchmark::RunAll(regs) == 0) {
fprintf(stderr, "No matching benchmarks!\n");
fprintf(stderr, "Available benchmarks:\n");
for (const auto& benchmark : ::testing::Benchmark::List()) {
fprintf(stderr, " %s\n", benchmark->Name().c_str());
}
exit(EXIT_FAILURE);
}
return 0;
}

View File

@ -14,16 +14,20 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <fenv.h>
#include <math.h>
// Avoid optimization.
double d;
double v;
#include <benchmark/Benchmark.h>
static void BM_math_sqrt(int iters) {
#define AT_COMMON_VALS \
Arg(1234.0)->Arg(nan(""))->Arg(HUGE_VAL)->Arg(0.0)
// Avoid optimization.
volatile double d;
volatile double v;
BENCHMARK_NO_ARG(BM_math_sqrt);
void BM_math_sqrt::Run(int iters) {
StartBenchmarkTiming();
d = 0.0;
@ -34,9 +38,9 @@ static void BM_math_sqrt(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_sqrt);
static void BM_math_log10(int iters) {
BENCHMARK_NO_ARG(BM_math_log10);
void BM_math_log10::Run(int iters) {
StartBenchmarkTiming();
d = 0.0;
@ -47,9 +51,9 @@ static void BM_math_log10(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_log10);
static void BM_math_logb(int iters) {
BENCHMARK_NO_ARG(BM_math_logb);
void BM_math_logb::Run(int iters) {
StartBenchmarkTiming();
d = 0.0;
@ -60,61 +64,120 @@ static void BM_math_logb(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_logb);
static void BM_math_isinf_NORMAL(int iters) {
BENCHMARK_WITH_ARG(BM_math_isfinite_macro, double)->AT_COMMON_VALS;
void BM_math_isfinite_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = 1234.0; // FP_NORMAL
v = value;
for (int i = 0; i < iters; ++i) {
d += isfinite(v);
}
StopBenchmarkTiming();
}
#if defined(__BIONIC__)
#define test_isfinite __isfinite
#else
#define test_isfinite __finite
#endif
BENCHMARK_WITH_ARG(BM_math_isfinite, double)->AT_COMMON_VALS;
void BM_math_isfinite::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = value;
for (int i = 0; i < iters; ++i) {
d += test_isfinite(v);
}
StopBenchmarkTiming();
}
BENCHMARK_WITH_ARG(BM_math_isinf_macro, double)->AT_COMMON_VALS;
void BM_math_isinf_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = value;
for (int i = 0; i < iters; ++i) {
d += isinf(v);
}
StopBenchmarkTiming();
}
BENCHMARK_WITH_ARG(BM_math_isinf, double)->AT_COMMON_VALS;
void BM_math_isinf::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = value;
for (int i = 0; i < iters; ++i) {
d += (isinf)(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_isinf_NORMAL);
static void BM_math_isinf_NAN(int iters) {
BENCHMARK_WITH_ARG(BM_math_isnan_macro, double)->AT_COMMON_VALS;
void BM_math_isnan_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = nan(""); // FP_NAN
v = value;
for (int i = 0; i < iters; ++i) {
d += (isinf)(v);
d += isnan(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_isinf_NAN);
static void BM_math_isinf_INFINITE(int iters) {
BENCHMARK_WITH_ARG(BM_math_isnan, double)->AT_COMMON_VALS;
void BM_math_isnan::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = HUGE_VAL; // FP_INFINITE
v = value;
for (int i = 0; i < iters; ++i) {
d += (isinf)(v);
d += (isnan)(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_isinf_INFINITE);
static void BM_math_isinf_ZERO(int iters) {
BENCHMARK_WITH_ARG(BM_math_isnormal_macro, double)->AT_COMMON_VALS;
void BM_math_isnormal_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = 0.0; // FP_ZERO
v = value;
for (int i = 0; i < iters; ++i) {
d += (isinf)(v);
d += isnormal(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_isinf_ZERO);
static void BM_math_sin_fast(int iters) {
#if defined(__BIONIC__)
BENCHMARK_WITH_ARG(BM_math_isnormal, double)->AT_COMMON_VALS;
void BM_math_isnormal::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = value;
for (int i = 0; i < iters; ++i) {
d += (__isnormal)(v);
}
StopBenchmarkTiming();
}
#endif
BENCHMARK_NO_ARG(BM_math_sin_fast);
void BM_math_sin_fast::Run(int iters) {
StartBenchmarkTiming();
d = 1.0;
@ -124,9 +187,9 @@ static void BM_math_sin_fast(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_sin_fast);
static void BM_math_sin_feupdateenv(int iters) {
BENCHMARK_NO_ARG(BM_math_sin_feupdateenv);
void BM_math_sin_feupdateenv::Run(int iters) {
StartBenchmarkTiming();
d = 1.0;
@ -140,9 +203,9 @@ static void BM_math_sin_feupdateenv(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_sin_feupdateenv);
static void BM_math_sin_fesetenv(int iters) {
BENCHMARK_NO_ARG(BM_math_sin_fesetenv);
void BM_math_sin_fesetenv::Run(int iters) {
StartBenchmarkTiming();
d = 1.0;
@ -156,56 +219,68 @@ static void BM_math_sin_fesetenv(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_math_sin_fesetenv);
static void BM_math_fpclassify_NORMAL(int iters) {
BENCHMARK_WITH_ARG(BM_math_fpclassify, double)->AT_COMMON_VALS;
void BM_math_fpclassify::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = 1234.0; // FP_NORMAL
v = value;
for (int i = 0; i < iters; ++i) {
d += fpclassify(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_fpclassify_NORMAL);
static void BM_math_fpclassify_NAN(int iters) {
BENCHMARK_WITH_ARG(BM_math_signbit_macro, double)->AT_COMMON_VALS;
void BM_math_signbit_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = nan(""); // FP_NAN
v = value;
for (int i = 0; i < iters; ++i) {
d += fpclassify(v);
d += signbit(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_fpclassify_NAN);
static void BM_math_fpclassify_INFINITE(int iters) {
BENCHMARK_WITH_ARG(BM_math_signbit, double)->AT_COMMON_VALS;
void BM_math_signbit::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = HUGE_VAL; // FP_INFINITE
v = value;
for (int i = 0; i < iters; ++i) {
d += fpclassify(v);
d += (__signbit)(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_fpclassify_INFINITE);
static void BM_math_fpclassify_ZERO(int iters) {
BENCHMARK_WITH_ARG(BM_math_fabs_macro, double)->AT_COMMON_VALS;
void BM_math_fabs_macro::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = 0.0; // FP_ZERO
v = value;
for (int i = 0; i < iters; ++i) {
d += fpclassify(v);
d += fabs(v);
}
StopBenchmarkTiming();
}
BENCHMARK_WITH_ARG(BM_math_fabs, double)->AT_COMMON_VALS;
void BM_math_fabs::Run(int iters, double value) {
StartBenchmarkTiming();
d = 0.0;
v = value;
for (int i = 0; i < iters; ++i) {
d += (fabs)(v);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_math_fpclassify_ZERO);

View File

@ -14,19 +14,21 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string>
#if defined(__BIONIC__)
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
#include <vector>
#include <string>
#include <benchmark/Benchmark.h>
extern void *__system_property_area__;
extern void* __system_property_area__;
// Do not exceed 512, that is about the largest number of properties
// that can be created with the current property area size.
@ -34,200 +36,198 @@ extern void *__system_property_area__;
Arg(1)->Arg(4)->Arg(16)->Arg(64)->Arg(128)->Arg(256)->Arg(512)
struct LocalPropertyTestState {
LocalPropertyTestState(int nprops) : nprops(nprops), valid(false) {
static const char prop_name_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_.";
LocalPropertyTestState(int nprops) : nprops(nprops), valid(false) {
static const char prop_name_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_.";
const char* android_data = getenv("ANDROID_DATA");
if (android_data == NULL) {
printf("ANDROID_DATA environment variable not set\n");
return;
}
char dir_template[PATH_MAX];
snprintf(dir_template, sizeof(dir_template), "%s/local/tmp/prop-XXXXXX", android_data);
char *dirname = mkdtemp(dir_template);
if (!dirname) {
printf("making temp file for test state failed (is %s/local/tmp writable?): %s\n",
android_data, strerror(errno));
return;
}
old_pa = __system_property_area__;
__system_property_area__ = NULL;
pa_dirname = dirname;
pa_filename = pa_dirname + "/__properties__";
__system_property_set_filename(pa_filename.c_str());
__system_property_area_init();
names = new char* [nprops];
name_lens = new int[nprops];
values = new char* [nprops];
value_lens = new int[nprops];
srandom(nprops);
for (int i = 0; i < nprops; i++) {
// Make sure the name has at least 10 characters to make
// it very unlikely to generate the same random name.
name_lens[i] = (random() % (PROP_NAME_MAX - 10)) + 10;
names[i] = new char[PROP_NAME_MAX + 1];
size_t prop_name_len = sizeof(prop_name_chars) - 1;
for (int j = 0; j < name_lens[i]; j++) {
if (j == 0 || names[i][j-1] == '.' || j == name_lens[i] - 1) {
// Certain values are not allowed:
// - Don't start name with '.'
// - Don't allow '.' to appear twice in a row
// - Don't allow the name to end with '.'
// This assumes that '.' is the last character in the
// array so that decrementing the length by one removes
// the value from the possible values.
prop_name_len--;
}
names[i][j] = prop_name_chars[random() % prop_name_len];
}
names[i][name_lens[i]] = 0;
// Make sure the value contains at least 1 character.
value_lens[i] = (random() % (PROP_VALUE_MAX - 1)) + 1;
values[i] = new char[PROP_VALUE_MAX];
for (int j = 0; j < value_lens[i]; j++) {
values[i][j] = prop_name_chars[random() % (sizeof(prop_name_chars) - 1)];
}
if (__system_property_add(names[i], name_lens[i], values[i], value_lens[i]) < 0) {
printf("Failed to add a property, terminating...\n");
printf("%s = %.*s\n", names[i], value_lens[i], values[i]);
exit(1);
}
}
valid = true;
const char* android_data = getenv("ANDROID_DATA");
if (android_data == NULL) {
printf("ANDROID_DATA environment variable not set\n");
return;
}
char dir_template[PATH_MAX];
snprintf(dir_template, sizeof(dir_template), "%s/local/tmp/prop-XXXXXX", android_data);
char* dirname = mkdtemp(dir_template);
if (!dirname) {
printf("making temp file for test state failed (is %s/local/tmp writable?): %s\n",
android_data, strerror(errno));
return;
}
~LocalPropertyTestState() {
if (!valid)
return;
old_pa = __system_property_area__;
__system_property_area__ = NULL;
__system_property_area__ = old_pa;
pa_dirname = dirname;
pa_filename = pa_dirname + "/__properties__";
__system_property_set_filename(PROP_FILENAME);
unlink(pa_filename.c_str());
rmdir(pa_dirname.c_str());
__system_property_set_filename(pa_filename.c_str());
__system_property_area_init();
for (int i = 0; i < nprops; i++) {
delete names[i];
delete values[i];
names = new char* [nprops];
name_lens = new int[nprops];
values = new char* [nprops];
value_lens = new int[nprops];
srandom(nprops);
for (int i = 0; i < nprops; i++) {
// Make sure the name has at least 10 characters to make
// it very unlikely to generate the same random name.
name_lens[i] = (random() % (PROP_NAME_MAX - 10)) + 10;
names[i] = new char[PROP_NAME_MAX + 1];
size_t prop_name_len = sizeof(prop_name_chars) - 1;
for (int j = 0; j < name_lens[i]; j++) {
if (j == 0 || names[i][j-1] == '.' || j == name_lens[i] - 1) {
// Certain values are not allowed:
// - Don't start name with '.'
// - Don't allow '.' to appear twice in a row
// - Don't allow the name to end with '.'
// This assumes that '.' is the last character in the
// array so that decrementing the length by one removes
// the value from the possible values.
prop_name_len--;
}
delete[] names;
delete[] name_lens;
delete[] values;
delete[] value_lens;
names[i][j] = prop_name_chars[random() % prop_name_len];
}
names[i][name_lens[i]] = 0;
// Make sure the value contains at least 1 character.
value_lens[i] = (random() % (PROP_VALUE_MAX - 1)) + 1;
values[i] = new char[PROP_VALUE_MAX];
for (int j = 0; j < value_lens[i]; j++) {
values[i][j] = prop_name_chars[random() % (sizeof(prop_name_chars) - 1)];
}
if (__system_property_add(names[i], name_lens[i], values[i], value_lens[i]) < 0) {
printf("Failed to add a property, terminating...\n");
printf("%s = %.*s\n", names[i], value_lens[i], values[i]);
exit(1);
}
}
valid = true;
}
~LocalPropertyTestState() {
if (!valid)
return;
__system_property_area__ = old_pa;
__system_property_set_filename(PROP_FILENAME);
unlink(pa_filename.c_str());
rmdir(pa_dirname.c_str());
for (int i = 0; i < nprops; i++) {
delete names[i];
delete values[i];
}
delete[] names;
delete[] name_lens;
delete[] values;
delete[] value_lens;
}
public:
const int nprops;
char **names;
int *name_lens;
char **values;
int *value_lens;
bool valid;
const int nprops;
char** names;
int* name_lens;
char** values;
int* value_lens;
bool valid;
private:
std::string pa_dirname;
std::string pa_filename;
void *old_pa;
std::string pa_dirname;
std::string pa_filename;
void* old_pa;
};
static void BM_property_get(int iters, int nprops)
{
StopBenchmarkTiming();
BENCHMARK_WITH_ARG(BM_property_get, int)->TEST_NUM_PROPS;
void BM_property_get::Run(int iters, int nprops) {
StopBenchmarkTiming();
LocalPropertyTestState pa(nprops);
char value[PROP_VALUE_MAX];
LocalPropertyTestState pa(nprops);
char value[PROP_VALUE_MAX];
if (!pa.valid)
return;
if (!pa.valid)
return;
srandom(iters * nprops);
srandom(iters * nprops);
StartBenchmarkTiming();
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_get(pa.names[random() % nprops], value);
}
StopBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_get(pa.names[random() % nprops], value);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_property_get)->TEST_NUM_PROPS;
static void BM_property_find(int iters, int nprops)
{
StopBenchmarkTiming();
BENCHMARK_WITH_ARG(BM_property_find, int)->TEST_NUM_PROPS;
void BM_property_find::Run(int iters, int nprops) {
StopBenchmarkTiming();
LocalPropertyTestState pa(nprops);
LocalPropertyTestState pa(nprops);
if (!pa.valid)
return;
if (!pa.valid)
return;
srandom(iters * nprops);
srandom(iters * nprops);
StartBenchmarkTiming();
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_find(pa.names[random() % nprops]);
}
StopBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_find(pa.names[random() % nprops]);
}
StopBenchmarkTiming();
}
BENCHMARK(BM_property_find)->TEST_NUM_PROPS;
static void BM_property_read(int iters, int nprops)
{
StopBenchmarkTiming();
BENCHMARK_WITH_ARG(BM_property_read, int)->TEST_NUM_PROPS;
void BM_property_read::Run(int iters, int nprops) {
StopBenchmarkTiming();
LocalPropertyTestState pa(nprops);
LocalPropertyTestState pa(nprops);
if (!pa.valid)
return;
if (!pa.valid)
return;
srandom(iters * nprops);
const prop_info** pinfo = new const prop_info*[iters];
char propvalue[PROP_VALUE_MAX];
srandom(iters * nprops);
const prop_info** pinfo = new const prop_info*[iters];
char propvalue[PROP_VALUE_MAX];
for (int i = 0; i < iters; i++) {
pinfo[i] = __system_property_find(pa.names[random() % nprops]);
}
for (int i = 0; i < iters; i++) {
pinfo[i] = __system_property_find(pa.names[random() % nprops]);
}
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_read(pinfo[i], 0, propvalue);
}
StopBenchmarkTiming();
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_read(pinfo[i], 0, propvalue);
}
StopBenchmarkTiming();
delete[] pinfo;
delete[] pinfo;
}
BENCHMARK(BM_property_read)->TEST_NUM_PROPS;
static void BM_property_serial(int iters, int nprops)
{
StopBenchmarkTiming();
BENCHMARK_WITH_ARG(BM_property_serial, int)->TEST_NUM_PROPS;
void BM_property_serial::Run(int iters, int nprops) {
StopBenchmarkTiming();
LocalPropertyTestState pa(nprops);
LocalPropertyTestState pa(nprops);
if (!pa.valid)
return;
if (!pa.valid)
return;
srandom(iters * nprops);
const prop_info** pinfo = new const prop_info*[iters];
srandom(iters * nprops);
const prop_info** pinfo = new const prop_info*[iters];
for (int i = 0; i < iters; i++) {
pinfo[i] = __system_property_find(pa.names[random() % nprops]);
}
for (int i = 0; i < iters; i++) {
pinfo[i] = __system_property_find(pa.names[random() % nprops]);
}
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_serial(pinfo[i]);
}
StopBenchmarkTiming();
StartBenchmarkTiming();
for (int i = 0; i < iters; i++) {
__system_property_serial(pinfo[i]);
}
StopBenchmarkTiming();
delete[] pinfo;
delete[] pinfo;
}
BENCHMARK(BM_property_serial)->TEST_NUM_PROPS;
#endif // __BIONIC__

View File

@ -14,14 +14,15 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <pthread.h>
#include <benchmark/Benchmark.h>
// Stop GCC optimizing out our pure function.
/* Must not be static! */ pthread_t (*pthread_self_fp)() = pthread_self;
static void BM_pthread_self(int iters) {
BENCHMARK_NO_ARG(BM_pthread_self);
void BM_pthread_self::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -30,9 +31,9 @@ static void BM_pthread_self(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_pthread_self);
static void BM_pthread_getspecific(int iters) {
BENCHMARK_NO_ARG(BM_pthread_getspecific);
void BM_pthread_getspecific::Run(int iters) {
StopBenchmarkTiming();
pthread_key_t key;
pthread_key_create(&key, NULL);
@ -45,12 +46,27 @@ static void BM_pthread_getspecific(int iters) {
StopBenchmarkTiming();
pthread_key_delete(key);
}
BENCHMARK(BM_pthread_getspecific);
BENCHMARK_NO_ARG(BM_pthread_setspecific);
void BM_pthread_setspecific::Run(int iters) {
StopBenchmarkTiming();
pthread_key_t key;
pthread_key_create(&key, NULL);
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
pthread_setspecific(key, NULL);
}
StopBenchmarkTiming();
pthread_key_delete(key);
}
static void DummyPthreadOnceInitFunction() {
}
static void BM_pthread_once(int iters) {
BENCHMARK_NO_ARG(BM_pthread_once);
void BM_pthread_once::Run(int iters) {
StopBenchmarkTiming();
pthread_once_t once = PTHREAD_ONCE_INIT;
pthread_once(&once, DummyPthreadOnceInitFunction);
@ -62,9 +78,9 @@ static void BM_pthread_once(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_pthread_once);
static void BM_pthread_mutex_lock(int iters) {
BENCHMARK_NO_ARG(BM_pthread_mutex_lock);
void BM_pthread_mutex_lock::Run(int iters) {
StopBenchmarkTiming();
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
StartBenchmarkTiming();
@ -76,11 +92,11 @@ static void BM_pthread_mutex_lock(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_pthread_mutex_lock);
static void BM_pthread_mutex_lock_ERRORCHECK(int iters) {
BENCHMARK_NO_ARG(BM_pthread_mutex_lock_ERRORCHECK);
void BM_pthread_mutex_lock_ERRORCHECK::Run(int iters) {
StopBenchmarkTiming();
pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER;
pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -90,11 +106,11 @@ static void BM_pthread_mutex_lock_ERRORCHECK(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_pthread_mutex_lock_ERRORCHECK);
static void BM_pthread_mutex_lock_RECURSIVE(int iters) {
BENCHMARK_NO_ARG(BM_pthread_mutex_lock_RECURSIVE);
void BM_pthread_mutex_lock_RECURSIVE::Run(int iters) {
StopBenchmarkTiming();
pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER;
pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -104,4 +120,114 @@ static void BM_pthread_mutex_lock_RECURSIVE(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_pthread_mutex_lock_RECURSIVE);
BENCHMARK_NO_ARG(BM_pthread_rwlock_read);
void BM_pthread_rwlock_read::Run(int iters) {
StopBenchmarkTiming();
pthread_rwlock_t lock;
pthread_rwlock_init(&lock, NULL);
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
pthread_rwlock_rdlock(&lock);
pthread_rwlock_unlock(&lock);
}
StopBenchmarkTiming();
pthread_rwlock_destroy(&lock);
}
BENCHMARK_NO_ARG(BM_pthread_rwlock_write);
void BM_pthread_rwlock_write::Run(int iters) {
StopBenchmarkTiming();
pthread_rwlock_t lock;
pthread_rwlock_init(&lock, NULL);
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
pthread_rwlock_wrlock(&lock);
pthread_rwlock_unlock(&lock);
}
StopBenchmarkTiming();
pthread_rwlock_destroy(&lock);
}
static void* IdleThread(void*) {
return NULL;
}
BENCHMARK_NO_ARG(BM_pthread_create);
void BM_pthread_create::Run(int iters) {
StopBenchmarkTiming();
pthread_t thread;
for (int i = 0; i < iters; ++i) {
StartBenchmarkTiming();
pthread_create(&thread, NULL, IdleThread, NULL);
StopBenchmarkTiming();
pthread_join(thread, NULL);
}
}
static void* RunThread(void* arg) {
::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg);
benchmark->StopBenchmarkTiming();
return NULL;
}
BENCHMARK_NO_ARG(BM_pthread_create_and_run);
void BM_pthread_create_and_run::Run(int iters) {
StopBenchmarkTiming();
pthread_t thread;
for (int i = 0; i < iters; ++i) {
StartBenchmarkTiming();
pthread_create(&thread, NULL, RunThread, this);
pthread_join(thread, NULL);
}
}
static void* ExitThread(void* arg) {
::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg);
benchmark->StartBenchmarkTiming();
pthread_exit(NULL);
}
BENCHMARK_NO_ARG(BM_pthread_exit_and_join);
void BM_pthread_exit_and_join::Run(int iters) {
StopBenchmarkTiming();
pthread_t thread;
for (int i = 0; i < iters; ++i) {
pthread_create(&thread, NULL, ExitThread, this);
pthread_join(thread, NULL);
StopBenchmarkTiming();
}
}
BENCHMARK_NO_ARG(BM_pthread_key_create);
void BM_pthread_key_create::Run(int iters) {
StopBenchmarkTiming();
pthread_key_t key;
for (int i = 0; i < iters; ++i) {
StartBenchmarkTiming();
pthread_key_create(&key, NULL);
StopBenchmarkTiming();
pthread_key_delete(key);
}
}
BENCHMARK_NO_ARG(BM_pthread_key_delete);
void BM_pthread_key_delete::Run(int iters) {
StopBenchmarkTiming();
pthread_key_t key;
for (int i = 0; i < iters; ++i) {
pthread_key_create(&key, NULL);
StartBenchmarkTiming();
pthread_key_delete(key);
StopBenchmarkTiming();
}
}

View File

@ -14,11 +14,15 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <pthread.h>
#include <semaphore.h>
#include <stdatomic.h>
#include <stdio.h>
static void BM_semaphore_sem_getvalue(int iters) {
#include <benchmark/Benchmark.h>
BENCHMARK_NO_ARG(BM_semaphore_sem_getvalue);
void BM_semaphore_sem_getvalue::Run(int iters) {
StopBenchmarkTiming();
sem_t semaphore;
sem_init(&semaphore, 1, 1);
@ -31,9 +35,9 @@ static void BM_semaphore_sem_getvalue(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_semaphore_sem_getvalue);
static void BM_semaphore_sem_wait_sem_post(int iters) {
BENCHMARK_NO_ARG(BM_semaphore_sem_wait_sem_post);
void BM_semaphore_sem_wait_sem_post::Run(int iters) {
StopBenchmarkTiming();
sem_t semaphore;
sem_init(&semaphore, 1, 1);
@ -46,4 +50,94 @@ static void BM_semaphore_sem_wait_sem_post(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_semaphore_sem_wait_sem_post);
/*
* This test reports the overhead of the underlying futex wake syscall on
* the producer. It does not report the overhead from issuing the wake to the
* point where the posted consumer thread wakes up. It suffers from
* clock_gettime syscall overhead. Lock the CPU speed for consistent results
* as we may not reach >50% cpu utilization.
*
* We will run a background thread that catches the sem_post wakeup and
* loops immediately returning back to sleep in sem_wait for the next one. This
* thread is run with policy SCHED_OTHER (normal policy), a middle policy.
*
* The primary thread will run at SCHED_IDLE (lowest priority policy) when
* monitoring the background thread to detect when it hits sem_wait sleep. It
* will do so with no clock running. Once we are ready, we will switch to
* SCHED_FIFO (highest priority policy) to time the act of running sem_post
* with the benchmark clock running. This ensures nothing else in the system
* can preempt our timed activity, including the background thread. We are
* also protected with the scheduling policy of letting a process hit a
* resource limit rather than get hit with a context switch.
*
* The background thread will start executing either on another CPU, or
* after we back down from SCHED_FIFO, but certainly not in the context of
* the timing of the sem_post.
*/
static atomic_int BM_semaphore_sem_post_running;
static void *BM_semaphore_sem_post_start_thread(void *obj) {
sem_t *semaphore = reinterpret_cast<sem_t *>(obj);
while ((BM_semaphore_sem_post_running > 0) && !sem_wait(semaphore)) {
;
}
BM_semaphore_sem_post_running = -1;
return NULL;
}
BENCHMARK_NO_ARG(BM_semaphore_sem_post);
void BM_semaphore_sem_post::Run(int iters) {
StopBenchmarkTiming();
sem_t semaphore;
sem_init(&semaphore, 0, 0);
pthread_attr_t attr;
pthread_attr_init(&attr);
BM_semaphore_sem_post_running = 1;
struct sched_param param = { 0, };
pthread_attr_setschedparam(&attr, &param);
pthread_attr_setschedpolicy(&attr, SCHED_OTHER);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_t pthread;
pthread_create(&pthread, &attr, BM_semaphore_sem_post_start_thread, &semaphore);
pthread_attr_destroy(&attr);
sched_setscheduler((pid_t)0, SCHED_IDLE, &param);
for (int i = 0; i < iters; ++i) {
int trys = 3, dummy = 0;
do {
if (BM_semaphore_sem_post_running < 0) {
sched_setscheduler((pid_t)0, SCHED_OTHER, &param);
fprintf(stderr, "BM_semaphore_sem_post: start_thread died unexpectedly\n");
return;
}
sched_yield();
sem_getvalue(&semaphore, &dummy);
if (dummy < 0) { // POSIX.1-2001 possibility 1
break;
}
if (dummy == 0) { // POSIX.1-2001 possibility 2
--trys;
}
} while (trys);
param.sched_priority = 1;
sched_setscheduler((pid_t)0, SCHED_FIFO, &param);
StartBenchmarkTiming();
sem_post(&semaphore);
StopBenchmarkTiming(); // Remember to subtract clock syscall overhead
param.sched_priority = 0;
sched_setscheduler((pid_t)0, SCHED_IDLE, &param);
}
sched_setscheduler((pid_t)0, SCHED_OTHER, &param);
if (BM_semaphore_sem_post_running > 0) {
BM_semaphore_sem_post_running = 0;
}
do {
sem_post(&semaphore);
sched_yield();
} while (!BM_semaphore_sem_post_running);
}

View File

@ -14,9 +14,11 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
#include <benchmark/Benchmark.h>
#define KB 1024
#define MB 1024*KB
@ -25,37 +27,68 @@
Arg(1)->Arg(2)->Arg(3)->Arg(4)->Arg(8)->Arg(16)->Arg(32)->Arg(64)->Arg(512)-> \
Arg(1*KB)->Arg(4*KB)->Arg(8*KB)->Arg(16*KB)->Arg(64*KB)
static void BM_stdio_fread(int iters, int chunk_size) {
StopBenchmarkTiming();
template <typename Fn>
void ReadWriteTest(::testing::Benchmark* benchmark, int iters, int chunk_size, Fn f, bool buffered) {
benchmark->StopBenchmarkTiming();
FILE* fp = fopen("/dev/zero", "rw");
__fsetlocking(fp, FSETLOCKING_BYCALLER);
char* buf = new char[chunk_size];
StartBenchmarkTiming();
benchmark->StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
fread(buf, chunk_size, 1, fp);
if (!buffered) {
setvbuf(fp, 0, _IONBF, 0);
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(chunk_size));
for (int i = 0; i < iters; ++i) {
f(buf, chunk_size, 1, fp);
}
benchmark->StopBenchmarkTiming();
benchmark->SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(chunk_size));
delete[] buf;
fclose(fp);
}
BENCHMARK(BM_stdio_fread)->AT_COMMON_SIZES;
static void BM_stdio_fwrite(int iters, int chunk_size) {
StopBenchmarkTiming();
FILE* fp = fopen("/dev/zero", "rw");
char* buf = new char[chunk_size];
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
fwrite(buf, chunk_size, 1, fp);
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(chunk_size));
delete[] buf;
fclose(fp);
BENCHMARK_WITH_ARG(BM_stdio_fread, int)->AT_COMMON_SIZES;
void BM_stdio_fread::Run(int iters, int chunk_size) {
ReadWriteTest(this, iters, chunk_size, fread, true);
}
BENCHMARK_WITH_ARG(BM_stdio_fwrite, int)->AT_COMMON_SIZES;
void BM_stdio_fwrite::Run(int iters, int chunk_size) {
ReadWriteTest(this, iters, chunk_size, fwrite, true);
}
BENCHMARK_WITH_ARG(BM_stdio_fread_unbuffered, int)->AT_COMMON_SIZES;
void BM_stdio_fread_unbuffered::Run(int iters, int chunk_size) {
ReadWriteTest(this, iters, chunk_size, fread, false);
}
BENCHMARK_WITH_ARG(BM_stdio_fwrite_unbuffered, int)->AT_COMMON_SIZES;
void BM_stdio_fwrite_unbuffered::Run(int iters, int chunk_size) {
ReadWriteTest(this, iters, chunk_size, fwrite, false);
}
static void FopenFgetsFclose(int iters, bool no_locking) {
char buf[1024];
for (int i = 0; i < iters; ++i) {
FILE* fp = fopen("/proc/version", "re");
if (no_locking) __fsetlocking(fp, FSETLOCKING_BYCALLER);
if (fgets(buf, sizeof(buf), fp) == nullptr) abort();
fclose(fp);
}
}
BENCHMARK_NO_ARG(BM_stdio_fopen_fgets_fclose_locking);
void BM_stdio_fopen_fgets_fclose_locking::Run(int iters) {
StartBenchmarkTiming();
FopenFgetsFclose(iters, false);
StopBenchmarkTiming();
}
BENCHMARK_NO_ARG(BM_stdio_fopen_fgets_fclose_no_locking);
void BM_stdio_fopen_fgets_fclose_no_locking::Run(int iters) {
StartBenchmarkTiming();
FopenFgetsFclose(iters, true);
StopBenchmarkTiming();
}
BENCHMARK(BM_stdio_fwrite)->AT_COMMON_SIZES;

View File

@ -14,10 +14,11 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <stdint.h>
#include <string.h>
#include <benchmark/Benchmark.h>
#define KB 1024
#define MB 1024*KB
@ -26,7 +27,8 @@
// TODO: test unaligned operation too? (currently everything will be 8-byte aligned by malloc.)
static void BM_string_memcmp(int iters, int nbytes) {
BENCHMARK_WITH_ARG(BM_string_memcmp, int)->AT_COMMON_SIZES;
void BM_string_memcmp::Run(int iters, int nbytes) {
StopBenchmarkTiming();
char* src = new char[nbytes]; char* dst = new char[nbytes];
memset(src, 'x', nbytes);
@ -39,13 +41,13 @@ static void BM_string_memcmp(int iters, int nbytes) {
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes));
SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes));
delete[] src;
delete[] dst;
}
BENCHMARK(BM_string_memcmp)->AT_COMMON_SIZES;
static void BM_string_memcpy(int iters, int nbytes) {
BENCHMARK_WITH_ARG(BM_string_memcpy, int)->AT_COMMON_SIZES;
void BM_string_memcpy::Run(int iters, int nbytes) {
StopBenchmarkTiming();
char* src = new char[nbytes]; char* dst = new char[nbytes];
memset(src, 'x', nbytes);
@ -56,13 +58,13 @@ static void BM_string_memcpy(int iters, int nbytes) {
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes));
SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes));
delete[] src;
delete[] dst;
}
BENCHMARK(BM_string_memcpy)->AT_COMMON_SIZES;
static void BM_string_memmove(int iters, int nbytes) {
BENCHMARK_WITH_ARG(BM_string_memmove, int)->AT_COMMON_SIZES;
void BM_string_memmove::Run(int iters, int nbytes) {
StopBenchmarkTiming();
char* buf = new char[nbytes + 64];
memset(buf, 'x', nbytes + 64);
@ -73,12 +75,12 @@ static void BM_string_memmove(int iters, int nbytes) {
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes));
SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes));
delete[] buf;
}
BENCHMARK(BM_string_memmove)->AT_COMMON_SIZES;
static void BM_string_memset(int iters, int nbytes) {
BENCHMARK_WITH_ARG(BM_string_memset, int)->AT_COMMON_SIZES;
void BM_string_memset::Run(int iters, int nbytes) {
StopBenchmarkTiming();
char* dst = new char[nbytes];
StartBenchmarkTiming();
@ -88,12 +90,12 @@ static void BM_string_memset(int iters, int nbytes) {
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes));
SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes));
delete[] dst;
}
BENCHMARK(BM_string_memset)->AT_COMMON_SIZES;
static void BM_string_strlen(int iters, int nbytes) {
BENCHMARK_WITH_ARG(BM_string_strlen, int)->AT_COMMON_SIZES;
void BM_string_strlen::Run(int iters, int nbytes) {
StopBenchmarkTiming();
char* s = new char[nbytes];
memset(s, 'x', nbytes);
@ -106,7 +108,6 @@ static void BM_string_strlen(int iters, int nbytes) {
}
StopBenchmarkTiming();
SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes));
SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes));
delete[] s;
}
BENCHMARK(BM_string_strlen)->AT_COMMON_SIZES;

View File

@ -14,12 +14,15 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <sys/syscall.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
static void BM_time_clock_gettime(int iters) {
#include <benchmark/Benchmark.h>
BENCHMARK_NO_ARG(BM_time_clock_gettime);
void BM_time_clock_gettime::Run(int iters) {
StartBenchmarkTiming();
timespec t;
@ -29,9 +32,9 @@ static void BM_time_clock_gettime(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_time_clock_gettime);
static void BM_time_clock_gettime_syscall(int iters) {
BENCHMARK_NO_ARG(BM_time_clock_gettime_syscall);
void BM_time_clock_gettime_syscall::Run(int iters) {
StartBenchmarkTiming();
timespec t;
@ -41,9 +44,9 @@ static void BM_time_clock_gettime_syscall(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_time_clock_gettime_syscall);
static void BM_time_gettimeofday(int iters) {
BENCHMARK_NO_ARG(BM_time_gettimeofday);
void BM_time_gettimeofday::Run(int iters) {
StartBenchmarkTiming();
timeval tv;
@ -53,9 +56,9 @@ static void BM_time_gettimeofday(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_time_gettimeofday);
static void BM_time_gettimeofday_syscall(int iters) {
BENCHMARK_NO_ARG(BM_time_gettimeofday_syscall);
void BM_time_gettimeofday_syscall::Run(int iters) {
StartBenchmarkTiming();
timeval tv;
@ -65,9 +68,9 @@ static void BM_time_gettimeofday_syscall(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_time_gettimeofday_syscall);
static void BM_time_time(int iters) {
BENCHMARK_NO_ARG(BM_time_time);
void BM_time_time::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -76,4 +79,3 @@ static void BM_time_time(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_time_time);

View File

@ -14,12 +14,13 @@
* limitations under the License.
*/
#include "benchmark.h"
#include <sys/syscall.h>
#include <unistd.h>
static void BM_unistd_getpid(int iters) {
#include <benchmark/Benchmark.h>
BENCHMARK_NO_ARG(BM_unistd_getpid);
void BM_unistd_getpid::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -28,9 +29,9 @@ static void BM_unistd_getpid(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_unistd_getpid);
static void BM_unistd_getpid_syscall(int iters) {
BENCHMARK_NO_ARG(BM_unistd_getpid_syscall);
void BM_unistd_getpid_syscall::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -39,12 +40,14 @@ static void BM_unistd_getpid_syscall(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_unistd_getpid_syscall);
#if defined(__BIONIC__)
// Stop GCC optimizing out our pure function.
/* Must not be static! */ pid_t (*gettid_fp)() = gettid;
static void BM_unistd_gettid(int iters) {
BENCHMARK_NO_ARG(BM_unistd_gettid);
void BM_unistd_gettid::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -53,9 +56,11 @@ static void BM_unistd_gettid(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_unistd_gettid);
static void BM_unistd_gettid_syscall(int iters) {
#endif
BENCHMARK_NO_ARG(BM_unistd_gettid_syscall);
void BM_unistd_gettid_syscall::Run(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
@ -64,4 +69,3 @@ static void BM_unistd_gettid_syscall(int iters) {
StopBenchmarkTiming();
}
BENCHMARK(BM_unistd_gettid_syscall);

80
benchmarks/utils.cpp Normal file
View File

@ -0,0 +1,80 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "utils.h"
#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <string>
#include <android-base/stringprintf.h>
int Round(int n) {
int base = 1;
while (base*10 < n) {
base *= 10;
}
if (n < 2*base) {
return 2*base;
}
if (n < 5*base) {
return 5*base;
}
return 10*base;
}
// Similar to the code in art, but supporting both binary and decimal prefixes.
std::string PrettyInt(long value, size_t base) {
if (base != 2 && base != 10) abort();
uint64_t count = static_cast<uint64_t>(value);
bool negative_number = false;
if (value < 0) {
negative_number = true;
count = static_cast<uint64_t>(-value);
}
// The byte thresholds at which we display amounts. A count is displayed
// in unit U when kUnitThresholds[U] <= bytes < kUnitThresholds[U+1].
static const uint64_t kUnitThresholds2[] = {
1024*1024*1024 /* Gi */, 2*1024*1024 /* Mi */, 3*1024 /* Ki */, 0,
};
static const uint64_t kUnitThresholds10[] = {
1000*1000*1000 /* G */, 2*1000*1000 /* M */, 3*1000 /* k */, 0,
};
static const uint64_t kAmountPerUnit2[] = { 1024*1024*1024, 1024*1024, 1024, 1 };
static const uint64_t kAmountPerUnit10[] = { 1000*1000*1000, 1000*1000, 1000, 1 };
static const char* const kUnitStrings2[] = { "Gi", "Mi", "Ki", "" };
static const char* const kUnitStrings10[] = { "G", "M", "k", "" };
// Which set are we using?
const uint64_t* kUnitThresholds = ((base == 2) ? kUnitThresholds2 : kUnitThresholds10);
const uint64_t* kAmountPerUnit = ((base == 2) ? kAmountPerUnit2 : kAmountPerUnit10);
const char* const* kUnitStrings = ((base == 2) ? kUnitStrings2 : kUnitStrings10);
size_t i = 0;
for (; kUnitThresholds[i] != 0; ++i) {
if (count >= kUnitThresholds[i]) {
break;
}
}
return android::base::StringPrintf("%s%" PRId64 "%s",
negative_number ? "-" : "",
count / kAmountPerUnit[i], kUnitStrings[i]);
}

26
benchmarks/utils.h Normal file
View File

@ -0,0 +1,26 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef BENCHMARKS_UTILS_H
#define BENCHMARKS_UTILS_H
#include <stddef.h>
#include <string>
int Round(int n);
std::string PrettyInt(long value, size_t base);
#endif // BENCHMARKS_UTILS_H

44
build/run-on-host.mk Normal file
View File

@ -0,0 +1,44 @@
#
# Copyright (C) 2014 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Include once
ifneq ($(bionic_run_on_host_mk_included),true)
bionic_run_on_host_mk_included:=true
ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm mips x86))
LINKER = linker64
else
LINKER = linker
endif
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
# gtest needs ANDROID_DATA/local/tmp for death test output.
# Make sure to create ANDROID_DATA/local/tmp if doesn't exist.
# bionic itself should always work relative to ANDROID_DATA or ANDROID_ROOT.
bionic-prepare-run-on-host: $(TARGET_OUT_EXECUTABLES)/$(LINKER) $(TARGET_OUT)/etc/hosts $(TARGET_OUT_EXECUTABLES)/sh
if [ ! -d /system ]; then \
echo "Attempting to create /system"; \
sudo mkdir -p -m 0777 /system; \
fi
mkdir -p $(TARGET_OUT_DATA)/local/tmp
ln -fs `realpath $(TARGET_OUT)/bin` /system/
ln -fs `realpath $(TARGET_OUT)/etc` /system/
ln -fs `realpath $(TARGET_OUT)/lib` /system/
if [ -d "$(TARGET_OUT)/lib64" ]; then \
ln -fs `realpath $(TARGET_OUT)/lib64` /system/; \
fi
endif
endif

2160
libc/Android.bp Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -307,50 +307,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2008-2010 The Android Open Source Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------
Copyright (C) 2009 The Android Open Source Project
All rights reserved.
@ -454,22 +410,6 @@ Android adaptation and tweak by Jim Huang <jserv@0xlab.org>.
-------------------------------------------------------------------
Copyright (C) 2011 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------
Copyright (C) 2011 The Android Open Source Project
All rights reserved.
@ -688,6 +628,50 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------
Copyright (C) 2015 The Android Open Source Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1980, 1983, 1988, 1993
The Regents of the University of California. All rights reserved.
@ -1679,35 +1663,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1990 Regents of the University of California.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1990 The Regents of the University of California.
All rights reserved.
@ -2510,35 +2465,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1993
The Regents of the University of California. All rights reserved.
@ -2568,33 +2494,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1993 Christopher G. Demetriou
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1993 Martin Birgmeier
All rights reserved.
@ -2635,33 +2534,6 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1995, 1996 Carnegie-Mellon University.
All rights reserved.
Author: Chris G. Demetriou
Permission to use, copy, modify and distribute this software and
its documentation is hereby granted, provided that both the copyright
notice and this permission notice appear in all copies of the
software, derivative works or modified versions, and any portions
thereof, and that both notices appear in supporting documentation.
CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
Carnegie Mellon requests users of this software to return to
Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
School of Computer Science
Carnegie Mellon University
Pittsburgh PA 15213-3890
any improvements or extensions that they make and grant Carnegie the
rights to redistribute these changes.
-------------------------------------------------------------------
Copyright (c) 1996 by Internet Software Consortium.
Permission to use, copy, modify, and distribute this software for any
@ -2714,63 +2586,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 1996-2004 Per Fogelstrom, Opsycon AB
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1997 Mark Brinicombe
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by Mark Brinicombe
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1997 Mark Brinicombe
Copyright (c) 2010 Android Open Source Project.
All rights reserved.
@ -3131,38 +2946,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1999 Kungliga Tekniska Högskolan
(Royal Institute of Technology, Stockholm, Sweden).
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of KTH nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-------------------------------------------------------------------
Copyright (c) 2000 Ben Harris.
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
All rights reserved.
@ -3426,34 +3209,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2002 Opsycon AB (www.opsycon.se / www.opsycon.com)
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of Opsycon AB nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2002 The NetBSD Foundation, Inc.
All rights reserved.
@ -3997,6 +3752,22 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2007 Todd C. Miller <Todd.Miller@courtesan.com>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2007-2008 Michael G Schwern
This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
@ -4086,6 +3857,22 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2008 Otto Moerbeek <otto@drijf.net>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2008 Todd C. Miller <millert@openbsd.org>
Permission to use, copy, modify, and distribute this software for any
@ -4118,35 +3905,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2009
MIPS Technologies, Inc., California.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the MIPS Technologies, Inc., nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2009 David Schultz <das@FreeBSD.org>
All rights reserved.
@ -4422,6 +4180,39 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
Copyright (c) 2009 Ted Unangst
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2011 The Android Open Source Project
Copyright (c) 2008 ARM Ltd
All rights reserved.
@ -4595,6 +4386,64 @@ Copyright (c) 2012, Linaro Limited
-------------------------------------------------------------------
Copyright (c) 2012-2015
MIPS Technologies, Inc., California.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the MIPS Technologies, Inc., nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2013
MIPS Technologies, Inc., California.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the MIPS Technologies, Inc., nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2013 ARM Ltd
All rights reserved.
@ -4639,35 +4488,61 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2013, Linaro Limited
All rights reserved.
Copyright (c) 2013 The NetBSD Foundation, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
This code is derived from software contributed to The NetBSD Foundation
by Christos Zoulas.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
* Neither the name of Linaro Limited nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
-------------------------------------------------------------------
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright (c) 2014
Imagination Technologies Limited.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the MIPS Technologies, Inc., nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY IMAGINATION TECHNOLOGIES LIMITED ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL IMAGINATION TECHNOLOGIES LIMITED BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-------------------------------------------------------------------
@ -4853,9 +4728,20 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright 2000 David E. O'Brien, John D. Polstra.
Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
Copyright 2008 Damien Miller <djm@openbsd.org>
All rights reserved.
Theo de Raadt <deraadt@openbsd.org> came up with the idea of using
such a mathematical system to generate more random (yet non-repeating)
ids to solve the resolver/named problem. But Niels designed the
actual system based on the constraints.
Later modified by Damien Miller to wrap the LCG output in a 15-bit
permutation generator based on a Luby-Rackoff block cipher. This
ensures the output is non-repeating and preserves the MSB twiddle
trick, but makes it more resistant to LCG prediction.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

View File

@ -77,7 +77,6 @@ int prlimit64(pid_t, int, struct rlimit64*, const struct rlimit64*) arm,mips,x8
int setgroups:setgroups32(int, const gid_t*) arm,x86
int setgroups:setgroups(int, const gid_t*) arm64,mips,mips64,x86_64
int setpgid(pid_t, pid_t) all
pid_t vfork(void) arm
int setregid:setregid32(gid_t, gid_t) arm,x86
int setregid:setregid(gid_t, gid_t) arm64,mips,mips64,x86_64
int chroot(const char*) all
@ -95,13 +94,23 @@ ssize_t pread64(int, void*, size_t, off64_t) arm,mips,x86
ssize_t pread64|pread(int, void*, size_t, off_t) arm64,mips64,x86_64
ssize_t pwrite64(int, void*, size_t, off64_t) arm,mips,x86
ssize_t pwrite64|pwrite(int, void*, size_t, off_t) arm64,mips64,x86_64
int close(int) all
# On LP32, preadv/pwritev don't use off64_t --- they use pairs of 32-bit
# arguments to avoid problems on architectures like ARM where 64-bit arguments
# must be in a register pair starting with an even-numbered register.
# See linux/fs/read_write.c and https://lwn.net/Articles/311630/.
ssize_t __preadv64:preadv(int, const struct iovec*, int, long, long) arm,mips,x86
ssize_t preadv|preadv64(int, const struct iovec*, int, off_t) arm64,mips64,x86_64
ssize_t __pwritev64:pwritev(int, const struct iovec*, int, long, long) arm,mips,x86
ssize_t pwritev|pwritev64(int, const struct iovec*, int, off_t) arm64,mips64,x86_64
int ___close:close(int) all
pid_t __getpid:getpid() all
int munmap(void*, size_t) all
void* mremap(void*, size_t, size_t, unsigned long) all
void* ___mremap:mremap(void*, size_t, size_t, int, void*) all
int msync(const void*, size_t, int) all
int mprotect(const void*, size_t, int) all
int madvise(const void*, size_t, int) all
int madvise(void*, size_t, int) all
int mlock(const void* addr, size_t len) all
int munlock(const void* addr, size_t len) all
int mlockall(int flags) all
@ -113,7 +122,7 @@ int writev(int, const struct iovec*, int) all
int __fcntl64:fcntl64(int, int, void*) arm,mips,x86
int fcntl(int, int, void*) arm64,mips64,x86_64
int flock(int, int) all
int fchmod(int, mode_t) all
int ___fchmod:fchmod(int, mode_t) all
int dup(int) all
int pipe2(int*, int) all
int dup3(int, int, int) all
@ -122,19 +131,19 @@ int fdatasync(int) all
int fchown:fchown32(int, uid_t, gid_t) arm,x86
int fchown:fchown(int, uid_t, gid_t) arm64,mips,mips64,x86_64
void sync(void) all
int fsetxattr(int, const char*, const void*, size_t, int) all
ssize_t fgetxattr(int, const char*, void*, size_t) all
ssize_t flistxattr(int, char*, size_t) all
int ___fsetxattr:fsetxattr(int, const char*, const void*, size_t, int) all
ssize_t ___fgetxattr:fgetxattr(int, const char*, void*, size_t) all
ssize_t ___flistxattr:flistxattr(int, char*, size_t) all
int fremovexattr(int, const char*) all
int __getdents64:getdents64(unsigned int, struct dirent*, unsigned int) arm,arm64,mips,mips64,x86,x86_64
int __openat:openat(int, const char*, int, mode_t) all
int faccessat(int, const char*, int, int) all
int fchmodat(int, const char*, mode_t, int) all
int ___faccessat:faccessat(int, const char*, int) all
int ___fchmodat:fchmodat(int, const char*, mode_t) all
int fchownat(int, const char*, uid_t, gid_t, int) all
int fstatat64|fstatat:fstatat64(int, const char*, struct stat*, int) arm,mips,x86
int fstatat64|fstatat:newfstatat(int, const char*, struct stat*, int) arm64,mips64,x86_64
int fstatat64|fstatat:newfstatat(int, const char*, struct stat*, int) arm64,x86_64
int linkat(int, const char*, int, const char*, int) all
int mkdirat(int, const char*, mode_t) all
int mknodat(int, const char*, mode_t, dev_t) all
@ -151,7 +160,6 @@ int utimensat(int, const char*, const struct timespec times[2], int) all
off_t lseek(int, off_t, int) arm,mips,x86
int __llseek:_llseek(int, unsigned long, unsigned long, off64_t*, int) arm,mips,x86
off_t lseek|lseek64(int, off_t, int) arm64,mips64,x86_64
int ftruncate(int, off_t) arm,mips,x86
int ftruncate64(int, off64_t) arm,mips,x86
int ftruncate|ftruncate64(int, off_t) arm64,mips64,x86_64
ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) arm,mips,x86
@ -174,12 +182,12 @@ int __fadvise64:fadvise64_64(int, off64_t, off64_t, int) x86
int __fadvise64:fadvise64(int, off64_t, off64_t, int) arm64,mips,mips64,x86_64
int __fstatfs64:fstatfs64(int, size_t, struct statfs*) arm,mips,x86
int fstatfs64|fstatfs:fstatfs(int, struct statfs*) arm64,mips64,x86_64
int __fstatfs:fstatfs(int, struct statfs*) arm64,mips64,x86_64
int __statfs64:statfs64(const char*, size_t, struct statfs*) arm,mips,x86
int statfs64|statfs:statfs(const char*, struct statfs*) arm64,mips64,x86_64
int __statfs:statfs(const char*, struct statfs*) arm64,mips64,x86_64
int fstat64|fstat:fstat64(int, struct stat*) arm,mips,x86
int fstat64|fstat:fstat(int, struct stat*) arm64,mips64,x86_64
int fstat64|fstat:fstat(int, struct stat*) arm64,x86_64
# file system
int chdir(const char*) all
@ -202,9 +210,9 @@ int swapoff(const char*) all
int settimeofday(const struct timeval*, const struct timezone*) all
clock_t times(struct tms*) all
int nanosleep(const struct timespec*, struct timespec*) all
int clock_settime(clockid_t clk_id, const struct timespec* tp) all
int clock_getres(clockid_t clk_id, struct timespec* res) all
int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec* req, struct timespec* rem) all
int clock_settime(clockid_t, const struct timespec*) all
int clock_getres(clockid_t, struct timespec*) all
int ___clock_nanosleep:clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*) all
int getitimer(int, const struct itimerval*) all
int setitimer(int, const struct itimerval*, struct itimerval*) all
int __timer_create:timer_create(clockid_t clockid, struct sigevent* evp, __kernel_timer_t* timerid) all
@ -223,6 +231,7 @@ int __rt_sigpending:rt_sigpending(sigset_t*, size_t) all
int __rt_sigprocmask:rt_sigprocmask(int, const sigset_t*, sigset_t*, size_t) all
int __rt_sigsuspend:rt_sigsuspend(const sigset_t*, size_t) all
int __rt_sigtimedwait:rt_sigtimedwait(const sigset_t*, struct siginfo_t*, struct timespec_t*, size_t) all
int ___rt_sigqueueinfo:rt_sigqueueinfo(pid_t, int, siginfo_t*) all
int __signalfd4:signalfd4(int, const sigset_t*, size_t, int) all
# sockets
@ -308,11 +317,16 @@ int inotify_rm_watch(int, unsigned int) all
int __pselect6:pselect6(int, fd_set*, fd_set*, fd_set*, timespec*, void*) all
int __ppoll:ppoll(pollfd*, unsigned int, timespec*, const sigset_t*, size_t) all
ssize_t process_vm_readv(pid_t, const struct iovec*, unsigned long, const struct iovec*, unsigned long, unsigned long) all
ssize_t process_vm_writev(pid_t, const struct iovec*, unsigned long, const struct iovec*, unsigned long, unsigned long) all
int __set_tid_address:set_tid_address(int*) all
int setfsgid(gid_t) all
int setfsuid(uid_t) all
int sethostname(const char*, size_t) all
pid_t wait4(pid_t, int*, int, struct rusage*) all
int __waitid:waitid(int, pid_t, struct siginfo_t*, int, void*) all
@ -321,14 +335,14 @@ int __set_tls:__ARM_NR_set_tls(void*) arm
int cacheflush:__ARM_NR_cacheflush(long start, long end, long flags) arm
# MIPS-specific
int _flush_cache:cacheflush(char* addr, const int nbytes, const int op) mips,mips64
int _flush_cache:cacheflush(char* addr, const int nbytes, const int op) mips
int __set_tls:set_thread_area(void*) mips,mips64
# x86-specific
int __set_thread_area:set_thread_area(void*) x86
# vdso stuff.
int clock_gettime(clockid_t, timespec*) arm,mips,mips64,x86
int __clock_gettime:clock_gettime(clockid_t, timespec*) arm64,x86_64
int gettimeofday(timeval*, timezone*) arm,mips,mips64,x86
int __gettimeofday:gettimeofday(timeval*, timezone*) arm64,x86_64
int clock_gettime(clockid_t, timespec*) arm,mips,mips64
int __clock_gettime:clock_gettime(clockid_t, timespec*) arm64,x86,x86_64
int gettimeofday(timeval*, timezone*) arm,mips,mips64
int __gettimeofday:gettimeofday(timeval*, timezone*) arm64,x86,x86_64

View File

@ -1,75 +1,44 @@
# arm specific configs
# 32-bit arm.
# These are used by the 32-bit targets, but not the 64-bit ones.
libc_common_src_files_arm := \
bionic/legacy_32_bit_support.cpp \
bionic/ndk_cruft.cpp \
bionic/time64.c \
upstream-openbsd/lib/libc/stdio/putw.c \
libc_bionic_src_files_arm += \
arch-arm/generic/bionic/memcmp.S \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
# These are shared by all the 32-bit targets, but not the 64-bit ones.
libc_bionic_src_files_arm := \
bionic/mmap.cpp
libc_bionic_src_files_exclude_arm += \
bionic/__memcpy_chk.cpp \
bionic/__memset_chk.cpp \
libc_common_src_files_arm += \
bionic/memchr.c \
bionic/memrchr.c \
bionic/strchr.cpp \
bionic/strnlen.c \
bionic/strrchr.cpp \
upstream-freebsd/lib/libc/string/wcscat.c \
upstream-freebsd/lib/libc/string/wcschr.c \
upstream-freebsd/lib/libc/string/wcscmp.c \
upstream-freebsd/lib/libc/string/wcscpy.c \
upstream-freebsd/lib/libc/string/wcslen.c \
upstream-freebsd/lib/libc/string/wcsrchr.c \
upstream-freebsd/lib/libc/string/wmemcmp.c \
upstream-freebsd/lib/libc/string/wmemmove.c \
upstream-openbsd/lib/libc/string/bcopy.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/stpncpy.c \
upstream-openbsd/lib/libc/string/strlcat.c \
upstream-openbsd/lib/libc/string/strlcpy.c \
upstream-openbsd/lib/libc/string/strncat.c \
upstream-openbsd/lib/libc/string/strncmp.c \
upstream-openbsd/lib/libc/string/strncpy.c \
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/strcpy.c \
# The C++ fortify function implementations for which there is an
# arm assembler version.
#
# Fortify implementations of libc functions.
# libc_common_src_files_arm +=
# bionic/__memcpy_chk.cpp \
# bionic/__memset_chk.cpp \
# bionic/__strcpy_chk.cpp \
# bionic/__strcat_chk.cpp \
# Inherently architecture-specific code.
#
libc_common_cflags_arm := -DSOFTFLOAT
##########################################
### CPU specific source files
libc_bionic_src_files_arm += \
arch-arm/bionic/abort_arm.S \
arch-arm/bionic/atomics_arm.c \
arch-arm/bionic/__bionic_clone.S \
arch-arm/bionic/_exit_with_stack_teardown.S \
arch-arm/bionic/libgcc_compat.c \
arch-arm/bionic/memcmp.S \
arch-arm/bionic/_setjmp.S \
arch-arm/bionic/popcount_tab.c \
arch-arm/bionic/__restore.S \
arch-arm/bionic/setjmp.S \
arch-arm/bionic/sigsetjmp.S \
arch-arm/bionic/syscall.S \
arch-arm/bionic/vfork.S \
libc_arch_static_src_files_arm := arch-arm/bionic/exidx_static.c
libc_arch_dynamic_src_files_arm := arch-arm/bionic/exidx_dynamic.c
libc_netbsd_src_files_arm := \
upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
## CPU variant specific source files
ifeq ($(strip $(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT)),)
$(warning TARGET_$(my_2nd_arch_prefix)ARCH is arm, but TARGET_$(my_2nd_arch_prefix)CPU_VARIANT is not defined)
endif
ifneq ($(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT),generic)
cpu_variant_mk := $(LOCAL_PATH)/arch-arm/$(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT)/$(TARGET_$(my_2nd_arch_prefix)CPU_VARIANT).mk
ifeq ($(wildcard $(cpu_variant_mk)),)
$(error "TARGET_$(my_2nd_arch_prefix)CPU_VARIANT not set or set to an unknown value. Possible values are cortex-a7, cortex-a8, cortex-a9, cortex-a15, krait, denver. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.")
@ -78,6 +47,7 @@ include $(cpu_variant_mk)
libc_common_additional_dependencies += $(cpu_variant_mk)
cpu_variant_mk :=
endif
libc_crt_target_cflags_arm := \

View File

@ -39,6 +39,9 @@
extern int __cxa_atexit(void (*)(void*), void*, void*);
// All of these are weak symbols to avoid multiple definition errors when
// linking with libstdc++-v3 or compiler-rt.
/* The "C++ ABI for ARM" document states that static C++ constructors,
* which are called from the .init_array, should manually call
* __aeabi_atexit() to register static destructors explicitly.
@ -47,35 +50,63 @@ extern int __cxa_atexit(void (*)(void*), void*, void*);
* variable from the shared object that contains the constructor/destructor
*/
// Make this a weak symbol to avoid a multiple definition error when linking with libstdc++-v3.
int __attribute__((weak))
__aeabi_atexit(void *object, void (*destructor) (void *), void *dso_handle) {
__aeabi_atexit_impl(void *object, void (*destructor) (void *), void *dso_handle) {
return __cxa_atexit(destructor, object, dso_handle);
}
int __attribute__((weak))
__aeabi_atexit_impl2(void *object, void (*destructor) (void *), void *dso_handle) {
return __cxa_atexit(destructor, object, dso_handle);
}
void __aeabi_memcpy8(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memcpy8_impl(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __aeabi_memcpy4(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memcpy4_impl(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __aeabi_memcpy(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memcpy_impl(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __attribute__((weak)) __aeabi_memcpy8_impl2(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __attribute__((weak)) __aeabi_memcpy4_impl2(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __attribute__((weak)) __aeabi_memcpy_impl2(void *dest, const void *src, size_t n) {
memcpy(dest, src, n);
}
void __aeabi_memmove8(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memmove8_impl(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
void __aeabi_memmove4(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memmove4_impl(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
void __aeabi_memmove(void *dest, const void *src, size_t n) {
void __attribute__((weak)) __aeabi_memmove_impl(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
void __attribute__((weak)) __aeabi_memmove8_impl2(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
void __attribute__((weak)) __aeabi_memmove4_impl2(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
void __attribute__((weak)) __aeabi_memmove_impl2(void *dest, const void *src, size_t n) {
memmove(dest, src, n);
}
@ -84,27 +115,71 @@ void __aeabi_memmove(void *dest, const void *src, size_t n) {
* This allows __aeabi_memclr to tail-call __aeabi_memset
*/
void __aeabi_memset8(void *dest, size_t n, int c) {
void __attribute__((weak)) __aeabi_memset8_impl(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __aeabi_memset4(void *dest, size_t n, int c) {
void __attribute__((weak)) __aeabi_memset4_impl(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __aeabi_memset(void *dest, size_t n, int c) {
void __attribute__((weak)) __aeabi_memset_impl(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __attribute__((weak)) __aeabi_memset8_impl2(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __attribute__((weak)) __aeabi_memset4_impl2(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __attribute__((weak)) __aeabi_memset_impl2(void *dest, size_t n, int c) {
memset(dest, c, n);
}
void __aeabi_memclr8(void *dest, size_t n) {
__aeabi_memset8(dest, n, 0);
void __attribute__((weak)) __aeabi_memclr8_impl(void *dest, size_t n) {
__aeabi_memset8_impl(dest, n, 0);
}
void __aeabi_memclr4(void *dest, size_t n) {
__aeabi_memset4(dest, n, 0);
void __attribute__((weak)) __aeabi_memclr4_impl(void *dest, size_t n) {
__aeabi_memset4_impl(dest, n, 0);
}
void __aeabi_memclr(void *dest, size_t n) {
__aeabi_memset(dest, n, 0);
void __attribute__((weak)) __aeabi_memclr_impl(void *dest, size_t n) {
__aeabi_memset_impl(dest, n, 0);
}
void __attribute__((weak)) __aeabi_memclr8_impl2(void *dest, size_t n) {
__aeabi_memset8_impl(dest, n, 0);
}
void __attribute__((weak)) __aeabi_memclr4_impl2(void *dest, size_t n) {
__aeabi_memset4_impl(dest, n, 0);
}
void __attribute__((weak)) __aeabi_memclr_impl2(void *dest, size_t n) {
__aeabi_memset_impl(dest, n, 0);
}
#define __AEABI_SYMVERS(fn_name) \
__asm__(".symver " #fn_name "_impl, " #fn_name "@@LIBC_N"); \
__asm__(".symver " #fn_name "_impl2, " #fn_name "@LIBC_PRIVATE")
__AEABI_SYMVERS(__aeabi_atexit);
__AEABI_SYMVERS(__aeabi_memcpy8);
__AEABI_SYMVERS(__aeabi_memcpy4);
__AEABI_SYMVERS(__aeabi_memcpy);
__AEABI_SYMVERS(__aeabi_memmove8);
__AEABI_SYMVERS(__aeabi_memmove4);
__AEABI_SYMVERS(__aeabi_memmove);
__AEABI_SYMVERS(__aeabi_memset8);
__AEABI_SYMVERS(__aeabi_memset4);
__AEABI_SYMVERS(__aeabi_memset);
__AEABI_SYMVERS(__aeabi_memclr8);
__AEABI_SYMVERS(__aeabi_memclr4);
__AEABI_SYMVERS(__aeabi_memclr);
#undef __AEABI_SYMVERS

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2008-2010 The Android Open Source Project
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -42,13 +42,14 @@ ENTRY(__bionic_clone)
# load extra parameters
ldmfd ip, {r4, r5, r6}
# store 'fn' and 'arg' to the child stack
str r5, [r1, #-4]
str r6, [r1, #-8]
# Push 'fn' and 'arg' onto the child stack.
stmdb r1!, {r5, r6}
# System call
# Make the system call.
ldr r7, =__NR_clone
swi #0
# Are we the child?
movs r0, r0
beq 1f
@ -62,8 +63,8 @@ ENTRY(__bionic_clone)
1: # The child.
# Setting lr to 0 will make the unwinder stop at __start_thread
mov lr, #0
ldr r0, [sp, #-4]
ldr r1, [sp, #-8]
# Call __start_thread with the 'fn' and 'arg' we stored on the child stack.
pop {r0, r1}
b __start_thread
END(__bionic_clone)
.hidden __bionic_clone

View File

@ -0,0 +1,63 @@
/*
* Copyright (C) 2014 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
// gdb is smart enough to unwind through signal frames with just the regular
// CFI information but libgcc and libunwind both need extra help. We do this
// by using .fnstart/.fnend and inserting a nop before both __restore and
// __restore_rt (but covered by the .fnstart/.fnend) so that although they're
// not inside the functions from objdump's point of view, an unwinder that
// blindly looks at the previous instruction (but is then smart enough to check
// the unwind information to find out where it landed) gets the right answer.
// Make sure not to have both DWARF and ARM unwind information, so only
// use the ARM unwind information.
// We need to place .fnstart ourselves (but we may as well keep the free .fnend).
#undef __bionic_asm_custom_entry
#define __bionic_asm_custom_entry(f)
.fnstart
.save {r0-r15}
.pad #32
nop
ENTRY_PRIVATE_NO_DWARF(__restore)
// This function must have exactly this instruction sequence.
mov r7, #__NR_sigreturn
swi #0
END_NO_DWARF(__restore)
.fnstart
.save {r0-r15}
.pad #160
nop
ENTRY_PRIVATE_NO_DWARF(__restore_rt)
// This function must have exactly this instruction sequence.
mov r7, #__NR_rt_sigreturn
swi #0
END_NO_DWARF(__restore_rt)

View File

@ -1,113 +0,0 @@
/* $OpenBSD: _setjmp.S,v 1.2 2004/02/01 05:40:52 drahn Exp $ */
/* $NetBSD: _setjmp.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $ */
/*
* Copyright (c) 1997 Mark Brinicombe
* Copyright (c) 2010 Android Open Source Project.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Mark Brinicombe
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <machine/setjmp.h>
#include <machine/cpu-features.h>
/*
* C library -- _setjmp, _longjmp
*
* _longjmp(a,v)
* will generate a "return(v)" from the last call to
* _setjmp(a)
* by restoring registers from the stack.
* The previous signal state is NOT restored.
*
* Note: r0 is the return value
* r1-r3 are scratch registers in functions
*/
ENTRY(_setjmp)
ldr r1, .L_setjmp_magic
str r1, [r0, #(_JB_MAGIC * 4)]
/* Store core registers */
add r1, r0, #(_JB_CORE_BASE * 4)
stmia r1, {r4-r14}
#ifdef __ARM_HAVE_VFP
/* Store floating-point registers */
add r1, r0, #(_JB_FLOAT_BASE * 4)
vstmia r1, {d8-d15}
/* Store floating-point state */
fmrx r1, fpscr
str r1, [r0, #(_JB_FLOAT_STATE * 4)]
#endif /* __ARM_HAVE_VFP */
mov r0, #0x00000000
bx lr
END(_setjmp)
.L_setjmp_magic:
.word _JB_MAGIC__SETJMP
ENTRY(_longjmp)
ldr r2, .L_setjmp_magic
ldr r3, [r0, #(_JB_MAGIC * 4)]
teq r2, r3
bne botch
#ifdef __ARM_HAVE_VFP
/* Restore floating-point registers */
add r2, r0, #(_JB_FLOAT_BASE * 4)
vldmia r2, {d8-d15}
/* Restore floating-point state */
ldr r2, [r0, #(_JB_FLOAT_STATE * 4)]
fmxr fpscr, r2
#endif /* __ARM_HAVE_VFP */
/* Restore core registers */
add r2, r0, #(_JB_CORE_BASE * 4)
ldmia r2, {r4-r14}
/* Validate sp and r14 */
teq sp, #0
teqne r14, #0
beq botch
/* Set return value */
mov r0, r1
teq r0, #0x00000000
moveq r0, #0x00000001
bx lr
/* validation failed, die die die. */
botch:
bl PIC_SYM(longjmperror, PLT)
bl PIC_SYM(abort, PLT)
b . - 8 /* Cannot get here */
END(_longjmp)

View File

@ -40,5 +40,5 @@ ENTRY(abort)
.cfi_def_cfa_offset 8
.cfi_rel_offset r3, 0
.cfi_rel_offset r14, 4
bl PIC_SYM(__libc_android_abort, PLT)
bl __libc_android_abort
END(abort)

View File

@ -37,7 +37,13 @@
* the expectation that libc will define it and call through to
* a differently-named function in the dynamic linker.
*/
_Unwind_Ptr __gnu_Unwind_Find_exidx(_Unwind_Ptr pc, int *pcount)
{
_Unwind_Ptr __gnu_Unwind_Find_exidx_impl(_Unwind_Ptr pc, int *pcount) {
return dl_unwind_find_exidx(pc, pcount);
}
_Unwind_Ptr __gnu_Unwind_Find_exidx_impl2(_Unwind_Ptr pc, int *pcount) {
return dl_unwind_find_exidx(pc, pcount);
}
__asm__(".symver __gnu_Unwind_Find_exidx_impl,__gnu_Unwind_Find_exidx@LIBC_PRIVATE");
__asm__(".symver __gnu_Unwind_Find_exidx_impl2,__gnu_Unwind_Find_exidx@@LIBC_N");

View File

@ -1,686 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <machine/cpu-features.h>
#include <private/bionic_asm.h>
#if defined(__ARM_NEON__) && !defined(ARCH_ARM_USE_NON_NEON_MEMCPY)
.text
.fpu neon
#ifdef HAVE_32_BYTE_CACHE_LINE
/* a prefetch distance of 2 cache-lines */
#define CACHE_LINE_SIZE 32
#else
/* a prefetch distance of 4 cache-lines works best experimentally */
#define CACHE_LINE_SIZE 64
#endif
ENTRY(memcpy)
.save {r0, lr}
/* start preloading as early as possible */
pld [r1, #(CACHE_LINE_SIZE * 0)]
stmfd sp!, {r0, lr}
pld [r1, #(CACHE_LINE_SIZE * 1)]
/* If Neon supports unaligned access then remove the align code,
* unless a size limit has been specified.
*/
#ifndef NEON_UNALIGNED_ACCESS
/* do we have at least 16-bytes to copy (needed for alignment below) */
cmp r2, #16
blo 5f
/* check if buffers are aligned. If so, run arm-only version */
eor r3, r0, r1
ands r3, r3, #0x3
beq 11f
/* align destination to cache-line for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 2f
/* copy up to 15-bytes (count in r3) */
sub r2, r2, r3
movs ip, r3, lsl #31
ldrmib lr, [r1], #1
strmib lr, [r0], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
movs ip, r3, lsl #29
bge 1f
// copies 4 bytes, destination 32-bits aligned
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0, :32]!
1: bcc 2f
// copies 8 bytes, destination 64-bits aligned
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
2:
/* preload immediately the next cache line, which we may need */
pld [r1, #(CACHE_LINE_SIZE * 0)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
#ifdef HAVE_32_BYTE_CACHE_LINE
/* make sure we have at least 32 bytes to copy */
subs r2, r2, #32
blo 4f
/* preload all the cache lines we need.
* NOTE: the number of pld below depends on PREFETCH_DISTANCE,
* ideally would would increase the distance in the main loop to
* avoid the goofy code below. In practice this doesn't seem to make
* a big difference.
*/
pld [r1, #(PREFETCH_DISTANCE)]
1: /* The main loop copies 32 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
pld [r1, #(PREFETCH_DISTANCE)]
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0, :128]!
bhs 1b
#else
/* make sure we have at least 64 bytes to copy */
subs r2, r2, #64
blo 2f
/* preload all the cache lines we need. */
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
#ifdef HAVE_32_BYTE_CACHE_LINE
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
#else
pld [r1, #(CACHE_LINE_SIZE * 3)]
#endif
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d4 - d7}, [r0, :128]!
bhs 1b
2: /* fix-up the remaining count and make sure we have >= 32 bytes left */
add r2, r2, #64
subs r2, r2, #32
blo 4f
3: /* 32 bytes at a time. These cache lines were already preloaded */
vld1.8 {d0 - d3}, [r1]!
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0, :128]!
bhs 3b
#endif
4: /* less than 32 left */
add r2, r2, #32
tst r2, #0x10
beq 5f
// copies 16 bytes, 128-bits aligned
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0, :128]!
5: /* copy up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1: bge 2f
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0]!
2: movs ip, r2, lsl #31
ldrmib r3, [r1], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strmib r3, [r0], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
ldmfd sp!, {r0, lr}
bx lr
#else /* NEON_UNALIGNED_ACCESS */
// Check so divider is at least 16 bytes, needed for alignment code.
cmp r2, #16
blo 5f
#ifdef NEON_MEMCPY_ALIGNMENT_DIVIDER
/* Check the upper size limit for Neon unaligned memory access in memcpy */
#if NEON_MEMCPY_ALIGNMENT_DIVIDER >= 16
cmp r2, #NEON_MEMCPY_ALIGNMENT_DIVIDER
blo 3f
#endif
/* check if buffers are aligned. If so, run arm-only version */
eor r3, r0, r1
ands r3, r3, #0x3
beq 11f
/* align destination to 16 bytes for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 3f
/* copy up to 15-bytes (count in r3) */
sub r2, r2, r3
movs ip, r3, lsl #31
ldrmib lr, [r1], #1
strmib lr, [r0], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
movs ip, r3, lsl #29
bge 1f
// copies 4 bytes, destination 32-bits aligned
vld1.32 {d0[0]}, [r1]!
vst1.32 {d0[0]}, [r0, :32]!
1: bcc 2f
// copies 8 bytes, destination 64-bits aligned
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
2:
/* preload immediately the next cache line, which we may need */
pld [r1, #(CACHE_LINE_SIZE * 0)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
3:
#endif
/* make sure we have at least 64 bytes to copy */
subs r2, r2, #64
blo 2f
/* preload all the cache lines we need */
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
#ifdef HAVE_32_BYTE_CACHE_LINE
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
#else
pld [r1, #(CACHE_LINE_SIZE * 3)]
#endif
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0]!
vst1.8 {d4 - d7}, [r0]!
bhs 1b
2: /* fix-up the remaining count and make sure we have >= 32 bytes left */
add r2, r2, #64
subs r2, r2, #32
blo 4f
3: /* 32 bytes at a time. These cache lines were already preloaded */
vld1.8 {d0 - d3}, [r1]!
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0]!
bhs 3b
4: /* less than 32 left */
add r2, r2, #32
tst r2, #0x10
beq 5f
// copies 16 bytes, 128-bits aligned
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0]!
5: /* copy up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1: bge 2f
vld1.32 {d0[0]}, [r1]!
vst1.32 {d0[0]}, [r0]!
2: movs ip, r2, lsl #31
ldrmib r3, [r1], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strmib r3, [r0], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
ldmfd sp!, {r0, lr}
bx lr
#endif /* NEON_UNALIGNED_ACCESS */
11:
/* Simple arm-only copy loop to handle aligned copy operations */
stmfd sp!, {r4, r5, r6, r7, r8}
pld [r1, #(CACHE_LINE_SIZE * 2)]
/* Check alignment */
rsb r3, r1, #0
ands r3, #3
beq 2f
/* align source to 32 bits. We need to insert 2 instructions between
* a ldr[b|h] and str[b|h] because byte and half-word instructions
* stall 2 cycles.
*/
movs r12, r3, lsl #31
sub r2, r2, r3 /* we know that r3 <= r2 because r2 >= 4 */
ldrmib r3, [r1], #1
ldrcsb r4, [r1], #1
ldrcsb r5, [r1], #1
strmib r3, [r0], #1
strcsb r4, [r0], #1
strcsb r5, [r0], #1
2:
subs r2, #32
blt 5f
pld [r1, #(CACHE_LINE_SIZE * 3)]
3: /* Main copy loop, copying 32 bytes at a time */
pld [r1, #(CACHE_LINE_SIZE * 4)]
ldmia r1!, {r3, r4, r5, r6, r7, r8, r12, lr}
subs r2, r2, #32
stmia r0!, {r3, r4, r5, r6, r7, r8, r12, lr}
bge 3b
5: /* Handle any remaining bytes */
adds r2, #32
beq 6f
movs r12, r2, lsl #28
ldmcsia r1!, {r3, r4, r5, r6} /* 16 bytes */
ldmmiia r1!, {r7, r8} /* 8 bytes */
stmcsia r0!, {r3, r4, r5, r6}
stmmiia r0!, {r7, r8}
movs r12, r2, lsl #30
ldrcs r3, [r1], #4 /* 4 bytes */
ldrmih r4, [r1], #2 /* 2 bytes */
strcs r3, [r0], #4
strmih r4, [r0], #2
tst r2, #0x1
ldrneb r3, [r1] /* last byte */
strneb r3, [r0]
6:
ldmfd sp!, {r4, r5, r6, r7, r8}
ldmfd sp!, {r0, pc}
END(memcpy)
#else /* __ARM_ARCH__ < 7 */
/*
* Optimized memcpy() for ARM.
*
* note that memcpy() always returns the destination pointer,
* so we have to preserve R0.
*/
ENTRY(memcpy)
/* The stack must always be 64-bits aligned to be compliant with the
* ARM ABI. Since we have to save R0, we might as well save R4
* which we can use for better pipelining of the reads below
*/
.save {r0, r4, lr}
stmfd sp!, {r0, r4, lr}
/* Making room for r5-r11 which will be spilled later */
.pad #28
sub sp, sp, #28
// preload the destination because we'll align it to a cache line
// with small writes. Also start the source "pump".
pld [r0, #0]
pld [r1, #0]
pld [r1, #32]
/* it simplifies things to take care of len<4 early */
cmp r2, #4
blo copy_last_3_and_return
/* compute the offset to align the source
* offset = (4-(src&3))&3 = -src & 3
*/
rsb r3, r1, #0
ands r3, r3, #3
beq src_aligned
/* align source to 32 bits. We need to insert 2 instructions between
* a ldr[b|h] and str[b|h] because byte and half-word instructions
* stall 2 cycles.
*/
movs r12, r3, lsl #31
sub r2, r2, r3 /* we know that r3 <= r2 because r2 >= 4 */
ldrmib r3, [r1], #1
ldrcsb r4, [r1], #1
ldrcsb r12,[r1], #1
strmib r3, [r0], #1
strcsb r4, [r0], #1
strcsb r12,[r0], #1
src_aligned:
/* see if src and dst are aligned together (congruent) */
eor r12, r0, r1
tst r12, #3
bne non_congruent
/* Use post-incriment mode for stm to spill r5-r11 to reserved stack
* frame. Don't update sp.
*/
stmea sp, {r5-r11}
/* align the destination to a cache-line */
rsb r3, r0, #0
ands r3, r3, #0x1C
beq congruent_aligned32
cmp r3, r2
andhi r3, r2, #0x1C
/* conditionnaly copies 0 to 7 words (length in r3) */
movs r12, r3, lsl #28
ldmcsia r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmiia r1!, {r8, r9} /* 8 bytes */
stmcsia r0!, {r4, r5, r6, r7}
stmmiia r0!, {r8, r9}
tst r3, #0x4
ldrne r10,[r1], #4 /* 4 bytes */
strne r10,[r0], #4
sub r2, r2, r3
congruent_aligned32:
/*
* here source is aligned to 32 bytes.
*/
cached_aligned32:
subs r2, r2, #32
blo less_than_32_left
/*
* We preload a cache-line up to 64 bytes ahead. On the 926, this will
* stall only until the requested world is fetched, but the linefill
* continues in the the background.
* While the linefill is going, we write our previous cache-line
* into the write-buffer (which should have some free space).
* When the linefill is done, the writebuffer will
* start dumping its content into memory
*
* While all this is going, we then load a full cache line into
* 8 registers, this cache line should be in the cache by now
* (or partly in the cache).
*
* This code should work well regardless of the source/dest alignment.
*
*/
// Align the preload register to a cache-line because the cpu does
// "critical word first" (the first word requested is loaded first).
bic r12, r1, #0x1F
add r12, r12, #64
1: ldmia r1!, { r4-r11 }
pld [r12, #64]
subs r2, r2, #32
// NOTE: if r12 is more than 64 ahead of r1, the following ldrhi
// for ARM9 preload will not be safely guarded by the preceding subs.
// When it is safely guarded the only possibility to have SIGSEGV here
// is because the caller overstates the length.
ldrhi r3, [r12], #32 /* cheap ARM9 preload */
stmia r0!, { r4-r11 }
bhs 1b
add r2, r2, #32
less_than_32_left:
/*
* less than 32 bytes left at this point (length in r2)
*/
/* skip all this if there is nothing to do, which should
* be a common case (if not executed the code below takes
* about 16 cycles)
*/
tst r2, #0x1F
beq 1f
/* conditionnaly copies 0 to 31 bytes */
movs r12, r2, lsl #28
ldmcsia r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmiia r1!, {r8, r9} /* 8 bytes */
stmcsia r0!, {r4, r5, r6, r7}
stmmiia r0!, {r8, r9}
movs r12, r2, lsl #30
ldrcs r3, [r1], #4 /* 4 bytes */
ldrmih r4, [r1], #2 /* 2 bytes */
strcs r3, [r0], #4
strmih r4, [r0], #2
tst r2, #0x1
ldrneb r3, [r1] /* last byte */
strneb r3, [r0]
/* we're done! restore everything and return */
1: ldmfd sp!, {r5-r11}
ldmfd sp!, {r0, r4, lr}
bx lr
/********************************************************************/
non_congruent:
/*
* here source is aligned to 4 bytes
* but destination is not.
*
* in the code below r2 is the number of bytes read
* (the number of bytes written is always smaller, because we have
* partial words in the shift queue)
*/
cmp r2, #4
blo copy_last_3_and_return
/* Use post-incriment mode for stm to spill r5-r11 to reserved stack
* frame. Don't update sp.
*/
stmea sp, {r5-r11}
/* compute shifts needed to align src to dest */
rsb r5, r0, #0
and r5, r5, #3 /* r5 = # bytes in partial words */
mov r12, r5, lsl #3 /* r12 = right */
rsb lr, r12, #32 /* lr = left */
/* read the first word */
ldr r3, [r1], #4
sub r2, r2, #4
/* write a partial word (0 to 3 bytes), such that destination
* becomes aligned to 32 bits (r5 = nb of words to copy for alignment)
*/
movs r5, r5, lsl #31
strmib r3, [r0], #1
movmi r3, r3, lsr #8
strcsb r3, [r0], #1
movcs r3, r3, lsr #8
strcsb r3, [r0], #1
movcs r3, r3, lsr #8
cmp r2, #4
blo partial_word_tail
/* Align destination to 32 bytes (cache line boundary) */
1: tst r0, #0x1c
beq 2f
ldr r5, [r1], #4
sub r2, r2, #4
orr r4, r3, r5, lsl lr
mov r3, r5, lsr r12
str r4, [r0], #4
cmp r2, #4
bhs 1b
blo partial_word_tail
/* copy 32 bytes at a time */
2: subs r2, r2, #32
blo less_than_thirtytwo
/* Use immediate mode for the shifts, because there is an extra cycle
* for register shifts, which could account for up to 50% of
* performance hit.
*/
cmp r12, #24
beq loop24
cmp r12, #8
beq loop8
loop16:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
pld [r1, #64]
subs r2, r2, #32
ldrhs r12, [r1], #4
orr r3, r3, r4, lsl #16
mov r4, r4, lsr #16
orr r4, r4, r5, lsl #16
mov r5, r5, lsr #16
orr r5, r5, r6, lsl #16
mov r6, r6, lsr #16
orr r6, r6, r7, lsl #16
mov r7, r7, lsr #16
orr r7, r7, r8, lsl #16
mov r8, r8, lsr #16
orr r8, r8, r9, lsl #16
mov r9, r9, lsr #16
orr r9, r9, r10, lsl #16
mov r10, r10, lsr #16
orr r10, r10, r11, lsl #16
stmia r0!, {r3,r4,r5,r6, r7,r8,r9,r10}
mov r3, r11, lsr #16
bhs 1b
b less_than_thirtytwo
loop8:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
pld [r1, #64]
subs r2, r2, #32
ldrhs r12, [r1], #4
orr r3, r3, r4, lsl #24
mov r4, r4, lsr #8
orr r4, r4, r5, lsl #24
mov r5, r5, lsr #8
orr r5, r5, r6, lsl #24
mov r6, r6, lsr #8
orr r6, r6, r7, lsl #24
mov r7, r7, lsr #8
orr r7, r7, r8, lsl #24
mov r8, r8, lsr #8
orr r8, r8, r9, lsl #24
mov r9, r9, lsr #8
orr r9, r9, r10, lsl #24
mov r10, r10, lsr #8
orr r10, r10, r11, lsl #24
stmia r0!, {r3,r4,r5,r6, r7,r8,r9,r10}
mov r3, r11, lsr #8
bhs 1b
b less_than_thirtytwo
loop24:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
pld [r1, #64]
subs r2, r2, #32
ldrhs r12, [r1], #4
orr r3, r3, r4, lsl #8
mov r4, r4, lsr #24
orr r4, r4, r5, lsl #8
mov r5, r5, lsr #24
orr r5, r5, r6, lsl #8
mov r6, r6, lsr #24
orr r6, r6, r7, lsl #8
mov r7, r7, lsr #24
orr r7, r7, r8, lsl #8
mov r8, r8, lsr #24
orr r8, r8, r9, lsl #8
mov r9, r9, lsr #24
orr r9, r9, r10, lsl #8
mov r10, r10, lsr #24
orr r10, r10, r11, lsl #8
stmia r0!, {r3,r4,r5,r6, r7,r8,r9,r10}
mov r3, r11, lsr #24
bhs 1b
less_than_thirtytwo:
/* copy the last 0 to 31 bytes of the source */
rsb r12, lr, #32 /* we corrupted r12, recompute it */
add r2, r2, #32
cmp r2, #4
blo partial_word_tail
1: ldr r5, [r1], #4
sub r2, r2, #4
orr r4, r3, r5, lsl lr
mov r3, r5, lsr r12
str r4, [r0], #4
cmp r2, #4
bhs 1b
partial_word_tail:
/* we have a partial word in the input buffer */
movs r5, lr, lsl #(31-3)
strmib r3, [r0], #1
movmi r3, r3, lsr #8
strcsb r3, [r0], #1
movcs r3, r3, lsr #8
strcsb r3, [r0], #1
/* Refill spilled registers from the stack. Don't update sp. */
ldmfd sp, {r5-r11}
copy_last_3_and_return:
movs r2, r2, lsl #31 /* copy remaining 0, 1, 2 or 3 bytes */
ldrmib r2, [r1], #1
ldrcsb r3, [r1], #1
ldrcsb r12,[r1]
strmib r2, [r0], #1
strcsb r3, [r0], #1
strcsb r12,[r0]
/* we're done! restore sp and spilled registers and return */
add sp, sp, #28
ldmfd sp!, {r0, r4, lr}
bx lr
END(memcpy)
#endif /* __ARM_ARCH__ < 7 */

View File

@ -1,614 +0,0 @@
/* Copyright (c) 2013, Linaro Limited
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Linaro Limited nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
This memcpy routine is optimised for Cortex-A15 cores and takes advantage
of VFP or NEON when built with the appropriate flags.
Assumptions:
ARMv6 (ARMv7-a if using Neon)
ARM state
Unaligned accesses
LDRD/STRD support unaligned word accesses
*/
#include <machine/cpu-features.h>
#include <private/bionic_asm.h>
.syntax unified
/* This implementation requires ARM state. */
.arm
#ifdef __ARM_NEON__
.fpu neon
.arch armv7-a
# define FRAME_SIZE 4
# define USE_VFP
# define USE_NEON
#elif !defined (__SOFTFP__)
.arch armv6
.fpu vfpv2
# define FRAME_SIZE 32
# define USE_VFP
#else
.arch armv6
# define FRAME_SIZE 32
#endif
/* Old versions of GAS incorrectly implement the NEON align semantics. */
#ifdef BROKEN_ASM_NEON_ALIGN
#define ALIGN(addr, align) addr,:align
#else
#define ALIGN(addr, align) addr:align
#endif
#define PC_OFFSET 8 /* PC pipeline compensation. */
#define INSN_SIZE 4
/* Call parameters. */
#define dstin r0
#define src r1
#define count r2
/* Locals. */
#define tmp1 r3
#define dst ip
#define tmp2 r10
#ifndef USE_NEON
/* For bulk copies using GP registers. */
#define A_l r2 /* Call-clobbered. */
#define A_h r3 /* Call-clobbered. */
#define B_l r4
#define B_h r5
#define C_l r6
#define C_h r7
#define D_l r8
#define D_h r9
#endif
/* Number of lines ahead to pre-fetch data. If you change this the code
below will need adjustment to compensate. */
#define prefetch_lines 5
#ifdef USE_VFP
.macro cpy_line_vfp vreg, base
vstr \vreg, [dst, #\base]
vldr \vreg, [src, #\base]
vstr d0, [dst, #\base + 8]
vldr d0, [src, #\base + 8]
vstr d1, [dst, #\base + 16]
vldr d1, [src, #\base + 16]
vstr d2, [dst, #\base + 24]
vldr d2, [src, #\base + 24]
vstr \vreg, [dst, #\base + 32]
vldr \vreg, [src, #\base + prefetch_lines * 64 - 32]
vstr d0, [dst, #\base + 40]
vldr d0, [src, #\base + 40]
vstr d1, [dst, #\base + 48]
vldr d1, [src, #\base + 48]
vstr d2, [dst, #\base + 56]
vldr d2, [src, #\base + 56]
.endm
.macro cpy_tail_vfp vreg, base
vstr \vreg, [dst, #\base]
vldr \vreg, [src, #\base]
vstr d0, [dst, #\base + 8]
vldr d0, [src, #\base + 8]
vstr d1, [dst, #\base + 16]
vldr d1, [src, #\base + 16]
vstr d2, [dst, #\base + 24]
vldr d2, [src, #\base + 24]
vstr \vreg, [dst, #\base + 32]
vstr d0, [dst, #\base + 40]
vldr d0, [src, #\base + 40]
vstr d1, [dst, #\base + 48]
vldr d1, [src, #\base + 48]
vstr d2, [dst, #\base + 56]
vldr d2, [src, #\base + 56]
.endm
#endif
.p2align 6
ENTRY(memcpy)
mov dst, dstin /* Preserve dstin, we need to return it. */
cmp count, #64
bge .Lcpy_not_short
/* Deal with small copies quickly by dropping straight into the
exit block. */
.Ltail63unaligned:
#ifdef USE_NEON
and tmp1, count, #0x38
rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE)
add pc, pc, tmp1
vld1.8 {d0}, [src]! /* 14 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 12 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 10 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 8 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 6 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 4 words to go. */
vst1.8 {d0}, [dst]!
vld1.8 {d0}, [src]! /* 2 words to go. */
vst1.8 {d0}, [dst]!
tst count, #4
ldrne tmp1, [src], #4
strne tmp1, [dst], #4
#else
/* Copy up to 15 full words of data. May not be aligned. */
/* Cannot use VFP for unaligned data. */
and tmp1, count, #0x3c
add dst, dst, tmp1
add src, src, tmp1
rsb tmp1, tmp1, #(60 - PC_OFFSET/2 + INSN_SIZE/2)
/* Jump directly into the sequence below at the correct offset. */
add pc, pc, tmp1, lsl #1
ldr tmp1, [src, #-60] /* 15 words to go. */
str tmp1, [dst, #-60]
ldr tmp1, [src, #-56] /* 14 words to go. */
str tmp1, [dst, #-56]
ldr tmp1, [src, #-52]
str tmp1, [dst, #-52]
ldr tmp1, [src, #-48] /* 12 words to go. */
str tmp1, [dst, #-48]
ldr tmp1, [src, #-44]
str tmp1, [dst, #-44]
ldr tmp1, [src, #-40] /* 10 words to go. */
str tmp1, [dst, #-40]
ldr tmp1, [src, #-36]
str tmp1, [dst, #-36]
ldr tmp1, [src, #-32] /* 8 words to go. */
str tmp1, [dst, #-32]
ldr tmp1, [src, #-28]
str tmp1, [dst, #-28]
ldr tmp1, [src, #-24] /* 6 words to go. */
str tmp1, [dst, #-24]
ldr tmp1, [src, #-20]
str tmp1, [dst, #-20]
ldr tmp1, [src, #-16] /* 4 words to go. */
str tmp1, [dst, #-16]
ldr tmp1, [src, #-12]
str tmp1, [dst, #-12]
ldr tmp1, [src, #-8] /* 2 words to go. */
str tmp1, [dst, #-8]
ldr tmp1, [src, #-4]
str tmp1, [dst, #-4]
#endif
lsls count, count, #31
ldrhcs tmp1, [src], #2
ldrbne src, [src] /* Src is dead, use as a scratch. */
strhcs tmp1, [dst], #2
strbne src, [dst]
bx lr
.Lcpy_not_short:
/* At least 64 bytes to copy, but don't know the alignment yet. */
str tmp2, [sp, #-FRAME_SIZE]!
and tmp2, src, #7
and tmp1, dst, #7
cmp tmp1, tmp2
bne .Lcpy_notaligned
#ifdef USE_VFP
/* Magic dust alert! Force VFP on Cortex-A9. Experiments show
that the FP pipeline is much better at streaming loads and
stores. This is outside the critical loop. */
vmov.f32 s0, s0
#endif
/* SRC and DST have the same mutual 32-bit alignment, but we may
still need to pre-copy some bytes to get to natural alignment.
We bring DST into full 64-bit alignment. */
lsls tmp2, dst, #29
beq 1f
rsbs tmp2, tmp2, #0
sub count, count, tmp2, lsr #29
ldrmi tmp1, [src], #4
strmi tmp1, [dst], #4
lsls tmp2, tmp2, #2
ldrhcs tmp1, [src], #2
ldrbne tmp2, [src], #1
strhcs tmp1, [dst], #2
strbne tmp2, [dst], #1
1:
subs tmp2, count, #64 /* Use tmp2 for count. */
blt .Ltail63aligned
cmp tmp2, #512
bge .Lcpy_body_long
.Lcpy_body_medium: /* Count in tmp2. */
#ifdef USE_VFP
1:
vldr d0, [src, #0]
subs tmp2, tmp2, #64
vldr d1, [src, #8]
vstr d0, [dst, #0]
vldr d0, [src, #16]
vstr d1, [dst, #8]
vldr d1, [src, #24]
vstr d0, [dst, #16]
vldr d0, [src, #32]
vstr d1, [dst, #24]
vldr d1, [src, #40]
vstr d0, [dst, #32]
vldr d0, [src, #48]
vstr d1, [dst, #40]
vldr d1, [src, #56]
vstr d0, [dst, #48]
add src, src, #64
vstr d1, [dst, #56]
add dst, dst, #64
bge 1b
tst tmp2, #0x3f
beq .Ldone
.Ltail63aligned: /* Count in tmp2. */
and tmp1, tmp2, #0x38
add dst, dst, tmp1
add src, src, tmp1
rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE)
add pc, pc, tmp1
vldr d0, [src, #-56] /* 14 words to go. */
vstr d0, [dst, #-56]
vldr d0, [src, #-48] /* 12 words to go. */
vstr d0, [dst, #-48]
vldr d0, [src, #-40] /* 10 words to go. */
vstr d0, [dst, #-40]
vldr d0, [src, #-32] /* 8 words to go. */
vstr d0, [dst, #-32]
vldr d0, [src, #-24] /* 6 words to go. */
vstr d0, [dst, #-24]
vldr d0, [src, #-16] /* 4 words to go. */
vstr d0, [dst, #-16]
vldr d0, [src, #-8] /* 2 words to go. */
vstr d0, [dst, #-8]
#else
sub src, src, #8
sub dst, dst, #8
1:
ldrd A_l, A_h, [src, #8]
strd A_l, A_h, [dst, #8]
ldrd A_l, A_h, [src, #16]
strd A_l, A_h, [dst, #16]
ldrd A_l, A_h, [src, #24]
strd A_l, A_h, [dst, #24]
ldrd A_l, A_h, [src, #32]
strd A_l, A_h, [dst, #32]
ldrd A_l, A_h, [src, #40]
strd A_l, A_h, [dst, #40]
ldrd A_l, A_h, [src, #48]
strd A_l, A_h, [dst, #48]
ldrd A_l, A_h, [src, #56]
strd A_l, A_h, [dst, #56]
ldrd A_l, A_h, [src, #64]!
strd A_l, A_h, [dst, #64]!
subs tmp2, tmp2, #64
bge 1b
tst tmp2, #0x3f
bne 1f
ldr tmp2,[sp], #FRAME_SIZE
bx lr
1:
add src, src, #8
add dst, dst, #8
.Ltail63aligned: /* Count in tmp2. */
/* Copy up to 7 d-words of data. Similar to Ltail63unaligned, but
we know that the src and dest are 32-bit aligned so we can use
LDRD/STRD to improve efficiency. */
/* TMP2 is now negative, but we don't care about that. The bottom
six bits still tell us how many bytes are left to copy. */
and tmp1, tmp2, #0x38
add dst, dst, tmp1
add src, src, tmp1
rsb tmp1, tmp1, #(56 - PC_OFFSET + INSN_SIZE)
add pc, pc, tmp1
ldrd A_l, A_h, [src, #-56] /* 14 words to go. */
strd A_l, A_h, [dst, #-56]
ldrd A_l, A_h, [src, #-48] /* 12 words to go. */
strd A_l, A_h, [dst, #-48]
ldrd A_l, A_h, [src, #-40] /* 10 words to go. */
strd A_l, A_h, [dst, #-40]
ldrd A_l, A_h, [src, #-32] /* 8 words to go. */
strd A_l, A_h, [dst, #-32]
ldrd A_l, A_h, [src, #-24] /* 6 words to go. */
strd A_l, A_h, [dst, #-24]
ldrd A_l, A_h, [src, #-16] /* 4 words to go. */
strd A_l, A_h, [dst, #-16]
ldrd A_l, A_h, [src, #-8] /* 2 words to go. */
strd A_l, A_h, [dst, #-8]
#endif
tst tmp2, #4
ldrne tmp1, [src], #4
strne tmp1, [dst], #4
lsls tmp2, tmp2, #31 /* Count (tmp2) now dead. */
ldrhcs tmp1, [src], #2
ldrbne tmp2, [src]
strhcs tmp1, [dst], #2
strbne tmp2, [dst]
.Ldone:
ldr tmp2, [sp], #FRAME_SIZE
bx lr
.Lcpy_body_long: /* Count in tmp2. */
/* Long copy. We know that there's at least (prefetch_lines * 64)
bytes to go. */
#ifdef USE_VFP
/* Don't use PLD. Instead, read some data in advance of the current
copy position into a register. This should act like a PLD
operation but we won't have to repeat the transfer. */
vldr d3, [src, #0]
vldr d4, [src, #64]
vldr d5, [src, #128]
vldr d6, [src, #192]
vldr d7, [src, #256]
vldr d0, [src, #8]
vldr d1, [src, #16]
vldr d2, [src, #24]
add src, src, #32
subs tmp2, tmp2, #prefetch_lines * 64 * 2
blt 2f
1:
cpy_line_vfp d3, 0
cpy_line_vfp d4, 64
cpy_line_vfp d5, 128
add dst, dst, #3 * 64
add src, src, #3 * 64
cpy_line_vfp d6, 0
cpy_line_vfp d7, 64
add dst, dst, #2 * 64
add src, src, #2 * 64
subs tmp2, tmp2, #prefetch_lines * 64
bge 1b
2:
cpy_tail_vfp d3, 0
cpy_tail_vfp d4, 64
cpy_tail_vfp d5, 128
add src, src, #3 * 64
add dst, dst, #3 * 64
cpy_tail_vfp d6, 0
vstr d7, [dst, #64]
vldr d7, [src, #64]
vstr d0, [dst, #64 + 8]
vldr d0, [src, #64 + 8]
vstr d1, [dst, #64 + 16]
vldr d1, [src, #64 + 16]
vstr d2, [dst, #64 + 24]
vldr d2, [src, #64 + 24]
vstr d7, [dst, #64 + 32]
add src, src, #96
vstr d0, [dst, #64 + 40]
vstr d1, [dst, #64 + 48]
vstr d2, [dst, #64 + 56]
add dst, dst, #128
add tmp2, tmp2, #prefetch_lines * 64
b .Lcpy_body_medium
#else
/* Long copy. Use an SMS style loop to maximize the I/O
bandwidth of the core. We don't have enough spare registers
to synthesise prefetching, so use PLD operations. */
/* Pre-bias src and dst. */
sub src, src, #8
sub dst, dst, #8
pld [src, #8]
pld [src, #72]
subs tmp2, tmp2, #64
pld [src, #136]
ldrd A_l, A_h, [src, #8]
strd B_l, B_h, [sp, #8]
ldrd B_l, B_h, [src, #16]
strd C_l, C_h, [sp, #16]
ldrd C_l, C_h, [src, #24]
strd D_l, D_h, [sp, #24]
pld [src, #200]
ldrd D_l, D_h, [src, #32]!
b 1f
.p2align 6
2:
pld [src, #232]
strd A_l, A_h, [dst, #40]
ldrd A_l, A_h, [src, #40]
strd B_l, B_h, [dst, #48]
ldrd B_l, B_h, [src, #48]
strd C_l, C_h, [dst, #56]
ldrd C_l, C_h, [src, #56]
strd D_l, D_h, [dst, #64]!
ldrd D_l, D_h, [src, #64]!
subs tmp2, tmp2, #64
1:
strd A_l, A_h, [dst, #8]
ldrd A_l, A_h, [src, #8]
strd B_l, B_h, [dst, #16]
ldrd B_l, B_h, [src, #16]
strd C_l, C_h, [dst, #24]
ldrd C_l, C_h, [src, #24]
strd D_l, D_h, [dst, #32]
ldrd D_l, D_h, [src, #32]
bcs 2b
/* Save the remaining bytes and restore the callee-saved regs. */
strd A_l, A_h, [dst, #40]
add src, src, #40
strd B_l, B_h, [dst, #48]
ldrd B_l, B_h, [sp, #8]
strd C_l, C_h, [dst, #56]
ldrd C_l, C_h, [sp, #16]
strd D_l, D_h, [dst, #64]
ldrd D_l, D_h, [sp, #24]
add dst, dst, #72
tst tmp2, #0x3f
bne .Ltail63aligned
ldr tmp2, [sp], #FRAME_SIZE
bx lr
#endif
.Lcpy_notaligned:
pld [src]
pld [src, #64]
/* There's at least 64 bytes to copy, but there is no mutual
alignment. */
/* Bring DST to 64-bit alignment. */
lsls tmp2, dst, #29
pld [src, #(2 * 64)]
beq 1f
rsbs tmp2, tmp2, #0
sub count, count, tmp2, lsr #29
ldrmi tmp1, [src], #4
strmi tmp1, [dst], #4
lsls tmp2, tmp2, #2
ldrbne tmp1, [src], #1
ldrhcs tmp2, [src], #2
strbne tmp1, [dst], #1
strhcs tmp2, [dst], #2
1:
pld [src, #(3 * 64)]
subs count, count, #64
ldrmi tmp2, [sp], #FRAME_SIZE
bmi .Ltail63unaligned
pld [src, #(4 * 64)]
#ifdef USE_NEON
vld1.8 {d0-d3}, [src]!
vld1.8 {d4-d7}, [src]!
subs count, count, #64
bmi 2f
1:
pld [src, #(4 * 64)]
vst1.8 {d0-d3}, [ALIGN (dst, 64)]!
vld1.8 {d0-d3}, [src]!
vst1.8 {d4-d7}, [ALIGN (dst, 64)]!
vld1.8 {d4-d7}, [src]!
subs count, count, #64
bpl 1b
2:
vst1.8 {d0-d3}, [ALIGN (dst, 64)]!
vst1.8 {d4-d7}, [ALIGN (dst, 64)]!
ands count, count, #0x3f
#else
/* Use an SMS style loop to maximize the I/O bandwidth. */
sub src, src, #4
sub dst, dst, #8
subs tmp2, count, #64 /* Use tmp2 for count. */
ldr A_l, [src, #4]
ldr A_h, [src, #8]
strd B_l, B_h, [sp, #8]
ldr B_l, [src, #12]
ldr B_h, [src, #16]
strd C_l, C_h, [sp, #16]
ldr C_l, [src, #20]
ldr C_h, [src, #24]
strd D_l, D_h, [sp, #24]
ldr D_l, [src, #28]
ldr D_h, [src, #32]!
b 1f
.p2align 6
2:
pld [src, #(5 * 64) - (32 - 4)]
strd A_l, A_h, [dst, #40]
ldr A_l, [src, #36]
ldr A_h, [src, #40]
strd B_l, B_h, [dst, #48]
ldr B_l, [src, #44]
ldr B_h, [src, #48]
strd C_l, C_h, [dst, #56]
ldr C_l, [src, #52]
ldr C_h, [src, #56]
strd D_l, D_h, [dst, #64]!
ldr D_l, [src, #60]
ldr D_h, [src, #64]!
subs tmp2, tmp2, #64
1:
strd A_l, A_h, [dst, #8]
ldr A_l, [src, #4]
ldr A_h, [src, #8]
strd B_l, B_h, [dst, #16]
ldr B_l, [src, #12]
ldr B_h, [src, #16]
strd C_l, C_h, [dst, #24]
ldr C_l, [src, #20]
ldr C_h, [src, #24]
strd D_l, D_h, [dst, #32]
ldr D_l, [src, #28]
ldr D_h, [src, #32]
bcs 2b
/* Save the remaining bytes and restore the callee-saved regs. */
strd A_l, A_h, [dst, #40]
add src, src, #36
strd B_l, B_h, [dst, #48]
ldrd B_l, B_h, [sp, #8]
strd C_l, C_h, [dst, #56]
ldrd C_l, C_h, [sp, #16]
strd D_l, D_h, [dst, #64]
ldrd D_l, D_h, [sp, #24]
add dst, dst, #72
ands count, tmp2, #0x3f
#endif
ldr tmp2, [sp], #FRAME_SIZE
bne .Ltail63unaligned
bx lr
END(memcpy)

View File

@ -0,0 +1,42 @@
/*
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
// Export this to maintain ABI compatibilty with libgcc, since compiler-rt
// doesn't use a table-driven implementation of __popcount.
const unsigned char __popcount_tab[256] = {
0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3,
3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4,
3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4,
4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5,
3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 1, 2,
2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5,
4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5,
5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5,
5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
};

View File

@ -1,6 +1,3 @@
/* $OpenBSD: setjmp.S,v 1.2 2004/02/01 05:40:52 drahn Exp $ */
/* $NetBSD: setjmp.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $ */
/*
* Copyright (c) 1997 Mark Brinicombe
* Copyright (c) 2010 Android Open Source Project.
@ -35,119 +32,203 @@
*/
#include <private/bionic_asm.h>
#include <machine/setjmp.h>
#include <machine/cpu-features.h>
/*
* C library -- setjmp, longjmp
*
* longjmp(a,v)
* will generate a "return(v)" from the last call to
* setjmp(a)
* by restoring registers from the stack.
* The previous signal state is restored.
*/
// According to the ARM AAPCS document, we only need to save
// the following registers:
//
// Core r4-r14
//
// VFP d8-d15 (see section 5.1.2.1)
//
// Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine
// calls; registers s0-s15 (d0-d7, q0-q3) do not need to be preserved
// (and can be used for passing arguments or returning results in standard
// procedure-call variants). Registers d16-d31 (q8-q15), if present, do
// not need to be preserved.
//
// FPSCR saved because glibc does.
// The internal structure of a jmp_buf is totally private.
// Current layout (may change in the future):
//
// word name description
// 0 sigflag/cookie setjmp cookie in top 31 bits, signal mask flag in low bit
// 1 sigmask signal mask (not used with _setjmp / _longjmp)
// 2 float_base base of float registers (d8 to d15)
// 18 float_state floating-point status and control register
// 19 core_base base of core registers (r4 to r14)
// 30 reserved reserved entries (room to grow)
// 64
//
// NOTE: float_base must be at an even word index, since the
// FP registers will be loaded/stored with instructions
// that expect 8-byte alignment.
#define _JB_SIGFLAG 0
#define _JB_SIGMASK (_JB_SIGFLAG+1)
#define _JB_FLOAT_BASE (_JB_SIGMASK+1)
#define _JB_FLOAT_STATE (_JB_FLOAT_BASE + (15-8+1)*2)
#define _JB_CORE_BASE (_JB_FLOAT_STATE+1)
ENTRY(setjmp)
/* Block all signals and retrieve the old signal mask */
stmfd sp!, {r0, r14}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset r14, 4
mov r0, #0x00000000
bl PIC_SYM(sigblock, PLT)
mov r1, r0
ldmfd sp!, {r0, r14}
.cfi_def_cfa_offset 0
/* Store signal mask */
str r1, [r0, #(_JB_SIGMASK * 4)]
ldr r1, .Lsetjmp_magic
str r1, [r0, #(_JB_MAGIC * 4)]
/* Store core registers */
add r1, r0, #(_JB_CORE_BASE * 4)
stmia r1, {r4-r14}
#ifdef __ARM_HAVE_VFP
/* Store floating-point registers */
add r1, r0, #(_JB_FLOAT_BASE * 4)
vstmia r1, {d8-d15}
/* Store floating-point state */
fmrx r1, fpscr
str r1, [r0, #(_JB_FLOAT_STATE * 4)]
#endif /* __ARM_HAVE_VFP */
mov r0, #0x00000000
bx lr
mov r1, #1
b sigsetjmp
END(setjmp)
.Lsetjmp_magic:
.word _JB_MAGIC_SETJMP
ENTRY(_setjmp)
mov r1, #0
b sigsetjmp
END(_setjmp)
ENTRY(longjmp)
ldr r2, .Lsetjmp_magic
ldr r3, [r0, #(_JB_MAGIC * 4)]
teq r2, r3
bne botch
/* Fetch signal mask */
ldr r2, [r0, #(_JB_SIGMASK * 4)]
/* Set signal mask */
stmfd sp!, {r0, r1, r14}
.cfi_def_cfa_offset 12
.cfi_rel_offset r0, 0
.cfi_rel_offset r1, 4
.cfi_rel_offset r14, 8
sub sp, sp, #4 /* align the stack */
.cfi_adjust_cfa_offset 4
mov r0, r2
bl PIC_SYM(sigsetmask, PLT)
add sp, sp, #4 /* unalign the stack */
.cfi_adjust_cfa_offset -4
ldmfd sp!, {r0, r1, r14}
.cfi_def_cfa_offset 0
#ifdef __ARM_HAVE_VFP
/* Restore floating-point registers */
add r2, r0, #(_JB_FLOAT_BASE * 4)
vldmia r2, {d8-d15}
/* Restore floating-point state */
ldr r2, [r0, #(_JB_FLOAT_STATE * 4)]
fmxr fpscr, r2
#endif /* __ARM_HAVE_VFP */
/* Restore core registers */
add r2, r0, #(_JB_CORE_BASE * 4)
ldmia r2, {r4-r14}
/* Validate sp and r14 */
teq sp, #0
teqne r14, #0
beq botch
/* Set return value */
mov r0, r1
teq r0, #0x00000000
moveq r0, #0x00000001
bx lr
#ifdef __ARM_26__
mov r15, r14
#else
mov r15, r14
#define MANGLE_REGISTERS 1
.macro m_mangle_registers reg
#if MANGLE_REGISTERS
eor r4, r4, \reg
eor r5, r5, \reg
eor r6, r6, \reg
eor r7, r7, \reg
eor r8, r8, \reg
eor r9, r9, \reg
eor r10, r10, \reg
eor r11, r11, \reg
eor r12, r12, \reg
eor r13, r13, \reg
eor r14, r14, \reg
#endif
.endm
/* validation failed, die die die. */
botch:
bl PIC_SYM(longjmperror, PLT)
bl PIC_SYM(abort, PLT)
b . - 8 /* Cannot get here */
END(longjmp)
.macro m_unmangle_registers reg
m_mangle_registers \reg
.endm
// int sigsetjmp(sigjmp_buf env, int save_signal_mask);
ENTRY(sigsetjmp)
stmfd sp!, {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
mov r0, r1
bl __bionic_setjmp_cookie_get
mov r1, r0
ldmfd sp, {r0}
// Save the setjmp cookie for later.
bic r2, r1, #1
stmfd sp!, {r2}
.cfi_adjust_cfa_offset 4
// Record the setjmp cookie and whether or not we're saving the signal mask.
str r1, [r0, #(_JB_SIGFLAG * 4)]
// Do we need to save the signal mask?
tst r1, #1
beq 1f
// Align the stack.
sub sp, #4
.cfi_adjust_cfa_offset 4
// Save the current signal mask.
add r2, r0, #(_JB_SIGMASK * 4)
mov r0, #2 // SIG_SETMASK
mov r1, #0
bl sigprocmask
// Unalign the stack.
add sp, #4
.cfi_adjust_cfa_offset -4
1:
ldmfd sp!, {r2}
.cfi_adjust_cfa_offset -4
ldmfd sp!, {r0, lr}
.cfi_adjust_cfa_offset -8
.cfi_restore r0
.cfi_restore lr
// Save core registers.
add r1, r0, #(_JB_CORE_BASE * 4)
m_mangle_registers r2
// ARM deprecates using sp in the register list for stmia.
stmia r1, {r4-r12, lr}
str sp, [r1, #(10 * 4)]
m_unmangle_registers r2
// Save floating-point registers.
add r1, r0, #(_JB_FLOAT_BASE * 4)
vstmia r1, {d8-d15}
// Save floating-point state.
fmrx r1, fpscr
str r1, [r0, #(_JB_FLOAT_STATE * 4)]
mov r0, #0
bx lr
END(sigsetjmp)
// void siglongjmp(sigjmp_buf env, int value);
ENTRY(siglongjmp)
stmfd sp!, {r0, r1, lr}
.cfi_def_cfa_offset 12
.cfi_rel_offset r0, 0
.cfi_rel_offset r1, 4
.cfi_rel_offset lr, 8
// Fetch the signal flag.
ldr r1, [r0, #(_JB_SIGFLAG * 4)]
// Do we need to restore the signal mask?
ands r1, r1, #1
beq 1f
// Restore the signal mask.
ldr r0, [r0, #(_JB_SIGMASK * 4)]
bl sigsetmask
1:
ldmfd sp!, {r0, r1, lr}
.cfi_adjust_cfa_offset -12
.cfi_restore r0
.cfi_restore r1
.cfi_restore lr
// Restore floating-point registers.
add r2, r0, #(_JB_FLOAT_BASE * 4)
vldmia r2, {d8-d15}
// Restore floating-point state.
ldr r2, [r0, #(_JB_FLOAT_STATE * 4)]
fmxr fpscr, r2
// Restore core registers.
ldr r3, [r0, #(_JB_SIGFLAG * 4)]
bic r3, r3, #1
add r2, r0, #(_JB_CORE_BASE * 4)
// ARM deprecates using sp in the register list for ldmia.
ldmia r2, {r4-r12, lr}
ldr sp, [r2, #(10 * 4)]
m_unmangle_registers r3
// Save the return value/address and check the setjmp cookie.
stmfd sp!, {r1, lr}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset lr, 4
mov r0, r3
bl __bionic_setjmp_cookie_check
// Restore return value/address.
ldmfd sp!, {r0, lr}
.cfi_adjust_cfa_offset -8
.cfi_restore lr
teq r0, #0
moveq r0, #1
bx lr
END(siglongjmp)
ALIAS_SYMBOL(longjmp, siglongjmp)
ALIAS_SYMBOL(_longjmp, siglongjmp)

View File

@ -1,66 +0,0 @@
/* $OpenBSD: sigsetjmp.S,v 1.2 2004/02/01 05:40:52 drahn Exp $ */
/* $NetBSD: sigsetjmp.S,v 1.3 2002/08/17 19:54:30 thorpej Exp $ */
/*
* Copyright (c) 1997 Mark Brinicombe
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Mark Brinicombe
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#define _ALIGN_TEXT .align 0
#include <private/bionic_asm.h>
#include <machine/setjmp.h>
/*
* C library -- sigsetjmp, siglongjmp
*
* longjmp(a,v)
* will generate a "return(v)" from the last call to
* setjmp(a, m)
* by restoring registers from the stack.
* The previous signal state is restored.
*/
ENTRY(sigsetjmp)
teq r1, #0
beq PIC_SYM(_setjmp, PLT)
b PIC_SYM(setjmp, PLT)
END(sigsetjmp)
.L_setjmp_magic:
.word _JB_MAGIC__SETJMP
ENTRY(siglongjmp)
ldr r2, .L_setjmp_magic
ldr r3, [r0]
teq r2, r3
beq PIC_SYM(_longjmp, PLT)
b PIC_SYM(longjmp, PLT)
END(siglongjmp)

View File

@ -1,317 +0,0 @@
/*
* Copyright (c) 2011 The Android Open Source Project
* Copyright (c) 2008 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <machine/cpu-features.h>
#include <private/bionic_asm.h>
.text
#ifdef __ARMEB__
#define SHFT2LSB lsl
#define SHFT2LSBEQ lsleq
#define SHFT2MSB lsr
#define SHFT2MSBEQ lsreq
#define MSB 0x000000ff
#define LSB 0xff000000
#else
#define SHFT2LSB lsr
#define SHFT2LSBEQ lsreq
#define SHFT2MSB lsl
#define SHFT2MSBEQ lsleq
#define MSB 0xff000000
#define LSB 0x000000ff
#endif
#define magic1(REG) REG
#define magic2(REG) REG, lsl #7
ENTRY(strcmp)
pld [r0, #0]
pld [r1, #0]
eor r2, r0, r1
tst r2, #3
/* Strings not at same byte offset from a word boundary. */
bne .Lstrcmp_unaligned
ands r2, r0, #3
bic r0, r0, #3
bic r1, r1, #3
ldr ip, [r0], #4
it eq
ldreq r3, [r1], #4
beq 1f
/* Although s1 and s2 have identical initial alignment, they are
* not currently word aligned. Rather than comparing bytes,
* make sure that any bytes fetched from before the addressed
* bytes are forced to 0xff. Then they will always compare
* equal.
*/
eor r2, r2, #3
lsl r2, r2, #3
mvn r3, #MSB
SHFT2LSB r2, r3, r2
ldr r3, [r1], #4
orr ip, ip, r2
orr r3, r3, r2
1:
/* Load the 'magic' constant 0x01010101. */
str r4, [sp, #-4]!
mov r4, #1
orr r4, r4, r4, lsl #8
orr r4, r4, r4, lsl #16
.p2align 2
4:
pld [r0, #8]
pld [r1, #8]
sub r2, ip, magic1(r4)
cmp ip, r3
itttt eq
/* check for any zero bytes in first word */
biceq r2, r2, ip
tsteq r2, magic2(r4)
ldreq ip, [r0], #4
ldreq r3, [r1], #4
beq 4b
2:
/* There's a zero or a different byte in the word */
SHFT2MSB r0, ip, #24
SHFT2LSB ip, ip, #8
cmp r0, #1
it cs
cmpcs r0, r3, SHFT2MSB #24
it eq
SHFT2LSBEQ r3, r3, #8
beq 2b
/* On a big-endian machine, r0 contains the desired byte in bits
* 0-7; on a little-endian machine they are in bits 24-31. In
* both cases the other bits in r0 are all zero. For r3 the
* interesting byte is at the other end of the word, but the
* other bits are not necessarily zero. We need a signed result
* representing the differnece in the unsigned bytes, so for the
* little-endian case we can't just shift the interesting bits up.
*/
#ifdef __ARMEB__
sub r0, r0, r3, lsr #24
#else
and r3, r3, #255
/* No RSB instruction in Thumb2 */
#ifdef __thumb2__
lsr r0, r0, #24
sub r0, r0, r3
#else
rsb r0, r3, r0, lsr #24
#endif
#endif
ldr r4, [sp], #4
bx lr
.Lstrcmp_unaligned:
wp1 .req r0
wp2 .req r1
b1 .req r2
w1 .req r4
w2 .req r5
t1 .req ip
@ r3 is scratch
/* First of all, compare bytes until wp1(sp1) is word-aligned. */
1:
tst wp1, #3
beq 2f
ldrb r2, [wp1], #1
ldrb r3, [wp2], #1
cmp r2, #1
it cs
cmpcs r2, r3
beq 1b
sub r0, r2, r3
bx lr
2:
str r5, [sp, #-4]!
str r4, [sp, #-4]!
mov b1, #1
orr b1, b1, b1, lsl #8
orr b1, b1, b1, lsl #16
and t1, wp2, #3
bic wp2, wp2, #3
ldr w1, [wp1], #4
ldr w2, [wp2], #4
cmp t1, #2
beq 2f
bhi 3f
/* Critical inner Loop: Block with 3 bytes initial overlap */
.p2align 2
1:
bic t1, w1, #MSB
cmp t1, w2, SHFT2LSB #8
sub r3, w1, b1
bic r3, r3, w1
bne 4f
ands r3, r3, b1, lsl #7
it eq
ldreq w2, [wp2], #4
bne 5f
eor t1, t1, w1
cmp t1, w2, SHFT2MSB #24
bne 6f
ldr w1, [wp1], #4
b 1b
4:
SHFT2LSB w2, w2, #8
b 8f
5:
#ifdef __ARMEB__
/* The syndrome value may contain false ones if the string ends
* with the bytes 0x01 0x00
*/
tst w1, #0xff000000
itt ne
tstne w1, #0x00ff0000
tstne w1, #0x0000ff00
beq 7f
#else
bics r3, r3, #0xff000000
bne 7f
#endif
ldrb w2, [wp2]
SHFT2LSB t1, w1, #24
#ifdef __ARMEB__
lsl w2, w2, #24
#endif
b 8f
6:
SHFT2LSB t1, w1, #24
and w2, w2, #LSB
b 8f
/* Critical inner Loop: Block with 2 bytes initial overlap */
.p2align 2
2:
SHFT2MSB t1, w1, #16
sub r3, w1, b1
SHFT2LSB t1, t1, #16
bic r3, r3, w1
cmp t1, w2, SHFT2LSB #16
bne 4f
ands r3, r3, b1, lsl #7
it eq
ldreq w2, [wp2], #4
bne 5f
eor t1, t1, w1
cmp t1, w2, SHFT2MSB #16
bne 6f
ldr w1, [wp1], #4
b 2b
5:
#ifdef __ARMEB__
/* The syndrome value may contain false ones if the string ends
* with the bytes 0x01 0x00
*/
tst w1, #0xff000000
it ne
tstne w1, #0x00ff0000
beq 7f
#else
lsls r3, r3, #16
bne 7f
#endif
ldrh w2, [wp2]
SHFT2LSB t1, w1, #16
#ifdef __ARMEB__
lsl w2, w2, #16
#endif
b 8f
6:
SHFT2MSB w2, w2, #16
SHFT2LSB t1, w1, #16
4:
SHFT2LSB w2, w2, #16
b 8f
/* Critical inner Loop: Block with 1 byte initial overlap */
.p2align 2
3:
and t1, w1, #LSB
cmp t1, w2, SHFT2LSB #24
sub r3, w1, b1
bic r3, r3, w1
bne 4f
ands r3, r3, b1, lsl #7
it eq
ldreq w2, [wp2], #4
bne 5f
eor t1, t1, w1
cmp t1, w2, SHFT2MSB #8
bne 6f
ldr w1, [wp1], #4
b 3b
4:
SHFT2LSB w2, w2, #24
b 8f
5:
/* The syndrome value may contain false ones if the string ends
* with the bytes 0x01 0x00
*/
tst w1, #LSB
beq 7f
ldr w2, [wp2], #4
6:
SHFT2LSB t1, w1, #8
bic w2, w2, #MSB
b 8f
7:
mov r0, #0
ldr r4, [sp], #4
ldr r5, [sp], #4
bx lr
8:
and r2, t1, #LSB
and r0, w2, #LSB
cmp r0, #1
it cs
cmpcs r0, r2
itt eq
SHFT2LSBEQ t1, t1, #8
SHFT2LSBEQ w2, w2, #8
beq 8b
sub r0, r2, r0
ldr r4, [sp], #4
ldr r5, [sp], #4
bx lr
END(strcmp)

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,13 +26,21 @@
* SUCH DAMAGE.
*/
extern void __cxa_finalize(void *);
extern void *__dso_handle;
#include <private/bionic_asm.h>
__attribute__((visibility("hidden"),destructor))
void __on_dlclose() {
__cxa_finalize(&__dso_handle);
}
ENTRY(vfork)
// __get_tls()[TLS_SLOT_THREAD_ID]->cached_pid_ = 0
mrc p15, 0, r3, c13, c0, 3
ldr r3, [r3, #4]
mov r0, #0
str r0, [r3, #12]
#include "../../arch-common/bionic/__dso_handle_so.h"
#include "atexit.h"
mov ip, r7
ldr r7, =__NR_vfork
swi #0
mov r7, ip
cmn r0, #(MAX_ERRNO + 1)
bxls lr
neg r0, r0
b __set_errno_internal
END(vfork)

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,196 +26,7 @@
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <private/libc_events.h>
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "memcpy_base.S"
.syntax unified
.thumb
.thumb_func
// Get the length of src string, then get the source of the dst string.
// Check that the two lengths together don't exceed the threshold, then
// do a memcpy of the data.
ENTRY(__strcat_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
push {r4, r5}
.save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
mov lr, r2
// Save the dst register to r5
mov r5, r0
// Zero out r4
eor r4, r4, r4
// r1 contains the address of the string to count.
.L_strlen_start:
mov r0, r1
ands r3, r1, #7
beq .L_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .L_align_to_32
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
.L_align_to_32:
bcc .L_align_to_64
ands ip, r3, #2
beq .L_align_to_64
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
.L_align_to_64:
tst r3, #4
beq .L_mainloop
ldr r3, [r1], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
.p2align 2
.L_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .L_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
b .L_mainloop
.L_update_count_and_finish:
sub r3, r1, r0
sub r3, r3, #1
b .L_finish
.L_zero_in_first_register:
sub r3, r1, r0
lsls r2, ip, #17
bne .L_sub8_and_finish
bcs .L_sub7_and_finish
lsls ip, ip, #1
bne .L_sub6_and_finish
sub r3, r3, #5
b .L_finish
.L_sub8_and_finish:
sub r3, r3, #8
b .L_finish
.L_sub7_and_finish:
sub r3, r3, #7
b .L_finish
.L_sub6_and_finish:
sub r3, r3, #6
b .L_finish
.L_zero_in_second_register:
sub r3, r1, r0
lsls r2, ip, #17
bne .L_sub4_and_finish
bcs .L_sub3_and_finish
lsls ip, ip, #1
bne .L_sub2_and_finish
sub r3, r3, #1
b .L_finish
.L_sub4_and_finish:
sub r3, r3, #4
b .L_finish
.L_sub3_and_finish:
sub r3, r3, #3
b .L_finish
.L_sub2_and_finish:
sub r3, r3, #2
.L_finish:
cmp r4, #0
bne .L_strlen_done
// Time to get the dst string length.
mov r1, r5
// Save the original source address to r5.
mov r5, r0
// Save the current length (adding 1 for the terminator).
add r4, r3, #1
b .L_strlen_start
// r0 holds the pointer to the dst string.
// r3 holds the dst string length.
// r4 holds the src string length + 1.
.L_strlen_done:
add r2, r3, r4
cmp r2, lr
bhi __strcat_chk_failed
// Set up the registers for the memcpy code.
mov r1, r5
pld [r1, #64]
mov r2, r4
add r0, r0, r3
pop {r4, r5}
END(__strcat_chk)
#define MEMCPY_BASE __strcat_chk_memcpy_base
#define MEMCPY_BASE_ALIGNED __strcat_chk_memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcat_chk_failed)
.save {r0, lr}
.save {r4, r5}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcat_chk_failed)
.data
error_string:
.string "strcat: prevented write past end of buffer"
#include "__strcat_chk_common.S"

View File

@ -0,0 +1,212 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <private/libc_events.h>
.syntax unified
.thumb
.thumb_func
// Get the length of src string, then get the source of the dst string.
// Check that the two lengths together don't exceed the threshold, then
// do a memcpy of the data.
ENTRY(__strcat_chk)
pld [r0, #0]
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
push {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
mov lr, r2
// Save the dst register to r5
mov r5, r0
// Zero out r4
eor r4, r4, r4
// r1 contains the address of the string to count.
.L_strlen_start:
mov r0, r1
ands r3, r1, #7
beq .L_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .L_align_to_32
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
.L_align_to_32:
bcc .L_align_to_64
ands ip, r3, #2
beq .L_align_to_64
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
ldrb r2, [r1], #1
cbz r2, .L_update_count_and_finish
.L_align_to_64:
tst r3, #4
beq .L_mainloop
ldr r3, [r1], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
.p2align 2
.L_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .L_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
b .L_mainloop
.L_update_count_and_finish:
sub r3, r1, r0
sub r3, r3, #1
b .L_finish
.L_zero_in_first_register:
sub r3, r1, r0
lsls r2, ip, #17
bne .L_sub8_and_finish
bcs .L_sub7_and_finish
lsls ip, ip, #1
bne .L_sub6_and_finish
sub r3, r3, #5
b .L_finish
.L_sub8_and_finish:
sub r3, r3, #8
b .L_finish
.L_sub7_and_finish:
sub r3, r3, #7
b .L_finish
.L_sub6_and_finish:
sub r3, r3, #6
b .L_finish
.L_zero_in_second_register:
sub r3, r1, r0
lsls r2, ip, #17
bne .L_sub4_and_finish
bcs .L_sub3_and_finish
lsls ip, ip, #1
bne .L_sub2_and_finish
sub r3, r3, #1
b .L_finish
.L_sub4_and_finish:
sub r3, r3, #4
b .L_finish
.L_sub3_and_finish:
sub r3, r3, #3
b .L_finish
.L_sub2_and_finish:
sub r3, r3, #2
.L_finish:
cmp r4, #0
bne .L_strlen_done
// Time to get the dst string length.
mov r1, r5
// Save the original source address to r5.
mov r5, r0
// Save the current length (adding 1 for the terminator).
add r4, r3, #1
b .L_strlen_start
// r0 holds the pointer to the dst string.
// r3 holds the dst string length.
// r4 holds the src string length + 1.
.L_strlen_done:
add r2, r3, r4
cmp r2, lr
bhi .L_strcat_chk_failed
// Set up the registers for the memcpy code.
mov r1, r5
pld [r1, #64]
mov r2, r4
add r0, r0, r3
pop {r4, r5}
.cfi_adjust_cfa_offset -8
.cfi_restore r4
.cfi_restore r5
#include MEMCPY_BASE
// Undo the above cfi directives
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.L_strcat_chk_failed:
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcat_chk)
.data
error_string:
.string "strcat: prevented write past end of buffer"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,157 +26,7 @@
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <private/libc_events.h>
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "memcpy_base.S"
.syntax unified
.thumb
.thumb_func
// Get the length of the source string first, then do a memcpy of the data
// instead of a strcpy.
ENTRY(__strcpy_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
mov lr, r2
mov r0, r1
ands r3, r1, #7
beq .L_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .L_align_to_32
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
.L_align_to_32:
bcc .L_align_to_64
ands ip, r3, #2
beq .L_align_to_64
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
.L_align_to_64:
tst r3, #4
beq .L_mainloop
ldr r3, [r0], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
.p2align 2
.L_mainloop:
ldrd r2, r3, [r0], #8
pld [r0, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .L_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
b .L_mainloop
.L_update_count_and_finish:
sub r3, r0, r1
sub r3, r3, #1
b .L_check_size
.L_zero_in_first_register:
sub r3, r0, r1
lsls r2, ip, #17
bne .L_sub8_and_finish
bcs .L_sub7_and_finish
lsls ip, ip, #1
bne .L_sub6_and_finish
sub r3, r3, #5
b .L_check_size
.L_sub8_and_finish:
sub r3, r3, #8
b .L_check_size
.L_sub7_and_finish:
sub r3, r3, #7
b .L_check_size
.L_sub6_and_finish:
sub r3, r3, #6
b .L_check_size
.L_zero_in_second_register:
sub r3, r0, r1
lsls r2, ip, #17
bne .L_sub4_and_finish
bcs .L_sub3_and_finish
lsls ip, ip, #1
bne .L_sub2_and_finish
sub r3, r3, #1
b .L_check_size
.L_sub4_and_finish:
sub r3, r3, #4
b .L_check_size
.L_sub3_and_finish:
sub r3, r3, #3
b .L_check_size
.L_sub2_and_finish:
sub r3, r3, #2
.L_check_size:
pld [r1, #0]
pld [r1, #64]
ldr r0, [sp]
cmp r3, lr
bhs __strcpy_chk_failed
// Add 1 for copy length to get the string terminator.
add r2, r3, #1
END(__strcpy_chk)
#define MEMCPY_BASE __strcpy_chk_memcpy_base
#define MEMCPY_BASE_ALIGNED __strcpy_chk_memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcpy_chk_failed)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcpy_chk_failed)
.data
error_string:
.string "strcpy: prevented write past end of buffer"
#include "__strcpy_chk_common.S"

View File

@ -0,0 +1,173 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <private/libc_events.h>
.syntax unified
.thumb
.thumb_func
// Get the length of the source string first, then do a memcpy of the data
// instead of a strcpy.
ENTRY(__strcpy_chk)
pld [r0, #0]
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
mov lr, r2
mov r0, r1
ands r3, r1, #7
beq .L_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .L_align_to_32
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
.L_align_to_32:
bcc .L_align_to_64
ands ip, r3, #2
beq .L_align_to_64
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
ldrb r2, [r0], #1
cbz r2, .L_update_count_and_finish
.L_align_to_64:
tst r3, #4
beq .L_mainloop
ldr r3, [r0], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
.p2align 2
.L_mainloop:
ldrd r2, r3, [r0], #8
pld [r0, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .L_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .L_zero_in_second_register
b .L_mainloop
.L_update_count_and_finish:
sub r3, r0, r1
sub r3, r3, #1
b .L_check_size
.L_zero_in_first_register:
sub r3, r0, r1
lsls r2, ip, #17
bne .L_sub8_and_finish
bcs .L_sub7_and_finish
lsls ip, ip, #1
bne .L_sub6_and_finish
sub r3, r3, #5
b .L_check_size
.L_sub8_and_finish:
sub r3, r3, #8
b .L_check_size
.L_sub7_and_finish:
sub r3, r3, #7
b .L_check_size
.L_sub6_and_finish:
sub r3, r3, #6
b .L_check_size
.L_zero_in_second_register:
sub r3, r0, r1
lsls r2, ip, #17
bne .L_sub4_and_finish
bcs .L_sub3_and_finish
lsls ip, ip, #1
bne .L_sub2_and_finish
sub r3, r3, #1
b .L_check_size
.L_sub4_and_finish:
sub r3, r3, #4
b .L_check_size
.L_sub3_and_finish:
sub r3, r3, #3
b .L_check_size
.L_sub2_and_finish:
sub r3, r3, #2
.L_check_size:
pld [r1, #0]
pld [r1, #64]
ldr r0, [sp]
cmp r3, lr
bhs .L_strcpy_chk_failed
// Add 1 for copy length to get the string terminator.
add r2, r3, #1
#include MEMCPY_BASE
.L_strcpy_chk_failed:
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcpy_chk)
.data
error_string:
.string "strcpy: prevented write past end of buffer"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -25,81 +25,8 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// Prototype: void *memcpy (void *dst, const void *src, size_t count).
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "memcpy_base.S"
#include <private/bionic_asm.h>
#include <private/libc_events.h>
.text
.syntax unified
.fpu neon
ENTRY(__memcpy_chk)
cmp r2, r3
bhi __memcpy_chk_fail
// Fall through to memcpy...
END(__memcpy_chk)
ENTRY(memcpy)
pld [r1, #64]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
END(memcpy)
#define MEMCPY_BASE __memcpy_base
#define MEMCPY_BASE_ALIGNED __memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__memcpy_chk_fail)
// Preserve lr for backtrace.
push {lr}
.save {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+8)
END(__memcpy_chk_fail)
.data
error_string:
.string "memcpy: prevented write past end of buffer"
#include "memcpy_common.S"

View File

@ -53,12 +53,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
ENTRY_PRIVATE(MEMCPY_BASE)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
.L_memcpy_base:
// Assumes that n >= 0, and dst, src are valid pointers.
// For any sizes less than 832 use the neon code that doesn't
// care about the src alignment. This avoids any checks
@ -169,29 +164,19 @@ ENTRY_PRIVATE(MEMCPY_BASE)
eor r3, r0, r1
ands r3, r3, #0x3
bne .L_copy_unknown_alignment
END(MEMCPY_BASE)
ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
// To try and improve performance, stack layout changed,
// i.e., not keeping the stack looking like users expect
// (highest numbered register at highest address).
strd r4, r5, [sp, #-8]!
.save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
strd r6, r7, [sp, #-8]!
.save {r6, r7}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r6, 0
.cfi_rel_offset r7, 0
.cfi_rel_offset r7, 4
strd r8, r9, [sp, #-8]!
.save {r8, r9}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r8, 0
.cfi_rel_offset r9, 4
@ -296,10 +281,28 @@ ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED)
// Restore registers: optimized pop {r0, pc}
ldrd r8, r9, [sp], #8
.cfi_adjust_cfa_offset -8
.cfi_restore r8
.cfi_restore r9
ldrd r6, r7, [sp], #8
.cfi_adjust_cfa_offset -8
.cfi_restore r6
.cfi_restore r7
ldrd r4, r5, [sp], #8
.cfi_adjust_cfa_offset -8
.cfi_restore r4
.cfi_restore r5
pop {r0, pc}
// Put the cfi directives back for the below instructions.
.cfi_adjust_cfa_offset 24
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.cfi_rel_offset r6, 8
.cfi_rel_offset r7, 12
.cfi_rel_offset r8, 16
.cfi_rel_offset r9, 20
.L_dst_not_word_aligned:
// Align dst to word.
rsb ip, ip, #4
@ -320,4 +323,12 @@ ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED)
// Src is guaranteed to be at least word aligned by this point.
b .L_word_aligned
END(MEMCPY_BASE_ALIGNED)
// Undo any cfi directives from above.
.cfi_adjust_cfa_offset -24
.cfi_restore r4
.cfi_restore r5
.cfi_restore r6
.cfi_restore r7
.cfi_restore r8
.cfi_restore r9

View File

@ -0,0 +1,103 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
#include <private/libc_events.h>
.text
.syntax unified
.fpu neon
ENTRY(__memcpy_chk)
cmp r2, r3
bhi .L_memcpy_chk_fail
// Fall through to memcpy...
END(__memcpy_chk)
// Prototype: void *memcpy (void *dst, const void *src, size_t count).
ENTRY(memcpy)
pld [r1, #64]
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
#include MEMCPY_BASE
// Undo the cfi instructions from above.
.cfi_def_cfa_offset 0
.cfi_restore r0
.cfi_restore lr
.L_memcpy_chk_fail:
// Preserve lr for backtrace.
push {lr}
.cfi_adjust_cfa_offset 4
.cfi_rel_offset lr, 0
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+8)
END(memcpy)
.data
error_string:
.string "memcpy: prevented write past end of buffer"

View File

@ -44,7 +44,6 @@ ENTRY(__memset_chk)
bls .L_done
// Preserve lr for backtrace.
.save {lr}
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@ -68,7 +67,6 @@ ENTRY(bzero)
END(bzero)
ENTRY(memset)
.save {r0}
stmfd sp!, {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0

View File

@ -26,9 +26,5 @@
* SUCH DAMAGE.
*/
#ifndef _SYS_SHM_H_
#define _SYS_SHM_H_
#include <linux/shm.h>
#endif /* _SYS_SHM_H_ */
#define STPCPY
#include "string_copy.S"

View File

@ -70,7 +70,7 @@
.macro m_scan_byte
ldrb r3, [r0]
cbz r3, strcat_r0_scan_done
cbz r3, .L_strcat_r0_scan_done
add r0, #1
.endm // m_scan_byte
@ -84,10 +84,10 @@ ENTRY(strcat)
// Quick check to see if src is empty.
ldrb r2, [r1]
pld [r1, #0]
cbnz r2, strcat_continue
cbnz r2, .L_strcat_continue
bx lr
strcat_continue:
.L_strcat_continue:
// To speed up really small dst strings, unroll checking the first 4 bytes.
m_push
m_scan_byte
@ -96,95 +96,102 @@ strcat_continue:
m_scan_byte
ands r3, r0, #7
beq strcat_mainloop
beq .L_strcat_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcat_align_to_32
beq .L_strcat_align_to_32
ldrb r5, [r0]
cbz r5, strcat_r0_scan_done
cbz r5, .L_strcat_r0_scan_done
add r0, r0, #1
strcat_align_to_32:
bcc strcat_align_to_64
.L_strcat_align_to_32:
bcc .L_strcat_align_to_64
ldrb r2, [r0]
cbz r2, strcat_r0_scan_done
cbz r2, .L_strcat_r0_scan_done
add r0, r0, #1
ldrb r4, [r0]
cbz r4, strcat_r0_scan_done
cbz r4, .L_strcat_r0_scan_done
add r0, r0, #1
strcat_align_to_64:
.L_strcat_align_to_64:
tst r3, #4
beq strcat_mainloop
beq .L_strcat_mainloop
ldr r3, [r0], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcat_zero_in_second_register
b strcat_mainloop
bne .L_strcat_zero_in_second_register
b .L_strcat_mainloop
strcat_r0_scan_done:
.L_strcat_r0_scan_done:
// For short copies, hard-code checking the first 8 bytes since this
// new code doesn't win until after about 8 bytes.
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=strcpy_continue
m_copy_byte reg=r2, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=.L_strcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=.L_strcpy_continue
strcpy_finish:
.L_strcpy_finish:
m_pop
strcpy_continue:
.L_strcpy_continue:
ands r3, r0, #7
beq strcpy_check_src_align
beq .L_strcpy_check_src_align
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcpy_align_to_32
beq .L_strcpy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
cbz r2, .L_strcpy_complete
strcpy_align_to_32:
bcc strcpy_align_to_64
.L_strcpy_align_to_32:
bcc .L_strcpy_align_to_64
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
cbz r2, .L_strcpy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
cbz r2, .L_strcpy_complete
strcpy_align_to_64:
.L_strcpy_align_to_64:
tst r3, #4
beq strcpy_check_src_align
ldr r2, [r1], #4
beq .L_strcpy_check_src_align
// Read one byte at a time since we don't know the src alignment
// and we don't want to read into a different page.
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .L_strcpy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .L_strcpy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .L_strcpy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .L_strcpy_complete
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
str r2, [r0], #4
strcpy_check_src_align:
.L_strcpy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne strcpy_unaligned_copy
bne .L_strcpy_unaligned_copy
.p2align 2
strcpy_mainloop:
.L_strcpy_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
@ -192,128 +199,128 @@ strcpy_mainloop:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_mainloop
b .L_strcpy_mainloop
strcpy_complete:
.L_strcpy_complete:
m_pop
strcpy_zero_in_first_register:
.L_strcpy_zero_in_first_register:
lsls lr, ip, #17
bne strcpy_copy1byte
bcs strcpy_copy2bytes
bne .L_strcpy_copy1byte
bcs .L_strcpy_copy2bytes
lsls ip, ip, #1
bne strcpy_copy3bytes
bne .L_strcpy_copy3bytes
strcpy_copy4bytes:
.L_strcpy_copy4bytes:
// Copy 4 bytes to the destiniation.
str r2, [r0]
m_pop
strcpy_copy1byte:
.L_strcpy_copy1byte:
strb r2, [r0]
m_pop
strcpy_copy2bytes:
.L_strcpy_copy2bytes:
strh r2, [r0]
m_pop
strcpy_copy3bytes:
.L_strcpy_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_pop
strcpy_zero_in_second_register:
.L_strcpy_zero_in_second_register:
lsls lr, ip, #17
bne strcpy_copy5bytes
bcs strcpy_copy6bytes
bne .L_strcpy_copy5bytes
bcs .L_strcpy_copy6bytes
lsls ip, ip, #1
bne strcpy_copy7bytes
bne .L_strcpy_copy7bytes
// Copy 8 bytes to the destination.
strd r2, r3, [r0]
m_pop
strcpy_copy5bytes:
.L_strcpy_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
m_pop
strcpy_copy6bytes:
.L_strcpy_copy6bytes:
str r2, [r0], #4
strh r3, [r0]
m_pop
strcpy_copy7bytes:
.L_strcpy_copy7bytes:
str r2, [r0], #4
strh r3, [r0], #2
lsr r3, #16
strb r3, [r0]
m_pop
strcpy_unaligned_copy:
.L_strcpy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
strcpy_unaligned_branchtable:
.L_strcpy_unaligned_branchtable:
.byte 0
.byte ((strcpy_unalign7 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign6 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign5 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign4 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign3 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign2 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign1 - strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign7 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign6 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign5 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign4 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign3 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign2 - .L_strcpy_unaligned_branchtable)/2)
.byte ((.L_strcpy_unalign1 - .L_strcpy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
strcpy_unalign7:
.L_strcpy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
ldrb r3, [r1]
cbz r3, strcpy_unalign7_copy5bytes
cbz r3, .L_strcpy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign7_copy6bytes
cbz r4, .L_strcpy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, strcpy_unalign7_copy7bytes
cbz r5, .L_strcpy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
strd r2, r3, [r0], #8
beq strcpy_unalign_return
b strcpy_unalign7
beq .L_strcpy_unalign_return
b .L_strcpy_unalign7
strcpy_unalign7_copy5bytes:
.L_strcpy_unalign7_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
strcpy_unalign_return:
.L_strcpy_unalign_return:
m_pop
strcpy_unalign7_copy6bytes:
.L_strcpy_unalign7_copy6bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0], #1
m_pop
strcpy_unalign7_copy7bytes:
.L_strcpy_unalign7_copy7bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0], #1
@ -322,41 +329,41 @@ strcpy_unalign7_copy7bytes:
.p2align 2
// Can read 6 bytes before possibly crossing a page.
strcpy_unalign6:
.L_strcpy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
cbz r4, .L_strcpy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, strcpy_unalign_copy6bytes
cbz r5, .L_strcpy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq strcpy_copy7bytes
beq .L_strcpy_copy7bytes
lsrs ip, r3, #24
strd r2, r3, [r0], #8
beq strcpy_unalign_return
b strcpy_unalign6
beq .L_strcpy_unalign_return
b .L_strcpy_unalign6
.p2align 2
// Can read 5 bytes before possibly crossing a page.
strcpy_unalign5:
.L_strcpy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
cbz r4, .L_strcpy_unalign_copy5bytes
ldr r3, [r1], #4
@ -365,17 +372,17 @@ strcpy_unalign5:
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign5
b .L_strcpy_unalign5
strcpy_unalign_copy5bytes:
.L_strcpy_unalign_copy5bytes:
str r2, [r0], #4
strb r4, [r0]
m_pop
strcpy_unalign_copy6bytes:
.L_strcpy_unalign_copy6bytes:
str r2, [r0], #4
strb r4, [r0], #1
strb r5, [r0]
@ -383,13 +390,13 @@ strcpy_unalign_copy6bytes:
.p2align 2
// Can read 4 bytes before possibly crossing a page.
strcpy_unalign4:
.L_strcpy_unalign4:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
ldr r3, [r1], #4
pld [r1, #64]
@ -397,20 +404,20 @@ strcpy_unalign4:
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign4
b .L_strcpy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
strcpy_unalign3:
.L_strcpy_unalign3:
ldrb r2, [r1]
cbz r2, strcpy_unalign3_copy1byte
cbz r2, .L_strcpy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign3_copy2bytes
cbz r3, .L_strcpy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, strcpy_unalign3_copy3bytes
cbz r4, .L_strcpy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
@ -418,26 +425,26 @@ strcpy_unalign3:
pld [r1, #64]
lsrs lr, r2, #24
beq strcpy_copy4bytes
beq .L_strcpy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign3
b .L_strcpy_unalign3
strcpy_unalign3_copy1byte:
.L_strcpy_unalign3_copy1byte:
strb r2, [r0]
m_pop
strcpy_unalign3_copy2bytes:
.L_strcpy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_pop
strcpy_unalign3_copy3bytes:
.L_strcpy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
@ -445,34 +452,34 @@ strcpy_unalign3_copy3bytes:
.p2align 2
// Can read 2 bytes before possibly crossing a page.
strcpy_unalign2:
.L_strcpy_unalign2:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
cbz r2, .L_strcpy_unalign_copy1byte
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign_copy2bytes
cbz r4, .L_strcpy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq strcpy_copy3bytes
beq .L_strcpy_copy3bytes
lsrs ip, r2, #24
beq strcpy_copy4bytes
beq .L_strcpy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign2
b .L_strcpy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
strcpy_unalign1:
.L_strcpy_unalign1:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
cbz r2, .L_strcpy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
@ -482,27 +489,27 @@ strcpy_unalign1:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .L_strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .L_strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign1
b .L_strcpy_unalign1
strcpy_unalign_copy1byte:
.L_strcpy_unalign_copy1byte:
strb r2, [r0]
m_pop
strcpy_unalign_copy2bytes:
.L_strcpy_unalign_copy2bytes:
strb r2, [r0], #1
strb r4, [r0]
m_pop
.p2align 2
strcat_mainloop:
.L_strcat_mainloop:
ldrd r2, r3, [r0], #8
pld [r0, #64]
@ -510,59 +517,59 @@ strcat_mainloop:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcat_zero_in_first_register
bne .L_strcat_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcat_zero_in_second_register
b strcat_mainloop
bne .L_strcat_zero_in_second_register
b .L_strcat_mainloop
strcat_zero_in_first_register:
.L_strcat_zero_in_first_register:
// Prefetch the src now, it's going to be used soon.
pld [r1, #0]
lsls lr, ip, #17
bne strcat_sub8
bcs strcat_sub7
bne .L_strcat_sub8
bcs .L_strcat_sub7
lsls ip, ip, #1
bne strcat_sub6
bne .L_strcat_sub6
sub r0, r0, #5
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub8:
.L_strcat_sub8:
sub r0, r0, #8
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub7:
.L_strcat_sub7:
sub r0, r0, #7
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub6:
.L_strcat_sub6:
sub r0, r0, #6
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_zero_in_second_register:
.L_strcat_zero_in_second_register:
// Prefetch the src now, it's going to be used soon.
pld [r1, #0]
lsls lr, ip, #17
bne strcat_sub4
bcs strcat_sub3
bne .L_strcat_sub4
bcs .L_strcat_sub3
lsls ip, ip, #1
bne strcat_sub2
bne .L_strcat_sub2
sub r0, r0, #1
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub4:
.L_strcat_sub4:
sub r0, r0, #4
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub3:
.L_strcat_sub3:
sub r0, r0, #3
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
strcat_sub2:
.L_strcat_sub2:
sub r0, r0, #2
b strcat_r0_scan_done
b .L_strcat_r0_scan_done
END(strcat)

View File

@ -168,7 +168,6 @@ ENTRY(strcmp)
bne .L_do_align
/* Fast path. */
.save {r4-r7}
init
.L_doubleword_aligned:

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2014 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -25,427 +25,6 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
.syntax unified
.thumb
.thumb_func
.macro m_push
push {r0, r4, r5, lr}
.endm // m_push
.macro m_pop
pop {r0, r4, r5, pc}
.endm // m_pop
.macro m_copy_byte reg, cmd, label
ldrb \reg, [r1], #1
strb \reg, [r0], #1
\cmd \reg, \label
.endm // m_copy_byte
ENTRY(strcpy)
// For short copies, hard-code checking the first 8 bytes since this
// new code doesn't win until after about 8 bytes.
m_push
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=strcpy_continue
strcpy_finish:
m_pop
strcpy_continue:
pld [r1, #0]
ands r3, r0, #7
beq strcpy_check_src_align
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcpy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
strcpy_align_to_32:
bcc strcpy_align_to_64
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
strcpy_align_to_64:
tst r3, #4
beq strcpy_check_src_align
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
str r2, [r0], #4
strcpy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne strcpy_unaligned_copy
.p2align 2
strcpy_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_mainloop
strcpy_complete:
m_pop
strcpy_zero_in_first_register:
lsls lr, ip, #17
bne strcpy_copy1byte
bcs strcpy_copy2bytes
lsls ip, ip, #1
bne strcpy_copy3bytes
strcpy_copy4bytes:
// Copy 4 bytes to the destiniation.
str r2, [r0]
m_pop
strcpy_copy1byte:
strb r2, [r0]
m_pop
strcpy_copy2bytes:
strh r2, [r0]
m_pop
strcpy_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_pop
strcpy_zero_in_second_register:
lsls lr, ip, #17
bne strcpy_copy5bytes
bcs strcpy_copy6bytes
lsls ip, ip, #1
bne strcpy_copy7bytes
// Copy 8 bytes to the destination.
strd r2, r3, [r0]
m_pop
strcpy_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
m_pop
strcpy_copy6bytes:
str r2, [r0], #4
strh r3, [r0]
m_pop
strcpy_copy7bytes:
str r2, [r0], #4
strh r3, [r0], #2
lsr r3, #16
strb r3, [r0]
m_pop
strcpy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
strcpy_unaligned_branchtable:
.byte 0
.byte ((strcpy_unalign7 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign6 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign5 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign4 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign3 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign2 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign1 - strcpy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
strcpy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r3, [r1]
cbz r3, strcpy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, strcpy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
strd r2, r3, [r0], #8
beq strcpy_unalign_return
b strcpy_unalign7
strcpy_unalign7_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
strcpy_unalign_return:
m_pop
strcpy_unalign7_copy6bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0], #1
m_pop
strcpy_unalign7_copy7bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0], #1
strb r5, [r0], #1
m_pop
.p2align 2
// Can read 6 bytes before possibly crossing a page.
strcpy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, strcpy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq strcpy_copy7bytes
lsrs ip, r3, #24
strd r2, r3, [r0], #8
beq strcpy_unalign_return
b strcpy_unalign6
.p2align 2
// Can read 5 bytes before possibly crossing a page.
strcpy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign5
strcpy_unalign_copy5bytes:
str r2, [r0], #4
strb r4, [r0]
m_pop
strcpy_unalign_copy6bytes:
str r2, [r0], #4
strb r4, [r0], #1
strb r5, [r0]
m_pop
.p2align 2
// Can read 4 bytes before possibly crossing a page.
strcpy_unalign4:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
strcpy_unalign3:
ldrb r2, [r1]
cbz r2, strcpy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, strcpy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
lsrs lr, r2, #24
beq strcpy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign3
strcpy_unalign3_copy1byte:
strb r2, [r0]
m_pop
strcpy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_pop
strcpy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
m_pop
.p2align 2
// Can read 2 bytes before possibly crossing a page.
strcpy_unalign2:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq strcpy_copy3bytes
lsrs ip, r2, #24
beq strcpy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
strcpy_unalign1:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
strd r2, r3, [r0], #8
b strcpy_unalign1
strcpy_unalign_copy1byte:
strb r2, [r0]
m_pop
strcpy_unalign_copy2bytes:
strb r2, [r0], #1
strb r4, [r0]
m_pop
END(strcpy)
#define STRCPY
#include "string_copy.S"

View File

@ -0,0 +1,520 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if !defined(STPCPY) && !defined(STRCPY)
#error "Either STPCPY or STRCPY must be defined."
#endif
#include <private/bionic_asm.h>
.syntax unified
.thumb
.thumb_func
#if defined(STPCPY)
.macro m_push
push {r4, r5, lr}
.cfi_def_cfa_offset 12
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.cfi_rel_offset lr, 8
.endm // m_push
#else
.macro m_push
push {r0, r4, r5, lr}
.cfi_def_cfa_offset 16
.cfi_rel_offset r0, 0
.cfi_rel_offset r4, 4
.cfi_rel_offset r5, 8
.cfi_rel_offset lr, 12
.endm // m_push
#endif
#if defined(STPCPY)
.macro m_pop
pop {r4, r5, pc}
.endm // m_pop
#else
.macro m_pop
pop {r0, r4, r5, pc}
.endm // m_pop
#endif
.macro m_copy_byte reg, cmd, label
ldrb \reg, [r1], #1
strb \reg, [r0], #1
\cmd \reg, \label
.endm // m_copy_byte
#if defined(STPCPY)
ENTRY(stpcpy)
#else
ENTRY(strcpy)
#endif
// For short copies, hard-code checking the first 8 bytes since this
// new code doesn't win until after about 8 bytes.
m_push
m_copy_byte reg=r2, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r5, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r2, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r5, cmd=cbnz, label=.Lstringcopy_continue
.Lstringcopy_finish:
#if defined(STPCPY)
sub r0, r0, #1
#endif
m_pop
.Lstringcopy_continue:
pld [r1, #0]
ands r3, r0, #7
beq .Lstringcopy_check_src_align
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .Lstringcopy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
.Lstringcopy_align_to_32:
bcc .Lstringcopy_align_to_64
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
.Lstringcopy_align_to_64:
tst r3, #4
beq .Lstringcopy_check_src_align
// Read one byte at a time since we don't have any idea about the alignment
// of the source and we don't want to read into a different page.
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
.Lstringcopy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne .Lstringcopy_unaligned_copy
.p2align 2
.Lstringcopy_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_mainloop
.Lstringcopy_complete:
#if defined(STPCPY)
sub r0, r0, #1
#endif
m_pop
.Lstringcopy_zero_in_first_register:
lsls lr, ip, #17
bne .Lstringcopy_copy1byte
bcs .Lstringcopy_copy2bytes
lsls ip, ip, #1
bne .Lstringcopy_copy3bytes
.Lstringcopy_copy4bytes:
// Copy 4 bytes to the destiniation.
#if defined(STPCPY)
str r2, [r0], #3
#else
str r2, [r0]
#endif
m_pop
.Lstringcopy_copy1byte:
strb r2, [r0]
m_pop
.Lstringcopy_copy2bytes:
#if defined(STPCPY)
strh r2, [r0], #1
#else
strh r2, [r0]
#endif
m_pop
.Lstringcopy_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_pop
.Lstringcopy_zero_in_second_register:
lsls lr, ip, #17
bne .Lstringcopy_copy5bytes
bcs .Lstringcopy_copy6bytes
lsls ip, ip, #1
bne .Lstringcopy_copy7bytes
// Copy 8 bytes to the destination.
strd r2, r3, [r0]
#if defined(STPCPY)
add r0, r0, #7
#endif
m_pop
.Lstringcopy_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
m_pop
.Lstringcopy_copy6bytes:
str r2, [r0], #4
#if defined(STPCPY)
strh r3, [r0], #1
#else
strh r3, [r0]
#endif
m_pop
.Lstringcopy_copy7bytes:
str r2, [r0], #4
strh r3, [r0], #2
lsr r3, #16
strb r3, [r0]
m_pop
.Lstringcopy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
.Lstringcopy_unaligned_branchtable:
.byte 0
.byte ((.Lstringcopy_unalign7 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign6 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign5 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign4 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign3 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign2 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign1 - .Lstringcopy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
.Lstringcopy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r3, [r1]
cbz r3, .Lstringcopy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, .Lstringcopy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, .Lstringcopy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
strd r2, r3, [r0], #8
#if defined(STPCPY)
beq .Lstringcopy_finish
#else
beq .Lstringcopy_unalign_return
#endif
b .Lstringcopy_unalign7
.Lstringcopy_unalign7_copy5bytes:
str r2, [r0], #4
strb r3, [r0]
.Lstringcopy_unalign_return:
m_pop
.Lstringcopy_unalign7_copy6bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0]
m_pop
.Lstringcopy_unalign7_copy7bytes:
str r2, [r0], #4
strb r3, [r0], #1
strb r4, [r0], #1
strb r5, [r0]
m_pop
.p2align 2
// Can read 6 bytes before possibly crossing a page.
.Lstringcopy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r4, [r1]
cbz r4, .Lstringcopy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, .Lstringcopy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq .Lstringcopy_copy7bytes
lsrs ip, r3, #24
strd r2, r3, [r0], #8
#if defined(STPCPY)
beq .Lstringcopy_finish
#else
beq .Lstringcopy_unalign_return
#endif
b .Lstringcopy_unalign6
.p2align 2
// Can read 5 bytes before possibly crossing a page.
.Lstringcopy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r4, [r1]
cbz r4, .Lstringcopy_unalign_copy5bytes
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_unalign5
.Lstringcopy_unalign_copy5bytes:
str r2, [r0], #4
strb r4, [r0]
m_pop
.Lstringcopy_unalign_copy6bytes:
str r2, [r0], #4
strb r4, [r0], #1
strb r5, [r0]
m_pop
.p2align 2
// Can read 4 bytes before possibly crossing a page.
.Lstringcopy_unalign4:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
.Lstringcopy_unalign3:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, .Lstringcopy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, .Lstringcopy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
lsrs lr, r2, #24
beq .Lstringcopy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_unalign3
.Lstringcopy_unalign3_copy1byte:
strb r2, [r0]
m_pop
.Lstringcopy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_pop
.Lstringcopy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
m_pop
.p2align 2
// Can read 2 bytes before possibly crossing a page.
.Lstringcopy_unalign2:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign_copy1byte
ldrb r4, [r1, #1]
cbz r4, .Lstringcopy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq .Lstringcopy_copy3bytes
lsrs ip, r2, #24
beq .Lstringcopy_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
.Lstringcopy_unalign1:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
strd r2, r3, [r0], #8
b .Lstringcopy_unalign1
.Lstringcopy_unalign_copy1byte:
strb r2, [r0]
m_pop
.Lstringcopy_unalign_copy2bytes:
strb r2, [r0], #1
strb r4, [r0]
m_pop
#if defined(STPCPY)
END(stpcpy)
#else
END(strcpy)
#endif

View File

@ -65,38 +65,38 @@ ENTRY(strlen)
mov r1, r0
ands r3, r0, #7
beq mainloop
beq .L_mainloop
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq align_to_32
beq .L_align_to_32
ldrb r2, [r1], #1
cbz r2, update_count_and_return
cbz r2, .L_update_count_and_return
align_to_32:
bcc align_to_64
.L_align_to_32:
bcc .L_align_to_64
ands ip, r3, #2
beq align_to_64
beq .L_align_to_64
ldrb r2, [r1], #1
cbz r2, update_count_and_return
cbz r2, .L_update_count_and_return
ldrb r2, [r1], #1
cbz r2, update_count_and_return
cbz r2, .L_update_count_and_return
align_to_64:
.L_align_to_64:
tst r3, #4
beq mainloop
beq .L_mainloop
ldr r3, [r1], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne zero_in_second_register
bne .L_zero_in_second_register
.p2align 2
mainloop:
.L_mainloop:
ldrd r2, r3, [r1], #8
pld [r1, #64]
@ -104,62 +104,62 @@ mainloop:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne zero_in_first_register
bne .L_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne zero_in_second_register
b mainloop
bne .L_zero_in_second_register
b .L_mainloop
update_count_and_return:
.L_update_count_and_return:
sub r0, r1, r0
sub r0, r0, #1
bx lr
zero_in_first_register:
.L_zero_in_first_register:
sub r0, r1, r0
lsls r3, ip, #17
bne sub8_and_return
bcs sub7_and_return
bne .L_sub8_and_return
bcs .L_sub7_and_return
lsls ip, ip, #1
bne sub6_and_return
bne .L_sub6_and_return
sub r0, r0, #5
bx lr
sub8_and_return:
.L_sub8_and_return:
sub r0, r0, #8
bx lr
sub7_and_return:
.L_sub7_and_return:
sub r0, r0, #7
bx lr
sub6_and_return:
.L_sub6_and_return:
sub r0, r0, #6
bx lr
zero_in_second_register:
.L_zero_in_second_register:
sub r0, r1, r0
lsls r3, ip, #17
bne sub4_and_return
bcs sub3_and_return
bne .L_sub4_and_return
bcs .L_sub3_and_return
lsls ip, ip, #1
bne sub2_and_return
bne .L_sub2_and_return
sub r0, r0, #1
bx lr
sub4_and_return:
.L_sub4_and_return:
sub r0, r0, #4
bx lr
sub3_and_return:
.L_sub3_and_return:
sub r0, r0, #3
bx lr
sub2_and_return:
.L_sub2_and_return:
sub r0, r0, #2
bx lr
END(strlen)

View File

@ -1,10 +1,27 @@
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/memcpy.S \
arch-arm/cortex-a15/bionic/memset.S \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/__strcat_chk.S \
arch-arm/cortex-a15/bionic/strcmp.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/strlen.S \
arch-arm/cortex-a15/bionic/__strcat_chk.S \
arch-arm/cortex-a15/bionic/__strcpy_chk.S \
bionic/memmove.c \
arch-arm/cortex-a15/bionic/strlen.S \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -0,0 +1,32 @@
# This file represents the best optimized routines that are the middle
# ground when running on a big/little system that is cortex-a57/cortex-a53.
# The cortex-a7 optimized routines, and the cortex-a53 optimized routines
# decrease performance on cortex-a57 processors by as much as 20%.
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/memcpy.S \
arch-arm/cortex-a15/bionic/memset.S \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/__strcat_chk.S \
arch-arm/cortex-a15/bionic/strcmp.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/__strcpy_chk.S \
arch-arm/cortex-a15/bionic/strlen.S \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2014 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,9 +26,7 @@
* SUCH DAMAGE.
*/
#include <time.h>
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "arch-arm/cortex-a53/bionic/memcpy_base.S"
size_t strftime_l(char *s, size_t max, const char *format, const struct tm *tm,
locale_t) {
return strftime(s, max, format, tm);
}
#include "arch-arm/cortex-a15/bionic/__strcat_chk_common.S"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,9 +26,7 @@
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "arch-arm/cortex-a53/bionic/memcpy_base.S"
ENTRY_PRIVATE(__rt_sigreturn)
movl $__NR_rt_sigreturn, %eax
syscall
END(__rt_sigreturn)
#include "arch-arm/cortex-a15/bionic/__strcpy_chk_common.S"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2015 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -26,9 +26,7 @@
* SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
// Indicate which memcpy base file to include.
#define MEMCPY_BASE "arch-arm/cortex-a53/bionic/memcpy_base.S"
ENTRY_PRIVATE(__rt_sigreturn)
mov x8, __NR_rt_sigreturn
svc #0
END(__rt_sigreturn)
#include "arch-arm/cortex-a15/bionic/memcpy_common.S"

View File

@ -0,0 +1,143 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.L_memcpy_base:
// Assumes that n >= 0, and dst, src are valid pointers.
cmp r2, #16
blo .L_copy_less_than_16_unknown_align
.L_copy_unknown_alignment:
// Unknown alignment of src and dst.
// Assumes that the first few bytes have already been prefetched.
// Align destination to 128 bits. The mainloop store instructions
// require this alignment or they will throw an exception.
rsb r3, r0, #0
ands r3, r3, #0xF
beq 2f
// Copy up to 15 bytes (count in r3).
sub r2, r2, r3
movs ip, r3, lsl #31
itt mi
ldrbmi lr, [r1], #1
strbmi lr, [r0], #1
itttt cs
ldrbcs ip, [r1], #1
ldrbcs lr, [r1], #1
strbcs ip, [r0], #1
strbcs lr, [r0], #1
movs ip, r3, lsl #29
bge 1f
// Copies 4 bytes, dst 32 bits aligned before, at least 64 bits after.
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0, :32]!
1: bcc 2f
// Copies 8 bytes, dst 64 bits aligned before, at least 128 bits after.
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
2: // Make sure we have at least 64 bytes to copy.
subs r2, r2, #64
blo 2f
1: // The main loop copies 64 bytes at a time.
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
subs r2, r2, #64
vstmia r0!, {d0 - d7}
pld [r1, #(64*10)]
bhs 1b
2: // Fix-up the remaining count and make sure we have >= 32 bytes left.
adds r2, r2, #32
blo 3f
// 32 bytes. These cache lines were already preloaded.
vld1.8 {d0 - d3}, [r1]!
sub r2, r2, #32
vst1.8 {d0 - d3}, [r0, :128]!
3: // Less than 32 left.
add r2, r2, #32
tst r2, #0x10
beq .L_copy_less_than_16_unknown_align
// Copies 16 bytes, destination 128 bits aligned.
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0, :128]!
.L_copy_less_than_16_unknown_align:
// Copy up to 15 bytes (count in r2).
movs ip, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1: bge 2f
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0]!
2: // Copy 0 to 4 bytes.
lsls r2, r2, #31
itt ne
ldrbne lr, [r1], #1
strbne lr, [r0], #1
itttt cs
ldrbcs ip, [r1], #1
ldrbcs lr, [r1]
strbcs ip, [r0], #1
strbcs lr, [r0]
pop {r0, pc}

View File

@ -0,0 +1,31 @@
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/cortex-a53/bionic/memcpy.S \
arch-arm/cortex-a53/bionic/__strcat_chk.S \
arch-arm/cortex-a53/bionic/__strcpy_chk.S \
libc_bionic_src_files_arm += \
arch-arm/cortex-a7/bionic/memset.S \
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/strcmp.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/strlen.S \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -0,0 +1,180 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <machine/cpu-features.h>
#include <private/bionic_asm.h>
#include <private/libc_events.h>
/*
* Optimized memset() for ARM.
*
* memset() returns its first argument.
*/
.fpu neon
.syntax unified
ENTRY(__memset_chk)
cmp r2, r3
bls .L_done
// Preserve lr for backtrace.
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
ldr r0, error_message
ldr r1, error_code
1:
add r0, pc
bl __fortify_chk_fail
error_code:
.word BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+8)
END(__memset_chk)
ENTRY(bzero)
mov r2, r1
mov r1, #0
.L_done:
// Fall through to memset...
END(bzero)
ENTRY(memset)
mov r3, r0
// At this point only d0, d1 are going to be used below.
vdup.8 q0, r1
cmp r2, #16
blo .L_set_less_than_16_unknown_align
.L_check_alignment:
// Align destination to a double word to avoid the store crossing
// a cache line boundary.
ands ip, r3, #7
bne .L_do_double_word_align
.L_double_word_aligned:
// Duplicate since the less than 64 can use d2, d3.
vmov q1, q0
subs r2, #64
blo .L_set_less_than_64
// Duplicate the copy value so that we can store 64 bytes at a time.
vmov q2, q0
vmov q3, q0
1: // Main loop stores 64 bytes at a time.
subs r2, #64
vstmia r3!, {d0 - d7}
bge 1b
.L_set_less_than_64:
// Restore r2 to the count of bytes left to set.
add r2, #64
lsls ip, r2, #27
bcc .L_set_less_than_32
// Set 32 bytes.
vstmia r3!, {d0 - d3}
.L_set_less_than_32:
bpl .L_set_less_than_16
// Set 16 bytes.
vstmia r3!, {d0, d1}
.L_set_less_than_16:
// Less than 16 bytes to set.
lsls ip, r2, #29
bcc .L_set_less_than_8
// Set 8 bytes.
vstmia r3!, {d0}
.L_set_less_than_8:
bpl .L_set_less_than_4
// Set 4 bytes
vst1.32 {d0[0]}, [r3]!
.L_set_less_than_4:
lsls ip, r2, #31
it ne
strbne r1, [r3], #1
itt cs
strbcs r1, [r3], #1
strbcs r1, [r3]
bx lr
.L_do_double_word_align:
rsb ip, ip, #8
sub r2, r2, ip
// Do this comparison now, otherwise we'll need to save a
// register to the stack since we've used all available
// registers.
cmp ip, #4
blo 1f
// Need to do a four byte copy.
movs ip, ip, lsl #31
it mi
strbmi r1, [r3], #1
itt cs
strbcs r1, [r3], #1
strbcs r1, [r3], #1
vst1.32 {d0[0]}, [r3]!
b .L_double_word_aligned
1:
// No four byte copy.
movs ip, ip, lsl #31
it mi
strbmi r1, [r3], #1
itt cs
strbcs r1, [r3], #1
strbcs r1, [r3], #1
b .L_double_word_aligned
.L_set_less_than_16_unknown_align:
// Set up to 15 bytes.
movs ip, r2, lsl #29
bcc 1f
vst1.8 {d0}, [r3]!
1: bge 2f
vst1.32 {d0[0]}, [r3]!
2: movs ip, r2, lsl #31
it mi
strbmi r1, [r3], #1
itt cs
strbcs r1, [r3], #1
strbcs r1, [r3], #1
bx lr
END(memset)
.data
error_string:
.string "memset: prevented write past end of buffer"

View File

@ -1 +1,29 @@
include bionic/libc/arch-arm/cortex-a15/cortex-a15.mk
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/cortex-a7/bionic/memset.S \
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/memcpy.S \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/__strcat_chk.S \
arch-arm/cortex-a15/bionic/strcmp.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/__strcpy_chk.S \
arch-arm/cortex-a15/bionic/strlen.S \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -40,12 +40,10 @@
ENTRY(__strcat_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
push {r4, r5}
.save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
@ -199,8 +197,6 @@ END(__strcat_chk)
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcat_chk_fail)
.save {r0, lr}
.save {r4, r5}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4

View File

@ -39,7 +39,6 @@
ENTRY(__strcpy_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -165,7 +164,6 @@ END(__strcpy_chk)
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcpy_chk_fail)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4

View File

@ -50,7 +50,6 @@ END(__memcpy_chk)
ENTRY(memcpy)
pld [r1, #0]
stmfd sp!, {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -64,7 +63,6 @@ END(memcpy)
ENTRY_PRIVATE(__memcpy_chk_fail)
// Preserve lr for backtrace.
push {lr}
.save {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0

View File

@ -33,7 +33,6 @@
*/
ENTRY_PRIVATE(MEMCPY_BASE)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -45,7 +44,7 @@ ENTRY_PRIVATE(MEMCPY_BASE)
/* check if buffers are aligned. If so, run arm-only version */
eor r3, r0, r1
ands r3, r3, #0x3
beq __memcpy_base_aligned
beq MEMCPY_BASE_ALIGNED
/* Check the upper size limit for Neon unaligned memory access in memcpy */
cmp r2, #224
@ -134,19 +133,16 @@ ENTRY_PRIVATE(MEMCPY_BASE)
strbcs ip, [r0], #1
strbcs lr, [r0], #1
ldmfd sp!, {r0, lr}
bx lr
ldmfd sp!, {r0, pc}
END(MEMCPY_BASE)
ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
/* Simple arm-only copy loop to handle aligned copy operations */
stmfd sp!, {r4-r8}
.save {r4-r8}
.cfi_adjust_cfa_offset 20
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4

View File

@ -35,6 +35,7 @@
*/
.fpu neon
.syntax unified
ENTRY(__memset_chk)
cmp r2, r3
@ -42,7 +43,6 @@ ENTRY(__memset_chk)
// Preserve lr for backtrace.
push {lr}
.save {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@ -69,13 +69,9 @@ END(bzero)
ENTRY(memset)
// The neon memset only wins for less than 132.
cmp r2, #132
bhi __memset_large_copy
stmfd sp!, {r0}
.save {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0
bhi .L_memset_large_copy
mov r3, r0
vdup.8 q0, r1
/* make sure we have at least 32 bytes to write */
@ -85,7 +81,7 @@ ENTRY(memset)
1: /* The main loop writes 32 bytes at a time */
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0]!
vst1.8 {d0 - d3}, [r3]!
bhs 1b
2: /* less than 32 left */
@ -94,27 +90,24 @@ ENTRY(memset)
beq 3f
// writes 16 bytes, 128-bits aligned
vst1.8 {d0, d1}, [r0]!
vst1.8 {d0, d1}, [r3]!
3: /* write up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vst1.8 {d0}, [r0]!
vst1.8 {d0}, [r3]!
1: bge 2f
vst1.32 {d0[0]}, [r0]!
vst1.32 {d0[0]}, [r3]!
2: movs ip, r2, lsl #31
strmib r1, [r0], #1
strcsb r1, [r0], #1
strcsb r1, [r0], #1
ldmfd sp!, {r0}
strbmi r1, [r3], #1
strbcs r1, [r3], #1
strbcs r1, [r3], #1
bx lr
END(memset)
ENTRY_PRIVATE(__memset_large_copy)
.L_memset_large_copy:
/* compute the offset to align the destination
* offset = (4-(src&3))&3 = -src & 3
*/
stmfd sp!, {r0, r4-r7, lr}
.save {r0, r4-r7, lr}
.cfi_def_cfa_offset 24
.cfi_rel_offset r0, 0
.cfi_rel_offset r4, 4
@ -134,12 +127,11 @@ ENTRY_PRIVATE(__memset_large_copy)
orr r1, r1, r1, lsr #16
movs r12, r3, lsl #31
strcsb r1, [r0], #1 /* can't use strh (alignment unknown) */
strcsb r1, [r0], #1
strmib r1, [r0], #1
strbcs r1, [r0], #1 /* can't use strh (alignment unknown) */
strbcs r1, [r0], #1
strbmi r1, [r0], #1
subs r2, r2, r3
ldmlsfd sp!, {r0, r4-r7, lr} /* return */
bxls lr
popls {r0, r4-r7, pc} /* return */
/* align the destination to a cache-line */
mov r12, r1
@ -158,9 +150,9 @@ ENTRY_PRIVATE(__memset_large_copy)
/* conditionally writes 0 to 7 words (length in r3) */
movs r3, r3, lsl #28
stmcsia r0!, {r1, lr}
stmcsia r0!, {r1, lr}
stmmiia r0!, {r1, lr}
stmcs r0!, {r1, lr}
stmcs r0!, {r1, lr}
stmmi r0!, {r1, lr}
movs r3, r3, lsl #2
strcs r1, [r0], #4
@ -175,16 +167,15 @@ ENTRY_PRIVATE(__memset_large_copy)
/* conditionally stores 0 to 31 bytes */
movs r2, r2, lsl #28
stmcsia r0!, {r1,r3,r12,lr}
stmmiia r0!, {r1, lr}
stmcs r0!, {r1,r3,r12,lr}
stmmi r0!, {r1, lr}
movs r2, r2, lsl #2
strcs r1, [r0], #4
strmih r1, [r0], #2
strhmi r1, [r0], #2
movs r2, r2, lsl #2
strcsb r1, [r0]
ldmfd sp!, {r0, r4-r7, lr}
bx lr
END(__memset_large_copy)
strbcs r1, [r0]
ldmfd sp!, {r0, r4-r7, pc}
END(memset)
.data
error_string:

View File

@ -26,8 +26,5 @@
* SUCH DAMAGE.
*/
#include <string.h>
int strcoll_l(const char *s1, const char *s2, locale_t) {
return strcoll(s1, s2);
}
#define STPCPY
#include "string_copy.S"

View File

@ -70,7 +70,7 @@
.macro m_scan_byte
ldrb r3, [r0]
cbz r3, strcat_r0_scan_done
cbz r3, .Lstrcat_r0_scan_done
add r0, #1
.endm // m_scan_byte
@ -84,10 +84,10 @@ ENTRY(strcat)
// Quick check to see if src is empty.
ldrb r2, [r1]
pld [r1, #0]
cbnz r2, strcat_continue
cbnz r2, .Lstrcat_continue
bx lr
strcat_continue:
.Lstrcat_continue:
// To speed up really small dst strings, unroll checking the first 4 bytes.
m_push
m_scan_byte
@ -96,10 +96,10 @@ strcat_continue:
m_scan_byte
ands r3, r0, #7
bne strcat_align_src
bne .Lstrcat_align_src
.p2align 2
strcat_mainloop:
.Lstrcat_mainloop:
ldmia r0!, {r2, r3}
pld [r0, #64]
@ -107,28 +107,28 @@ strcat_mainloop:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcat_zero_in_first_register
bne .Lstrcat_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcat_zero_in_second_register
b strcat_mainloop
bne .Lstrcat_zero_in_second_register
b .Lstrcat_mainloop
strcat_zero_in_first_register:
.Lstrcat_zero_in_first_register:
sub r0, r0, #4
strcat_zero_in_second_register:
.Lstrcat_zero_in_second_register:
// Check for zero in byte 0.
tst ip, #0x80
it ne
subne r0, r0, #4
bne strcat_r0_scan_done
bne .Lstrcat_r0_scan_done
// Check for zero in byte 1.
tst ip, #0x8000
it ne
subne r0, r0, #3
bne strcat_r0_scan_done
bne .Lstrcat_r0_scan_done
// Check for zero in byte 2.
tst ip, #0x800000
it ne
@ -137,33 +137,33 @@ strcat_zero_in_second_register:
// Zero is in byte 3.
subeq r0, r0, #1
strcat_r0_scan_done:
.Lstrcat_r0_scan_done:
// Unroll the first 8 bytes that will be copied.
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=strcpy_continue
m_copy_byte reg=r2, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstrcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=.Lstrcpy_continue
strcpy_finish:
.Lstrcpy_finish:
m_ret inst=pop
strcpy_continue:
.Lstrcpy_continue:
pld [r1, #0]
ands r3, r0, #7
bne strcpy_align_dst
bne .Lstrcpy_align_dst
strcpy_check_src_align:
.Lstrcpy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne strcpy_unaligned_copy
bne .Lstrcpy_unaligned_copy
.p2align 2
strcpy_mainloop:
.Lstrcpy_mainloop:
ldmia r1!, {r2, r3}
pld [r1, #64]
@ -171,17 +171,17 @@ strcpy_mainloop:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_mainloop
b .Lstrcpy_mainloop
strcpy_zero_in_first_register:
.Lstrcpy_zero_in_first_register:
lsls lr, ip, #17
itt ne
strbne r2, [r0]
@ -198,7 +198,7 @@ strcpy_zero_in_first_register:
strb r3, [r0]
m_ret inst=pop
strcpy_zero_in_second_register:
.Lstrcpy_zero_in_second_register:
lsls lr, ip, #17
ittt ne
stmiane r0!, {r2}
@ -218,18 +218,18 @@ strcpy_zero_in_second_register:
strb r4, [r0]
m_ret inst=pop
strcpy_align_dst:
.Lstrcpy_align_dst:
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcpy_align_to_32
beq .Lstrcpy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
cbz r2, .Lstrcpy_complete
strcpy_align_to_32:
bcc strcpy_align_to_64
.Lstrcpy_align_to_32:
bcc .Lstrcpy_align_to_64
ldrb r4, [r1], #1
strb r4, [r0], #1
@ -242,76 +242,83 @@ strcpy_align_to_32:
it eq
m_ret inst=popeq
strcpy_align_to_64:
.Lstrcpy_align_to_64:
tst r3, #4
beq strcpy_check_src_align
ldr r2, [r1], #4
beq .Lstrcpy_check_src_align
// Read one byte at a time since we don't know the src alignment
// and we don't want to read into a different page.
ldrb r4, [r1], #1
strb r4, [r0], #1
cbz r4, .Lstrcpy_complete
ldrb r5, [r1], #1
strb r5, [r0], #1
cbz r5, .Lstrcpy_complete
ldrb r4, [r1], #1
strb r4, [r0], #1
cbz r4, .Lstrcpy_complete
ldrb r5, [r1], #1
strb r5, [r0], #1
cbz r5, .Lstrcpy_complete
b .Lstrcpy_check_src_align
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
stmia r0!, {r2}
b strcpy_check_src_align
strcpy_complete:
.Lstrcpy_complete:
m_ret inst=pop
strcpy_unaligned_copy:
.Lstrcpy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
strcpy_unaligned_branchtable:
.Lstrcpy_unaligned_branchtable:
.byte 0
.byte ((strcpy_unalign7 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign6 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign5 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign4 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign3 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign2 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign1 - strcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign7 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign6 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign5 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign4 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign3 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign2 - .Lstrcpy_unaligned_branchtable)/2)
.byte ((.Lstrcpy_unalign1 - .Lstrcpy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
strcpy_unalign7:
.Lstrcpy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
ldrb r3, [r1]
cbz r3, strcpy_unalign7_copy5bytes
cbz r3, .Lstrcpy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign7_copy6bytes
cbz r4, .Lstrcpy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, strcpy_unalign7_copy7bytes
cbz r5, .Lstrcpy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
stmia r0!, {r2, r3}
beq strcpy_unalign_return
b strcpy_unalign7
beq .Lstrcpy_unalign_return
b .Lstrcpy_unalign7
strcpy_unalign7_copy5bytes:
.Lstrcpy_unalign7_copy5bytes:
stmia r0!, {r2}
strb r3, [r0]
strcpy_unalign_return:
.Lstrcpy_unalign_return:
m_ret inst=pop
strcpy_unalign7_copy6bytes:
.Lstrcpy_unalign7_copy6bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0], #1
m_ret inst=pop
strcpy_unalign7_copy7bytes:
.Lstrcpy_unalign7_copy7bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0], #1
@ -320,30 +327,30 @@ strcpy_unalign7_copy7bytes:
.p2align 2
// Can read 6 bytes before possibly crossing a page.
strcpy_unalign6:
.Lstrcpy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
cbz r4, .Lstrcpy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, strcpy_unalign_copy6bytes
cbz r5, .Lstrcpy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq strcpy_unalign6_copy7bytes
beq .Lstrcpy_unalign6_copy7bytes
lsrs ip, r3, #24
stmia r0!, {r2, r3}
beq strcpy_unalign_return
b strcpy_unalign6
beq .Lstrcpy_unalign_return
b .Lstrcpy_unalign6
strcpy_unalign6_copy7bytes:
.Lstrcpy_unalign6_copy7bytes:
stmia r0!, {r2}
strh r3, [r0], #2
lsr r3, #16
@ -352,16 +359,16 @@ strcpy_unalign6_copy7bytes:
.p2align 2
// Can read 5 bytes before possibly crossing a page.
strcpy_unalign5:
.Lstrcpy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
cbz r4, .Lstrcpy_unalign_copy5bytes
ldr r3, [r1], #4
@ -370,17 +377,17 @@ strcpy_unalign5:
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign5
b .Lstrcpy_unalign5
strcpy_unalign_copy5bytes:
.Lstrcpy_unalign_copy5bytes:
stmia r0!, {r2}
strb r4, [r0]
m_ret inst=pop
strcpy_unalign_copy6bytes:
.Lstrcpy_unalign_copy6bytes:
stmia r0!, {r2}
strb r4, [r0], #1
strb r5, [r0]
@ -388,13 +395,13 @@ strcpy_unalign_copy6bytes:
.p2align 2
// Can read 4 bytes before possibly crossing a page.
strcpy_unalign4:
.Lstrcpy_unalign4:
ldmia r1!, {r2}
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
ldmia r1!, {r3}
pld [r1, #64]
@ -402,20 +409,20 @@ strcpy_unalign4:
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign4
b .Lstrcpy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
strcpy_unalign3:
.Lstrcpy_unalign3:
ldrb r2, [r1]
cbz r2, strcpy_unalign3_copy1byte
cbz r2, .Lstrcpy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign3_copy2bytes
cbz r3, .Lstrcpy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, strcpy_unalign3_copy3bytes
cbz r4, .Lstrcpy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
@ -423,26 +430,26 @@ strcpy_unalign3:
pld [r1, #64]
lsrs lr, r2, #24
beq strcpy_unalign_copy4bytes
beq .Lstrcpy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign3
b .Lstrcpy_unalign3
strcpy_unalign3_copy1byte:
.Lstrcpy_unalign3_copy1byte:
strb r2, [r0]
m_ret inst=pop
strcpy_unalign3_copy2bytes:
.Lstrcpy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
strcpy_unalign3_copy3bytes:
.Lstrcpy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
@ -450,34 +457,34 @@ strcpy_unalign3_copy3bytes:
.p2align 2
// Can read 2 bytes before possibly crossing a page.
strcpy_unalign2:
.Lstrcpy_unalign2:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
cbz r2, .Lstrcpy_unalign_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign_copy2bytes
cbz r3, .Lstrcpy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq strcpy_unalign_copy3bytes
beq .Lstrcpy_unalign_copy3bytes
lsrs ip, r2, #24
beq strcpy_unalign_copy4bytes
beq .Lstrcpy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign2
b .Lstrcpy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
strcpy_unalign1:
.Lstrcpy_unalign1:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
cbz r2, .Lstrcpy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
@ -487,62 +494,62 @@ strcpy_unalign1:
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
bne .Lstrcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
bne .Lstrcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign1
b .Lstrcpy_unalign1
strcpy_unalign_copy1byte:
.Lstrcpy_unalign_copy1byte:
strb r2, [r0]
m_ret inst=pop
strcpy_unalign_copy2bytes:
.Lstrcpy_unalign_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
strcpy_unalign_copy3bytes:
.Lstrcpy_unalign_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_ret inst=pop
strcpy_unalign_copy4bytes:
.Lstrcpy_unalign_copy4bytes:
stmia r0, {r2}
m_ret inst=pop
strcat_align_src:
.Lstrcat_align_src:
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcat_align_to_32
beq .Lstrcat_align_to_32
ldrb r2, [r0], #1
cbz r2, strcat_r0_update
cbz r2, .Lstrcat_r0_update
strcat_align_to_32:
bcc strcat_align_to_64
.Lstrcat_align_to_32:
bcc .Lstrcat_align_to_64
ldrb r2, [r0], #1
cbz r2, strcat_r0_update
cbz r2, .Lstrcat_r0_update
ldrb r2, [r0], #1
cbz r2, strcat_r0_update
cbz r2, .Lstrcat_r0_update
strcat_align_to_64:
.Lstrcat_align_to_64:
tst r3, #4
beq strcat_mainloop
beq .Lstrcat_mainloop
ldr r3, [r0], #4
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcat_zero_in_second_register
b strcat_mainloop
bne .Lstrcat_zero_in_second_register
b .Lstrcat_mainloop
strcat_r0_update:
.Lstrcat_r0_update:
sub r0, r0, #1
b strcat_r0_scan_done
b .Lstrcat_r0_scan_done
END(strcat)

View File

@ -168,7 +168,6 @@ ENTRY(strcmp)
bne .L_do_align
/* Fast path. */
.save {r4-r7}
init
.L_doubleword_aligned:

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2014 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -25,432 +25,6 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <private/bionic_asm.h>
.syntax unified
.thumb
.thumb_func
.macro m_push
push {r0, r4, r5, lr}
.endm // m_push
.macro m_ret inst
\inst {r0, r4, r5, pc}
.endm // m_ret
.macro m_copy_byte reg, cmd, label
ldrb \reg, [r1], #1
strb \reg, [r0], #1
\cmd \reg, \label
.endm // m_copy_byte
ENTRY(strcpy)
// Unroll the first 8 bytes that will be copied.
m_push
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r2, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r3, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r4, cmd=cbz, label=strcpy_finish
m_copy_byte reg=r5, cmd=cbnz, label=strcpy_continue
strcpy_finish:
m_ret inst=pop
strcpy_continue:
pld [r1, #0]
ands r3, r0, #7
bne strcpy_align_dst
strcpy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne strcpy_unaligned_copy
.p2align 2
strcpy_mainloop:
ldmia r1!, {r2, r3}
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_mainloop
strcpy_zero_in_first_register:
lsls lr, ip, #17
itt ne
strbne r2, [r0]
m_ret inst=popne
itt cs
strhcs r2, [r0]
m_ret inst=popcs
lsls ip, ip, #1
itt eq
streq r2, [r0]
m_ret inst=popeq
strh r2, [r0], #2
lsr r3, r2, #16
strb r3, [r0]
m_ret inst=pop
strcpy_zero_in_second_register:
lsls lr, ip, #17
ittt ne
stmiane r0!, {r2}
strbne r3, [r0]
m_ret inst=popne
ittt cs
strcs r2, [r0], #4
strhcs r3, [r0]
m_ret inst=popcs
lsls ip, ip, #1
itt eq
stmiaeq r0, {r2, r3}
m_ret inst=popeq
stmia r0!, {r2}
strh r3, [r0], #2
lsr r4, r3, #16
strb r4, [r0]
m_ret inst=pop
strcpy_align_dst:
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq strcpy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, strcpy_complete
strcpy_align_to_32:
bcc strcpy_align_to_64
ldrb r4, [r1], #1
strb r4, [r0], #1
cmp r4, #0
it eq
m_ret inst=popeq
ldrb r5, [r1], #1
strb r5, [r0], #1
cmp r5, #0
it eq
m_ret inst=popeq
strcpy_align_to_64:
tst r3, #4
beq strcpy_check_src_align
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
stmia r0!, {r2}
b strcpy_check_src_align
strcpy_complete:
m_ret inst=pop
strcpy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
strcpy_unaligned_branchtable:
.byte 0
.byte ((strcpy_unalign7 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign6 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign5 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign4 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign3 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign2 - strcpy_unaligned_branchtable)/2)
.byte ((strcpy_unalign1 - strcpy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
strcpy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r3, [r1]
cbz r3, strcpy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, strcpy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, strcpy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
stmia r0!, {r2, r3}
beq strcpy_unalign_return
b strcpy_unalign7
strcpy_unalign7_copy5bytes:
stmia r0!, {r2}
strb r3, [r0]
strcpy_unalign_return:
m_ret inst=pop
strcpy_unalign7_copy6bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0], #1
m_ret inst=pop
strcpy_unalign7_copy7bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0], #1
strb r5, [r0], #1
m_ret inst=pop
.p2align 2
// Can read 6 bytes before possibly crossing a page.
strcpy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, strcpy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq strcpy_unalign6_copy7bytes
lsrs ip, r3, #24
stmia r0!, {r2, r3}
beq strcpy_unalign_return
b strcpy_unalign6
strcpy_unalign6_copy7bytes:
stmia r0!, {r2}
strh r3, [r0], #2
lsr r3, #16
strb r3, [r0]
m_ret inst=pop
.p2align 2
// Can read 5 bytes before possibly crossing a page.
strcpy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldrb r4, [r1]
cbz r4, strcpy_unalign_copy5bytes
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign5
strcpy_unalign_copy5bytes:
stmia r0!, {r2}
strb r4, [r0]
m_ret inst=pop
strcpy_unalign_copy6bytes:
stmia r0!, {r2}
strb r4, [r0], #1
strb r5, [r0]
m_ret inst=pop
.p2align 2
// Can read 4 bytes before possibly crossing a page.
strcpy_unalign4:
ldmia r1!, {r2}
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
ldmia r1!, {r3}
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
strcpy_unalign3:
ldrb r2, [r1]
cbz r2, strcpy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, strcpy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
lsrs lr, r2, #24
beq strcpy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign3
strcpy_unalign3_copy1byte:
strb r2, [r0]
m_ret inst=pop
strcpy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
strcpy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
m_ret inst=pop
.p2align 2
// Can read 2 bytes before possibly crossing a page.
strcpy_unalign2:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
ldrb r3, [r1, #1]
cbz r3, strcpy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq strcpy_unalign_copy3bytes
lsrs ip, r2, #24
beq strcpy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
strcpy_unalign1:
ldrb r2, [r1]
cbz r2, strcpy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne strcpy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne strcpy_zero_in_second_register
stmia r0!, {r2, r3}
b strcpy_unalign1
strcpy_unalign_copy1byte:
strb r2, [r0]
m_ret inst=pop
strcpy_unalign_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
strcpy_unalign_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_ret inst=pop
strcpy_unalign_copy4bytes:
stmia r0, {r2}
m_ret inst=pop
END(strcpy)
#define STRCPY
#include "string_copy.S"

View File

@ -0,0 +1,542 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* Copyright (c) 2013 ARM Ltd
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the company may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if !defined(STPCPY) && !defined(STRCPY)
#error "Either STPCPY or STRCPY must be defined."
#endif
#include <private/bionic_asm.h>
.syntax unified
.thumb
.thumb_func
#if defined(STPCPY)
.macro m_push
push {r4, r5, lr}
.cfi_def_cfa_offset 12
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.cfi_rel_offset lr, 8
.endm // m_push
#else
.macro m_push
push {r0, r4, r5, lr}
.cfi_def_cfa_offset 16
.cfi_rel_offset r0, 0
.cfi_rel_offset r4, 4
.cfi_rel_offset r5, 8
.cfi_rel_offset lr, 12
.endm // m_push
#endif
#if defined(STPCPY)
.macro m_ret inst
\inst {r4, r5, pc}
.endm // m_ret
#else
.macro m_ret inst
\inst {r0, r4, r5, pc}
.endm // m_ret
#endif
.macro m_copy_byte reg, cmd, label
ldrb \reg, [r1], #1
strb \reg, [r0], #1
\cmd \reg, \label
.endm // m_copy_byte
#if defined(STPCPY)
ENTRY(stpcpy)
#else
ENTRY(strcpy)
#endif
// Unroll the first 8 bytes that will be copied.
m_push
m_copy_byte reg=r2, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r5, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r2, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r3, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r4, cmd=cbz, label=.Lstringcopy_finish
m_copy_byte reg=r5, cmd=cbnz, label=.Lstringcopy_continue
.Lstringcopy_finish:
#if defined(STPCPY)
sub r0, r0, #1
#endif
m_ret inst=pop
.Lstringcopy_continue:
pld [r1, #0]
ands r3, r0, #7
bne .Lstringcopy_align_dst
.Lstringcopy_check_src_align:
// At this point dst is aligned to a double word, check if src
// is also aligned to a double word.
ands r3, r1, #7
bne .Lstringcopy_unaligned_copy
.p2align 2
.Lstringcopy_mainloop:
ldmia r1!, {r2, r3}
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_mainloop
.Lstringcopy_zero_in_first_register:
lsls lr, ip, #17
itt ne
strbne r2, [r0]
m_ret inst=popne
itt cs
#if defined(STPCPY)
strhcs r2, [r0], #1
#else
strhcs r2, [r0]
#endif
m_ret inst=popcs
lsls ip, ip, #1
itt eq
#if defined(STPCPY)
streq r2, [r0], #3
#else
streq r2, [r0]
#endif
m_ret inst=popeq
strh r2, [r0], #2
lsr r3, r2, #16
strb r3, [r0]
m_ret inst=pop
.Lstringcopy_zero_in_second_register:
lsls lr, ip, #17
ittt ne
stmiane r0!, {r2}
strbne r3, [r0]
m_ret inst=popne
ittt cs
strcs r2, [r0], #4
#if defined(STPCPY)
strhcs r3, [r0], #1
#else
strhcs r3, [r0]
#endif
m_ret inst=popcs
lsls ip, ip, #1
#if defined(STPCPY)
ittt eq
#else
itt eq
#endif
stmiaeq r0, {r2, r3}
#if defined(STPCPY)
addeq r0, r0, #7
#endif
m_ret inst=popeq
stmia r0!, {r2}
strh r3, [r0], #2
lsr r4, r3, #16
strb r4, [r0]
m_ret inst=pop
.Lstringcopy_align_dst:
// Align to a double word (64 bits).
rsb r3, r3, #8
lsls ip, r3, #31
beq .Lstringcopy_align_to_32
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
.Lstringcopy_align_to_32:
bcc .Lstringcopy_align_to_64
ldrb r4, [r1], #1
strb r4, [r0], #1
cmp r4, #0
#if defined(STPCPY)
itt eq
subeq r0, r0, #1
#else
it eq
#endif
m_ret inst=popeq
ldrb r5, [r1], #1
strb r5, [r0], #1
cmp r5, #0
#if defined(STPCPY)
itt eq
subeq r0, r0, #1
#else
it eq
#endif
m_ret inst=popeq
.Lstringcopy_align_to_64:
tst r3, #4
beq .Lstringcopy_check_src_align
// Read one byte at a time since we don't have any idea about the alignment
// of the source and we don't want to read into a different page.
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
ldrb r2, [r1], #1
strb r2, [r0], #1
cbz r2, .Lstringcopy_complete
b .Lstringcopy_check_src_align
.Lstringcopy_complete:
#if defined(STPCPY)
sub r0, r0, #1
#endif
m_ret inst=pop
.Lstringcopy_unaligned_copy:
// Dst is aligned to a double word, while src is at an unknown alignment.
// There are 7 different versions of the unaligned copy code
// to prevent overreading the src. The mainloop of every single version
// will store 64 bits per loop. The difference is how much of src can
// be read without potentially crossing a page boundary.
tbb [pc, r3]
.Lstringcopy_unaligned_branchtable:
.byte 0
.byte ((.Lstringcopy_unalign7 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign6 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign5 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign4 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign3 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign2 - .Lstringcopy_unaligned_branchtable)/2)
.byte ((.Lstringcopy_unalign1 - .Lstringcopy_unaligned_branchtable)/2)
.p2align 2
// Can read 7 bytes before possibly crossing a page.
.Lstringcopy_unalign7:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r3, [r1]
cbz r3, .Lstringcopy_unalign7_copy5bytes
ldrb r4, [r1, #1]
cbz r4, .Lstringcopy_unalign7_copy6bytes
ldrb r5, [r1, #2]
cbz r5, .Lstringcopy_unalign7_copy7bytes
ldr r3, [r1], #4
pld [r1, #64]
lsrs ip, r3, #24
stmia r0!, {r2, r3}
#if defined(STPCPY)
beq .Lstringcopy_finish
#else
beq .Lstringcopy_unalign_return
#endif
b .Lstringcopy_unalign7
.Lstringcopy_unalign7_copy5bytes:
stmia r0!, {r2}
strb r3, [r0]
.Lstringcopy_unalign_return:
m_ret inst=pop
.Lstringcopy_unalign7_copy6bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0]
m_ret inst=pop
.Lstringcopy_unalign7_copy7bytes:
stmia r0!, {r2}
strb r3, [r0], #1
strb r4, [r0], #1
strb r5, [r0]
m_ret inst=pop
.p2align 2
// Can read 6 bytes before possibly crossing a page.
.Lstringcopy_unalign6:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r4, [r1]
cbz r4, .Lstringcopy_unalign_copy5bytes
ldrb r5, [r1, #1]
cbz r5, .Lstringcopy_unalign_copy6bytes
ldr r3, [r1], #4
pld [r1, #64]
tst r3, #0xff0000
beq .Lstringcopy_unalign6_copy7bytes
lsrs ip, r3, #24
stmia r0!, {r2, r3}
#if defined(STPCPY)
beq .Lstringcopy_finish
#else
beq .Lstringcopy_unalign_return
#endif
b .Lstringcopy_unalign6
.Lstringcopy_unalign6_copy7bytes:
stmia r0!, {r2}
strh r3, [r0], #2
lsr r3, #16
strb r3, [r0]
m_ret inst=pop
.p2align 2
// Can read 5 bytes before possibly crossing a page.
.Lstringcopy_unalign5:
ldr r2, [r1], #4
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldrb r4, [r1]
cbz r4, .Lstringcopy_unalign_copy5bytes
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_unalign5
.Lstringcopy_unalign_copy5bytes:
stmia r0!, {r2}
strb r4, [r0]
m_ret inst=pop
.Lstringcopy_unalign_copy6bytes:
stmia r0!, {r2}
strb r4, [r0], #1
strb r5, [r0]
m_ret inst=pop
.p2align 2
// Can read 4 bytes before possibly crossing a page.
.Lstringcopy_unalign4:
ldmia r1!, {r2}
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
ldmia r1!, {r3}
pld [r1, #64]
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_unalign4
.p2align 2
// Can read 3 bytes before possibly crossing a page.
.Lstringcopy_unalign3:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign3_copy1byte
ldrb r3, [r1, #1]
cbz r3, .Lstringcopy_unalign3_copy2bytes
ldrb r4, [r1, #2]
cbz r4, .Lstringcopy_unalign3_copy3bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
lsrs lr, r2, #24
beq .Lstringcopy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_unalign3
.Lstringcopy_unalign3_copy1byte:
strb r2, [r0]
m_ret inst=pop
.Lstringcopy_unalign3_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
.Lstringcopy_unalign3_copy3bytes:
strb r2, [r0], #1
strb r3, [r0], #1
strb r4, [r0]
m_ret inst=pop
.p2align 2
// Can read 2 bytes before possibly crossing a page.
.Lstringcopy_unalign2:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign_copy1byte
ldrb r3, [r1, #1]
cbz r3, .Lstringcopy_unalign_copy2bytes
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
tst r2, #0xff0000
beq .Lstringcopy_unalign_copy3bytes
lsrs ip, r2, #24
beq .Lstringcopy_unalign_copy4bytes
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_unalign2
.p2align 2
// Can read 1 byte before possibly crossing a page.
.Lstringcopy_unalign1:
ldrb r2, [r1]
cbz r2, .Lstringcopy_unalign_copy1byte
ldr r2, [r1], #4
ldr r3, [r1], #4
pld [r1, #64]
sub ip, r2, #0x01010101
bic ip, ip, r2
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_first_register
sub ip, r3, #0x01010101
bic ip, ip, r3
ands ip, ip, #0x80808080
bne .Lstringcopy_zero_in_second_register
stmia r0!, {r2, r3}
b .Lstringcopy_unalign1
.Lstringcopy_unalign_copy1byte:
strb r2, [r0]
m_ret inst=pop
.Lstringcopy_unalign_copy2bytes:
strb r2, [r0], #1
strb r3, [r0]
m_ret inst=pop
.Lstringcopy_unalign_copy3bytes:
strh r2, [r0], #2
lsr r2, #16
strb r2, [r0]
m_ret inst=pop
.Lstringcopy_unalign_copy4bytes:
stmia r0, {r2}
#if defined(STPCPY)
add r0, r0, #3
#endif
m_ret inst=pop
#if defined(STPCPY)
END(stpcpy)
#else
END(strcpy)
#endif

View File

@ -1,10 +1,28 @@
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
upstream-openbsd/lib/libc/string/strcpy.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/cortex-a9/bionic/memcpy.S \
arch-arm/cortex-a9/bionic/memset.S \
arch-arm/cortex-a9/bionic/stpcpy.S \
arch-arm/cortex-a9/bionic/strcat.S \
arch-arm/cortex-a9/bionic/__strcat_chk.S \
arch-arm/cortex-a9/bionic/strcmp.S \
arch-arm/cortex-a9/bionic/strcpy.S \
arch-arm/cortex-a9/bionic/strlen.S \
arch-arm/cortex-a9/bionic/__strcat_chk.S \
arch-arm/cortex-a9/bionic/__strcpy_chk.S \
bionic/memmove.c \
arch-arm/cortex-a9/bionic/strlen.S \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -40,12 +40,10 @@
ENTRY(__strcat_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
push {r4, r5}
.save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
@ -195,9 +193,6 @@ END(__strcat_chk)
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcat_chk_failed)
.save {r0, lr}
.save {r4, r5}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4

View File

@ -39,7 +39,6 @@
ENTRY(__strcpy_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -161,7 +160,6 @@ END(__strcpy_chk)
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcpy_chk_failed)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4

View File

@ -72,7 +72,6 @@ END(__memcpy_chk)
ENTRY(memcpy)
pld [r1, #64]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -85,7 +84,6 @@ END(memcpy)
ENTRY_PRIVATE(__memcpy_chk_fail)
// Preserve lr for backtrace.
push {lr}
.save {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0

View File

@ -37,6 +37,7 @@
* memset() returns its first argument.
*/
.cpu cortex-a15
.fpu neon
.syntax unified

View File

@ -1,3 +1,17 @@
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memcpy.S \
arch-arm/denver/bionic/memmove.S \
@ -7,7 +21,8 @@ libc_bionic_src_files_arm += \
# Use cortex-a15 versions of strcat/strcpy/strlen.
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/strcmp.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/strlen.S \
arch-arm/cortex-a15/bionic/strcmp.S \

View File

@ -40,6 +40,8 @@
* Optimized memcmp() for Cortex-A9.
*/
.syntax unified
ENTRY(memcmp)
pld [r0, #(CACHE_LINE_SIZE * 0)]
pld [r0, #(CACHE_LINE_SIZE * 1)]
@ -161,25 +163,25 @@ ENTRY(memcmp)
eors r0, r0, ip
ldreq r0, [r4], #4
ldreq ip, [r1, #4]!
eoreqs r0, r0, lr
eorseq r0, r0, lr
ldreq r0, [r4], #4
ldreq lr, [r1, #4]!
eoreqs r0, r0, ip
eorseq r0, r0, ip
ldreq r0, [r4], #4
ldreq ip, [r1, #4]!
eoreqs r0, r0, lr
eorseq r0, r0, lr
ldreq r0, [r4], #4
ldreq lr, [r1, #4]!
eoreqs r0, r0, ip
eorseq r0, r0, ip
ldreq r0, [r4], #4
ldreq ip, [r1, #4]!
eoreqs r0, r0, lr
eorseq r0, r0, lr
ldreq r0, [r4], #4
ldreq lr, [r1, #4]!
eoreqs r0, r0, ip
eorseq r0, r0, ip
ldreq r0, [r4], #4
ldreq ip, [r1, #4]!
eoreqs r0, r0, lr
eorseq r0, r0, lr
bne 2f
subs r2, r2, #32
bhs 0b
@ -219,8 +221,7 @@ ENTRY(memcmp)
bne 8b
9: /* restore registers and return */
ldmfd sp!, {r4, lr}
bx lr
ldmfd sp!, {r4, pc}
10: /* process less than 12 bytes */
cmp r2, #0
@ -263,17 +264,17 @@ ENTRY(memcmp)
ldreq lr, [r1], #4
ldreq r0, [r4], #4
orreq ip, ip, lr, lsl #16
eoreqs r0, r0, ip
eorseq r0, r0, ip
moveq ip, lr, lsr #16
ldreq lr, [r1], #4
ldreq r0, [r4], #4
orreq ip, ip, lr, lsl #16
eoreqs r0, r0, ip
eorseq r0, r0, ip
moveq ip, lr, lsr #16
ldreq lr, [r1], #4
ldreq r0, [r4], #4
orreq ip, ip, lr, lsl #16
eoreqs r0, r0, ip
eorseq r0, r0, ip
bne 7f
subs r2, r2, #16
bhs 6b
@ -317,7 +318,7 @@ ENTRY(memcmp)
ldreq r7, [r1], #4
ldreq r0, [r4], #4
orreq ip, ip, r7, lsl r6
eoreqs r0, r0, ip
eorseq r0, r0, ip
bne 7f
subs r2, r2, #8
bhs 6b

View File

@ -37,9 +37,11 @@
* so we have to preserve R0.
*/
.syntax unified
ENTRY(__memcpy_chk)
cmp r2, r3
bgt fortify_check_failed
bhi __memcpy_chk_fail
// Fall through to memcpy...
END(__memcpy_chk)
@ -49,11 +51,14 @@ ENTRY(memcpy)
* ARM ABI. Since we have to save R0, we might as well save R4
* which we can use for better pipelining of the reads below
*/
.save {r0, r4, lr}
stmfd sp!, {r0, r4, lr}
.cfi_def_cfa_offset 12
.cfi_rel_offset r0, 0
.cfi_rel_offset r4, 4
.cfi_rel_offset lr, 8
/* Making room for r5-r11 which will be spilled later */
.pad #28
sub sp, sp, #28
.cfi_adjust_cfa_offset 28
// preload the destination because we'll align it to a cache line
// with small writes. Also start the source "pump".
@ -63,14 +68,14 @@ ENTRY(memcpy)
/* it simplifies things to take care of len<4 early */
cmp r2, #4
blo copy_last_3_and_return
blo .Lcopy_last_3_and_return
/* compute the offset to align the source
* offset = (4-(src&3))&3 = -src & 3
*/
rsb r3, r1, #0
ands r3, r3, #3
beq src_aligned
beq .Lsrc_aligned
/* align source to 32 bits. We need to insert 2 instructions between
* a ldr[b|h] and str[b|h] because byte and half-word instructions
@ -78,19 +83,19 @@ ENTRY(memcpy)
*/
movs r12, r3, lsl #31
sub r2, r2, r3 /* we know that r3 <= r2 because r2 >= 4 */
ldrmib r3, [r1], #1
ldrcsb r4, [r1], #1
ldrcsb r12,[r1], #1
strmib r3, [r0], #1
strcsb r4, [r0], #1
strcsb r12,[r0], #1
ldrbmi r3, [r1], #1
ldrbcs r4, [r1], #1
ldrbcs r12,[r1], #1
strbmi r3, [r0], #1
strbcs r4, [r0], #1
strbcs r12,[r0], #1
src_aligned:
.Lsrc_aligned:
/* see if src and dst are aligned together (congruent) */
eor r12, r0, r1
tst r12, #3
bne non_congruent
bne .Lnon_congruent
/* Use post-incriment mode for stm to spill r5-r11 to reserved stack
* frame. Don't update sp.
@ -100,29 +105,29 @@ src_aligned:
/* align the destination to a cache-line */
rsb r3, r0, #0
ands r3, r3, #0x1C
beq congruent_aligned32
beq .Lcongruent_aligned32
cmp r3, r2
andhi r3, r2, #0x1C
/* conditionally copies 0 to 7 words (length in r3) */
movs r12, r3, lsl #28
ldmcsia r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmiia r1!, {r8, r9} /* 8 bytes */
stmcsia r0!, {r4, r5, r6, r7}
stmmiia r0!, {r8, r9}
ldmcs r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmi r1!, {r8, r9} /* 8 bytes */
stmcs r0!, {r4, r5, r6, r7}
stmmi r0!, {r8, r9}
tst r3, #0x4
ldrne r10,[r1], #4 /* 4 bytes */
strne r10,[r0], #4
sub r2, r2, r3
congruent_aligned32:
.Lcongruent_aligned32:
/*
* here source is aligned to 32 bytes.
*/
cached_aligned32:
.Lcached_aligned32:
subs r2, r2, #32
blo less_than_32_left
blo .Lless_than_32_left
/*
* We preload a cache-line up to 64 bytes ahead. On the 926, this will
@ -160,10 +165,7 @@ cached_aligned32:
add r2, r2, #32
less_than_32_left:
.Lless_than_32_left:
/*
* less than 32 bytes left at this point (length in r2)
*/
@ -177,27 +179,26 @@ less_than_32_left:
/* conditionnaly copies 0 to 31 bytes */
movs r12, r2, lsl #28
ldmcsia r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmiia r1!, {r8, r9} /* 8 bytes */
stmcsia r0!, {r4, r5, r6, r7}
stmmiia r0!, {r8, r9}
ldmcs r1!, {r4, r5, r6, r7} /* 16 bytes */
ldmmi r1!, {r8, r9} /* 8 bytes */
stmcs r0!, {r4, r5, r6, r7}
stmmi r0!, {r8, r9}
movs r12, r2, lsl #30
ldrcs r3, [r1], #4 /* 4 bytes */
ldrmih r4, [r1], #2 /* 2 bytes */
ldrhmi r4, [r1], #2 /* 2 bytes */
strcs r3, [r0], #4
strmih r4, [r0], #2
strhmi r4, [r0], #2
tst r2, #0x1
ldrneb r3, [r1] /* last byte */
strneb r3, [r0]
ldrbne r3, [r1] /* last byte */
strbne r3, [r0]
/* we're done! restore everything and return */
1: ldmfd sp!, {r5-r11}
ldmfd sp!, {r0, r4, lr}
bx lr
ldmfd sp!, {r0, r4, pc}
/********************************************************************/
non_congruent:
.Lnon_congruent:
/*
* here source is aligned to 4 bytes
* but destination is not.
@ -207,9 +208,9 @@ non_congruent:
* partial words in the shift queue)
*/
cmp r2, #4
blo copy_last_3_and_return
blo .Lcopy_last_3_and_return
/* Use post-incriment mode for stm to spill r5-r11 to reserved stack
/* Use post-increment mode for stm to spill r5-r11 to reserved stack
* frame. Don't update sp.
*/
stmea sp, {r5-r11}
@ -228,15 +229,15 @@ non_congruent:
* becomes aligned to 32 bits (r5 = nb of words to copy for alignment)
*/
movs r5, r5, lsl #31
strmib r3, [r0], #1
strbmi r3, [r0], #1
movmi r3, r3, lsr #8
strcsb r3, [r0], #1
strbcs r3, [r0], #1
movcs r3, r3, lsr #8
strcsb r3, [r0], #1
strbcs r3, [r0], #1
movcs r3, r3, lsr #8
cmp r2, #4
blo partial_word_tail
blo .Lpartial_word_tail
/* Align destination to 32 bytes (cache line boundary) */
1: tst r0, #0x1c
@ -248,11 +249,11 @@ non_congruent:
str r4, [r0], #4
cmp r2, #4
bhs 1b
blo partial_word_tail
blo .Lpartial_word_tail
/* copy 32 bytes at a time */
2: subs r2, r2, #32
blo less_than_thirtytwo
blo .Lless_than_thirtytwo
/* Use immediate mode for the shifts, because there is an extra cycle
* for register shifts, which could account for up to 50% of
@ -260,11 +261,11 @@ non_congruent:
*/
cmp r12, #24
beq loop24
beq .Lloop24
cmp r12, #8
beq loop8
beq .Lloop8
loop16:
.Lloop16:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
@ -289,9 +290,9 @@ loop16:
stmia r0!, {r3,r4,r5,r6, r7,r8,r9,r10}
mov r3, r11, lsr #16
bhs 1b
b less_than_thirtytwo
b .Lless_than_thirtytwo
loop8:
.Lloop8:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
@ -316,9 +317,9 @@ loop8:
stmia r0!, {r3,r4,r5,r6, r7,r8,r9,r10}
mov r3, r11, lsr #8
bhs 1b
b less_than_thirtytwo
b .Lless_than_thirtytwo
loop24:
.Lloop24:
ldr r12, [r1], #4
1: mov r4, r12
ldmia r1!, { r5,r6,r7, r8,r9,r10,r11}
@ -345,12 +346,12 @@ loop24:
bhs 1b
less_than_thirtytwo:
.Lless_than_thirtytwo:
/* copy the last 0 to 31 bytes of the source */
rsb r12, lr, #32 /* we corrupted r12, recompute it */
add r2, r2, #32
cmp r2, #4
blo partial_word_tail
blo .Lpartial_word_tail
1: ldr r5, [r1], #4
sub r2, r2, #4
@ -360,34 +361,39 @@ less_than_thirtytwo:
cmp r2, #4
bhs 1b
partial_word_tail:
.Lpartial_word_tail:
/* we have a partial word in the input buffer */
movs r5, lr, lsl #(31-3)
strmib r3, [r0], #1
strbmi r3, [r0], #1
movmi r3, r3, lsr #8
strcsb r3, [r0], #1
strbcs r3, [r0], #1
movcs r3, r3, lsr #8
strcsb r3, [r0], #1
strbcs r3, [r0], #1
/* Refill spilled registers from the stack. Don't update sp. */
ldmfd sp, {r5-r11}
copy_last_3_and_return:
.Lcopy_last_3_and_return:
movs r2, r2, lsl #31 /* copy remaining 0, 1, 2 or 3 bytes */
ldrmib r2, [r1], #1
ldrcsb r3, [r1], #1
ldrcsb r12,[r1]
strmib r2, [r0], #1
strcsb r3, [r0], #1
strcsb r12,[r0]
ldrbmi r2, [r1], #1
ldrbcs r3, [r1], #1
ldrbcs r12,[r1]
strbmi r2, [r0], #1
strbcs r3, [r0], #1
strbcs r12,[r0]
/* we're done! restore sp and spilled registers and return */
add sp, sp, #28
ldmfd sp!, {r0, r4, lr}
bx lr
ldmfd sp!, {r0, r4, pc}
END(memcpy)
// Only reached when the __memcpy_chk check fails.
fortify_check_failed:
ENTRY_PRIVATE(__memcpy_chk_fail)
// Preserve lr for backtrace.
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
ldr r0, error_message
ldr r1, error_code
1:
@ -397,7 +403,7 @@ error_code:
.word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+8)
END(memcpy)
END(__memcpy_chk_fail)
.data
error_string:

View File

@ -35,6 +35,8 @@
* memset() returns its first argument.
*/
.syntax unified
ENTRY(__memset_chk)
cmp r2, r3
bls done
@ -76,12 +78,11 @@ ENTRY(memset)
orr r1, r1, r1, lsr #16
movs r12, r3, lsl #31
strcsb r1, [r0], #1 /* can't use strh (alignment unknown) */
strcsb r1, [r0], #1
strmib r1, [r0], #1
strbcs r1, [r0], #1 /* can't use strh (alignment unknown) */
strbcs r1, [r0], #1
strbmi r1, [r0], #1
subs r2, r2, r3
ldmlsfd sp!, {r0, r4-r7, lr} /* return */
bxls lr
popls {r0, r4-r7, pc} /* return */
/* align the destination to a cache-line */
mov r12, r1
@ -100,9 +101,9 @@ ENTRY(memset)
/* conditionally writes 0 to 7 words (length in r3) */
movs r3, r3, lsl #28
stmcsia r0!, {r1, lr}
stmcsia r0!, {r1, lr}
stmmiia r0!, {r1, lr}
stmcs r0!, {r1, lr}
stmcs r0!, {r1, lr}
stmmi r0!, {r1, lr}
movs r3, r3, lsl #2
strcs r1, [r0], #4
@ -117,15 +118,14 @@ ENTRY(memset)
/* conditionally stores 0 to 31 bytes */
movs r2, r2, lsl #28
stmcsia r0!, {r1,r3,r12,lr}
stmmiia r0!, {r1, lr}
stmcs r0!, {r1,r3,r12,lr}
stmmi r0!, {r1, lr}
movs r2, r2, lsl #2
strcs r1, [r0], #4
strmih r1, [r0], #2
strhmi r1, [r0], #2
movs r2, r2, lsl #2
strcsb r1, [r0]
ldmfd sp!, {r0, r4-r7, lr}
bx lr
strbcs r1, [r0]
ldmfd sp!, {r0, r4-r7, pc}
END(memset)
.data

View File

@ -32,6 +32,8 @@
#include <machine/cpu-features.h>
#include <private/bionic_asm.h>
.syntax unified
ENTRY(strcpy)
pld [r1, #0]
eor r2, r0, r1
@ -108,15 +110,15 @@ ENTRY(strcpy)
#ifdef __ARMEB__
tst r2, #0xff00
iteet ne
strneh r2, [ip], #2
strhne r2, [ip], #2
lsreq r2, r2, #8
streqb r2, [ip]
strbeq r2, [ip]
tstne r2, #0xff
#else
tst r2, #0xff
itet ne
strneh r2, [ip], #2
streqb r2, [ip]
strhne r2, [ip], #2
strbeq r2, [ip]
tstne r2, #0xff00
#endif
bne 5b

View File

@ -1,10 +0,0 @@
libc_bionic_src_files_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/memmove.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
upstream-openbsd/lib/libc/string/strcat.c \

View File

@ -38,9 +38,7 @@
#ifndef _ARM32_ASM_H_
#define _ARM32_ASM_H_
#ifndef _ALIGN_TEXT
# define _ALIGN_TEXT .align 0
#endif
#define __bionic_asm_align 0
#undef __bionic_asm_custom_entry
#undef __bionic_asm_custom_end
@ -50,10 +48,4 @@
#undef __bionic_asm_function_type
#define __bionic_asm_function_type #function
#if defined(__ELF__) && defined(PIC)
#define PIC_SYM(x,y) x ## ( ## y ## )
#else
#define PIC_SYM(x,y) x
#endif
#endif /* !_ARM_ASM_H_ */

View File

@ -28,14 +28,6 @@
#ifndef _ARM_MACHINE_CPU_FEATURES_H
#define _ARM_MACHINE_CPU_FEATURES_H
/* The purpose of this file is to define several macros corresponding
* to CPU features that may or may not be available at build time on
* on the target CPU.
*
* This is done to abstract us from the various ARM Architecture
* quirks and alphabet soup.
*/
/* __ARM_ARCH__ is a number corresponding to the ARM revision
* we're going to support. Our toolchain doesn't define __ARM_ARCH__
* so try to guess it.
@ -53,31 +45,4 @@
# endif
#endif
/* define __ARM_HAVE_HALFWORD_MULTIPLY when half-word multiply instructions
* this means variants of: smul, smulw, smla, smlaw, smlal
*/
#define __ARM_HAVE_HALFWORD_MULTIPLY 1
/* define __ARM_HAVE_LDREXD for ARMv7 architecture
* (also present in ARMv6K, but not implemented in ARMv7-M, neither of which
* we care about)
*/
#if __ARM_ARCH__ >= 7
# define __ARM_HAVE_LDREXD
#endif
/* define _ARM_HAVE_VFP if we have VFPv3
*/
#if __ARM_ARCH__ >= 7 && defined __VFP_FP__
# define __ARM_HAVE_VFP
#endif
/* define _ARM_HAVE_NEON for ARMv7 architecture if we support the
* Neon SIMD instruction set extensions. This also implies
* that VFPv3-D32 is supported.
*/
#if __ARM_ARCH__ >= 7 && defined __ARM_NEON__
# define __ARM_HAVE_NEON
#endif
#endif /* _ARM_MACHINE_CPU_FEATURES_H */

View File

@ -102,6 +102,8 @@
/* 112-127 are reserved for private experiments. */
#define R_ARM_IRELATIVE 160
#define R_ARM_RXPC25 249
#define R_ARM_RSBREL32 250
#define R_ARM_THM_RPC22 251

View File

@ -1,79 +0,0 @@
/* $OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $ */
/*
* Copyright (C) 2010 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _ARM_ENDIAN_H_
#define _ARM_ENDIAN_H_
#ifdef __GNUC__
/* According to RealView Assembler User's Guide, REV and REV16 are available
* in Thumb code and 16-bit instructions when used in Thumb-2 code.
*
* REV Rd, Rm
* Rd and Rm must both be Lo registers.
*
* REV16 Rd, Rm
* Rd and Rm must both be Lo registers.
*
* The +l constraint takes care of this without constraining us in ARM mode.
*/
#define __swap16md(x) ({ \
register u_int16_t _x = (x); \
__asm__ __volatile__("rev16 %0, %0" : "+l" (_x)); \
_x; \
})
#define __swap32md(x) ({ \
register u_int32_t _x = (x); \
__asm__ __volatile__("rev %0, %0" : "+l" (_x)); \
_x; \
})
#define __swap64md(x) ({ \
u_int64_t _swap64md_x = (x); \
(u_int64_t) __swap32md(_swap64md_x >> 32) | \
(u_int64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \
})
/* Tell sys/endian.h we have MD variants of the swap macros. */
#define MD_SWAP
#endif /* __GNUC__ */
#if defined(__ARMEB__)
#define _BYTE_ORDER _BIG_ENDIAN
#else
#define _BYTE_ORDER _LITTLE_ENDIAN
#endif
#define __STRICT_ALIGNMENT
#include <sys/types.h>
#include <sys/endian.h>
#endif /* !_ARM_ENDIAN_H_ */

View File

@ -1,50 +0,0 @@
/* $OpenBSD: exec.h,v 1.9 2003/04/17 03:42:14 drahn Exp $ */
/* $NetBSD: exec.h,v 1.6 1994/10/27 04:16:05 cgd Exp $ */
/*
* Copyright (c) 1993 Christopher G. Demetriou
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _ARM_EXEC_H_
#define _ARM_EXEC_H_
#define __LDPGSZ 4096
#define NATIVE_EXEC_ELF
#define ARCH_ELFSIZE 32
#define ELF_TARG_CLASS ELFCLASS32
#define ELF_TARG_DATA ELFDATA2LSB
#define ELF_TARG_MACH EM_ARM
#define _NLIST_DO_AOUT
#define _NLIST_DO_ELF
#define _KERN_DO_AOUT
#define _KERN_DO_ELF
#endif /* _ARM_EXEC_H_ */

View File

@ -26,10 +26,6 @@
* SUCH DAMAGE.
*/
/*
* machine/setjmp.h: machine dependent setjmp-related information.
*/
/* _JBLEN is the size of a jmp_buf in longs.
* Do not modify this value or you will break the ABI !
*
@ -37,46 +33,3 @@
* that was replaced by this one.
*/
#define _JBLEN 64
/* According to the ARM AAPCS document, we only need to save
* the following registers:
*
* Core r4-r14
*
* VFP d8-d15 (see section 5.1.2.1)
*
* Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine
* calls; registers s0-s15 (d0-d7, q0-q3) do not need to be preserved
* (and can be used for passing arguments or returning results in standard
* procedure-call variants). Registers d16-d31 (q8-q15), if present, do
* not need to be preserved.
*
* FPSCR saved because GLibc does saves it too.
*
*/
/* The internal structure of a jmp_buf is totally private.
* Current layout (may change in the future):
*
* word name description
* 0 magic magic number
* 1 sigmask signal mask (not used with _setjmp / _longjmp)
* 2 float_base base of float registers (d8 to d15)
* 18 float_state floating-point status and control register
* 19 core_base base of core registers (r4 to r14)
* 30 reserved reserved entries (room to grow)
* 64
*
* NOTE: float_base must be at an even word index, since the
* FP registers will be loaded/stored with instructions
* that expect 8-byte alignment.
*/
#define _JB_MAGIC 0
#define _JB_SIGMASK (_JB_MAGIC+1)
#define _JB_FLOAT_BASE (_JB_SIGMASK+1)
#define _JB_FLOAT_STATE (_JB_FLOAT_BASE + (15-8+1)*2)
#define _JB_CORE_BASE (_JB_FLOAT_STATE+1)
#define _JB_MAGIC__SETJMP 0x4278f500
#define _JB_MAGIC_SETJMP 0x4278f501

View File

@ -40,12 +40,10 @@
ENTRY(__strcat_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
push {r4, r5}
.save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
@ -179,7 +177,7 @@ ENTRY(__strcat_chk)
.L_strlen_done:
add r2, r3, r4
cmp r2, lr
bhi __strcat_chk_failed
bhi .L_strcat_chk_failed
// Set up the registers for the memcpy code.
mov r1, r5
@ -187,22 +185,17 @@ ENTRY(__strcat_chk)
mov r2, r4
add r0, r0, r3
pop {r4, r5}
END(__strcat_chk)
.cfi_adjust_cfa_offset -8
.cfi_restore r4
.cfi_restore r5
#define MEMCPY_BASE __strcat_chk_memcpy_base
#define MEMCPY_BASE_ALIGNED __strcat_chk_memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcat_chk_failed)
.save {r0, lr}
.save {r4, r5}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
// Undo the above cfi directives.
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.L_strcat_chk_failed:
ldr r0, error_message
ldr r1, error_code
1:
@ -212,7 +205,7 @@ error_code:
.word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcat_chk_failed)
END(__strcat_chk)
.data
error_string:

View File

@ -39,8 +39,7 @@
ENTRY(__strcpy_chk)
pld [r0, #0]
push {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
@ -150,22 +149,14 @@ ENTRY(__strcpy_chk)
pld [r1, #64]
ldr r0, [sp]
cmp r3, lr
bhs __strcpy_chk_failed
bhs .L_strcpy_chk_failed
// Add 1 for copy length to get the string terminator.
add r2, r3, #1
END(__strcpy_chk)
#define MEMCPY_BASE __strcpy_chk_memcpy_base
#define MEMCPY_BASE_ALIGNED __strcpy_chk_memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__strcpy_chk_failed)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
.L_strcpy_chk_failed:
ldr r0, error_message
ldr r1, error_code
1:
@ -175,7 +166,7 @@ error_code:
.word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__strcpy_chk_failed)
END(__strcpy_chk)
.data
error_string:

View File

@ -45,7 +45,7 @@
ENTRY(__memcpy_chk)
cmp r2, r3
bhi __memcpy_chk_fail
bhi .L_memcpy_chk_fail
// Fall through to memcpy...
END(__memcpy_chk)
@ -53,21 +53,20 @@ END(__memcpy_chk)
ENTRY(memcpy)
pld [r1, #64]
stmfd sp!, {r0, lr}
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
END(memcpy)
#define MEMCPY_BASE __memcpy_base
#define MEMCPY_BASE_ALIGNED __memcpy_base_aligned
#include "memcpy_base.S"
ENTRY_PRIVATE(__memcpy_chk_fail)
// Undo the cfi directives from above.
.cfi_adjust_cfa_offset -8
.cfi_restore r0
.cfi_restore lr
.L_memcpy_chk_fail:
// Preserve lr for backtrace.
push {lr}
.save {lr}
.cfi_def_cfa_offset 4
.cfi_adjust_cfa_offset 4
.cfi_rel_offset lr, 0
ldr r0, error_message
@ -79,7 +78,7 @@ error_code:
.word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW
error_message:
.word error_string-(1b+4)
END(__memcpy_chk_fail)
END(memcpy)
.data
error_string:

View File

@ -1,124 +1,191 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/***************************************************************************
Copyright (c) 2009-2013 The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of The Linux Foundation nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.
/*
* This code assumes it is running on a processor that supports all arm v7
* instructions, that supports neon instructions, and that has a 32 byte
* cache line.
*/
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
***************************************************************************/
// Assumes neon instructions and a cache line size of 32 bytes.
/* Assumes neon instructions and a cache line size of 64 bytes. */
ENTRY_PRIVATE(MEMCPY_BASE)
.save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
#include <machine/cpu-features.h>
#include <machine/asm.h>
/* do we have at least 16-bytes to copy (needed for alignment below) */
cmp r2, #16
blo 5f
#define PLDOFFS (10)
#define PLDTHRESH (PLDOFFS)
#define BBTHRESH (4096/64)
#define PLDSIZE (64)
/* align destination to cache-line for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 2f
#if (PLDOFFS < 1)
#error Routine does not support offsets less than 1
#endif
/* copy up to 15-bytes (count in r3) */
sub r2, r2, r3
movs ip, r3, lsl #31
itt mi
ldrbmi lr, [r1], #1
strbmi lr, [r0], #1
itttt cs
ldrbcs ip, [r1], #1
ldrbcs lr, [r1], #1
strbcs ip, [r0], #1
strbcs lr, [r0], #1
movs ip, r3, lsl #29
bge 1f
// copies 4 bytes, destination 32-bits aligned
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0, :32]!
1: bcc 2f
// copies 8 bytes, destination 64-bits aligned
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
#if (PLDTHRESH < PLDOFFS)
#error PLD threshold must be greater than or equal to the PLD offset
#endif
2: /* make sure we have at least 64 bytes to copy */
subs r2, r2, #64
blo 2f
.text
.fpu neon
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
pld [r1, #(32*8)]
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d4 - d7}, [r0, :128]!
bhs 1b
.L_memcpy_base:
cmp r2, #4
blt .L_neon_lt4
cmp r2, #16
blt .L_neon_lt16
cmp r2, #32
blt .L_neon_16
cmp r2, #64
blt .L_neon_copy_32_a
2: /* fix-up the remaining count and make sure we have >= 32 bytes left */
adds r2, r2, #32
blo 4f
mov r12, r2, lsr #6
cmp r12, #PLDTHRESH
ble .L_neon_copy_64_loop_nopld
/* Copy 32 bytes. These cache lines were already preloaded */
vld1.8 {d0 - d3}, [r1]!
sub r2, r2, #32
vst1.8 {d0 - d3}, [r0, :128]!
push {r9, r10}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r9, 0
.cfi_rel_offset r10, 4
4: /* less than 32 left */
add r2, r2, #32
tst r2, #0x10
beq 5f
// copies 16 bytes, 128-bits aligned
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0, :128]!
cmp r12, #BBTHRESH
ble .L_neon_prime_pump
5: /* copy up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1: bge 2f
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0]!
2: movs ip, r2, lsl #31
itt mi
ldrbmi r3, [r1], #1
strbmi r3, [r0], #1
itttt cs
ldrbcs ip, [r1], #1
ldrbcs lr, [r1], #1
strbcs ip, [r0], #1
strbcs lr, [r0], #1
add lr, r0, #0x400
add r9, r1, #(PLDOFFS*PLDSIZE)
sub lr, lr, r9
lsl lr, lr, #21
lsr lr, lr, #21
add lr, lr, #(PLDOFFS*PLDSIZE)
cmp r12, lr, lsr #6
ble .L_neon_prime_pump
ldmfd sp!, {r0, lr}
bx lr
END(MEMCPY_BASE)
itt gt
movgt r9, #(PLDOFFS)
rsbsgt r9, r9, lr, lsr #6
ble .L_neon_prime_pump
add r10, r1, lr
bic r10, #0x3F
sub r12, r12, lr, lsr #6
cmp r9, r12
itee le
suble r12, r12, r9
movgt r9, r12
movgt r12, #0
pld [r1, #((PLDOFFS-1)*PLDSIZE)]
.L_neon_copy_64_loop_outer_doublepld:
pld [r1, #((PLDOFFS)*PLDSIZE)]
vld1.32 {q0, q1}, [r1]!
vld1.32 {q2, q3}, [r1]!
ldr r3, [r10]
subs r9, r9, #1
vst1.32 {q0, q1}, [r0]!
vst1.32 {q2, q3}, [r0]!
add r10, #64
bne .L_neon_copy_64_loop_outer_doublepld
cmp r12, #0
beq .L_neon_pop_before_nopld
cmp r12, #(512*1024/64)
blt .L_neon_copy_64_loop_outer
.L_neon_copy_64_loop_ddr:
vld1.32 {q0, q1}, [r1]!
vld1.32 {q2, q3}, [r1]!
pld [r10]
subs r12, r12, #1
vst1.32 {q0, q1}, [r0]!
vst1.32 {q2, q3}, [r0]!
add r10, #64
bne .L_neon_copy_64_loop_ddr
b .L_neon_pop_before_nopld
.L_neon_prime_pump:
mov lr, #(PLDOFFS*PLDSIZE)
add r10, r1, #(PLDOFFS*PLDSIZE)
bic r10, #0x3F
sub r12, r12, #PLDOFFS
ldr r3, [r10, #(-1*PLDSIZE)]
.L_neon_copy_64_loop_outer:
vld1.32 {q0, q1}, [r1]!
vld1.32 {q2, q3}, [r1]!
ldr r3, [r10]
subs r12, r12, #1
vst1.32 {q0, q1}, [r0]!
vst1.32 {q2, q3}, [r0]!
add r10, #64
bne .L_neon_copy_64_loop_outer
.L_neon_pop_before_nopld:
mov r12, lr, lsr #6
pop {r9, r10}
.cfi_adjust_cfa_offset -8
.cfi_restore r9
.cfi_restore r10
.L_neon_copy_64_loop_nopld:
vld1.32 {q8, q9}, [r1]!
vld1.32 {q10, q11}, [r1]!
subs r12, r12, #1
vst1.32 {q8, q9}, [r0]!
vst1.32 {q10, q11}, [r0]!
bne .L_neon_copy_64_loop_nopld
ands r2, r2, #0x3f
beq .L_neon_exit
.L_neon_copy_32_a:
movs r3, r2, lsl #27
bcc .L_neon_16
vld1.32 {q0,q1}, [r1]!
vst1.32 {q0,q1}, [r0]!
.L_neon_16:
bpl .L_neon_lt16
vld1.32 {q8}, [r1]!
vst1.32 {q8}, [r0]!
ands r2, r2, #0x0f
beq .L_neon_exit
.L_neon_lt16:
movs r3, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1:
bge .L_neon_lt4
vld4.8 {d0[0], d1[0], d2[0], d3[0]}, [r1]!
vst4.8 {d0[0], d1[0], d2[0], d3[0]}, [r0]!
.L_neon_lt4:
movs r2, r2, lsl #31
itt cs
ldrhcs r3, [r1], #2
strhcs r3, [r0], #2
itt mi
ldrbmi r3, [r1]
strbmi r3, [r0]
.L_neon_exit:
pop {r0, pc}

View File

@ -37,13 +37,13 @@
*/
.fpu neon
.syntax unified
ENTRY(__memset_chk)
cmp r2, r3
bls .L_done
// Preserve lr for backtrace.
.save {lr}
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@ -69,11 +69,7 @@ END(bzero)
/* memset() returns its first argument. */
ENTRY(memset)
.save {r0}
stmfd sp!, {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0
mov r3, r0
vdup.8 q0, r1
/* make sure we have at least 32 bytes to write */
@ -83,7 +79,7 @@ ENTRY(memset)
1: /* The main loop writes 32 bytes at a time */
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0]!
vst1.8 {d0 - d3}, [r3]!
bhs 1b
2: /* less than 32 left */
@ -92,18 +88,17 @@ ENTRY(memset)
beq 3f
// writes 16 bytes, 128-bits aligned
vst1.8 {d0, d1}, [r0]!
vst1.8 {d0, d1}, [r3]!
3: /* write up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vst1.8 {d0}, [r0]!
vst1.8 {d0}, [r3]!
1: bge 2f
vst1.32 {d0[0]}, [r0]!
vst1.32 {d0[0]}, [r3]!
2: movs ip, r2, lsl #31
strmib r1, [r0], #1
strcsb r1, [r0], #1
strcsb r1, [r0], #1
ldmfd sp!, {r0}
strbmi r1, [r3], #1
strbcs r1, [r3], #1
strbcs r1, [r3], #1
bx lr
END(memset)

View File

@ -168,7 +168,6 @@ ENTRY(strcmp)
bne .L_do_align
/* Fast path. */
.save {r4-r7}
init
.L_doubleword_aligned:

View File

@ -1,3 +1,18 @@
libc_openbsd_src_files_exclude_arm += \
upstream-openbsd/lib/libc/string/memmove.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/stpcpy.c \
upstream-openbsd/lib/libc/string/strcat.c \
libc_bionic_src_files_exclude_arm += \
arch-arm/generic/bionic/memcpy.S \
arch-arm/generic/bionic/memset.S \
arch-arm/generic/bionic/strcmp.S \
arch-arm/generic/bionic/strcpy.S \
arch-arm/generic/bionic/strlen.c \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
libc_bionic_src_files_arm += \
arch-arm/krait/bionic/memcpy.S \
arch-arm/krait/bionic/memset.S \
@ -7,7 +22,10 @@ libc_bionic_src_files_arm += \
# Use cortex-a15 versions of strcat/strcpy/strlen and standard memmove
libc_bionic_src_files_arm += \
arch-arm/cortex-a15/bionic/stpcpy.S \
arch-arm/cortex-a15/bionic/strcat.S \
arch-arm/cortex-a15/bionic/strcpy.S \
arch-arm/cortex-a15/bionic/strlen.S \
bionic/memmove.c \
libc_bionic_src_files_arm += \
arch-arm/denver/bionic/memmove.S \

View File

@ -2,7 +2,7 @@
#include <private/bionic_asm.h>
ENTRY(clock_nanosleep)
ENTRY(___clock_nanosleep)
mov ip, r7
ldr r7, =__NR_clock_nanosleep
swi #0
@ -11,4 +11,5 @@ ENTRY(clock_nanosleep)
bxls lr
neg r0, r0
b __set_errno_internal
END(clock_nanosleep)
END(___clock_nanosleep)
.hidden ___clock_nanosleep

View File

@ -2,7 +2,7 @@
#include <private/bionic_asm.h>
ENTRY(close)
ENTRY(___close)
mov ip, r7
ldr r7, =__NR_close
swi #0
@ -11,4 +11,5 @@ ENTRY(close)
bxls lr
neg r0, r0
b __set_errno_internal
END(close)
END(___close)
.hidden ___close

Some files were not shown because too many files have changed in this diff Show More