Defer adding sections until ELF::Finish in synth_elf

A=Mike Hommey <mh@glandium.org>
R=ted at https://breakpad.appspot.com/543002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1135 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
ted.mielczarek@gmail.com 2013-03-29 15:06:29 +00:00
parent ece9df9386
commit 637c392d1c
2 changed files with 33 additions and 6 deletions

View file

@ -39,6 +39,7 @@
#include "common/test_assembler.h"
#include <list>
#include <vector>
#include <map>
#include <string>
#include <utility>
@ -49,6 +50,7 @@ namespace google_breakpad {
namespace synth_elf {
using std::list;
using std::vector;
using std::map;
using std::pair;
using test_assembler::Endianness;
@ -128,6 +130,23 @@ class ELF : public Section {
Label section_header_string_index_;
// Section containing the names of section header table entries.
StringTable section_header_strings_;
// Record of an added section
struct ElfSection : public Section {
ElfSection(const Section& section, uint32_t type, uint32_t offset,
Label offset_label)
: Section(section), type_(type), offset_(offset)
, offset_label_(offset_label) {
}
uint32_t type_;
uint32_t offset_;
Label offset_label_;
};
vector<ElfSection> sections_;
void AppendSection(ElfSection &section);
};
// A class to build .symtab or .dynsym sections.