ELFDynObjReader.h revision 533eae20118036f425f27bf0536ef0ccbb090b65
1//===- ELFDynObjReader.h --------------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef MCLD_LD_ELFDYNOBJREADER_H
10#define MCLD_LD_ELFDYNOBJREADER_H
11#include <mcld/LD/DynObjReader.h>
12#include <llvm/Support/system_error.h>
13
14namespace mcld {
15
16class Input;
17class LinkerConfig;
18class IRBuilder;
19class GNULDBackend;
20class ELFReaderIF;
21
22/** \class ELFDynObjReader
23 *  \brief ELFDynObjReader reads ELF dynamic shared objects.
24 *
25 */
26class ELFDynObjReader : public DynObjReader
27{
28public:
29  ELFDynObjReader(GNULDBackend& pBackend,
30                  IRBuilder& pBuilder,
31                  const LinkerConfig& pConfig);
32  ~ELFDynObjReader();
33
34  // -----  observers  ----- //
35  bool isMyFormat(Input &pFile, bool &pContinue) const;
36
37  // -----  readers  ----- //
38  bool readHeader(Input& pFile);
39
40  bool readSymbols(Input& pInput);
41
42private:
43  ELFReaderIF *m_pELFReader;
44  IRBuilder& m_Builder;
45};
46
47} // namespace of mcld
48
49#endif
50
51