// copy-relocs.h -- handle COPY relocations for gold -*- C++ -*-
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2006-2014 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
// section is where the dynamic relocs are put.
void
copy_reloc(Symbol_table*, Layout*, Sized_symbol<size>* sym,
- Sized_relobj<size, big_endian>* object,
+ Sized_relobj_file<size, big_endian>* object,
unsigned int shndx, Output_section* output_section,
const Reloc& rel,
Output_data_reloc<sh_type, true, size, big_endian>*);
void
emit(Output_data_reloc<sh_type, true, size, big_endian>*);
+ // Emit a COPY reloc.
+ void
+ emit_copy_reloc(Symbol_table*, Sized_symbol<size>*,
+ Output_data*, off_t,
+ Output_data_reloc<sh_type, true, size, big_endian>*);
+
private:
typedef typename elfcpp::Elf_types<size>::Elf_Addr Address;
typedef typename elfcpp::Elf_types<size>::Elf_Addr Addend;
{
public:
Copy_reloc_entry(Symbol* sym, unsigned int reloc_type,
- Sized_relobj<size, big_endian>* relobj,
+ Sized_relobj_file<size, big_endian>* relobj,
unsigned int shndx,
Output_section* output_section,
Address address, Addend addend)
private:
Symbol* sym_;
unsigned int reloc_type_;
- Sized_relobj<size, big_endian>* relobj_;
+ Sized_relobj_file<size, big_endian>* relobj_;
unsigned int shndx_;
Output_section* output_section_;
Address address_;
// Return whether we need a COPY reloc.
bool
need_copy_reloc(Sized_symbol<size>* gsym,
- Sized_relobj<size, big_endian>* object,
+ Sized_relobj_file<size, big_endian>* object,
unsigned int shndx) const;
- // Emit a COPY reloc.
+ // Make a new COPY reloc and emit it.
void
- emit_copy_reloc(Symbol_table*, Layout*, Sized_symbol<size>*,
+ make_copy_reloc(Symbol_table*, Layout*, Sized_symbol<size>*,
Output_data_reloc<sh_type, true, size, big_endian>*);
- // Add a COPY reloc to the dynamic reloc section.
- void
- add_copy_reloc(Symbol*, section_size_type,
- Output_data_reloc<sh_type, true, size, big_endian>*);
-
// Save a reloc against SYM for possible emission later.
void
- save(Symbol*, Sized_relobj<size, big_endian>*, unsigned int shndx,
+ save(Symbol*, Sized_relobj_file<size, big_endian>*, unsigned int shndx,
Output_section*, const Reloc& rel);
// The target specific relocation type of the COPY relocation.