--- a/vendor/object/src/read/macho/relocation.rs 2021-07-26 23:20:39.000000000 +0800 +++ b/vendor/object/src/read/macho/relocation.rs 2025-12-16 07:31:36.000000000 +0800 @@ -61,6 +61,21 @@ relative: reloc.r_pcrel, }, }, + // FIXME: implement this correctly for PowerPC + macho::CPU_TYPE_POWERPC => match (reloc.r_type, reloc.r_pcrel) { + (macho::PPC_RELOC_VANILLA, false) => RelocationKind::Absolute, + _ => RelocationKind::MachO { + value: reloc.r_type, + relative: reloc.r_pcrel, + }, + }, + macho::CPU_TYPE_POWERPC64 => match (reloc.r_type, reloc.r_pcrel) { + (macho::PPC_RELOC_VANILLA, false) => RelocationKind::Absolute, + _ => RelocationKind::MachO { + value: reloc.r_type, + relative: reloc.r_pcrel, + }, + }, macho::CPU_TYPE_X86 => match (reloc.r_type, reloc.r_pcrel) { (macho::GENERIC_RELOC_VANILLA, false) => RelocationKind::Absolute, _ => RelocationKind::MachO { --- a/vendor/object/src/write/macho.rs 2021-07-26 23:20:39.000000000 +0800 +++ b/vendor/object/src/write/macho.rs 2025-12-16 07:33:43.000000000 +0800 @@ -327,6 +327,8 @@ Architecture::Aarch64 => (macho::CPU_TYPE_ARM64, macho::CPU_SUBTYPE_ARM64_ALL), Architecture::I386 => (macho::CPU_TYPE_X86, macho::CPU_SUBTYPE_I386_ALL), Architecture::X86_64 => (macho::CPU_TYPE_X86_64, macho::CPU_SUBTYPE_X86_64_ALL), + Architecture::PowerPc => (macho::CPU_TYPE_POWERPC, macho::CPU_SUBTYPE_POWERPC_ALL), + Architecture::PowerPc64 => (macho::CPU_TYPE_POWERPC64, macho::CPU_SUBTYPE_POWERPC_ALL), _ => { return Err(Error(format!( "unimplemented architecture {:?}", @@ -556,6 +558,19 @@ return Err(Error(format!("unimplemented relocation {:?}", reloc))); } }, + // FIXME: implement this correctly for PowerPC + Architecture::PowerPc => match reloc.kind { + RelocationKind::Absolute => (false, macho::PPC_RELOC_VANILLA), + _ => { + return Err(Error(format!("unimplemented relocation {:?}", reloc))); + } + }, + Architecture::PowerPc64 => match reloc.kind { + RelocationKind::Absolute => (false, macho::PPC_RELOC_VANILLA), + _ => { + return Err(Error(format!("unimplemented relocation {:?}", reloc))); + } + }, Architecture::X86_64 => match (reloc.kind, reloc.encoding, reloc.addend) { (RelocationKind::Absolute, RelocationEncoding::Generic, 0) => { (false, macho::X86_64_RELOC_UNSIGNED)