Dmitriy Ivanov
e89c2048d6
Fix crash when trying to load invalid ELF file.
...
Bug: http://b/22047255
Bug: http://b/22091640
Change-Id: I6c51cff43287a6ac4b25fa9ce6a6fc3d232fd047
2015-06-25 19:58:03 -07: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
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
Dmitriy Ivanov
5fa858c565
Merge "Remove text-relocs support for apps targeting M+" into mnc-dev
2015-06-22 19:25:15 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
8557eeb0ad
Merge "Apply work around b/19059885 to x86" into mnc-dev
2015-05-16 16:57:16 +00: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
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
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
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
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
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
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
97139e6adc
Merge "Update NOTICE files." into mnc-dev
2015-05-12 17:29:25 +00:00
Elliott Hughes
f0bd92db89
Update NOTICE files.
...
Change-Id: I4e170118abf452dd87ffe79d343ba1e2b53955de
2015-05-12 10:09:01 -07: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
8264afb377
VersionTracker: Ignore libraries without soname
...
Bug: http://b/20872443
Change-Id: I7bd076885c1feae39af6ea64c9442bcc5ae5a1dc
2015-05-06 11:06:32 -07: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
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
114bd835a7
Refactoring: extract lookup_version_info(..)
...
Change-Id: I47f9c21a1738dc520fd83281c8227dc3a7e79650
(cherry picked from commit 31b408d2c2e070c35838e7859ca4a4e5eb0c45fc)
2015-04-30 17:42:01 -07: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
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
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
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
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
3d7bea1fa0
Add library name to error message
...
Change-Id: I079e6f1dd95fe9cae2135fcd7358c51f8b584ac9
2015-04-20 17:40:39 -07:00
Dmitriy Ivanov
2a81536144
Support symbol versioning
...
Bug: http://b/20139821
Change-Id: I64122a0fb0960c20b2ce614161b7ab048456b681
2015-04-16 17:57:30 -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
Dmitriy Ivanov
aea165cb03
Merge "Add ANDROID_DLEXT_FORCE_LOAD flag"
2015-04-03 19:45:24 +00: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
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