aboutsummaryrefslogtreecommitdiff
path: root/gold/archive.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-10-06 20:40:16 +0000
committerIan Lance Taylor <iant@google.com>2006-10-06 20:40:16 +0000
commit12e14209f0834b6d3d9884a586b558c32eb2607c (patch)
tree04db4beba9abf0d2bb6f91c383a4ac4d76cf7541 /gold/archive.h
parent33423b7ffed87b140d924bc06ff35d353bfc4871 (diff)
downloadfsf-binutils-gdb-12e14209f0834b6d3d9884a586b558c32eb2607c.zip
fsf-binutils-gdb-12e14209f0834b6d3d9884a586b558c32eb2607c.tar.gz
fsf-binutils-gdb-12e14209f0834b6d3d9884a586b558c32eb2607c.tar.bz2
Lay out object file sections when we add the symbols to the symbol
table.
Diffstat (limited to 'gold/archive.h')
-rw-r--r--gold/archive.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/gold/archive.h b/gold/archive.h
index 14d1c3b..b2d4c46 100644
--- a/gold/archive.h
+++ b/gold/archive.h
@@ -13,6 +13,7 @@ namespace gold
class Input_file;
class Input_objects;
+class Layout;
class Symbol_table;
// This class represents an archive--generally a libNAME.a file.
@@ -61,7 +62,7 @@ class Archive
// Select members from the archive as needed and add them to the
// link.
void
- add_symbols(Symbol_table*, Input_objects*);
+ add_symbols(Symbol_table*, Layout*, Input_objects*);
private:
Archive(const Archive&);
@@ -81,7 +82,7 @@ class Archive
// Include an archive member in the link.
void
- include_member(Symbol_table*, Input_objects*, off_t off);
+ include_member(Symbol_table*, Layout*, Input_objects*, off_t off);
// An entry in the archive map of symbols to object files.
struct Armap_entry
@@ -108,11 +109,13 @@ class Archive
class Add_archive_symbols : public Task
{
public:
- Add_archive_symbols(Symbol_table* symtab, Input_objects* input_objects,
+ Add_archive_symbols(Symbol_table* symtab, Layout* layout,
+ Input_objects* input_objects,
Archive* archive, Task_token* this_blocker,
Task_token* next_blocker)
- : symtab_(symtab), input_objects_(input_objects), archive_(archive),
- this_blocker_(this_blocker), next_blocker_(next_blocker)
+ : symtab_(symtab), layout_(layout), input_objects_(input_objects),
+ archive_(archive), this_blocker_(this_blocker),
+ next_blocker_(next_blocker)
{ }
~Add_archive_symbols();
@@ -132,6 +135,7 @@ class Add_archive_symbols : public Task
class Add_archive_symbols_locker;
Symbol_table* symtab_;
+ Layout* layout_;
Input_objects* input_objects_;
Archive* archive_;
Task_token* this_blocker_;