105bc26fa6e5f6a946a2ff144ae316e69c6ce08e |
|
16-Aug-2012 |
Elliott Hughes <enh@google.com> |
Fix comment typos. Change-Id: I8feeec1ee9935a6d6baebe57f1c0043ff90ff94f
|
12c78bbded8ec03f821dfa09174464c04836e4ea |
|
14-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
linker: avoid clobbering the .dynamic section of shared libs This patch removes the DT_NEEDED hack which stores pointers to soinfo structs in the .dynamic section of the library being loaded. Instead, it caches the soinfo struct pointers on the stack during relocation time. After relocation time, i.e. when calling constructors and destructors of the shared library and its dependencies, uncached access is used instead, doing lookups using the string table entries pointed to by the DT_NEEDED entries. By removing this hack, it is no longer needed to undo the PT_GNURELRO protection, i.e., all non-writable mappings can remain non-writable during their entire lifespan. Even though, strictly speaking, the algorithmic complexity has increased somewhat, the real-world adverse effect is negligible on the systems I have tested. Change-Id: I2361502560b96b5878f7f94a8e8a215350d70d64 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
|
4688279db5dcc4004941e7f133c4a1c3617d842c |
|
04-Aug-2012 |
Elliott Hughes <enh@google.com> |
Clean up the linker a bit, remove prelinking support. Also make the errors more readable, since none of us seemed to know what they actually meant. The new style is still as verbose as the old, but that's probably necessary in the absence of chained exceptions in C. Here's what you'd see if you try to boot after removing libsurfaceflinger.so: 32267 32267 E AndroidRuntime: java.lang.UnsatisfiedLinkError: Cannot load library: (linker.c:1629, pid 32259) soinfo_link_image: could not load library "libsystem_server.so" needed by "libandroid_servers.so"; caused by (linker.c:1629, pid 32259) soinfo_link_image: could not load library "libsurfaceflinger.so" needed by "libsystem_server.so"; caused by (linker.c:709, pid 32259) load_library: library "libsurfaceflinger.so" not found This patch also fixes almost all of the compiler warnings. Change-Id: I64bb59aed6d4e039c15ea45be2367f319ef879f8
|
c1bd559d5b0fdcc25db2b6ae2705914103b24699 |
|
19-Jun-2012 |
David 'Digit' Turner <digit@google.com> |
linker: New sources to manage the ELF program header table. This patch introduces two new source files containing a set of functions to manage the program header table in an ELF binary, including the ability to load PT_LOAD segments, and apply PT_GNU_RELRO protection. Note: the files are not used currently, this will appear in a series of future patches that will gradually modify linker.c to use the phdr_table_xxx functions properly. Change-Id: Ia3d4c1ff5fc3e265d8258b64b492f4e643f51bdc
|