| Name: Android Crazy Linker | |
| URL: https://chromium.googlesource.com/chromium/src.git/+/master/third_party/android_crazy_linker/ | |
| Version: 0 | |
| Revision: Forked from https://android.googlesource.com/platform/ndk/+/681f1b744aec1b0888f4c7a68165720db9670300/sources/android/crazy_linker/ | |
| Security Critical: no | |
| License: Apache Version 2.0 | |
| Description: | |
| Fork of the Android NDK crazy linker. | |
| Local Modifications: | |
| - Forked from: | |
| android/platform/ndk/f96c7168b688f2d8cc99c220e7a40e3739476848 | |
| - Add a required license header to a cpp module, missing in the original | |
| - Rolled to: | |
| android/platform/ndk/681f1b744aec1b0888f4c7a68165720db9670300 | |
| (Re-add license header to crazy_linker_elf_view.cpp) | |
| - Fix for crbug/373695 (NDK crazy linker: Bug in library file name handling) | |
| - Fix for crbug/386594 (Crazy linker fails to load a browser on MIPS) | |
| - Add support for unpacking packed R_ARM_RELATIVE relocation data. | |
| https://code.google.com/p/chromium/issues/detail?id=385553 | |
| - Add support for opening library within a zipfile. | |
| - Fix -Werror=sign-compare error encountered in NDK build. | |
| - Improve permission denied message to mention upgrading from L-preview. | |
| - Fix for crbug/394306 (Chrome crashes during startup ... on Arm64 AAW15) | |
| - Move packed relocation dynamic tags from DT_LOPROC range to DT_LOOS range. | |
| - Add support for x86_64. | |
| - Speculative fix for crbug/397634. | |
| - Implement LEB128 decoding more efficiently. | |
| - Add support for unpacking relative relocations with addends, for arm64. | |
| - Fix phdr_table_get_dynamic_section() call in ElfView::InitUnmapped(). | |
| - Fix typo in LOG() call, added in arm64 packed relative relocations change. | |
| - Add an error message for failures where no shared RELRO pages are swapped. | |
| - Remove excess newline from the message added above. | |
| - Avoid mixing size_t and uint32_t in Leb128Decoder::Dequeue(). | |
| - Re-order application of relocation sections to match the system linker. | |
| - Add a check whether file is uncompressed in zip file. | |
| - Fix -Wreorder warning (error with -Werror) in class ElfLoader. | |
| - Control static_assert invocations with a new COMPILE_ASSERT macro. | |
| - Fix unit test crash caused by use of deleted data inside an unload callback. | |
| - Fix for crbug/444714 (Chrome_Android: Crash Report - -1DB24FB5) | |
| - Speculative fix for crbug/450659. | |
| - Add basic LD_PRELOAD handling, for crbug/448968. | |
| - Speculative fix for crbug/479220. | |
| - Fix RELRO sharing issue caused by packing relocations. | |
| - Correct fix for crbug/479220 (replace IsSystemLibrary() with caller flags). | |
| - Fix link_map_.l_addr (was load address, should be load bias). | |
| - Convert packed relocation code to handle Android packed relocations. | |
| - Implement a stub __cxa_demangle to avoid linking to LLVM's implementation. | |
| - Change relocation packing constant names for C++ style (cosmetic only). | |
| - Add a Breakpad "guard region" to the start of reserved address space. | |
| - Remove CVE-2011-1149 detection machinery. | |
| - Start zip EOCD signature search at size of EOCD record bytes from file end. | |
| - Add custom operator new(size_t) and operator delete(void*) in order to | |
| reduce the size of the final binaries (24 kiB on ARM, 64 kiB on AARCH4). | |
| - Define CRAZY_DISABLE_R_BRK to disable debugger support. | |
| - Enable integration and unit tests when building with Chromium. | |
| - Support passing system library handles in dlsym() / dlclose() wrappers. | |
| - Improve FileDescriptor class. | |
| - Safer zip parsing code (avoid integer overflows and add range checks). |