https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81926
--- Comment #2 from Dennis Clarke <dclarke at blastwave dot org> --- the ELF section header table seems to be in a slightly different place between the two files : d$ elfdump -delv stage2-gcc/go/parse.o ELF Header ei_magic: { 0x7f, E, L, F } ei_class: ELFCLASS64 ei_data: ELFDATA2MSB ei_osabi: ELFOSABI_NONE ei_abiversion: 0 e_machine: EM_SPARCV9 e_version: EV_CURRENT e_type: ET_REL e_flags: [ EF_SPARCV9_TSO ] e_entry: 0 e_ehsize: 64 e_shstrndx: 1 e_shoff: 0x3b7cd8 e_shentsize: 64 e_shnum: 86 e_phoff: 0 e_phentsize: 0 e_phnum: 0 d$ elfdump -delv stage3-gcc/go/parse.o ELF Header ei_magic: { 0x7f, E, L, F } ei_class: ELFCLASS64 ei_data: ELFDATA2MSB ei_osabi: ELFOSABI_NONE ei_abiversion: 0 e_machine: EM_SPARCV9 e_version: EV_CURRENT e_type: ET_REL e_flags: [ EF_SPARCV9_TSO ] e_entry: 0 e_ehsize: 64 e_shstrndx: 1 e_shoff: 0x3b7cd0 e_shentsize: 64 e_shnum: 86 e_phoff: 0 e_phentsize: 0 e_phnum: 0 d$ So there I see 0x3b7cd8 in stage2 and 0x3b7cd0 in stage3. At first glance there appears to be only an 8 byte difference in the size of the file but looking down through the various sections in the ELF data for both files I see the same data represented in very similar places but yet, slightly different. For example the ELF header offset is 0x3b7cd0 in one of them and 0x3b7cd8 in the other. Is this a valid functional difference at all? Perhaps a bug lay inside the linker which created the actual object file? Looking at both files and the ELF data between them I see the exact same data in both and yet in different addresses : stage 2 : Section Header[44]: sh_name: .bss sh_addr: 0 sh_flags: [ SHF_WRITE SHF_ALLOC ] sh_size: 0x11 sh_type: [ SHT_NOBITS ] sh_offset: 0x204458 sh_entsize: 0 sh_link: 0 sh_info: 0 sh_addralign: 0x4 stage 3 : Section Header[44]: sh_name: .bss sh_addr: 0 sh_flags: [ SHF_WRITE SHF_ALLOC ] sh_size: 0x11 sh_type: [ SHT_NOBITS ] sh_offset: 0x204450 sh_entsize: 0 sh_link: 0 sh_info: 0 sh_addralign: 0x4 That sort of difference lay between the two files in many many places. Slightly different by 8 bytes again however nm tells me that the symbol listing is identical between the two files. Perhaps there is no actual "functional" difference between the files at all.