PR gas/14521
authorHans-Peter Nilsson <hp@axis.com>
Sat, 1 Sep 2012 18:10:50 +0000 (18:10 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Sat, 1 Sep 2012 18:10:50 +0000 (18:10 +0000)
* config/tc-mmix.h (tc_frob_file_before_fix): Renumber sections
after call to mmix_frob_file.

gas/ChangeLog
gas/config/tc-mmix.h

index e0b47beb014f20343e4e92a0d523cece994302cf..c3270d22301df9a361e2b332ccbe4da32fa893c8 100644 (file)
@@ -1,3 +1,9 @@
+2012-09-01  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       PR gas/14521
+       * config/tc-mmix.h (tc_frob_file_before_fix): Renumber sections
+       after call to mmix_frob_file.
+
 2012-08-31  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * doc/c-mips.texi (MIPS Opts): Correct a typo in the -mips5
index ef901620a825a81ad2fe80863a676ebeeed74f79..dba24a2d38c451559724b6ba31f4e8523a02a91b 100644 (file)
@@ -194,7 +194,18 @@ extern fragS *mmix_opcode_frag;
    fixups are done and relocs are output.  Similarly for each unknown
    symbol.  */
 extern void mmix_frob_file (void);
-#define tc_frob_file_before_fix mmix_frob_file
+#define tc_frob_file_before_fix()                                      \
+  do                                                                   \
+    {                                                                  \
+      int i = 0;                                                       \
+                                                                       \
+      /* It's likely mmix_frob_file changed (removed) sections, so make        \
+        sure sections are correctly numbered as per renumber_sections, \
+        (static to write.c where this macro is called).  */            \
+      mmix_frob_file ();                                               \
+      bfd_map_over_sections (stdoutput, renumber_sections, &i);                \
+    }                                                                  \
+  while (0)
 
 /* Used by mmix_frob_file.  Hangs on section symbols and unknown symbols.  */
 struct mmix_symbol_gregs;