The whole system (/usr/bin/crt0.o for example) is long-branch compiled, so *any* linkage operation causes this warning to be raised. Don't do it. --- ld/MachOReaderRelocatable.hpp +++ ld/MachOReaderRelocatable.hpp @@ -4165,8 +4165,6 @@ if ( nextReloc->r_type() != PPC_RELOC_PAIR ) { throw "PPC_RELOC_JBSR missing following pair"; } - if ( !fHasLongBranchStubs ) - warning("object file compiled with -mlong-branch which is no longer needed. To remove this warning, recompile without -mlong-branch: %s", fPath); fHasLongBranchStubs = true; result = true; if ( reloc->r_extern() ) {