5494 Commits

Author SHA1 Message Date
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
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
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
Elliott Hughes
7e00b44e80 Expose __swsetup for LP32 binary compatibility.
Bug: 17476127
Change-Id: I0ef1355ac913d782c268a638f88642d6cfc236c2
2014-09-11 16:41:11 -07: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
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
27efc48814 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.

Bug: 14079438
Change-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1
2014-09-11 16:11:43 -07: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
Elliott Hughes
9e833bf0cf Fix mips __fadvise64.S build failure.
Bug: 12449798

(cherry picked from commit 9990b3973bdfcda5419c06886215147a878222f1)

Change-Id: Iba92e2aa262666a59fc38b870dfd9f4082eeb628
2014-09-11 10:15:14 -07: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
db1e958109 am 33df10f2: Merge "Add posix_fadvise(3)."
* commit '33df10f284a8adbf58f9734c0f43537db4206b2c':
  Add posix_fadvise(3).
2014-09-11 15:58:49 +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
Elliott Hughes
176c32787c Merge "Add posix_fadvise(3)." into lmp-dev 2014-09-11 15:43:05 +00:00
Elliott Hughes
0000826378 Add posix_fadvise(3).
Bug: 12449798
Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
2014-09-10 20:30:23 -07:00
Lorenzo Colitti
33a73bfa07 When comparing DNS server configs, also compare number of servers
Bug: 16070602
Change-Id: I605f1cca50b08479ebcad290b3bd179f59be8a96
2014-09-11 08:36:12 +09: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
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
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
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
938473a7f0 resolved conflicts for merge of 7efad83d to lmp-dev-plus-aosp
Change-Id: I3994c3c69e187e08d69642e097de14b5040c5b3b
2014-09-08 16:21:24 -07:00
Elliott Hughes
7efad83d43 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.

Bug: 17423135
Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
2014-09-08 15:36:21 -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
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
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
c8f6b82f87 Merge "Don't expose non-standard basename_r and dirname_r in LP64." into lmp-dev 2014-09-08 18:07:08 +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
Elliott Hughes
51c8355d5c 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.

Bug: 16205834
Change-Id: Idde7b46df4f253e39675600bcf82352879a716e7
2014-09-08 10:47:45 -07: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
Christopher Ferris
47ed03f70c Merge "Add dlmalloc_usable_size for 32 bit arches." into lmp-dev 2014-09-06 19:58:40 +00:00
Christopher Ferris
1c365cb494 Add dlmalloc_usable_size for 32 bit arches.
Bug: 17337831
Change-Id: I50c50559a5dfa083c85f064042bc0726718c988b
2014-09-05 18:37:30 -07: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
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
Elliott Hughes
f0e9458ea5 Don't expose non-standard basename_r and dirname_r in LP64.
Bug: 17407423
Change-Id: I47fe499a4c396bf09d7b78fd828728d04777398b
2014-09-05 16:12:42 -07: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
5beddb7d64 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).

(cherry-pick of 27a9aed81978af792cb06035a1619c8141a5fb5b plus the
new ScopeGuard.h from a3ad450a2e3fb6b3fe359683b247eba20896f646.)

Bug: 17394276
Change-Id: I5b92dc64ca089400223b2d9a3743e9b9d57c1bc2
2014-09-04 20:34:03 -07: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
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
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