Yusuke Sato
71107cdd02
Merge "Rename ZipEntryName to ZipString"
2015-06-29 17:49:41 +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 06700b2b5e
)
2015-06-25 20:05:50 -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
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
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 d02ec08427
.
Bug: http://b/22045439
Change-Id: Iaf10ff1e2948083cce0098f29d5b87b32bfae1b7
2015-06-24 20:43:33 +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 3e6f780754
)
2015-06-22 12:26:53 -07: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
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 28154f5c56
)
2015-06-17 17:16:44 -07:00
Dimitry Ivanov
d2c81ed000
Revert "Improve library lookup logic"
...
This reverts commit 455c145e3c
.
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
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 ea4ef52fa4
)
2015-06-17 10:18:28 -07: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 524f1f1efe
)
2015-06-11 11:01:23 -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
Evgenii Stepanov
72af1235e4
Merge "Support DT_RUNPATH in the linker."
2015-06-10 23:56:03 +00: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
ba1d40a3f1
Merge "Statically linked executables should honor AT_SECURE."
2015-06-10 22:49:57 +00: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
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
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 04f7e3e955
)
2015-06-02 18:09:23 -07: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 38c37d6705
)
2015-06-02 14:02:22 -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
Dmitriy Ivanov
5511551009
Merge "Improve some of error/warning messages"
2015-05-28 22:28:13 +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
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
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 69a5fb951d
)
2015-05-15 18:42:14 -07: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
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
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
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
406d99665c
VersionTracker: Ignore libraries without soname
...
Bug: http://b/20872443
Change-Id: I7bd076885c1feae39af6ea64c9442bcc5ae5a1dc
(cherry picked from commit 8264afb377
)
2015-05-06 12:04:57 -07: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
31b408d2c2
Refactoring: extract lookup_version_info(..)
...
Change-Id: I47f9c21a1738dc520fd83281c8227dc3a7e79650
2015-04-30 16:12:32 -07:00
Dmitriy Ivanov
f29640c2d8
Merge "linker: initialize system properties"
2015-04-29 23:44:57 +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
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
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
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
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
Dimitry Ivanov
56be6ed9e4
Revert "Remove text-relocation support for lp32"
...
This reverts commit cb00add1b3
.
Bug: 20020312
Bug: 20013628
Change-Id: I8baa3d4b6c7fef50c9e2531257d5b96762099eb3
2015-04-01 21:18:48 +00:00
Dmitriy Ivanov
cb00add1b3
Remove text-relocation support for lp32
...
Bug: 20013628
Change-Id: Idaf8012f00ee1304d429c3b42f9ebc6b648c55b8
2015-03-31 17:42:45 -07:00
Dmitriy Ivanov
20d89cb5b0
Fix long lines and replace macros with functions.
...
Change-Id: I4e1cab488d5b2c8e4289da617350a86e72a4ba12
2015-03-31 11:49:25 -07:00