// readsyms.h -- read input file symbols for gold -*- C++ -*-
-// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
Read_symbols(Input_objects* input_objects, Symbol_table* symtab,
Layout* layout, Dirsearch* dirpath, int dirindex,
Mapfile* mapfile, const Input_argument* input_argument,
- Input_group* input_group, Task_token* this_blocker,
- Task_token* next_blocker)
+ Input_group* input_group, Archive_member* member,
+ Task_token* this_blocker, Task_token* next_blocker)
: input_objects_(input_objects), symtab_(symtab), layout_(layout),
dirpath_(dirpath), dirindex_(dirindex), mapfile_(mapfile),
input_argument_(input_argument), input_group_(input_group),
- this_blocker_(this_blocker), next_blocker_(next_blocker)
+ member_(member), this_blocker_(this_blocker),
+ next_blocker_(next_blocker)
{ }
~Read_symbols();
void
do_group(Workqueue*);
+ // Handle --start-lib ... --end-lib
+ bool
+ do_lib_group(Workqueue*);
+
+ // Handle --whole-archive --start-lib ... --end-lib --no-whole-archive
+ bool
+ do_whole_lib_group(Workqueue*);
+
// Open and identify the file.
bool
do_read_symbols(Workqueue*);
Mapfile* mapfile_;
const Input_argument* input_argument_;
Input_group* input_group_;
+ Archive_member* member_;
Task_token* this_blocker_;
Task_token* next_blocker_;
};
Add_symbols(Input_objects* input_objects, Symbol_table* symtab,
Layout* layout, Dirsearch* dirpath, int dirindex,
Mapfile* mapfile, const Input_argument* input_argument,
- Input_group* input_group, Object* object,
+ Object* object,
Read_symbols_data* sd, Task_token* this_blocker,
Task_token* next_blocker)
: input_objects_(input_objects), symtab_(symtab), layout_(layout),
dirpath_(dirpath), dirindex_(dirindex), mapfile_(mapfile),
- input_argument_(input_argument), input_group_(input_group),
+ input_argument_(input_argument),
object_(object), sd_(sd), this_blocker_(this_blocker),
next_blocker_(next_blocker)
{ }
int dirindex_;
Mapfile* mapfile_;
const Input_argument* input_argument_;
- Input_group* input_group_;
Object* object_;
Read_symbols_data* sd_;
Task_token* this_blocker_;
: archives_()
{ }
+ ~Input_group();
+
// Add an archive to the group.
void
add_archive(Archive* arch)