11037 Commits

Author SHA1 Message Date
Dmitriy Ivanov
2cd77d301f Undo the bad work of Automerger
Change-Id: I585388aebc556a094db4c22e647edacea7cde129
2014-10-02 13:08:39 -07:00
Dmitriy Ivanov
145372b1bc Revert "L-MR1 specific fixes"
This reverts commit 1cd0c6777f35b531c9ce78397d0915aa521b3e87.
2014-10-02 12:49:42 -07: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
7239135eb4 am b19bd93f: Merge "Add stpcpy assembler version."
* commit 'b19bd93f8b83307f2f7530545f7c78824914f4eb':
  Add stpcpy assembler version.
2014-10-01 18:24:26 +00:00
Christopher Ferris
b19bd93f8b Merge "Add stpcpy assembler version." 2014-10-01 18:16:14 +00:00
Elliott Hughes
e4f8962ab5 Merge "Update bionic to tzdata 2014h." into lmp-mr1-dev 2014-10-01 18:02:51 +00:00