// archive.h -- archive support for gold -*- C++ -*-
-// Copyright 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
class Layout;
class Symbol_table;
class Object;
-class Read_symbols_data;
+struct Read_symbols_data;
class Input_file_lib;
class Incremental_archive_entry;
: obj_(NULL), sd_(NULL), arg_serial_(0)
{ }
Archive_member(Object* obj, Read_symbols_data* sd)
- : obj_(obj), sd_(sd)
+ : obj_(obj), sd_(sd), arg_serial_(0)
{ }
// The object file.
Object* obj_;
// The string expected at the end of an archive member header.
static const char arfmag[2];
+ // Name of 64-bit symbol table member.
+ static const char sym64name[7];
+
// The name of the object. This is the name used on the command
// line; e.g., if "-lgcc" is on the command line, this will be
// "gcc".
{ return this->input_file_->file().get_view(0, start, size, aligned, cache); }
// Read the archive symbol map.
+ template<int mapsize>
void
read_armap(off_t start, section_size_type size);
unsigned int num_members_;
// True if we exclude this library archive from automatic export.
bool no_export_;
+ // True if this library has been included as a --whole-archive.
+ bool included_all_members_;
};
// This class is used to read an archive and pick out the desired
void
do_for_all_unused_symbols(Symbol_visitor_base*) const;
- // For reading the files.
- const Input_file_lib* lib_;
// Table of the objects in the group.
std::vector<Archive_member> members_;
};