Solaris, target_wait(), don't rely on inferior_ptid
[deliverable/binutils-gdb.git] / ld / ldmisc.c
index 319f247e3bec7c42cb02d784138fa8c52c5d9783..418e8d5c6eda8a3a570b90e39ce60eacd94939d4 100644 (file)
@@ -1,5 +1,5 @@
 /* ldmisc.c
 /* ldmisc.c
-   Copyright (C) 1991-2019 Free Software Foundation, Inc.
+   Copyright (C) 1991-2020 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of the GNU Binutils.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of the GNU Binutils.
@@ -23,6 +23,7 @@
 #include "bfd.h"
 #include "bfdlink.h"
 #include "libiberty.h"
 #include "bfd.h"
 #include "bfdlink.h"
 #include "libiberty.h"
+#include "ctf-api.h"
 #include "safe-ctype.h"
 #include "filenames.h"
 #include "demangle.h"
 #include "safe-ctype.h"
 #include "filenames.h"
 #include "demangle.h"
@@ -321,6 +322,7 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
                unsigned int linenumber;
                bfd_boolean discard_last;
                bfd_boolean done;
                unsigned int linenumber;
                bfd_boolean discard_last;
                bfd_boolean done;
+               bfd_error_type last_bfd_error = bfd_get_error ();
 
                abfd = args[arg_no].reladdr.abfd;
                section = args[arg_no].reladdr.sec;
 
                abfd = args[arg_no].reladdr.abfd;
                section = args[arg_no].reladdr.sec;
@@ -373,13 +375,11 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
                                    abfd, functionname);
 
                            last_bfd = abfd;
                                    abfd, functionname);
 
                            last_bfd = abfd;
-                           if (last_file != NULL)
-                             free (last_file);
+                           free (last_file);
                            last_file = NULL;
                            if (filename)
                              last_file = xstrdup (filename);
                            last_file = NULL;
                            if (filename)
                              last_file = xstrdup (filename);
-                           if (last_function != NULL)
-                             free (last_function);
+                           free (last_function);
                            last_function = xstrdup (functionname);
                          }
                        discard_last = FALSE;
                            last_function = xstrdup (functionname);
                          }
                        discard_last = FALSE;
@@ -405,20 +405,15 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
                  }
                if (!done)
                  lfinfo (fp, "(%pA+0x%v)", section, offset);
                  }
                if (!done)
                  lfinfo (fp, "(%pA+0x%v)", section, offset);
+               bfd_set_error (last_bfd_error);
 
                if (discard_last)
                  {
                    last_bfd = NULL;
 
                if (discard_last)
                  {
                    last_bfd = NULL;
-                   if (last_file != NULL)
-                     {
-                       free (last_file);
-                       last_file = NULL;
-                     }
-                   if (last_function != NULL)
-                     {
-                       free (last_function);
-                       last_function = NULL;
-                     }
+                   free (last_file);
+                   last_file = NULL;
+                   free (last_function);
+                   last_function = NULL;
                  }
              }
              break;
                  }
              }
              break;
@@ -453,10 +448,11 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
                    fprintf (fp, "%s generated", program_name);
                  else if (abfd->my_archive != NULL
                           && !bfd_is_thin_archive (abfd->my_archive))
                    fprintf (fp, "%s generated", program_name);
                  else if (abfd->my_archive != NULL
                           && !bfd_is_thin_archive (abfd->my_archive))
-                   fprintf (fp, "%s(%s)", abfd->my_archive->filename,
-                            abfd->filename);
+                   fprintf (fp, "%s(%s)",
+                            bfd_get_filename (abfd->my_archive),
+                            bfd_get_filename (abfd));
                  else
                  else
-                   fprintf (fp, "%s", abfd->filename);
+                   fprintf (fp, "%s", bfd_get_filename (abfd));
                }
              else if (*fmt == 'I')
                {
                }
              else if (*fmt == 'I')
                {
@@ -469,7 +465,8 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
                  if (i->the_bfd != NULL
                      && i->the_bfd->my_archive != NULL
                      && !bfd_is_thin_archive (i->the_bfd->my_archive))
                  if (i->the_bfd != NULL
                      && i->the_bfd->my_archive != NULL
                      && !bfd_is_thin_archive (i->the_bfd->my_archive))
-                   fprintf (fp, "(%s)%s", i->the_bfd->my_archive->filename,
+                   fprintf (fp, "(%s)%s",
+                            bfd_get_filename (i->the_bfd->my_archive),
                             i->local_sym_name);
                  else
                    fprintf (fp, "%s", i->filename);
                             i->local_sym_name);
                  else
                    fprintf (fp, "%s", i->filename);
This page took 0.028931 seconds and 4 git commands to generate.