15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- X86ELFDynamic.cpp --------------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <mcld/LD/ELFFileFormat.h> 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "X86ELFDynamic.h" 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld; 145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoX86ELFDynamic::X86ELFDynamic(const GNULDBackend& pParent) 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang : ELFDynamic(pParent) 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 20affc150dc44fab1911775a49636d0ce85333b634Zonr ChangX86ELFDynamic::~X86ELFDynamic() 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 24affc150dc44fab1911775a49636d0ce85333b634Zonr Changvoid X86ELFDynamic::reserveTargetEntries(const ELFFileFormat& pFormat) 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // reservePLTGOT 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang if (pFormat.hasGOTPLT()) 285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao reserveOne(llvm::ELF::DT_PLTGOT); 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 31affc150dc44fab1911775a49636d0ce85333b634Zonr Changvoid X86ELFDynamic::applyTargetEntries(const ELFFileFormat& pFormat) 32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // applyPLTGOT 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang if (pFormat.hasGOTPLT()) 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang applyOne(llvm::ELF::DT_PLTGOT, pFormat.getGOTPLT().addr()); 365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 38