diff options
-rw-r--r-- | linker/linker.cpp | 15 | ||||
-rw-r--r-- | linker/linker_debug.h | 20 | ||||
-rw-r--r-- | linker/linker_main.cpp | 26 |
3 files changed, 1 insertions, 60 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index c1bccfe12..eedce7029 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -301,10 +301,6 @@ void count_relocation(RelocationKind) { } #endif -#if COUNT_PAGES -uint32_t bitmask[4096]; -#endif - static void notify_gdb_of_load(soinfo* info) { if (info->is_linker() || info->is_main_executable()) { // gdb already knows about the linker and the main executable. @@ -3140,7 +3136,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r switch (type) { case R_GENERIC_JUMP_SLOT: count_relocation(kRelocAbsolute); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO JMP_SLOT %16p <- %16p %s\n", reinterpret_cast<void*>(reloc), reinterpret_cast<void*>(sym_addr + addend), sym_name); @@ -3150,7 +3145,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r case R_GENERIC_ABSOLUTE: case R_GENERIC_GLOB_DAT: count_relocation(kRelocAbsolute); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO ABSOLUTE/GLOB_DAT %16p <- %16p %s\n", reinterpret_cast<void*>(reloc), reinterpret_cast<void*>(sym_addr + addend), sym_name); @@ -3158,7 +3152,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r break; case R_GENERIC_RELATIVE: count_relocation(kRelocRelative); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO RELATIVE %16p <- %16p\n", reinterpret_cast<void*>(reloc), reinterpret_cast<void*>(load_bias + addend)); @@ -3166,7 +3159,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r break; case R_GENERIC_IRELATIVE: count_relocation(kRelocRelative); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO IRELATIVE %16p <- %16p\n", reinterpret_cast<void*>(reloc), reinterpret_cast<void*>(load_bias + addend)); @@ -3210,7 +3202,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r return false; case R_GENERIC_TLS_TPREL: count_relocation(kRelocRelative); - MARK(rel->r_offset); { ElfW(Addr) tpoff = 0; if (lsi == nullptr) { @@ -3236,7 +3227,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r break; case R_GENERIC_TLS_DTPMOD: count_relocation(kRelocRelative); - MARK(rel->r_offset); { size_t module_id = 0; if (lsi == nullptr) { @@ -3252,7 +3242,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r break; case R_GENERIC_TLS_DTPREL: count_relocation(kRelocRelative); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO TLS_DTPREL %16p <- %16p %s\n", reinterpret_cast<void*>(reloc), reinterpret_cast<void*>(sym_addr + addend), sym_name); @@ -3264,7 +3253,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r // other architectures, as long as the resolver functions are implemented. case R_GENERIC_TLSDESC: count_relocation(kRelocRelative); - MARK(rel->r_offset); { TlsDescriptor* desc = reinterpret_cast<TlsDescriptor*>(reloc); if (lsi == nullptr) { @@ -3305,14 +3293,12 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r #if defined(__x86_64__) case R_X86_64_32: count_relocation(kRelocAbsolute); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO R_X86_64_32 %08zx <- +%08zx %s", static_cast<size_t>(reloc), static_cast<size_t>(sym_addr), sym_name); *reinterpret_cast<Elf32_Addr*>(reloc) = sym_addr + addend; break; case R_X86_64_PC32: count_relocation(kRelocRelative); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO R_X86_64_PC32 %08zx <- +%08zx (%08zx - %08zx) %s", static_cast<size_t>(reloc), static_cast<size_t>(sym_addr - reloc), static_cast<size_t>(sym_addr), static_cast<size_t>(reloc), sym_name); @@ -3321,7 +3307,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r #elif defined(__i386__) case R_386_PC32: count_relocation(kRelocRelative); - MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO R_386_PC32 %08x <- +%08x (%08x - %08x) %s", reloc, (sym_addr - reloc), sym_addr, reloc, sym_name); *reinterpret_cast<ElfW(Addr)*>(reloc) += (sym_addr - reloc); diff --git a/linker/linker_debug.h b/linker/linker_debug.h index 7a1cb3cbe..6031850a4 100644 --- a/linker/linker_debug.h +++ b/linker/linker_debug.h @@ -44,7 +44,6 @@ #define DO_TRACE_IFUNC 1 #define TIMING 0 #define STATS 0 -#define COUNT_PAGES 0 /********************************************************************* * You shouldn't need to modify anything below unless you are adding @@ -83,22 +82,3 @@ __LIBC_HIDDEN__ extern int g_ld_debug_verbosity; #endif /* TRACE_DEBUG */ #define TRACE_TYPE(t, x...) do { if (DO_TRACE_##t) { TRACE(x); } } while (0) - -#if COUNT_PAGES -extern uint32_t bitmask[]; -#if defined(__LP64__) -#define MARK(offset) \ - do { \ - if ((((offset) >> 12) >> 5) < 4096) \ - bitmask[((offset) >> 12) >> 5] |= (1 << (((offset) >> 12) & 31)); \ - } while (0) -#else -#define MARK(offset) \ - do { \ - bitmask[((offset) >> 12) >> 3] |= (1 << (((offset) >> 12) & 7)); \ - } while (0) -#endif -#else -#define MARK(x) do {} while (0) - -#endif diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp index fd1592d33..bea2e3c82 100644 --- a/linker/linker_main.cpp +++ b/linker/linker_main.cpp @@ -496,31 +496,7 @@ static ElfW(Addr) linker_main(KernelArgumentBlock& args, const char* exe_to_load #if STATS print_linker_stats(); #endif -#if COUNT_PAGES - { - unsigned n; - unsigned i; - unsigned count = 0; - for (n = 0; n < 4096; n++) { - if (bitmask[n]) { - unsigned x = bitmask[n]; -#if defined(__LP64__) - for (i = 0; i < 32; i++) { -#else - for (i = 0; i < 8; i++) { -#endif - if (x & 1) { - count++; - } - x >>= 1; - } - } - } - PRINT("PAGES MODIFIED: %s: %d (%dKB)", g_argv[0], count, count * 4); - } -#endif - -#if TIMING || STATS || COUNT_PAGES +#if TIMING || STATS fflush(stdout); #endif |