| 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). |