https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88311
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- $ ~/build/tot/gcc/cc1 -quiet -Wall -W -O2 hello2.c -mlongcall -m32 ... main: .LFB0: .cfi_startproc stwu 1,-16(1) .cfi_def_cfa_offset 16 .reloc .+2,R_PPC_PLT16_HA,printf lis 11,0 .reloc .+2,R_PPC_PLT16_LO,printf lwz 11,0(11) mflr 0 lis 3,.LC0@ha la 3,.LC0@l(3) .reloc .,R_PPC_PLTSEQ,printf mtctr 11 stw 0,20(1) .cfi_offset 65, 4 crxor 6,6,6 .reloc .,R_PPC_PLTCALL,printf bctrl lwz 0,20(1) li 3,0 addi 1,1,16 .cfi_def_cfa_offset 0 mtlr 0 .cfi_restore 65 blr .cfi_endproc .LFE0: .size main,.-main .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "here we are" So that works fine?!