RISC-V: Don't enable relaxation in relocatable link
authorAndreas Schwab <schwab@suse.de>
Sun, 11 Mar 2018 13:25:30 +0000 (14:25 +0100)
committerAndreas Schwab <schwab@suse.de>
Thu, 15 Mar 2018 08:54:51 +0000 (09:54 +0100)
PR ld/22949
* emultempl/riscvelf.em (riscv_elf_before_allocation): Don't
enable relaxation in relocatable link.

ld/ChangeLog
ld/emultempl/riscvelf.em

index ab27208..522d007 100644 (file)
@@ -1,3 +1,9 @@
+2018-03-15  Andreas Schwab  <schwab@suse.de>
+
+       PR ld/22949
+       * emultempl/riscvelf.em (riscv_elf_before_allocation): Don't
+       enable relaxation in relocatable link.
+
 2018-03-15  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
 
        * emultempl/nds32elf.em (nds32_elf_after_allocation): Remove
index eaaf4c5..409dd50 100644 (file)
@@ -33,11 +33,14 @@ riscv_elf_before_allocation (void)
   if (link_info.discard == discard_sec_merge)
     link_info.discard = discard_l;
 
-  /* We always need at least some relaxation to handle code alignment.  */
-  if (RELAXATION_DISABLED_BY_USER)
-    TARGET_ENABLE_RELAXATION;
-  else
-    ENABLE_RELAXATION;
+  if (!bfd_link_relocatable (&link_info))
+    {
+      /* We always need at least some relaxation to handle code alignment.  */
+      if (RELAXATION_DISABLED_BY_USER)
+       TARGET_ENABLE_RELAXATION;
+      else
+       ENABLE_RELAXATION;
+    }
 
   link_info.relax_pass = 3;
 }