Changes :- a) Functionality in InputGraph to insert Input elements at any position b) Functionality in the Resolver to use nextFile c) Move the functionality of assigning file ordinals to InputGraph d) Changes all inputs to MemoryBuffers e) Remove LinkerInput, InputFiles, ReaderArchive llvm-svn: 192081
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
//===- lib/ReaderWriter/ELF/Writer.h --------------------------------------===//
|
|
//
|
|
// The LLVM Linker
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLD_READER_WRITER_ELF_WRITER_H
|
|
#define LLD_READER_WRITER_ELF_WRITER_H
|
|
|
|
#include "lld/Core/File.h"
|
|
#include "lld/ReaderWriter/Writer.h"
|
|
|
|
namespace lld {
|
|
namespace elf {
|
|
/// \brief The Writer class is a base class for the linker to write
|
|
/// various kinds of ELF files.
|
|
class ELFWriter : public Writer {
|
|
public:
|
|
ELFWriter() { }
|
|
|
|
public:
|
|
/// \brief builds the chunks that needs to be written to the output
|
|
/// ELF file
|
|
virtual void buildChunks(const File &file) = 0;
|
|
|
|
/// \brief Writes the chunks into the output file specified by path
|
|
virtual error_code writeFile(const File &file, StringRef path) = 0;
|
|
|
|
/// \brief Get the virtual address of \p atom after layout.
|
|
virtual uint64_t addressOfAtom(const Atom *atom) = 0;
|
|
};
|
|
} // end namespace elf
|
|
} // end namespace lld
|
|
|
|
#endif
|