Nick Kralevich
031517ff74
am 8ad9909a
: am d11ca4e8
: Merge "Revert "Reenable support for non-PIE executables""
...
* commit '8ad9909a70c4925a1da15ce150835e436f54d8c1':
Revert "Reenable support for non-PIE executables"
2014-07-03 19:59:41 +00:00
Dmitriy Ivanov
fba3354e81
am 176f13a7
: am afd37c42
: Merge "Build fix"
...
* commit '176f13a70845555d6b5776ddacdae8771dccb13f':
Build fix
2014-07-02 23:19:28 +00:00
Dmitriy Ivanov
e9fa0de5b0
am 8551bfb0
: am 950a435f
: Merge "Load library using file handle."
...
* commit '8551bfb04385781c3b8c68afaf9c055c22a4e985':
Load library using file handle.
2014-07-02 23:13:56 +00:00
Dmitriy Ivanov
d383066941
Build fix
...
Change-Id: Ib43e0f055e3c5f07b50393bfcab9738454835ac3
2014-07-02 16:06:50 -07:00
Nick Kralevich
76e289c026
Revert "Reenable support for non-PIE executables"
...
/system/bin/tf_daemon on Nakasi has been updated so it's
a PIE executable. We can now drop non-PIE support.
This reverts commit d81b3b275d
.
Bug: 15086752
Bug: 15732002
Bug: 14566672
Change-Id: I832c4de01a8fa050754ea64da317d1639990265e
2014-07-03 12:08:34 -07:00
Dmitriy Ivanov
04dc91ae76
Load library using file handle.
...
* This patch enables dlopen by file descriptor
instead of path/name.
Bug: 15984217
Change-Id: Ib39051e00567fb97070bf96d8ce63993877c0a01
2014-07-02 13:20:47 -07:00
Dmitriy Ivanov
053f4c9cb2
am 711b5584
: am 105ef36c
: Merge "Native tests are now multilib=both by default"
...
* commit '711b5584db13b6a2aca555e577c3d7cfb04946ab':
Native tests are now multilib=both by default
2014-07-01 23:12:34 +00:00
Dmitriy Ivanov
4d8f3c4d99
am 51c812cd
: am 442d41fc
: Merge "Write message to stderr on __libc_fatal()"
...
* commit '51c812cd220cd9f493d61df98ca77dd0b5f000da':
Write message to stderr on __libc_fatal()
2014-07-01 22:10:25 +00:00
Dmitriy Ivanov
eff2f8bc2c
am aa355352
: am 176ccd49
: Merge "Add support for protected local symbol lookup."
...
* commit 'aa3553521b82e7fbec242cdc5280d1aa626a47e6':
Add support for protected local symbol lookup.
2014-07-01 21:36:00 +00:00
Dmitriy Ivanov
12bf3bcdee
Write message to stderr on __libc_fatal()
...
Change-Id: Ia8d6e256768fa51786d0139d3f3b6e9e4bebe027
2014-07-01 14:46:03 -07:00
Dmitriy Ivanov
fcac81ef04
Native tests are now multilib=both by default
...
Change-Id: I788ac0b871703c137727a65e017c4466127c0190
2014-07-01 15:38:22 -07:00
Dmitriy Ivanov
d97e9f546e
Add support for protected local symbol lookup.
...
Bug: http://code.google.com/p/android/issues/detail?id=66048
Change-Id: Ib334223df27adad9477fb241ab099c5e26df4a7d
2014-07-01 10:25:54 -07:00
Elliott Hughes
27cc284e02
am 0bdbc499
: am 260846f3
: Merge "Reinstate the x86 dynamic linker warning for text relocations."
...
* commit '0bdbc499baf361e1b04ba97baf60e0ccdbddeb04':
Reinstate the x86 dynamic linker warning for text relocations.
2014-06-30 22:08:04 +00:00
Dmitriy Ivanov
59d4f55ab5
am 33c1af30
: am e5c759ff
: Merge "Disallow dlopen("egl/blah.so") on LP64"
...
* commit '33c1af30706ed0869b3997f2ee0f087e55b56676':
Disallow dlopen("egl/blah.so") on LP64
2014-06-30 18:07:02 +00:00
Colin Cross
4720dc7372
am 26dde2d2
: am ddc44974
: Merge "Revert "HACK: linker: check for handle==0xffffffff on LP64""
...
* commit '26dde2d2e407b45ebeeacd9784823ff1c8f78f64':
Revert "HACK: linker: check for handle==0xffffffff on LP64"
2014-06-29 03:24:21 +00:00
Colin Cross
ddc449748b
Merge "Revert "HACK: linker: check for handle==0xffffffff on LP64""
2014-06-26 23:45:01 +00:00
Dmitriy Ivanov
e43c4a7a66
Disallow dlopen("egl/blah.so") on LP64
...
Bug: 7465467
Change-Id: Ibd3a4f1a6095f4397bde4f656e3c11b67f7edd47
2014-06-29 13:02:06 -07:00
Elliott Hughes
aa836f7310
Reinstate the x86 dynamic linker warning for text relocations.
...
Bug: 11358761
Change-Id: I4fc56ce7d76c9703a307ddd4d371d5e98bc6f51d
2014-06-30 14:46:53 -07:00
Nick Kralevich
881e426524
am deca2451
: am 8a7cffc8
: Merge "Reenable support for non-PIE executables"
...
* commit 'deca2451e0bdcc98777f06bfbe8f9e10fc529778':
Reenable support for non-PIE executables
2014-06-19 17:15:02 +00:00
Dmitriy Ivanov
8c79f5f895
am 6b8b3dd2
: am 64dfbd24
: Merge "Fix weak function lookups"
...
* commit '6b8b3dd28a145021281f69b485763748f29b7b03':
Fix weak function lookups
2014-06-18 16:00:39 +00:00
Nick Kralevich
d81b3b275d
Reenable support for non-PIE executables
...
On Nakasi builds, /system/bin/tf_daemon is a pre-compiled
vendor supplied binary. When support for non-PIE executables
was removed, that daemon failed to start, which induced
a number of bugs.
* keystore is broken
* CTS runs will hang after a certain period of time
Temporarily reenable non-PIE support for 32-bit platforms
until Nakasi is fixed.
This rolls back the following commits:
Cleanup: updated comments
* 6275f20834
Cleanup: remove AARCH/ARM_COPY relocation support
* b906e13c55
And restricts the following patch to 64 bit only:
Remove support for non-PIE executables
* 2aebf5429b
Bug: 14566672
Bug: 15086752
Bug: 15732002
Change-Id: Ia2501aa14bd30feb4a6ce66bdb7c9f066dba0b5f
2014-06-19 09:09:54 -07:00
Dmitriy Ivanov
ce44166c73
Fix weak function lookups
...
* Linker now correctly resolves function defined
with __attribute__((weak)).
Bug: https://code.google.com/p/android/issues/detail?id=70206
Change-Id: I82efb905676c25fefb1b11a13f5fecb0f1384657
2014-06-17 16:18:18 -07:00
Colin Cross
acfc63760e
Revert "HACK: linker: check for handle==0xffffffff on LP64"
...
This reverts commit 346fea0805
.
Change-Id: Id3fd79451e4218e68e39ce22f21408cbf93255ee
2014-06-16 15:44:20 -07:00
Elliott Hughes
b618aa818d
am fe6e646c
: Update NOTICE files.
...
* commit 'fe6e646cb79fe15d7815fdb9c92cc66be56ab1d4':
Update NOTICE files.
2014-06-16 20:05:43 +00:00
Elliott Hughes
fe6e646cb7
Update NOTICE files.
...
Change-Id: I459caf48ba861372a4d0bc75f98a9cb4acc20fd5
2014-06-16 10:24:37 -07:00
Chris Dearman
9d98ee17fe
[MIPS64] linker64 requires startup code
...
Change-Id: Iff2cd7d4dc40a67978bd9fc585b86e5a87afdbdd
2014-06-12 19:18:12 -07:00
Elliott Hughes
1a58629340
Remove an unused parameter from the dlopen implementation.
...
Change-Id: I9297913a743bb570b48ebbe594ff711a481e89e0
2014-06-03 16:23:08 -07:00
Elliott Hughes
d286796fce
Turn on -Wunused and fix the mistakes it uncovers.
...
Change-Id: I023d2d8b547fbc21d4124bb7510d42b06a0dc501
2014-06-03 15:22:34 -07:00
Dmitriy Ivanov
ce00354fec
Merge "Do not add arcs to the soinfo graph on dlopen"
2014-05-23 02:19:10 +00:00
Bjorn Andersson
3c005d6019
Do not add arcs to the soinfo graph on dlopen
...
While introducing RTLD_NOLOAD in b648a8a5
a change in how soinfo structs are
connected was also introduced. When calling dlopen the library that is loaded
is added as a child to the soinfo from which the caller comes - i.e. building a
dependency graph.
Unfortunately this shows issues upon unloading, such as blowing the stack if
there are loops in the graph.
This change reverts that part of b648a8a5
, keeping everything as a child of the
root soinfo.
Change-Id: I604ee9210613b19f693a568158e69707620a95db
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
2014-05-22 19:08:14 -07:00
Elliott Hughes
2ea60ff0b4
Remove unnecessary #includes of <sys/atomics.h>.
...
Bug: 14903517
Change-Id: I7b5bcebe58774a441da986cc02376dd88e00ea0e
2014-05-22 11:00:21 -07:00
Dmitriy Ivanov
ca1c80220e
Removed dlsym handle != NULL check for lp64
...
* Removed unnecessary NULL check in dlsym
* Fixed dlsym_failure test to account for
correct RTLD_DEFAULT value
* Added temporary check for legacy RTLD_DEFAULT
value for non-yet-recompiled binaries
Bug: 15146875
Change-Id: I089fa673762629f5724b6e4fbca019d9cfc39905
2014-05-21 22:42:24 -07:00
Colin Cross
346fea0805
HACK: linker: check for handle==0xffffffff on LP64
...
bionic RTLD_NEXT was changed from 0xffffffff to -1L, which breaks
existing binaries compiled. Temporarily look either until we can
get recompiled binaries.
Bug: 15113039
Change-Id: I1568fa0e4a832c5e6df21da74a33b22bde7f16f6
2014-05-20 15:19:02 -07:00
Dmitriy Ivanov
f092feb81b
Merge "Add R_X86_64_64 to the list of possible weak relocs"
2014-05-20 19:11:25 +00:00
Dmitriy Ivanov
b648a8a57e
Add RTLD_NOLOAD support and some related changes.
...
* Aligned RTLD_ values with glibc for lp64
* dlopen supports RTLD_NOLOAD flag
* soinfo_unload calls find_library(.., RTLD_NOLOAD)
instead of naive find_loaded_library_by_name()
* dlopen changed to add child to caller soinfo instead
of somain.
Bug: https://code.google.com/p/android/issues/detail?id=64069
Change-Id: I1a65f2c34f3e0edc6d2c41a2e408b58195feb640
2014-05-20 12:02:24 -07:00
Pavel Chupin
bb5bb2046f
Add R_X86_64_64 to the list of possible weak relocs
...
Change-Id: I768a5948d89701a1719734954a3524d3c7187e6a
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-05-20 16:53:33 +04:00
Dmitriy Ivanov
489e498434
Fix lookup-by-base-name for lp64
...
Bug:https://code.google.com/p/android/issues/detail?id=6670
Change-Id: I5b70e7cde7f40799148aca0a91fb2bb08e0f2b54
2014-05-19 19:15:06 -07:00
Elliott Hughes
00c855eb3d
Rethrow SIGTRAP too.
...
Bug: 15024256
Change-Id: I0347da9698a6ccd317ce6e6f7916d710d66e0f8a
2014-05-16 17:34:13 -07:00
Elliott Hughes
62e35755eb
debugger.cpp should know the names of the signals it catches.
...
Change-Id: I37908b07739ad465652f143848c52bc1ef19e421
2014-05-16 16:59:54 -07:00
Dmitriy Ivanov
d59e50063a
Improve detection of already loaded libraries
...
Linker is now able to resolve symlinked libraries correctly.
soinfo is extended to save the graph of dependencies during
load/unload. Dependencies are used only in CallConstructor.
Bug: 9741592
Change-Id: Id9c48a74c46aa89bcdf3d54ec2f8ba3d398130b1
2014-05-14 15:16:35 -07:00
Dmitriy Ivanov
6897b7b8b9
Merge "Fix for linker allocator"
2014-05-14 21:02:18 +00:00
Dmitriy Ivanov
1079406cab
Fix for linker allocator
...
Change-Id: I18a3f1a8515657f0deb69266184fb516a27f90e8
2014-05-14 12:52:57 -07:00
Elliott Hughes
1728b23965
Switch to g_ for globals.
...
That's what the Google style guide recommends, and we're starting
to get a mix.
Change-Id: Ib0c53a890bb5deed5c679e887541a715faea91fc
2014-05-14 10:02:03 -07:00
Dmitriy Ivanov
c6b5834ceb
Merge "Remove page level mprotects"
2014-05-14 01:45:50 +00:00
Dmitriy Ivanov
bc23e530c4
Remove page level mprotects
...
Freeing block mprotects on the page which it turn
may lead to application crash if linker subsequently
tries to modify another block on the page.
Bug: 14895266
Change-Id: I8ff7f5df467d7be184242de652032b3c84e24b76
2014-05-13 18:34:48 -07:00
Dmitriy Ivanov
d44927b8e9
Merge "Refactor linker allocator"
2014-05-13 15:49:18 +00:00
Dmitriy Ivanov
d597d263bc
Refactor linker allocator
...
Makes it reusable for different fixed sized and not very
big structures (<PAGE_SIZE).
Change-Id: Id5ec13fc6541b1935ef7fe3671c22b98685abbae
2014-05-12 21:40:09 -07:00
Dmitriy Ivanov
6275f20834
Cleanup: updated comments
...
Bug: 14566672
Change-Id: I49ad28e3914b7d559db1e98542fee919db768f49
2014-05-12 11:47:10 -07:00
Dmitriy Ivanov
b906e13c55
Cleanup: remove AARCH/ARM_COPY relocation support
...
They are only legal for ET_EXEC binaries and these are no
longer supported.
Bug: 14566672
Change-Id: I99e0ff47e8c572db474bc5e52df870a72269abb3
2014-05-12 09:06:14 -07:00
Nick Kralevich
2aebf5429b
Remove support for non-PIE executables
...
Don't support the dynamic linker loading ET_EXEC executables. Only
support ET_DYN executables.
Bug: 14566672
Change-Id: Ia1f2bfffe7ea867c1cd62e67d7fd637c60c0728d
2014-05-08 13:17:17 -07:00