1 //===-- llvm/MC/ELFObjectWriter.h - ELF File Writer ---------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_MC_ELFOBJECTWRITER_H
11 #define LLVM_MC_ELFOBJECTWRITER_H
13 #include "llvm/ADT/Triple.h"
14 #include "llvm/MC/MCObjectWriter.h"
15 #include "llvm/Support/raw_ostream.h"
25 class ELFObjectWriter : public MCObjectWriter {
29 ELFObjectWriter(raw_ostream &OS, bool Is64Bit, Triple::OSType OSType,
30 bool IsLittleEndian = true, bool HasRelocationAddend = true);
32 virtual ~ELFObjectWriter();
34 virtual void ExecutePostLayoutBinding(MCAssembler &Asm);
36 virtual void RecordRelocation(const MCAssembler &Asm,
37 const MCAsmLayout &Layout,
38 const MCFragment *Fragment,
39 const MCFixup &Fixup, MCValue Target,
40 uint64_t &FixedValue);
42 virtual void WriteObject(const MCAssembler &Asm, const MCAsmLayout &Layout);
45 } // End llvm namespace