Hello! On 2010-05-07 13:23, Jan Kratochvil wrote: > On Wed, 05 May 2010 16:59:36 +0200, Andrew Stubbs wrote: >> > prelink includes code to manipulate the contents of the debug info. > [...] >> Maybe prelink has failed to relocate the debug info in this case? > > The attached patch should fix it. > > Although SHT_MIPS_DWARF value should be recognized only for e_machine as > EM_MIPS or EM_MIPS_RS3_LE or EM_MIPS_X? Or are there some other rules? > --- prelink/src/dso.c-orig 2010-04-13 16:41:15.000000000 +0200 > +++ prelink/src/dso.c 2010-05-07 15:16:25.000000000 +0200 > @@ -1381,6 +1381,7 @@ adjust_dso (DSO *dso, GElf_Addr start, G > switch (dso->shdr[i].sh_type) > { > case SHT_PROGBITS: > + case SHT_MIPS_DWARF: > name = strptr (dso, dso->ehdr.e_shstrndx, dso->shdr[i].sh_name); > if (strcmp (name, ".stab") == 0 > && adjust_stabs (dso, i, start, adjust)) Unfortunately, this patch causes the following regression for about every test of the prelink testsuite, in -mabi=64 configurations (only): mips-wrs-linux-gnu-prelink -c ./prelink.conf -C ./prelink.cache --ld-library-path=. --dynamic-linker=./ld.so.1 -vm ./reloc1 Laying out 4 libraries in virtual address space 0000005800000000-0000009800000000 Assigned virtual address space slots for libraries: ./ld.so.1 0000005800000000-0000005800032328 ./libc.so.6 0000005800040000-00000058001cbdb0 ./reloc1lib1.so 00000058001d0000-00000058001e0b10 ./reloc1lib2.so 00000058001f0000-00000058002009d0 Prelinking /scratch/thomas/issue8927/obj/test-4.3a-294-mips-wrs-linux-gnu/host-i686-pc-linux-gnu/mabi_64/prelink.d/ld-2.8.so mips-wrs-linux-gnu-prelink: /scratch/thomas/issue8927/obj/test-4.3a-294-mips-wrs-linux-gnu/host-i686-pc-linux-gnu/mabi_64/prelink.d/ld-2.8.so: 64-bit DWARF not supported mips-wrs-linux-gnu-prelink: Could not prelink ./libc.so.6 because its dependency ./ld.so.1 could not be prelinked mips-wrs-linux-gnu-prelink: Could not prelink ./reloc1lib1.so because its dependency ./libc.so.6 could not be prelinked mips-wrs-linux-gnu-prelink: Could not prelink ./reloc1lib2.so because its dependency ./reloc1lib1.so could not be prelinked mips-wrs-linux-gnu-prelink: Could not prelink ./reloc1 because its dependency ./reloc1lib2.so could not be prelinked I'll try to hunt down where this ``64-bit DWARF not supported'' is coming from, and why handling SHT_MIPS_DWARF in prelink can be responsible for it, but if anyone has any ideas already, please tell me. Regards, Thomas