diff options
author | Cary Coutant <ccoutant@google.com> | 2014-09-23 23:18:19 -0700 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2014-09-23 23:20:57 -0700 |
commit | 635aa30e3ae9735e362cfd1cda2be9f7b65b32a2 (patch) | |
tree | 928d596357248c244e46007b15b558bcc386f16f /gold/layout.h | |
parent | f4ebacfac0581274ead4c3ab43c316c6174790b3 (diff) | |
download | gdb-635aa30e3ae9735e362cfd1cda2be9f7b65b32a2.zip gdb-635aa30e3ae9735e362cfd1cda2be9f7b65b32a2.tar.gz gdb-635aa30e3ae9735e362cfd1cda2be9f7b65b32a2.tar.bz2 |
Fix race condition causing assert in Eh_frame_hdr::do_sized_write().
2014-09-23 Taiju Tsuiki <tzik@google.com>
Cary Coutant <ccoutant@google.com>
gold/
* gold.cc (queue_final_tasks): Add Write_sections_task as a blocker
on input_sections_blocker.
* layout.cc (Write_sections_task::locks): Unblock
input_sections_blocker_.
* layout.h (Write_sections_task::Write_sections_task): Add
input_sections_blocker.
* testsuite/Makefile.am (exception_x86_64_bnd_test): Add gcctestdir/ld
to DEPENDENCIES.
* testsuite/Makefile.in: Regenerate.
Diffstat (limited to 'gold/layout.h')
-rw-r--r-- | gold/layout.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gold/layout.h b/gold/layout.h index 7c0113c..032f5f3 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -1454,9 +1454,11 @@ class Write_sections_task : public Task public: Write_sections_task(const Layout* layout, Output_file* of, Task_token* output_sections_blocker, + Task_token* input_sections_blocker, Task_token* final_blocker) : layout_(layout), of_(of), output_sections_blocker_(output_sections_blocker), + input_sections_blocker_(input_sections_blocker), final_blocker_(final_blocker) { } @@ -1481,6 +1483,7 @@ class Write_sections_task : public Task const Layout* layout_; Output_file* of_; Task_token* output_sections_blocker_; + Task_token* input_sections_blocker_; Task_token* final_blocker_; }; |