diff --git a/elf-symtab-read.diff b/elf-symtab-read.diff new file mode 100644 index 0000000..6f85f03 --- /dev/null +++ b/elf-symtab-read.diff @@ -0,0 +1,30 @@ +Index: gdb/elfread.c +=================================================================== +RCS file: /cvs/src/src/gdb/elfread.c,v +retrieving revision 1.57 +diff -u -a -p -u -p -a -r1.57 gdb/elfread.c +--- gdb/elfread.c 9 Jan 2007 17:58:50 -0000 1.57 ++++ gdb/elfread.c 6 Mar 2007 17:10:24 -0000 +@@ -182,7 +182,10 @@ elf_symtab_read (struct objfile *objfile + + offset = ANOFFSET (objfile->section_offsets, sym->section->index); + if (dynamic +- && sym->section == &bfd_und_section ++ && (sym->section == &bfd_und_section ++ /* On PowerPC64 we also want to add the function descriptor ++ symbols. */ ++ || strcmp (sym->section->name, ".opd") == 0) + && (sym->flags & BSF_FUNCTION)) + { + struct minimal_symbol *msym; +@@ -309,7 +312,9 @@ elf_symtab_read (struct objfile *objfile + { + if (sym->flags & (BSF_GLOBAL | BSF_WEAK)) + { +- if (sym->section->flags & SEC_LOAD) ++ if (sym->flags & BSF_FUNCTION) ++ ms_type = mst_text; ++ else if (sym->section->flags & SEC_LOAD) + { + ms_type = mst_data; + } diff --git a/gdb.changes b/gdb.changes index 40e0355..092f68e 100644 --- a/gdb.changes +++ b/gdb.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Mar 6 18:47:10 CET 2007 - schwab@suse.de + +- Better handling of ppc64 function descriptor symbols. + ------------------------------------------------------------------- Mon Mar 5 22:06:00 CET 2007 - schwab@suse.de diff --git a/gdb.spec b/gdb.spec index e01aea0..0aa0f77 100644 --- a/gdb.spec +++ b/gdb.spec @@ -21,7 +21,7 @@ Group: Development/Tools/Debuggers Autoreqprov: on PreReq: %{install_info_prereq} Version: 6.6 -Release: 13 +Release: 14 Summary: The GNU Debugger Source: gdb-%{version}.tar.bz2 Patch1: gdb-misc.patch @@ -39,6 +39,7 @@ Patch13: lr-frame-offset.diff Patch15: solib-extract-address.diff Patch16: pc-regnum.diff Patch17: show-endian.diff +Patch18: elf-symtab-read.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -84,6 +85,7 @@ cd .. %patch15 %patch16 %patch17 -p1 +%patch18 %build CFLAGS="$RPM_OPT_FLAGS" \ @@ -139,6 +141,8 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Tue Mar 06 2007 - schwab@suse.de +- Better handling of ppc64 function descriptor symbols. * Mon Mar 05 2007 - schwab@suse.de - Remove obsolete patch. - Fix show endian.