pmachata.threads branch status
by Petr Machata
Hi,
I started doing some work on making libdw thread-safe, based on rough
outline I've gotten back in June. Overall approach is to have a lock
per Dwarf, and rdlock/wrlock that as appropriate if work is done with
data structure "descended" from that given Dwarf. [E.g. lock would be
taken like this: rwlock_rdlock (attr->cu->dbg->lock);]
My changes are on pmachata.threads (commits from 8aacf0 on).
PM
15 years
pmachata.threads branch status
by Petr Machata
Hi,
I found a couple cases in libelf that look like they need some extra
locking. I assumed that the client has control over the lifetime of Elf
structures, which is to say that I didn't try to fix the race between
releasing memory allocated for struct Elf in one thread, and trying to
lock the same Elf in other thread.
The changes are on pmachata.threads branch.
PM
15 years
com.redhat.elfutils.roland.pending
by Roland McGrath
Please review and propagate rev ae00eca3779934fb4228077034dd4c7c313cca61.
Minor stuff.
backends/
* x86_corenote.c: New file.
* Makefile.am (noinst_HEADERS): Add it.
* i386_corenote.c: Include it, use EXTRA_NOTES_IOPERM in EXTRA_NOTES.
* x86_64_corenote.c: Likewise.
libdwfl/
2008-10-07 Roland McGrath <roland(a)redhat.com>
* dwfl_module_build_id.c (check_notes): Fix typo in vaddr calculation.
libebl/
2008-08-01 Roland McGrath <roland(a)redhat.com>
* eblcorenotetypename.c: Handle NT_386_IOPERM.
libelf/
2008-10-06 Roland McGrath <roland(a)redhat.com>
* elf_getarhdr.c (elf_getarhdr): Return NULL when passed NULL.
tests/
2008-09-10 Roland McGrath <roland(a)redhat.com>
* test-subr.sh (LC_ALL): Export it set to "C".
* run-dwfl-addr-sect.sh: Don't do it here.
* run-strings-test.sh: Likewise.
15 years
disassembler bug
by Roland McGrath
cf https://bugzilla.redhat.com/show_bug.cgi?id=469739
This manifests with:
$ rpm -qf /usr/lib64/libavcodec.so.51
ffmpeg-libs-0.4.9-0.52.20080908.fc10.x86_64
$ eu-objdump -d /usr/lib64/libavcodec.so.51 > d
eu-objdump: i386_disasm.c:354: x86_64_disasm: Assertion `avail > 0' failed.
Aborted (core dumped)
$
It first goes off the rails with a mis-disassembly. But even if confused
and/or having bogus input, it shouldn't hit an assert. So there are
probably two bugs to fix. The first wrongly-shown instruction:
$ objdump -d /tmp/foo.o
/tmp/foo.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <.text>:
0: 0f 0f 00 bf pavgusb (%rax),%mm0
4: 0f 0f 0c 30 bf pavgusb (%rax,%rsi,1),%mm1
$ eu-objdump -d /tmp/foo.o
/tmp/foo.o: elf64-elf_x86_64
Disassembly of section .text:
0: 0f pop %cs
1: 0f pop %cs
2: 00 bf 0f 0f 0c 30 add %bh,0x300c0f0f(%rdi)
8: bf mov (bad)
That is a big file full of wacky SSE or whatnot instructions, so probably a
good test to check that all the disassemblies from eu-objdump match those
from objdump, not just this first one I noticed.
Thanks,
Roland
15 years