https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67789
--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> --- I see similar failures, except it is in building the 32-bit module fpu.o in the libgfortran library on a 64-bit big endian power7 box. It is failing in building the 32-bit libraries. This is not seen in building little endian power8, since that system no longer does not have 32-bit support. I believe the issue is the prologue for -fpic/-fPIC is not expecting the prologue to be cloned. It sets up the TOC address by calling to a label and then adjusting the address to get the TOC pointer. The label is created multiple times when the blocks are re-ordered. If -fno-reorder-blocks is given, it does not clone the label definition. As I see it, there are several ways to solve this problem: 1) Simply disable shrink-wrapping/reorder-blocks if V.4 pic. This is probably just papering over the problem. 2) Add a target hook so the backend can say whether or not a particular function's prologue can be split. The static function in rs6000.c uses_TOC would return true if it shouldn't be split. 3) Recognize in shrink-wrap if labels are created in the prologue, and don't shrink wrap them.