aboutsummaryrefslogtreecommitdiff
path: root/gdb/xcoffexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/xcoffexec.c')
-rw-r--r--gdb/xcoffexec.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/xcoffexec.c b/gdb/xcoffexec.c
index 544aa47..b17d874 100644
--- a/gdb/xcoffexec.c
+++ b/gdb/xcoffexec.c
@@ -422,15 +422,37 @@ struct stat *vip;
for (; s; s = s->next)
if (!s->nonreloc || LINETABLE(s))
vmap_symtab_1(s, vp, old_start);
+
+#if 0
+ Himm.., recently we nullified trampoline entry names in order not
+ to confuse them with real symbols. Appearently this turned into a
+ problem, and msymbol vector did not get relocated properly. If
+ msymbols have to have non-null names, then we should name
+ trampoline entries with empty strings.
+
+ ALL_MSYMBOLS (objfile, msymbol)
+#else
+ for (msymbol = objfile->msymbols;
+ msymbol->name || msymbol->address; (msymbol)++)
+#endif
+ if (msymbol->address < TEXT_SEGMENT_BASE)
+ msymbol -> address += vp->tstart - old_start;
+
break;
}
}
}
if (vp->tstart != old_start) {
+
+#if 0
+ We don't have a valid `objfile' at this point. This is moved into the
+ previous statement; ALL_OBJFILES() for-loop.
+
ALL_MSYMBOLS (objfile, msymbol)
if (msymbol->address < TEXT_SEGMENT_BASE)
msymbol -> address += vp->tstart - old_start;
+#endif /* 0 */
/* breakpoints need to be relocated as well. */
fixup_breakpoints (0, TEXT_SEGMENT_BASE, vp->tstart - old_start);