]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[gdb/symtab] Fix data race in add_compunit_symtab_to_objfile
Data race bewteen:
...
Read of size 8 at 0x7b4000006d20 by thread T3:
#0 add_compunit_symtab_to_objfile(compunit_symtab*) gdb/symfile.c:2852
(gdb+0xe89cff)
#1 buildsym_compunit::end_compunit_symtab_with_blockvector(block*, int,
int) gdb/buildsym.c:1018 (gdb+0x63e857)
#2 buildsym_compunit::end_compunit_symtab_from_static_block(block*, int,
int) gdb/buildsym.c:1052 (gdb+0x63e8cd)
#3 process_full_comp_unit gdb/dwarf2/read.c:8414 (gdb+0x8396b6)
#4 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)
...
and:
...
Previous write of size 8 at 0x7b4000006d20 by thread T4:
#0 add_compunit_symtab_to_objfile(compunit_symtab*) gdb/symfile.c:2853
(gdb+0xe89d35)
#1 buildsym_compunit::end_compunit_symtab_with_blockvector(block*, int,
int) gdb/buildsym.c:1018 (gdb+0x63e857)
#2 buildsym_compunit::end_compunit_symtab_from_static_block(block*, int,
int) gdb/buildsym.c:1052 (gdb+0x63e8cd)
#3 process_full_comp_unit gdb/dwarf2/read.c:8414 (gdb+0x8396b6)
#4 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)
...
Fix this by adding a lock in add_compunit_symtab_to_objfile.