File elf-symtab-read.diff of Package gdb

Index: gdb/elfread.c
================================================================================
--- gdb/elfread.c
+++ gdb/elfread.c
@@ -182,7 +182,10 @@
 
       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 @@
 	    {
 	      if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
 		{
-		  if (sym->section->flags & SEC_LOAD)
+		  if (sym->flags & BSF_FUNCTION)
+		    ms_type = mst_solib_trampoline;
+		  else if (sym->section->flags & SEC_LOAD)
 		    {
 		      ms_type = mst_data;
 		    }
openSUSE Build Service is sponsored by