2000-03-01 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 1 Mar 2000 19:37:03 +0000 (19:37 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 1 Mar 2000 19:37:03 +0000 (19:37 +0000)
* ldmain.c (undefined_symbol): Take one more arg, fatal, to
indicate if the undefined symbol is a fatal error or not.
Don't delete the output file if "fatal" is false.

ld/ChangeLog
ld/ldmain.c

index a925a38..3b0d9cc 100644 (file)
@@ -1,3 +1,9 @@
+2000-03-01  H.J. Lu  <hjl@gnu.org>
+
+       * ldmain.c (undefined_symbol): Take one more arg, fatal, to
+       indicate if the undefined symbol is a fatal error or not.
+       Don't delete the output file if "fatal" is false.
+
 2000-02-29  H.J. Lu  <hjl@gnu.org>
 
        * Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)". 
index 734bc32..ba2a592 100644 (file)
@@ -117,7 +117,7 @@ static boolean warning_callback PARAMS ((struct bfd_link_info *,
 static void warning_find_reloc PARAMS ((bfd *, asection *, PTR));
 static boolean undefined_symbol PARAMS ((struct bfd_link_info *,
                                         const char *, bfd *,
-                                        asection *, bfd_vma));
+                                        asection *, bfd_vma, boolean));
 static boolean reloc_overflow PARAMS ((struct bfd_link_info *, const char *,
                                       const char *, bfd_vma,
                                       bfd *, asection *, bfd_vma));
@@ -1144,12 +1144,13 @@ warning_find_reloc (abfd, sec, iarg)
 
 /*ARGSUSED*/
 static boolean
-undefined_symbol (info, name, abfd, section, address)
+undefined_symbol (info, name, abfd, section, address, fatal)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      const char *name;
      bfd *abfd;
      asection *section;
      bfd_vma address;
+     boolean fatal;
 {
   static char *error_name;
   static unsigned int error_count;
@@ -1193,8 +1194,12 @@ undefined_symbol (info, name, abfd, section, address)
   if (section != NULL)
     {
       if (error_count < MAX_ERRORS_IN_A_ROW)
-       einfo (_("%X%C: undefined reference to `%T'\n"),
-              abfd, section, address, name);
+       {
+         einfo (_("%C: undefined reference to `%T'\n"),
+                abfd, section, address, name);
+         if (fatal)
+           einfo ("%X");
+       }
       else if (error_count == MAX_ERRORS_IN_A_ROW)
        einfo (_("%D: more undefined references to `%T' follow\n"),
               abfd, section, address, name);
@@ -1202,8 +1207,12 @@ undefined_symbol (info, name, abfd, section, address)
   else
     {
       if (error_count < MAX_ERRORS_IN_A_ROW)
-       einfo (_("%X%B: undefined reference to `%T'\n"),
-              abfd, name);
+       {
+         einfo (_("%B: undefined reference to `%T'\n"),
+                abfd, name);
+         if (fatal)
+           einfo ("%X");
+       }
       else if (error_count == MAX_ERRORS_IN_A_ROW)
        einfo (_("%B: more undefined references to `%T' follow\n"),
               abfd, name);