summaryrefslogtreecommitdiffstats
path: root/linker
Commit message (Collapse)AuthorAgeFilesLines
* Add the dl_iterate_phdr function to libdl for arm.Christopher Ferris2013-09-062-12/+12
| | | | | | | | | | Bug: 8410085 Merge from internal master. (cherry-picked from cb491bc66dc0abc145930b09086eb9189a30f6c2) Change-Id: I94ed51bc5d4c626df7552c0e85c31ccee2d6568f
* Make mips_relocate_got tolerate a missing gotBrian Carlstrom2013-08-211-17/+15
| | | | | | | | Bug: 10094803 (cherry picked from commit 7ee26878065abb494600595349ce58b2b2db3709) Change-Id: Ib15bccecaee421dc463d46a3956b054051708759
* Add more information to error due to truncated Elf32_EhdrBrian Carlstrom2013-08-141-1/+2
| | | | Change-Id: I24f30bd0c1120bcf85d77f5c4e69f0fefe9a2478
* am 2be511d4: Merge "Improve stack overflow diagnostics (take 2)."Elliott Hughes2013-07-171-29/+34
|\ | | | | | | | | * commit '2be511d405d47eccc61a6e3c338d1877bf33b4fa': Improve stack overflow diagnostics (take 2).
| * Improve stack overflow diagnostics (take 2).Elliott Hughes2013-07-171-29/+34
| | | | | | | | | | | | | | | | | | | | This reverts commits eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 and d14dc3b87fbf80553f1cafa453816b7f11366627, and fixes the bug where we were calling mmap (which might cause errno to be set) before __set_tls (which is required to implement errno). Bug: 8557703 Change-Id: I2c36d00240c56e156e1bb430d8c22a73a068b70c
* | am 2cf5a6f6: Merge "Revert "Improve stack overflow diagnostics.""Guang Zhu2013-07-161-34/+29
|\ \ | |/ | | | | | | * commit '2cf5a6f6627549842c0c840ff3615ae942a90ea3': Revert "Improve stack overflow diagnostics."
| * Revert "Improve stack overflow diagnostics."Guang Zhu2013-07-171-34/+29
| | | | | | | | | | | | This reverts commit aa754dca90487356cabf07ade0e8d88c2630b784. Change-Id: Ifa76eee31f7f44075eb3a48554315b2693062f44
* | am 026867c7: Merge "Improve stack overflow diagnostics."Elliott Hughes2013-07-161-29/+34
|\ \ | |/ | | | | | | * commit '026867c7dcce7828212dcd4a61806146908e9039': Improve stack overflow diagnostics.
| * Improve stack overflow diagnostics.Elliott Hughes2013-07-161-29/+34
| | | | | | | | | | | | | | | | | | We notify debuggerd of problems by installing signal handlers. That's fine except for when the signal is caused by us running off the end of a thread's stack and into the guard page. Bug: 8557703 Change-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3
* | am 7d624e9a: Merge "Kernel dso support for \'dl_iterate_phdr\' function"Elliott Hughes2013-06-251-0/+24
|\ \ | |/ | | | | | | * commit '7d624e9aff4c6addea7f2275fe58ff0815d95c70': Kernel dso support for 'dl_iterate_phdr' function
| * Kernel dso support for 'dl_iterate_phdr' functionSergey Melnikov2013-06-251-0/+24
| | | | | | | | | | | | | | | | | | | | Kernel provides virtual DSO for stack unwinding/exception handlind info for signal usage case. Stack unwinding routines use 'dl_iterate_phdr' function for additional DWARF info gathering from DSOs. Patch enables virtual DSO enumeration via dl_iterate_phdr function. Signed-off-by: Sergey Melnikov <sergey.melnikov@intel.com> Change-Id: Ic2882b28f40b456a088bc1e63c50cbfda7e4a102
* | am 53ddcc90: Merge "linker: Emit a warning on text relocations"Nick Kralevich2013-06-211-0/+2
|\ \ | |/ | | | | | | * commit '53ddcc90701d86c7d809a84cf4710c651066e3c7': linker: Emit a warning on text relocations
| * linker: Emit a warning on text relocationsNick Kralevich2013-06-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | Text relocations unnecessarily mark pages as dirty, preventing them from being swapped out, wasting memory. Also, text relocations prevent the code from running on certain hardened systems. Print a message in logcat and stderr when we see a text relocation, to encourage developers to fix their code. Change-Id: I6051a7463911e090ae5727a355397d539669d5b9
* | am 6807af77: Merge "Make LD_PRELOAD failures just warnings."Elliott Hughes2013-06-182-8/+18
|\ \ | |/ | | | | | | * commit '6807af773f862750efb6860e00402580a5f463f3': Make LD_PRELOAD failures just warnings.
| * Make LD_PRELOAD failures just warnings.Elliott Hughes2013-06-182-8/+18
| | | | | | | | | | | | | | | | This matches glibc and makes life easier for developers who want to sometimes preload a library from init (which has no conditionals); they can simply move/remove the library to disable. Change-Id: I579b8633f958235af6e46bb53b378b9e363afb1f
* | am 8252b8e4: Merge "Honor p_vaddr if set"Brian Carlstrom2013-06-102-21/+32
|\ \ | |/ | | | | | | * commit '8252b8e4b730b13623f31dc66396e000586d1c58': Honor p_vaddr if set
| * Honor p_vaddr if setBrian Carlstrom2013-06-072-21/+32
| | | | | | | | | | | | (cherry picked from commit 88ff15c2c279d2bbe3569101b36cd2aa0931a0a9) Change-Id: I4aabbe911d30aea8ace69e29bb6e980a4e89de90
* | am 06713930: Merge "Small cleanup of soinfo_elf_lookup."Brian Carlstrom2013-06-031-5/+2
|\ \ | |/ | | | | | | * commit '0671393072a78e75a726c58aa3ca718e55eeac3e': Small cleanup of soinfo_elf_lookup.
| * Small cleanup of soinfo_elf_lookup.Christopher Ferris2013-06-031-5/+2
| | | | | | | | | | | | | | - Remove unnecessary line. - Move declarations to first use. Change-Id: I1d8398d6c13f7cb86bffe0b68af849e35a4b234d
* | am f5f29de6: Merge "Fix bionic linker to support segments with zero p_filesz"Brian Carlstrom2013-05-211-10/+13
|\ \ | |/ | | | | | | * commit 'f5f29de6ae5a0b74234f111b5691a1e5588671cb': Fix bionic linker to support segments with zero p_filesz
| * Fix bionic linker to support segments with zero p_fileszBrian Carlstrom2013-05-211-10/+13
| | | | | | | | | | | | (cherry picked from commit 96362fb9d11beef6233aa03db396f25688e70860) Change-Id: Ib075a6dfc45d5d0746d8b278f317dd9b8d772f2a
* | am 98f7659d: Merge "Don\'t fail to run DT_INIT and DT_INIT_ARRAY ↵Elliott Hughes2013-05-091-38/+24
|\ \ | |/ | | | | | | | | | | constructors if a shared library has DT_PREINIT_ARRAY constructors." * commit '98f7659d7e3a7d75c68a41299f6ee55d7d35c27b': Don't fail to run DT_INIT and DT_INIT_ARRAY constructors if a shared library has DT_PREINIT_ARRAY constructors.
| * Don't fail to run DT_INIT and DT_INIT_ARRAY constructors if a shared library ↵Elliott Hughes2013-05-091-38/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | has DT_PREINIT_ARRAY constructors. The GNU dynamic linker silently ignores a DT_PREINIT_ARRAY section in a shared library. We had ineffectual code that tried to report an error, which I tried to fix but got wrong --- my version still wouldn't report the error to the caller, but would prevent us from continuing to call constructors. Bug: 8825226 Change-Id: I4fd8450ecc44d8767a1cb808aeecfbfbfc77c070
* | am 5f28fde8: Merge "linker: only re-open std* for setuid programs."Nick Kralevich2013-04-251-5/+6
|\ \ | |/ | | | | | | * commit '5f28fde8aeee047a70e344c9da937695dc51a3ba': linker: only re-open std* for setuid programs.
| * linker: only re-open std* for setuid programs.Nick Kralevich2013-04-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | get_AT_SECURE() was getting called before linker_env_init() had been called, and returning the default value ("true"). This was causing us to reopen closed stdin, stdout, and stderr for ALL processes, not just privileged (setuid) processes. Calling path: - __linker_init - soinfo_link_image - get_AT_SECURE - __linker_init_post_relocation - linker_env_init This change restores the intended behavior of only re-opening stdin, stdout, and stderr for privileged processes. Change-Id: I8b085ea6597710ac4c1a3c93f1bf8b81eecb08c0
* | am 240fb862: Merge "Make abort messages available to debuggerd."Elliott Hughes2013-04-053-18/+23
|\ \ | |/ | | | | | | * commit '240fb8623b1fe027d0d33a9d4c41d99ceb385b58': Make abort messages available to debuggerd.
| * Make abort messages available to debuggerd.Elliott Hughes2013-04-053-18/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds __libc_fatal, cleans up the internal logging code a bit more, and switches suitable callers over to __libc_fatal. In addition to logging, __libc_fatal stashes the message somewhere that the debuggerd signal handler can find it before calling abort. In the debuggerd signal handler, we pass this address to debuggerd so that it can come back with ptrace to read the message and present it to the user. Bug: 8531731 Change-Id: I416ec1da38a8a1b0d0a582ccd7c8aaa681ed4a29
* | am c48968d2: am 4453c51c: Merge "Drop unnecessary execution permission for ↵Elliott Hughes2013-03-212-0/+0
|\ \ | |/ | | | | | | | | | | .cpp/.c/.h" * commit 'c48968d268820ee64986f738e227910b29290eab': Drop unnecessary execution permission for .cpp/.c/.h
| * Drop unnecessary execution permission for .cpp/.c/.hKito Cheng2013-03-222-0/+0
| | | | | | | | Change-Id: I9ac2b9d8f6bdb4fab8962210c5ec8f9c3e8c0ebf
* | am 5f829205: am c1416647: Merge "Clean up internal libc logging."Elliott Hughes2013-03-154-18/+14
|\ \ | |/ | | | | | | * commit '5f8292050fc07f4bf9e70f37a807ad028e3cfc87': Clean up internal libc logging.
| * Clean up internal libc logging.Elliott Hughes2013-03-154-18/+14
| | | | | | | | | | | | | | | | | | | | | | We only need one logging API, and I prefer the one that does no allocation and is thus safe to use in any context. Also use O_CLOEXEC when opening the /dev/log files. Move everything logging-related into one header file. Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
* | am 5d998b4a: am f21aa3b6: Merge "Use more types than just \'unsigned\' in ↵Elliott Hughes2013-03-124-119/+118
|\ \ | |/ | | | | | | | | | | the linker." * commit '5d998b4a21aab09da750e8e43cb608f5ee6b1f3d': Use more types than just 'unsigned' in the linker.
| * Use more types than just 'unsigned' in the linker.Elliott Hughes2013-03-124-119/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | Still chipping away at the situation where every variable in the linker was of type 'unsigned'. This patch switches counts over to being size_t and adds an explicit type for init/fini function pointers and arrays of function pointers. Also improve logging from CallArray. Also remove trailing "\n"s from log messages. Change-Id: Ie036d2622caac50f4d29f0570888bb527661d77e
* | am 3c9afb5e: am 6b4c77f8: Merge "Use Elf32_Addr instead of unsigned in linker"Elliott Hughes2013-03-122-53/+49
|\ \ | |/ | | | | | | * commit '3c9afb5e17eaa2ed5a12d71a1a09fe85f06fcb48': Use Elf32_Addr instead of unsigned in linker
| * Use Elf32_Addr instead of unsigned in linkerKito Cheng2013-03-122-53/+49
| | | | | | | | Change-Id: I52dcbb4b0ff0a4052e0ad7a9bbeb2df65c9d2f66
* | resolved conflicts for merge of 4706606c to jb-mr2-devElliott Hughes2013-03-072-92/+9
|\ \ | |/ | | | | Change-Id: Ibf6340df901c870cd05a2ab56536ad23b6fd491c
| * Regenerate NOTICE files.Elliott Hughes2013-03-072-92/+9
| | | | | | | | | | | | Also clean up some obsolete cruft. Change-Id: Iec3b36f6607f7a08b72de99294ed5b6cd910dd5f
* | am 91392116: am 33031fed: Merge "Fix typo of DT_NEEDED for DT_NULL"Brian Carlstrom2013-03-071-1/+1
|\ \ | |/ | | | | | | * commit '91392116ff859b2e7656ded729b8c758107241aa': Fix typo of DT_NEEDED for DT_NULL
| * Fix typo of DT_NEEDED for DT_NULLBrian Carlstrom2013-03-061-1/+1
| | | | | | | | | | | | (cherry-pick of 138b205ea9efc117fe522c2d7191378023a6e2cd) Change-Id: Ia895cb3018df55554627f1f61dcdfdada4a961ce
* | am 50a2cd86: am 0b4a85bf: Merge "Fix TIMING/STATS/COUNT_PAGES dynamic linker ↵Elliott Hughes2013-03-061-3/+3
|\ \ | |/ | | | | | | | | | | build" * commit '50a2cd865e7cc8c72d926548ed5d64e269003055': Fix TIMING/STATS/COUNT_PAGES dynamic linker build
| * Fix TIMING/STATS/COUNT_PAGES dynamic linker buildKito Cheng2013-03-061-3/+3
| | | | | | | | Change-Id: I6432ac378816da253b83d1c7fb1d3fb64647b89e
* | am 9043202b: am 20958207: Merge "Fix MIPS linker build"Brian Carlstrom2013-03-061-1/+1
|\ \ | |/ | | | | | | * commit '9043202b5bb8e0725b0302e9da9d3a57c837e798': Fix MIPS linker build
| * Fix MIPS linker buildBrian Carlstrom2013-03-061-1/+1
| | | | | | | | | | | | (cherry-picked from 8c7d8c2057e303985f78eab96da747ddaa013c78) Change-Id: Idcf62ab95f8fccbc2d7c3e771a4cfbe768a1555e
* | am 9a0b658c: am c41dcad0: Merge "More linker cleanup."Elliott Hughes2013-03-066-457/+317
|\ \ | |/ | | | | | | * commit '9a0b658c9c1f8f4492f61a75909e5ca2f05c3ac1': More linker cleanup.
| * More linker cleanup.Elliott Hughes2013-03-056-457/+317
| | | | | | | | Change-Id: I9fb3c7c0d4b4ffef0eeaf092d4e30ffe63a08671
* | am a2517de3: am 036f9097: Merge "Minor linker cleanup, primarily to use ↵Brian Carlstrom2013-03-066-176/+188
|\ \ | |/ | | | | | | | | | | Elf32_Dyn" * commit 'a2517de3844d95b5f00a4666b8dae00ef893ac24': Minor linker cleanup, primarily to use Elf32_Dyn
| * Minor linker cleanup, primarily to use Elf32_DynBrian Carlstrom2013-03-056-176/+188
| | | | | | | | Change-Id: Ifa9408e9859c6f79444715bed4808b7c13fdced5
* | am b5862d4d: Merge "Update linker README."Elliott Hughes2013-02-191-2/+3
|\ \ | |/ | | | | | | * commit 'b5862d4d8a1246dc1e21695cf3bacafefedf0428': Update linker README.
| * Update linker README.Elliott Hughes2013-02-191-2/+3
| | | | | | | | Change-Id: Icaa353e9cf1848c86e7445f4ad590bdab44f7941
* | am 3002d64b: Merge "Everyone has a TLS register."Elliott Hughes2013-02-131-7/+1
|\ \ | |/ | | | | | | | | # Via Elliott Hughes (1) and Gerrit Code Review (1) * commit '3002d64bcd4644456803dd0547d20b39e14be02c': Everyone has a TLS register.