gdb
[deliverable/binutils-gdb.git] / gold / dynobj.h
index 66d2bff3a49c22d36baeb3c38e3882fa2475a7bd..7a626c027b10eb01d78d3a2b2386675f959f285e 100644 (file)
@@ -1,6 +1,6 @@
 // dynobj.h -- dynamic object support for gold   -*- C++ -*-
 
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -177,6 +177,20 @@ class Sized_dynobj : public Dynobj
   void
   do_add_symbols(Symbol_table*, Read_symbols_data*, Layout*);
 
+  Archive::Should_include
+  do_should_include_member(Symbol_table* symtab, Layout*, Read_symbols_data*,
+                           std::string* why);
+
+  // Iterate over global symbols, calling a visitor class V for each.
+  void
+  do_for_all_global_symbols(Read_symbols_data* sd,
+                           Library_base::Symbol_visitor_base* v);
+
+  // Iterate over local symbols, calling a visitor class V for each GOT offset
+  // associated with a local symbol.
+  void
+  do_for_all_local_got_entries(Got_offset_list::Visitor* v) const;
+
   // Get the size of a section.
   uint64_t
   do_section_size(unsigned int shndx)
@@ -236,6 +250,11 @@ class Sized_dynobj : public Dynobj
   void
   do_get_global_symbol_counts(const Symbol_table*, size_t*, size_t*) const;
 
+  // Get the global symbols.
+  const Symbols*
+  do_get_global_symbols() const
+  { return this->symbols_; }
+
  private:
   // For convenience.
   typedef Sized_dynobj<size, big_endian> This;
@@ -355,9 +374,9 @@ class Verdef : public Version_base
 {
  public:
   Verdef(const char* name, const std::vector<std::string>& deps,
-         bool is_base, bool is_weak, bool is_symbol_created)
+         bool is_base, bool is_weak, bool is_info, bool is_symbol_created)
     : name_(name), deps_(deps), is_base_(is_base), is_weak_(is_weak),
-      is_symbol_created_(is_symbol_created)
+      is_info_(is_info), is_symbol_created_(is_symbol_created)
   { }
 
   // Return the version name.
@@ -386,6 +405,11 @@ class Verdef : public Version_base
   clear_weak()
   { this->is_weak_ = false; }
 
+  // Return whether this definition is informational.
+  bool
+  is_info() const
+  { return this->is_info_; }
+
   // Return whether a version symbol has been created for this
   // definition.
   bool
@@ -414,6 +438,8 @@ class Verdef : public Version_base
   bool is_base_;
   // Whether this version is weak.
   bool is_weak_;
+  // Whether this version is informational.
+  bool is_info_;
   // Whether a version symbol has been created.
   bool is_symbol_created_;
 };
This page took 0.023763 seconds and 4 git commands to generate.