Merge "linker: remove COUNT_PAGES" am: 859202c8e5 am: a6d0e5898f
am: fa6a490299

Change-Id: I1741af4772226298b1782f8a718f39da3cdcf849
diff --git a/linker/linker.cpp b/linker/linker.cpp
index c1bccfe..eedce70 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -301,10 +301,6 @@
 }
 #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 @@
     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 @@
       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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
       // 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 @@
 #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 @@
 #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 7a1cb3c..6031850 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 @@
 #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 fd1592d..bea2e3c 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -496,31 +496,7 @@
 #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