diff options
author | Ian Lance Taylor <iant@google.com> | 2006-10-06 20:40:16 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2006-10-06 20:40:16 +0000 |
commit | 12e14209f0834b6d3d9884a586b558c32eb2607c (patch) | |
tree | 04db4beba9abf0d2bb6f91c383a4ac4d76cf7541 /gold/readsyms.cc | |
parent | 33423b7ffed87b140d924bc06ff35d353bfc4871 (diff) | |
download | binutils-gdb-12e14209f0834b6d3d9884a586b558c32eb2607c.tar.gz |
Lay out object file sections when we add the symbols to the symbol
table.
Diffstat (limited to 'gold/readsyms.cc')
-rw-r--r-- | gold/readsyms.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gold/readsyms.cc b/gold/readsyms.cc index ee0e0638c62..adc8fac6e91 100644 --- a/gold/readsyms.cc +++ b/gold/readsyms.cc @@ -74,8 +74,10 @@ Read_symbols::run(Workqueue* workqueue) this->input_objects_->add_object(obj); - Read_symbols_data sd = obj->read_symbols(); - workqueue->queue(new Add_symbols(this->symtab_, obj, sd, + Read_symbols_data* sd = new Read_symbols_data; + obj->read_symbols(sd); + workqueue->queue(new Add_symbols(this->symtab_, this->layout_, + obj, sd, this->this_blocker_, this->next_blocker_)); @@ -94,6 +96,7 @@ Read_symbols::run(Workqueue* workqueue) Archive* arch = new Archive(this->input_.name(), input_file); arch->setup(); workqueue->queue(new Add_archive_symbols(this->symtab_, + this->layout_, this->input_objects_, arch, this->this_blocker_, @@ -155,7 +158,10 @@ Add_symbols::locks(Workqueue* workqueue) void Add_symbols::run(Workqueue*) { + this->object_->layout(this->layout_, this->sd_); this->object_->add_symbols(this->symtab_, this->sd_); + delete this->sd_; + this->sd_ = NULL; } } // End namespace gold. |