aboutsummaryrefslogtreecommitdiff
path: root/gold/archive.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2010-08-20 00:35:13 +0000
committerCary Coutant <ccoutant@google.com>2010-08-20 00:35:13 +0000
commit97b4be1cc0a42ea9964a912bb1513974e7aa7613 (patch)
tree21785a33b0d689d1d2a245321021d88e8131c86c /gold/archive.h
parent02bfaba5bea6a44973c2eb6513f842ef5109b628 (diff)
downloadfsf-binutils-gdb-97b4be1cc0a42ea9964a912bb1513974e7aa7613.zip
fsf-binutils-gdb-97b4be1cc0a42ea9964a912bb1513974e7aa7613.tar.gz
fsf-binutils-gdb-97b4be1cc0a42ea9964a912bb1513974e7aa7613.tar.bz2
* gold/archive.h (Add_lib_group_symbols): Add readsyms_blocker_, adjust
constructor, and set_blocker. * gold/archive.cc (Add_lib_group_symbols::is_runnable): Also check readsyms_blocker_. * gold/readsyms.cc (Read_symbols::do_lib_group): Also pass this->this_blocker_ to Add_lib_group_symbols::set_blocker. * testsuite/Makefile.am (start_lib_test): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/start_lib_test_main.c: New file. * testsuite/start_lib_test_1.c: New file. * testsuite/start_lib_test_2.c: New file. * testsuite/start_lib_test_3.c: New file.
Diffstat (limited to 'gold/archive.h')
-rw-r--r--gold/archive.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gold/archive.h b/gold/archive.h
index 9107d1e..1cc5ea8 100644
--- a/gold/archive.h
+++ b/gold/archive.h
@@ -495,7 +495,8 @@ class Add_lib_group_symbols : public Task
Input_objects* input_objects,
Lib_group* lib, Task_token* next_blocker)
: symtab_(symtab), layout_(layout), input_objects_(input_objects),
- lib_(lib), this_blocker_(NULL), next_blocker_(next_blocker)
+ lib_(lib), readsyms_blocker_(NULL), this_blocker_(NULL),
+ next_blocker_(next_blocker)
{ }
~Add_lib_group_symbols();
@@ -513,9 +514,10 @@ class Add_lib_group_symbols : public Task
// Set the blocker to use for this task.
void
- set_blocker(Task_token* this_blocker)
+ set_blocker(Task_token* readsyms_blocker, Task_token* this_blocker)
{
- gold_assert(this->this_blocker_ == NULL);
+ gold_assert(this->readsyms_blocker_ == NULL && this->this_blocker_ == NULL);
+ this->readsyms_blocker_ = readsyms_blocker;
this->this_blocker_ = this_blocker;
}
@@ -530,6 +532,7 @@ class Add_lib_group_symbols : public Task
Layout* layout_;
Input_objects* input_objects_;
Lib_group * lib_;
+ Task_token* readsyms_blocker_;
Task_token* this_blocker_;
Task_token* next_blocker_;
};