Originally by Karl Volz <karl.volz@xxxxxxxxxx> --- gdb-7.6.patch | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/gdb-7.6.patch b/gdb-7.6.patch index 5bd9b0c..8b2d5c8 100644 --- a/gdb-7.6.patch +++ b/gdb-7.6.patch @@ -2044,3 +2044,40 @@ diff -up gdb-7.6/bfd/elf64-ppc.c.orig gdb-7.6/bfd/elf64-ppc.c { struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i); +diff -up gdb-7.6/gdb/dwarf2read.c.old gdb-7.6/gdb/dwarf2read.c +--- gdb-7.6/gdb/dwarf2read.c.old 2014-02-11 10:29:01.668110122 -0800 ++++ gdb-7.6/gdb/dwarf2read.c 2014-02-11 14:13:30.257151330 -0800 +@@ -84,6 +84,10 @@ static int dwarf2_read_debug = 0; + /* When non-zero, dump DIEs after they are read in. */ + static unsigned int dwarf2_die_debug = 0; + ++#if defined(__sparc__) && __WORDSIZE == 64 ++static int pagesize; ++#endif ++ + /* When non-zero, cross-check physname against demangler. */ + static int check_physname = 0; + +@@ -1932,9 +1936,21 @@ dwarf2_read_section (struct objfile *obj + + abfd = sectp->owner; + ++#if defined(__sparc__) && __WORDSIZE == 64 ++ if (pagesize == 0) ++ pagesize = getpagesize (); ++#endif ++ + /* If the section has relocations, we must read it ourselves. +- Otherwise we attach it to the BFD. */ ++ Otherwise we attach it to the BFD. ++ Also, in sparc64 only try mmap for sections which ++ are properly aligned in order to avoid SIGBUS errors. */ ++ ++#if defined(__sparc__) && __WORDSIZE == 64 ++ if (info->size > 4 * pagesize && (sectp->flags & SEC_RELOC) == 0 && !(sectp->filepos & 0x3)) ++#else + if ((sectp->flags & SEC_RELOC) == 0) ++#endif + { + const gdb_byte *bytes = gdb_bfd_map_section (sectp, &info->size); + -- 1.7.1 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility