https://sourceware.org/bugzilla/show_bug.cgi?id=23299
Bug ID: 23299 Summary: macOS: objcopy renders object files unusable Product: binutils Version: 2.31 (HEAD) Status: UNCONFIRMED Severity: normal Priority: P2 Component: binutils Assignee: unassigned at sourceware dot org Reporter: mephi42 at gmail dot com Target Milestone: --- $ cat main.c int main() {} $ gcc -c main.c $ gcc main.o -o main $ binutils-gdb/binutils/objcopy main.o main1.o $ gcc main1.o -o main1 ld: object file main1.o was built for different x86_64 sub-type (-2147483645) than link command line (3) file 'main1.o' for architecture x86_64 Culprit: --- a/bfd/mach-o-x86-64.c +++ b/bfd/mach-o-x86-64.c @@ -54,7 +54,7 @@ bfd_mach_o_x86_64_mkobject (bfd *abfd) mdata->header.magic = BFD_MACH_O_MH_MAGIC_64; mdata->header.cputype = BFD_MACH_O_CPU_TYPE_X86_64; mdata->header.cpusubtype = - BFD_MACH_O_CPU_SUBTYPE_X86_ALL | BFD_MACH_O_CPU_SUBTYPE_LIB64; + BFD_MACH_O_CPU_SUBTYPE_X86_ALL; mdata->header.byteorder = BFD_ENDIAN_LITTLE; mdata->header.version = 2; I'm not proposing to commit this, since I don't know what this flag is for - the following patch just demonstrates that removing it makes things work in this particular case. The proper fix might be to copy cpusubtype from ibfd to obfd, but I'm not sure what would be the right place for this. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils