Hi, On Tue, 2016-04-05 at 16:13 -0300, Felipe Sateler wrote: > I'm currently at a loss on why does patchelf fail to build (or rather, > it fails its testsuite) on all mips variants[1]. > > Patchelf modifies ELF binaries, to add/remove RPATH and other > sections. On all mips variants, some tests fail. From what I can tell, > the loader complains that the new (altered) file has an invalid > MIPS.abiflags section, and yet from what I can tell both the original > and altered binaries have the same (as reported by readelf). > > I have printed some more logs at the upstream issue tracker: > https://github.com/NixOS/patchelf/issues/82 > > Any help would be appreciated. I'd rather not remove patchelf from mips. I had a go at using patchelf on a hello world executable and the executable immediately segfaulted. From 'readelf -e': Before: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 3] .MIPS.abiflags MIPS_ABIFLAGS 00400188 000188 000018 18 A 0 0 8 Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align ABIFLAGS 0x000188 0x00400188 0x00400188 0x00018 0x00018 R 0x8 After: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 1] .MIPS.abiflags MIPS_ABIFLAGS 003fc174 000174 000018 18 A 0 0 4 Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align ABIFLAGS 0x004188 0x00400188 0x00400188 0x00018 0x00018 R 0x8 Here the ABIFLAGS segment (this is a special MIPS specific segment type) is wrong after running patchelf. The offset and virtaddr are not the same as the values used in the section header. Infact they don't seem to point to any section at all. This is probably causing the dynamic linker to read some garbage, causing the segfault. If I recall, the ABIFLAGS were first read by glibc 2.22 which might be why it only recently started failing. James
Attachment:
signature.asc
Description: This is a digitally signed message part