From 49144784121822b6ff5e7c64ea72960ce6fa7faf Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 12 Jun 1996 22:05:32 +0000 Subject: [PATCH] * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Check explicitly for _ptrgl, and treat it as global linkage code. PR 9860. --- bfd/ChangeLog | 3 +++ bfd/xcofflink.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a5482d45e9..4832a0f5d4 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ Wed Jun 12 11:16:37 1996 Ian Lance Taylor + * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Check explicitly + for _ptrgl, and treat it as global linkage code. + * aoutx.h (NAME(aout,find_nearest_line)): Notice if we find a filename or N_SO symbol past the offset, and use it to indicate that there is no line number or function when appropriate. diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 88a7f3462a..1ff4df0950 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -6215,7 +6215,11 @@ _bfd_ppc_xcoff_relocate_section (output_bfd, info, input_bfd, pnext = contents + (rel->r_vaddr - input_section->vma) + 4; next = bfd_get_32 (input_bfd, pnext); - if (h->smclas == XMC_GL) + + /* The _ptrgl function is magic. It is used by the AIX + compiler to call a function through a pointer. */ + if (h->smclas == XMC_GL + || strcmp (h->root.root.string, "._ptrgl") == 0) { if (next == 0x4def7b82 /* cror 15,15,15 */ || next == 0x4ffffb82) /* cror 31,31,31 */