Module Name: src Committed By: christos Date: Fri Jan 2 19:50:03 UTC 2015
Modified Files: src/external/gpl3/binutils/dist/bfd: elf64-ppc.c Log Message: Bring in 2 patches from binutils: >From Alan Modra: Wed, 3 Jul 2013 11:51:56 +0930: powerpc64 call stubs: This brings powerpc64 ld in line with gold regarding calls allowed to go via a plt call stub or toc-adjusting stub without a following nop. A long time ago ld allowed tail calls, but this is wrong because we'll return to the caller's caller with the wrong toc pointer. I fixed that for shared libraries but allowed tail calls in an executable for some reason. Probably just muddy thinking on my part, because there's no difference between an executable and a shared library regarding the need to restore the toc pointer. Perhaps it was because some testcase failed, most likely due to the g++ issue I comment on in the patch. >From Alan Modra: 29 Aug 2014 01:22:29 +0000: PowerPC64 call lacks nop error: Enough people accidentally or otherwise use -mcmodel=small then wonder why a call that is local is behaving as if it is going via the PLT. * elf64-ppc.c (ppc64_elf_relocate_section): Report a different error for calls via a toc adjusting stub without a nop. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/binutils/dist/bfd/elf64-ppc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.