ELFFileFormat.h revision affc150dc44fab1911775a49636d0ce85333b634
15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- LDFileFormat.h -----------------------------------------------------===//
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#ifndef MCLD_ELF_FILE_FORMAT_H
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define MCLD_ELF_FILE_FORMAT_H
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifdef ENABLE_UNITTEST
125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h>
135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif
145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <mcld/LD/LDFileFormat.h>
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <mcld/LD/LDSection.h>
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaonamespace mcld
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass GNULDBackend;
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass MCLinker;
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class ELFFileFormat
245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  \brief ELFFileFormat describes the common file formats in ELF.
255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  LDFileFormats control the formats of the output file.
265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *
275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  @ref "Object Files," Ch. 4, in System V Application Binary Interface,
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  Fourth Edition.
295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *
305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  @ref "Object Format," Ch. 10, in ISO/IEC 23360 Part 1:2010(E), Linux
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  Standard Base Core Specification 4.1.
325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */
335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass ELFFileFormat : public LDFileFormat
345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic:
365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  ELFFileFormat(GNULDBackend& pBackend);
375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  virtual ~ELFFileFormat();
395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  virtual void initObjectFormat(MCLinker& pLinker);
415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  virtual void initObjectType(MCLinker& pLinker) = 0;
435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // -----  capacity  ----- //
455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition.
465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasNULLSection() const
475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pNULLSection) && (0 != f_pNULLSection->size()); }
485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGOT() const
505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGOT) && (0 != f_pGOT->size()); }
515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasPLT() const
535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pPLT) && (0 != f_pPLT->size()); }
545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasRelDyn() const
565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pRelDyn) && (0 != f_pRelDyn->size()); }
575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasRelPlt() const
595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pRelPlt) && (0 != f_pRelPlt->size()); }
605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasRelaDyn() const
625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pRelaDyn) && (0 != f_pRelaDyn->size()); }
635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasRelaPlt() const
655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pRelaPlt) && (0 != f_pRelaPlt->size()); }
665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21.
685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasComment() const
695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pComment) && (0 != f_pComment->size()); }
705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasData1() const
725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pData1) && (0 != f_pData1->size()); }
735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDebug() const
755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDebug) && (0 != f_pDebug->size()); }
765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDynamic() const
785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDynamic) && (0 != f_pDynamic->size()); }
795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDynStrTab() const
815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDynStrTab) && (0 != f_pDynStrTab->size()); }
825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDynSymTab() const
845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDynSymTab) && (0 != f_pDynSymTab->size()); }
855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasFini() const
875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pFini) && (0 != f_pFini->size()); }
885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasFiniArray() const
905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pFiniArray) && (0 != f_pFiniArray->size()); }
915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasHashTab() const
935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pHashTab) && (0 != f_pHashTab->size()); }
945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasInit() const
965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pInit) && (0 != f_pInit->size()); }
975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasInitArray() const
995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pInitArray) && (0 != f_pInitArray->size()); }
1005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasInterp() const
1025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pInterp) && (0 != f_pInterp->size()); }
1035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasLine() const
1055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pLine) && (0 != f_pLine->size()); }
1065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasNote() const
1085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pNote) && (0 != f_pNote->size()); }
1095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasPreInitArray() const
1115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pPreInitArray) && (0 != f_pPreInitArray->size()); }
1125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasROData1() const
1145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pROData1) && (0 != f_pROData1->size()); }
1155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasShStrTab() const
1175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pShStrTab) && (0 != f_pShStrTab->size()); }
1185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasStrTab() const
1205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pStrTab) && (0 != f_pStrTab->size()); }
1215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasSymTab() const
1235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pSymTab) && (0 != f_pSymTab->size()); }
1245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasTBSS() const
1265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pTBSS) && (0 != f_pTBSS->size()); }
1275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasTData() const
1295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pTData) && (0 != f_pTData->size()); }
1305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24.
1325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasCtors() const
1335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pCtors) && (0 != f_pCtors->size()); }
1345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDataRelRo() const
1365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDataRelRo) && (0 != f_pDataRelRo->size()); }
1375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasDtors() const
1395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pDtors) && (0 != f_pDtors->size()); }
1405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasEhFrame() const
1425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pEhFrame) && (0 != f_pEhFrame->size()); }
1435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasEhFrameHdr() const
1455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pEhFrameHdr) && (0 != f_pEhFrameHdr->size()); }
1465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGCCExceptTable() const
1485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGCCExceptTable) && (0 != f_pGCCExceptTable->size()); }
1495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGNUVersion() const
1515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGNUVersion) && (0 != f_pGNUVersion->size()); }
1525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGNUVersionD() const
1545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGNUVersionD) && (0 != f_pGNUVersionD->size()); }
1555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGNUVersionR() const
1575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGNUVersionR) && (0 != f_pGNUVersionR->size()); }
1585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasGOTPLT() const
1605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pGOTPLT) && (0 != f_pGOTPLT->size()); }
1615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasJCR() const
1635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pJCR) && (0 != f_pJCR->size()); }
1645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasNoteABITag() const
1665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pNoteABITag) && (0 != f_pNoteABITag->size()); }
1675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasStab() const
1695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pStab) && (0 != f_pStab->size()); }
1705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  bool hasStabStr() const
1725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  { return (NULL != f_pStabStr) && (0 != f_pStabStr->size()); }
1735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
174affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  bool hasStack() const
175affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  { return (NULL != f_pStack) && (0 != f_pStack->size()); }
176affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
1775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // -----  access functions  ----- //
1785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition.
1795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getNULLSection() {
1805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNULLSection);
1815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNULLSection;
1825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
1835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getNULLSection() const {
1855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNULLSection);
1865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNULLSection;
1875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
1885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGOT() {
1905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGOT);
1915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGOT;
1925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
1935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGOT() const {
1955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGOT);
1965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGOT;
1975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
1985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getPLT() {
2005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pPLT);
2015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pPLT;
2025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getPLT() const {
2055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pPLT);
2065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pPLT;
2075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getRelDyn() {
2105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelDyn);
2115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelDyn;
2125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getRelDyn() const {
2155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelDyn);
2165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelDyn;
2175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getRelPlt() {
2205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelPlt);
2215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelPlt;
2225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getRelPlt() const {
2255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelPlt);
2265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelPlt;
2275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getRelaDyn() {
2305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelaDyn);
2315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelaDyn;
2325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getRelaDyn() const {
2355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelaDyn);
2365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelaDyn;
2375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getRelaPlt() {
2405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelaPlt);
2415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelaPlt;
2425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getRelaPlt() const {
2455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pRelaPlt);
2465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pRelaPlt;
2475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getComment() {
2505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pComment);
2515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pComment;
2525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21.
2555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getComment() const {
2565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pComment);
2575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pComment;
2585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getData1() {
2615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pData1);
2625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pData1;
2635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getData1() const {
2665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pData1);
2675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pData1;
2685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDebug() {
2715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDebug);
2725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDebug;
2735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDebug() const {
2765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDebug);
2775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDebug;
2785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDynamic() {
2815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynamic);
2825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynamic;
2835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDynamic() const {
2865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynamic);
2875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynamic;
2885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDynStrTab() {
2915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynStrTab);
2925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynStrTab;
2935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDynStrTab() const {
2965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynStrTab);
2975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynStrTab;
2985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
2995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDynSymTab() {
3015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynSymTab);
3025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynSymTab;
3035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDynSymTab() const {
3065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDynSymTab);
3075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDynSymTab;
3085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getFini() {
3115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pFini);
3125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pFini;
3135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getFini() const {
3165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pFini);
3175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pFini;
3185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getFiniArray() {
3215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pFiniArray);
3225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pFiniArray;
3235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getFiniArray() const {
3265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pFiniArray);
3275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pFiniArray;
3285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getHashTab() {
3315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pHashTab);
3325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pHashTab;
3335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getHashTab() const {
3365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pHashTab);
3375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pHashTab;
3385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getInit() {
3415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInit);
3425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInit;
3435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getInit() const {
3465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInit);
3475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInit;
3485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getInitArray() {
3515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInitArray);
3525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInitArray;
3535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getInitArray() const {
3565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInitArray);
3575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInitArray;
3585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getInterp() {
3615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInterp);
3625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInterp;
3635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getInterp() const {
3665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pInterp);
3675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pInterp;
3685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getLine() {
3715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pLine);
3725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pLine;
3735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getLine() const {
3765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pLine);
3775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pLine;
3785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getNote() {
3815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNote);
3825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNote;
3835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getNote() const {
3865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNote);
3875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNote;
3885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getPreInitArray() {
3915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pPreInitArray);
3925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pPreInitArray;
3935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getPreInitArray() const {
3965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pPreInitArray);
3975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pPreInitArray;
3985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
3995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getROData1() {
4015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pROData1);
4025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pROData1;
4035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getROData1() const {
4065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pROData1);
4075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pROData1;
4085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getShStrTab() {
4115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pShStrTab);
4125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pShStrTab;
4135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getShStrTab() const {
4165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pShStrTab);
4175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pShStrTab;
4185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getStrTab() {
4215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStrTab);
4225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStrTab;
4235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getStrTab() const {
4265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStrTab);
4275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStrTab;
4285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getSymTab() {
4315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pSymTab);
4325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pSymTab;
4335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getSymTab() const {
4365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pSymTab);
4375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pSymTab;
4385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getTBSS() {
4415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pTBSS);
4425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pTBSS;
4435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getTBSS() const {
4465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pTBSS);
4475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pTBSS;
4485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getTData() {
4515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pTData);
4525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pTData;
4535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getTData() const {
4565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pTData);
4575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pTData;
4585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24.
4615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getCtors() {
4625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pCtors);
4635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pCtors;
4645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getCtors() const {
4675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pCtors);
4685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pCtors;
4695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDataRelRo() {
4725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDataRelRo);
4735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDataRelRo;
4745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDataRelRo() const {
4775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDataRelRo);
4785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDataRelRo;
4795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getDtors() {
4825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDtors);
4835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDtors;
4845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getDtors() const {
4875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pDtors);
4885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pDtors;
4895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getEhFrame() {
4925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pEhFrame);
4935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pEhFrame;
4945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
4955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getEhFrame() const {
4975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pEhFrame);
4985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pEhFrame;
4995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getEhFrameHdr() {
5025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pEhFrameHdr);
5035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pEhFrameHdr;
5045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getEhFrameHdr() const {
5075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pEhFrameHdr);
5085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pEhFrameHdr;
5095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGCCExceptTable() {
5125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGCCExceptTable);
5135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGCCExceptTable;
5145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGCCExceptTable() const {
5175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGCCExceptTable);
5185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGCCExceptTable;
5195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGNUVersion() {
5225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersion);
5235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersion;
5245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGNUVersion() const {
5275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersion);
5285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersion;
5295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGNUVersionD() {
5325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersionD);
5335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersionD;
5345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGNUVersionD() const {
5375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersionD);
5385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersionD;
5395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGNUVersionR() {
5425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersionR);
5435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersionR;
5445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGNUVersionR() const {
5475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGNUVersionR);
5485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGNUVersionR;
5495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getGOTPLT() {
5525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGOTPLT);
5535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGOTPLT;
5545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getGOTPLT() const {
5575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pGOTPLT);
5585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pGOTPLT;
5595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getJCR() {
5625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pJCR);
5635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pJCR;
5645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getJCR() const {
5675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pJCR);
5685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pJCR;
5695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getNoteABITag() {
5725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNoteABITag);
5735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNoteABITag;
5745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getNoteABITag() const {
5775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pNoteABITag);
5785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pNoteABITag;
5795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getStab() {
5825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStab);
5835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStab;
5845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getStab() const {
5875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStab);
5885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStab;
5895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection& getStabStr() {
5925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStabStr);
5935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStabStr;
5945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
5955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
5965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  const LDSection& getStabStr() const {
5975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    assert(NULL != f_pStabStr);
5985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    return *f_pStabStr;
5995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
6005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
601affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  LDSection& getStack() {
602affc150dc44fab1911775a49636d0ce85333b634Zonr Chang    assert(NULL != f_pStack);
603affc150dc44fab1911775a49636d0ce85333b634Zonr Chang    return *f_pStack;
604affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  }
605affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
606affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  const LDSection& getStack() const {
607affc150dc44fab1911775a49636d0ce85333b634Zonr Chang    assert(NULL != f_pStack);
608affc150dc44fab1911775a49636d0ce85333b634Zonr Chang    return *f_pStack;
609affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  }
6105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoprotected:
6115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  GNULDBackend& f_Backend;
6125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
6135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  //         variable name         :  ELF
6145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition.
6155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pNULLSection;
6165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGOT;               // .got
6175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pPLT;               // .plt
6185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pRelDyn;            // .rel.dyn
6195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pRelPlt;            // .rel.plt
6205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pRelaDyn;           // .rela.dyn
6215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pRelaPlt;           // .rela.plt
6225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
6235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21.
6245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pComment;           // .comment
6255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pData1;             // .data1
6265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDebug;             // .debug
6275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDynamic;           // .dynamic
6285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDynStrTab;         // .dynstr
6295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDynSymTab;         // .dynsym
6305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pFini;              // .fini
6315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pFiniArray;         // .fini_array
6325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pHashTab;           // .hash
6335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pInit;              // .init
6345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pInitArray;         // .init_array
6355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pInterp;            // .interp
6365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pLine;              // .line
6375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pNote;              // .note
6385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pPreInitArray;      // .preinit_array
6395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pROData1;           // .rodata1
6405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pShStrTab;          // .shstrtab
6415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pStrTab;            // .strtab
6425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pSymTab;            // .symtab
6435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pTBSS;              // .tbss
6445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pTData;             // .tdata
6455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
6465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24.
6475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pCtors;             // .ctors
6485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDataRelRo;         // .data.rel.ro
6495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pDtors;             // .dtors
6505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pEhFrame;           // .eh_frame
6515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pEhFrameHdr;        // .eh_frame_hdr
6525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGCCExceptTable;    // .gcc_except_table
6535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGNUVersion;        // .gnu.version
6545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGNUVersionD;       // .gnu.version_d
6555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGNUVersionR;       // .gnu.version_r
6565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pGOTPLT;            // .got.plt
6575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pJCR;               // .jcr
6585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pNoteABITag;        // .note.ABI-tag
6595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pStab;              // .stab
6605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  LDSection* f_pStabStr;           // .stabstr
661affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
662affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  /// practical
663affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  LDSection* f_pStack;             // .stack
6645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao};
6655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
6665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} // namespace of mcld
6675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
6685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif
669affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
670