daily update
[deliverable/binutils-gdb.git] / gold / dynobj.cc
index fca9bbdf613cea35d2cb323e8850ddd2923a34d1..3b2031ff51b7b71971b5fe4bcc5f60eced08b837 100644 (file)
@@ -751,6 +751,42 @@ Sized_dynobj<size, big_endian>::do_add_symbols(Symbol_table* symtab,
   this->clear_view_cache_marks();
 }
 
+template<int size, bool big_endian>
+Archive::Should_include
+Sized_dynobj<size, big_endian>::do_should_include_member(Symbol_table*,
+                                                        Layout*,
+                                                        Read_symbols_data*,
+                                                        std::string*)
+{
+  return Archive::SHOULD_INCLUDE_YES;
+}
+
+// Iterate over global symbols, calling a visitor class V for each.
+
+template<int size, bool big_endian>
+void
+Sized_dynobj<size, big_endian>::do_for_all_global_symbols(
+    Read_symbols_data* sd,
+    Library_base::Symbol_visitor_base* v)
+{
+  const char* sym_names =
+      reinterpret_cast<const char*>(sd->symbol_names->data());
+  const unsigned char* syms =
+      sd->symbols->data() + sd->external_symbols_offset;
+  const int sym_size = elfcpp::Elf_sizes<size>::sym_size;
+  size_t symcount = ((sd->symbols_size - sd->external_symbols_offset)
+                     / sym_size);
+  const unsigned char* p = syms;
+
+  for (size_t i = 0; i < symcount; ++i, p += sym_size)
+    {
+      elfcpp::Sym<size, big_endian> sym(p);
+      if (sym.get_st_shndx() != elfcpp::SHN_UNDEF
+         && sym.get_st_bind() != elfcpp::STB_LOCAL)
+       v->visit(sym_names + sym.get_st_name());
+    }
+}
+
 // Get symbol counts.
 
 template<int size, bool big_endian>
@@ -1721,8 +1757,8 @@ Versions::def_section_contents(const Stringpool* dynpool,
 template<int size, bool big_endian>
 void
 Versions::need_section_contents(const Stringpool* dynpool,
-                               unsigned char** pp, unsigned int *psize,
-                               unsigned int *pentries) const
+                               unsigned char** pp, unsigned intpsize,
+                               unsigned intpentries) const
 {
   gold_assert(this->is_finalized_);
   gold_assert(!this->needs_.empty());
This page took 0.026809 seconds and 4 git commands to generate.