2005-05-25 H.J. Lu <hongjiu.lu@intel.com>
[deliverable/binutils-gdb.git] / ld / ldmain.c
index 2b58d63129d74de17ff564899093ed9dcbc8eba5..a25ceb91af33bf534012fe431d481746f25ddb69 100644 (file)
@@ -1,6 +1,6 @@
 /* Main program of GNU linker.
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004
+   2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
    Written by Steve Chamberlain steve@cygnus.com
 
@@ -18,8 +18,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GLD; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 #include "bfd.h"
 #include "sysdep.h"
@@ -173,7 +173,7 @@ remove_output (void)
       if (output_bfd)
        bfd_cache_close (output_bfd);
       if (delete_output_file_on_failure)
-       unlink (output_filename);
+       unlink_if_ordinary (output_filename);
     }
 }
 
@@ -312,6 +312,7 @@ main (int argc, char **argv)
   link_info.flags_1 = 0;
   link_info.need_relax_finalize = FALSE;
   link_info.warn_shared_textrel = FALSE;
+  link_info.gc_sections = FALSE;
 
   ldfile_add_arch ("");
 
@@ -335,7 +336,7 @@ main (int argc, char **argv)
 
   if (link_info.relocatable)
     {
-      if (command_line.gc_sections)
+      if (link_info.gc_sections)
        einfo ("%P%F: --gc-sections and -r may not be used together\n");
       else if (command_line.relax)
        einfo (_("%P%F: --relax and -r may not be used together\n"));
@@ -1200,11 +1201,11 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
     return TRUE;
 
   if (section != NULL)
-    einfo ("%C: %s\n", abfd, section, address, warning);
+    einfo ("%C: %s%s\n", abfd, section, address, _("warning: "), warning);
   else if (abfd == NULL)
-    einfo ("%P: %s\n", warning);
+    einfo ("%P: %s%s\n", _("warning: "), warning);
   else if (symbol == NULL)
-    einfo ("%B: %s\n", abfd, warning);
+    einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
   else
     {
       lang_input_statement_type *entry;
@@ -1242,7 +1243,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       bfd_map_over_sections (abfd, warning_find_reloc, &info);
 
       if (! info.found)
-       einfo ("%B: %s\n", abfd, warning);
+       einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
 
       if (entry == NULL)
        free (asymbols);
@@ -1290,7 +1291,8 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
          && strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), info->symbol) == 0)
        {
          /* We found a reloc for the symbol we are looking for.  */
-         einfo ("%C: %s\n", abfd, sec, q->address, info->warning);
+         einfo ("%C: %s%s\n", abfd, sec, q->address, _("warning: "),
+                info->warning);
          info->found = TRUE;
          break;
        }
@@ -1448,7 +1450,9 @@ reloc_overflow (struct bfd_link_info *info ATTRIBUTE_UNUSED,
        case bfd_link_hash_defweak:
          einfo (_(" relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"),
                 reloc_name, entry->root.string,
-                entry->u.def.section, entry->u.def.section->owner);
+                entry->u.def.section,
+                entry->u.def.section == bfd_abs_section_ptr
+                ? output_bfd : entry->u.def.section->owner);
          break;
        default:
          abort ();
This page took 0.024426 seconds and 4 git commands to generate.