gdb
authorTom Tromey <tromey@redhat.com>
Thu, 14 Mar 2013 20:11:12 +0000 (20:11 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 14 Mar 2013 20:11:12 +0000 (20:11 +0000)
* symfile.c (get_debug_link_info): Remove.
(find_separate_debug_file_by_debuglink): Use
bfd_get_debug_link_info.
bfd
* opncls.c (bfd_get_debug_link_info): Rename from
get_debug_link_info.  Export.  Update comment.
(find_separate_debug_file): Update.
* bfd-in2.h: Rebuild.

bfd/ChangeLog
bfd/bfd-in2.h
bfd/opncls.c
gdb/ChangeLog
gdb/symfile.c

index 42d6c27dfa74857be1a1af20e5488bb9681aea51..40bb0a1b8d2fde805dd10d7a7c37d39e04111b39 100644 (file)
@@ -1,3 +1,10 @@
+2013-03-14  Tom Tromey  <tromey@redhat.com>
+
+       * opncls.c (bfd_get_debug_link_info): Rename from
+       get_debug_link_info.  Export.  Update comment.
+       (find_separate_debug_file): Update.
+       * bfd-in2.h: Rebuild.
+
 2013-03-08  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
 
         * elf64-aarch64.c (elf_backend_can_gc_sections): Enable gc-section
index 524e97e78b0e2156fb6ae96470f8a411645938e1..2f49b1db932f0b2cbb91605a347b2abdf86fc295 100644 (file)
@@ -1049,6 +1049,8 @@ void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
 unsigned long bfd_calc_gnu_debuglink_crc32
    (unsigned long crc, const unsigned char *buf, bfd_size_type len);
 
+char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
+
 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
 
 struct bfd_section *bfd_create_gnu_debuglink_section
index 6d61191a96355835362f3641499d75044c013f1f..1217cea6b64a68e4db0b1b7389c7c4bfbf6cad5e 100644 (file)
@@ -1,6 +1,6 @@
 /* opncls.c -- open and close a BFD.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013
    Free Software Foundation, Inc.
 
    Written by Cygnus Support.
@@ -1140,20 +1140,22 @@ bfd_calc_gnu_debuglink_crc32 (unsigned long crc,
 
 
 /*
-INTERNAL_FUNCTION
-       get_debug_link_info
+FUNCTION
+       bfd_get_debug_link_info
 
 SYNOPSIS
-       char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
+       char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
 
 DESCRIPTION
        fetch the filename and CRC32 value for any separate debuginfo
        associated with @var{abfd}. Return NULL if no such info found,
-       otherwise return filename and update @var{crc32_out}.
+       otherwise return filename and update @var{crc32_out}.  The
+       returned filename is allocated with @code{malloc}; freeing it
+       is the responsibility of the caller.
 */
 
-static char *
-get_debug_link_info (bfd *abfd, unsigned long *crc32_out)
+char *
+bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out)
 {
   asection *sect;
   unsigned long crc32;
@@ -1261,7 +1263,7 @@ find_separate_debug_file (bfd *abfd, const char *debug_file_directory)
       return NULL;
     }
 
-  base = get_debug_link_info (abfd, & crc32);
+  base = bfd_get_debug_link_info (abfd, & crc32);
   if (base == NULL)
     return NULL;
 
index 3f1ce0e1369a29daea109d735c1765aee3403df1..1404f25576fca2484789ca2bc0ece6d29f8bfb4e 100644 (file)
@@ -1,3 +1,9 @@
+2013-03-14  Tom Tromey  <tromey@redhat.com>
+
+       * symfile.c (get_debug_link_info): Remove.
+       (find_separate_debug_file_by_debuglink): Use
+       bfd_get_debug_link_info.
+
 2013-03-14  Tom Tromey  <tromey@redhat.com>
 
        * symtab.c (error_in_psymtab_expansion): New function.
index 5ed25913cb6ff4316a60413647a2645124d93c4b..925ca7b9c41b239bb794c953d854da31acb8b77d 100644 (file)
@@ -1304,36 +1304,6 @@ symbol_file_clear (int from_tty)
     printf_unfiltered (_("No symbol file now.\n"));
 }
 
-static char *
-get_debug_link_info (struct objfile *objfile, unsigned long *crc32_out)
-{
-  asection *sect;
-  bfd_size_type debuglink_size;
-  unsigned long crc32;
-  char *contents;
-  int crc_offset;
-
-  sect = bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink");
-
-  if (sect == NULL)
-    return NULL;
-
-  debuglink_size = bfd_section_size (objfile->obfd, sect);
-
-  contents = xmalloc (debuglink_size);
-  bfd_get_section_contents (objfile->obfd, sect, contents,
-                           (file_ptr)0, (bfd_size_type)debuglink_size);
-
-  /* Crc value is stored after the filename, aligned up to 4 bytes.  */
-  crc_offset = strlen (contents) + 1;
-  crc_offset = (crc_offset + 3) & ~3;
-
-  crc32 = bfd_get_32 (objfile->obfd, (bfd_byte *) (contents + crc_offset));
-
-  *crc32_out = crc32;
-  return contents;
-}
-
 /* Return 32-bit CRC for ABFD.  If successful store it to *FILE_CRC_RETURN and
    return 1.  Otherwise print a warning and return 0.  ABFD seek position is
    not preserved.  */
@@ -1584,7 +1554,7 @@ find_separate_debug_file_by_debuglink (struct objfile *objfile)
   unsigned long crc32;
   struct cleanup *cleanups;
 
-  debuglink = get_debug_link_info (objfile, &crc32);
+  debuglink = bfd_get_debug_link_info (objfile->obfd, &crc32);
 
   if (debuglink == NULL)
     {