Re: [PATCH] fix PR symtab/15597

Tom Tromey
2013-10-09T14:09:00Z

Tom> Sorry about that.
Tom> I'll fix it in the morning.

Here's the fix I am checking in.

Tom

bfd/ChangeLog:
2013-10-09 Tom Tromey <tromey@redhat.com>

* bfd-in2.h: Rebuild.
* opncls.c (bfd_get_alt_debug_link_info): Change type of
buildid_len to bfd_size_type.

gdb/ChangeLog:
2013-10-09 Tom Tromey <tromey@redhat.com>

* dwarf2read.c (dwarf2_get_dwz_file): Update for type change in
bfd_get_alt_debug_link_info.

Index: bfd/bfd-in2.h
===================================================================
RCS file: /cvs/src/src/bfd/bfd-in2.h,v
retrieving revision 1.613
diff -u -r1.613 bfd-in2.h
--- bfd/bfd-in2.h 8 Oct 2013 19:56:14 -0000 1.613
+++ bfd/bfd-in2.h 9 Oct 2013 14:01:57 -0000
@@ -1067,7 +1067,8 @@

char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);

-char *bfd_get_alt_debug_link_info (bfd * abfd, size_t *buildid_len,
+char *bfd_get_alt_debug_link_info (bfd * abfd,
+ bfd_size_type *buildid_len,
bfd_byte **buildid_out);

char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
Index: bfd/opncls.c
===================================================================
RCS file: /cvs/src/src/bfd/opncls.c,v
retrieving revision 1.83
diff -u -r1.83 opncls.c
--- bfd/opncls.c 8 Oct 2013 19:56:14 -0000 1.83
+++ bfd/opncls.c 9 Oct 2013 14:01:58 -0000
@@ -1194,7 +1194,8 @@
bfd_get_alt_debug_link_info

SYNOPSIS
- char *bfd_get_alt_debug_link_info (bfd * abfd, size_t *buildid_len,
+ char *bfd_get_alt_debug_link_info (bfd * abfd,
+ bfd_size_type *buildid_len,
bfd_byte **buildid_out);

DESCRIPTION
@@ -1207,7 +1208,7 @@
*/

char *
-bfd_get_alt_debug_link_info (bfd * abfd, size_t *buildid_len,
+bfd_get_alt_debug_link_info (bfd * abfd, bfd_size_type *buildid_len,
bfd_byte **buildid_out)
{
asection *sect;
Index: gdb/dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.842
diff -u -r1.842 dwarf2read.c
--- gdb/dwarf2read.c 8 Oct 2013 19:56:15 -0000 1.842
+++ gdb/dwarf2read.c 9 Oct 2013 14:02:01 -0000
@@ -2365,6 +2365,7 @@
struct cleanup *cleanup;
const char *filename;
struct dwz_file *result;
+ bfd_size_type buildid_len_arg;
size_t buildid_len;
bfd_byte *buildid;

@@ -2373,7 +2374,7 @@

bfd_set_error (bfd_error_no_error);
data = bfd_get_alt_debug_link_info (dwarf2_per_objfile->objfile->obfd,
- &buildid_len, &buildid);
+ &buildid_len_arg, &buildid);
if (data == NULL)
{
if (bfd_get_error () == bfd_error_no_error)
@@ -2384,6 +2385,8 @@
cleanup = make_cleanup (xfree, data);
make_cleanup (xfree, buildid);

+ buildid_len = (size_t) buildid_len_arg;
+
filename = (const char *) data;
if (!IS_ABSOLUTE_PATH (filename))
{