aboutsummaryrefslogtreecommitdiff
path: root/gdb/spu-linux-nat.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2006-12-15 04:13:37 +0000
committerAlan Modra <amodra@gmail.com>2006-12-15 04:13:37 +0000
commitf6cf9273b303df38238008c8be44bed4633afd9c (patch)
tree91b65ac703c8efef824bcd61eb79d22f8e56f3af /gdb/spu-linux-nat.c
parent263c8770d6f3270eefa6c7ac6d603b9d8882898f (diff)
downloadgdb-f6cf9273b303df38238008c8be44bed4633afd9c.zip
gdb-f6cf9273b303df38238008c8be44bed4633afd9c.tar.gz
gdb-f6cf9273b303df38238008c8be44bed4633afd9c.tar.bz2
bfd/
* opncls.c (bfd_openr_iovec): Add "stat" parameter. (struct opncls): Add "stat" field. (opncls_bstat): Call vec->stat. * bfd-in2.h: Regenerate. * elf32-spu.c (spu_elf_open_builtin_lib): Adjust. gdb/ * spu-linux-nat.c (spu_bfd_iovec_stat): New function. (spu_bfd_open): Adjust bfd_openr_iovec call.
Diffstat (limited to 'gdb/spu-linux-nat.c')
-rw-r--r--gdb/spu-linux-nat.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
index fd3673c..99144b7 100644
--- a/gdb/spu-linux-nat.c
+++ b/gdb/spu-linux-nat.c
@@ -281,6 +281,18 @@ spu_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf,
return nbytes;
}
+static int
+spu_bfd_iovec_stat (struct bfd *abfd, void *stream, struct stat *sb)
+{
+ /* We don't have an easy way of finding the size of embedded spu
+ images. We could parse the in-memory ELF header and section
+ table to find the extent of the last section but that seems
+ pointless when the size is needed only for checks of other
+ parsed values in dbxread.c. */
+ sb->st_size = INT_MAX;
+ return 0;
+}
+
static bfd *
spu_bfd_open (CORE_ADDR addr)
{
@@ -291,7 +303,8 @@ spu_bfd_open (CORE_ADDR addr)
nbfd = bfd_openr_iovec (xstrdup ("<in-memory>"), "elf32-spu",
spu_bfd_iovec_open, open_closure,
- spu_bfd_iovec_pread, spu_bfd_iovec_close);
+ spu_bfd_iovec_pread, spu_bfd_iovec_close,
+ spu_bfd_iovec_stat);
if (!nbfd)
return NULL;