ELFObjectWriter.h revision affc150dc44fab1911775a49636d0ce85333b634
1f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang//===- ELFObjectWriter.h --------------------------------------------------===// 2f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// 3f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// The MCLinker Project 4f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// 5f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// This file is distributed under the University of Illinois Open Source 6f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// License. See LICENSE.TXT for details. 7f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang// 8f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang//===----------------------------------------------------------------------===// 9f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#ifndef MCLD_ELF_OBJECT_WRITER_H 10f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#define MCLD_ELF_OBJECT_WRITER_H 11f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#ifdef ENABLE_UNITTEST 12f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#include <gtest.h> 13f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#endif 14f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#include <llvm/Support/system_error.h> 15f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#include <mcld/LD/ObjectWriter.h> 16f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#include <mcld/LD/ELFWriter.h> 17c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang 18c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Changnamespace mcld 19f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang{ 20f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 21f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changclass Input; 22f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changclass MCLinker; 23f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changclass GNULDBackend; 24f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 25f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang/** \class ELFObjectWriter 26f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang * \brief ELFObjectWriter writes the target-independent parts of object files. 27f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang * ELFObjectWriter reads a MCLDFile and writes into raw_ostream 28f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang * 29f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang */ 30f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changclass ELFObjectWriter : public ObjectWriter, protected ELFWriter 31f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang{ 32f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changpublic: 33f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang ELFObjectWriter(GNULDBackend& pBackend, MCLinker& pLinker); 34f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 35f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang ~ELFObjectWriter(); 36f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 37f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang llvm::error_code writeObject(Output& pOutput) 38f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang { return llvm::make_error_code(llvm::errc::not_supported); } 39f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 40f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Changprivate: 41f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang MCLinker& m_Linker; 42f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang}; 43f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 44f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang} // namespace of mcld 45f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 46f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#endif 47f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 48f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang