[GOLD] Add debug output for powerpc section grouping
authorAlan Modra <amodra@gmail.com>
Wed, 31 Aug 2016 03:04:36 +0000 (12:34 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 31 Aug 2016 03:04:36 +0000 (12:34 +0930)
* debug.h (DEBUG_TARGET): New.
(DEBUG_ALL): Add DEBUG_TARGET.
(gold_debug): Delete FORMAT param.
* powerpc.cc (Stub_control::can_add_to_stub_group): Print debug ourput.

gold/ChangeLog
gold/debug.h
gold/powerpc.cc

index 0ea09f967e67bc5f8cd3e95ee3eb0a87de23bc20..2cf964dbab9fb78f382e2dd9ee7b2c0485a284b2 100644 (file)
@@ -1,3 +1,10 @@
+2016-08-31  Alan Modra  <amodra@gmail.com>
+
+       * debug.h (DEBUG_TARGET): New.
+       (DEBUG_ALL): Add DEBUG_TARGET.
+       (gold_debug): Delete FORMAT param.
+       * powerpc.cc (Stub_control::can_add_to_stub_group): Print debug ourput.
+
 2016-08-30  Alan Modra  <amodra@gmail.com>
 
        PR 20523
index e95408ffd9ea41b14e0d7f37d7706dff6f092b70..6fd72c2c1c87e08710931600c98be209db445ab3 100644 (file)
@@ -39,10 +39,11 @@ const int DEBUG_FILES = 0x4;
 const int DEBUG_RELAXATION = 0x8;
 const int DEBUG_INCREMENTAL = 0x10;
 const int DEBUG_LOCATION = 0x20;
+const int DEBUG_TARGET = 0x40;
 
 const int DEBUG_ALL = (DEBUG_TASK | DEBUG_SCRIPT | DEBUG_FILES
                       | DEBUG_RELAXATION | DEBUG_INCREMENTAL
-                      | DEBUG_LOCATION);
+                      | DEBUG_LOCATION | DEBUG_TARGET);
 
 // Convert a debug string to the appropriate enum.
 inline int
@@ -57,6 +58,7 @@ debug_string_to_enum(const char* arg)
     { "relaxation", DEBUG_RELAXATION },
     { "incremental", DEBUG_INCREMENTAL },
     { "location", DEBUG_LOCATION },
+    { "target", DEBUG_TARGET },
     { "all", DEBUG_ALL }
   };
 
@@ -70,11 +72,11 @@ debug_string_to_enum(const char* arg)
 // Print a debug message if TYPE is enabled.  This is a macro so that
 // we only evaluate the arguments if necessary.
 
-#define gold_debug(TYPE, FORMAT, ...)                          \
+#define gold_debug(TYPE, ...)                                  \
   do                                                           \
     {                                                          \
       if (is_debugging_enabled(TYPE))                          \
-       parameters->errors()->debug(FORMAT, __VA_ARGS__);       \
+       parameters->errors()->debug(__VA_ARGS__);               \
     }                                                          \
   while (0)
 
index d0dd6728e15574c2991402d97a3d95cd3925383c..1d5cd97aee0d21c07df6b6b72731f38f18600c0f 100644 (file)
@@ -2522,6 +2522,13 @@ Stub_control::can_add_to_stub_group(Output_section* o,
                 i->relobj()->name().c_str(),
                 i->relobj()->section_name(i->shndx()).c_str());
 
+  gold_debug(DEBUG_TARGET, "maybe add%s %s:%s size=%#llx total=%#llx",
+            has14 ? " 14bit" : "",
+            i->relobj()->name().c_str(),
+            i->relobj()->section_name(i->shndx()).c_str(),
+            (long long) this_size,
+            (long long) this->group_end_addr_ - start_addr);
+
   this->has14_ = this->has14_ || has14;
   group_size = this->has14_ ? this->stub14_group_size_ : this->stub_group_size_;
 
@@ -2579,6 +2586,8 @@ Stub_control::can_add_to_stub_group(Output_section* o,
        gold_unreachable();
     }
 
+  gold_debug(DEBUG_TARGET, "nope, didn't fit\n");
+
   // The section fails to fit in the current group.  Set up a few
   // things for the next group.  owner_ and output_section_ will be
   // set later after we've retrieved those values for the current