* ldmain.c (multiple_definition): Only skip the warning if the
authorIan Lance Taylor <ian@airs.com>
Thu, 13 Mar 1997 02:34:33 +0000 (02:34 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 13 Mar 1997 02:34:33 +0000 (02:34 +0000)
output section is absolute when the input section is not
absolute.

* ldlex.l: Accept whitespace in VERS_START state.  Warn about
invalid characters in VERS_* states.

ld/ChangeLog
ld/ldmain.c

index b834f54..d16eecb 100644 (file)
@@ -1,3 +1,17 @@
+Wed Mar 12 21:33:09 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ldmain.c (multiple_definition): Only skip the warning if the
+       output section is absolute when the input section is not
+       absolute.
+
+       * ldlex.l: Accept whitespace in VERS_START state.  Warn about
+       invalid characters in VERS_* states.
+
+Tue Mar 11 13:51:31 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * emultempl/aix.em (gld${EMULATION_NAME}_read_file): Don't let a
+       trailing space lead us to think that there is a zero address.
+
 Sun Mar  9 23:06:35 1997  Eric Youngdale  <eric@andante.jic.com>
 
        * ldgram.y (vers_node): Correct typo of '('  for '{'.
index e8e303e..03dd315 100644 (file)
@@ -172,6 +172,16 @@ main (argc, argv)
 
   xatexit (remove_output);
 
+  /* Set the default BFD target based on the configured target.  Doing
+     this permits the linker to be configured for a particular target,
+     and linked against a shared BFD library which was configured for
+     a different target.  The macro TARGET is defined by Makefile.  */
+  if (! bfd_set_default_target (TARGET))
+    {
+      einfo ("%X%P: can't set BFD default target to `%s': %E\n", TARGET);
+      xexit (1);
+    }
+
   /* Initialize the data about options.  */
   trace_files = trace_file_tries = version_printed = false;
   whole_archive = false;
@@ -794,8 +804,10 @@ multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval)
      FIXME: It would be cleaner to somehow ignore symbols defined in
      sections which are being discarded.  */
   if ((osec->output_section != NULL
+       && ! bfd_is_abs_section (osec)
        && bfd_is_abs_section (osec->output_section))
       || (nsec->output_section != NULL
+         && ! bfd_is_abs_section (nsec)
          && bfd_is_abs_section (nsec->output_section)))
     return true;