* 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.
This commit is contained in:
Tom Tromey 2013-03-14 20:11:12 +00:00
parent 08c23b0d0f
commit cc0ea93c75
5 changed files with 26 additions and 39 deletions

View 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

View 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

View 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;

View 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.

View 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)
{