Disable relaxation if multiple symbol definitions are encountered - otherwise
authorNick Clifton <nickc@redhat.com>
Thu, 14 Sep 2000 01:39:42 +0000 (01:39 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 14 Sep 2000 01:39:42 +0000 (01:39 +0000)
the linker could abort with an assertion failure.

ld/ChangeLog
ld/ldmain.c

index 9a093c9a147979a5e207f50e893a6aa7311f308d..bf42f8f56f3e468ac3faefdb235356e61572ab27 100644 (file)
@@ -1,3 +1,9 @@
+2000-09-13  Nick Clifton  <nickc@redhat.com>
+
+       * ldmain.c (multiple_definition): Disable relaxation if
+       multiple symbol definitions are encountered - otherwise the
+       linker could abort with an assertion failure.
+
 2000-09-10  Nick Clifton  <nickc@redhat.com>
 
        * mri.c: Fix formatting.
index 45710be7110ec847a4db472c8c3d4bc21381b572..fea1244154aefe72aaf18a9145d664649acc8346 100644 (file)
@@ -863,6 +863,13 @@ multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval)
         nbfd, nsec, nval, name);
   if (obfd != (bfd *) NULL)
     einfo (_("%D: first defined here\n"), obfd, osec, oval);
+
+  if (command_line.relax)
+    {
+      einfo (_("%P: Disabling relaxation: it will not work with multiple definitions\n"));
+      command_line.relax = 0;
+    }
+  
   return true;
 }