28 lines
838 B
Diff
28 lines
838 B
Diff
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;
|
|
}
|