* 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.
+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
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
/* 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.
/*
-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;
return NULL;
}
- base = get_debug_link_info (abfd, & crc32);
+ base = bfd_get_debug_link_info (abfd, & crc32);
if (base == NULL)
return NULL;
+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.
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. */
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)
{