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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_LD_ELFFILEFORMAT_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_LD_ELFFILEFORMAT_H_ 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDFileFormat.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDSection.h" 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaonamespace mcld { 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass ObjectBuilder; 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class ELFFileFormat 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * \brief ELFFileFormat describes the common file formats in ELF. 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * LDFileFormats control the formats of the output file. 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * @ref "Object Files," Ch. 4, in System V Application Binary Interface, 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Fourth Edition. 245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * @ref "Object Format," Ch. 10, in ISO/IEC 23360 Part 1:2010(E), Linux 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Standard Base Core Specification 4.1. 275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */ 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ELFFileFormat : public LDFileFormat { 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines private: 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao /// initObjectFormat - initialize sections that are dependent on object 3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao /// formats. (executable, shared objects or relocatable objects). 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual void initObjectFormat(ObjectBuilder& pBuilder, 3337b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int pBitClass) = 0; 345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3537b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao ELFFileFormat(); 375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao void initStdSections(ObjectBuilder& pBuilder, unsigned int pBitClass); 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // ----- capacity ----- // 415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition. 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasNULLSection() const { 4337b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pNULLSection != NULL) && (f_pNULLSection->size() != 0); 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGOT() const { return (f_pGOT != NULL) && (f_pGOT->size() != 0); } 475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasPLT() const { return (f_pPLT != NULL) && (f_pPLT->size() != 0); } 495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasRelDyn() const { 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pRelDyn != NULL) && (f_pRelDyn->size() != 0); 5237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasRelPlt() const { 5537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pRelPlt != NULL) && (f_pRelPlt->size() != 0); 5637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasRelaDyn() const { 5937b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pRelaDyn != NULL) && (f_pRelaDyn->size() != 0); 6037b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6237b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasRelaPlt() const { 6337b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pRelaPlt != NULL) && (f_pRelaPlt->size() != 0); 6437b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21. 6737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasComment() const { 6837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pComment != NULL) && (f_pComment->size() != 0); 6937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7137b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasData1() const { 7237b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pData1 != NULL) && (f_pData1->size() != 0); 7337b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7537b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDebug() const { 7637b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDebug != NULL) && (f_pDebug->size() != 0); 7737b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7937b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDynamic() const { 8037b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDynamic != NULL) && (f_pDynamic->size() != 0); 8137b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 8337b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDynStrTab() const { 8437b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDynStrTab != NULL) && (f_pDynStrTab->size() != 0); 8537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 8737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDynSymTab() const { 8837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDynSymTab != NULL) && (f_pDynSymTab->size() != 0); 8937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 9137b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasFini() const { return (f_pFini != NULL) && (f_pFini->size() != 0); } 925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 9337b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasFiniArray() const { 9437b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pFiniArray != NULL) && (f_pFiniArray->size() != 0); 9537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 9737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasHashTab() const { 9837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pHashTab != NULL) && (f_pHashTab->size() != 0); 9937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 10137b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasInit() const { return (f_pInit != NULL) && (f_pInit->size() != 0); } 1025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 10337b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasInitArray() const { 10437b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pInitArray != NULL) && (f_pInitArray->size() != 0); 10537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 10737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasInterp() const { 10837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pInterp != NULL) && (f_pInterp->size() != 0); 10937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 11137b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasLine() const { return (f_pLine != NULL) && (f_pLine->size() != 0); } 1125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 11337b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasNote() const { return (f_pNote != NULL) && (f_pNote->size() != 0); } 1145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 11537b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasPreInitArray() const { 11637b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pPreInitArray != NULL) && (f_pPreInitArray->size() != 0); 11737b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 11937b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasROData1() const { 12037b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pROData1 != NULL) && (f_pROData1->size() != 0); 12137b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 12337b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasShStrTab() const { 12437b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pShStrTab != NULL) && (f_pShStrTab->size() != 0); 12537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 12737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasStrTab() const { 12837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pStrTab != NULL) && (f_pStrTab->size() != 0); 12937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 13137b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasSymTab() const { 13237b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pSymTab != NULL) && (f_pSymTab->size() != 0); 13337b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 13537b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasTBSS() const { return (f_pTBSS != NULL) && (f_pTBSS->size() != 0); } 1365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 13737b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasTData() const { 13837b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pTData != NULL) && (f_pTData->size() != 0); 13937b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24. 14237b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasCtors() const { 14337b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pCtors != NULL) && (f_pCtors->size() != 0); 14437b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 14637b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDataRelRo() const { 14737b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDataRelRo != NULL) && (f_pDataRelRo->size() != 0); 14837b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 15037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDtors() const { 15137b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDtors != NULL) && (f_pDtors->size() != 0); 15237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 15437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasEhFrame() const { 15537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pEhFrame != NULL) && (f_pEhFrame->size() != 0); 15637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 15837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasEhFrameHdr() const { 15937b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pEhFrameHdr != NULL) && (f_pEhFrameHdr->size() != 0); 16037b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 16237b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGCCExceptTable() const { 16337b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGCCExceptTable != NULL) && (f_pGCCExceptTable->size() != 0); 16437b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 16637b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGNUVersion() const { 16737b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGNUVersion != NULL) && (f_pGNUVersion->size() != 0); 16837b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 17037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGNUVersionD() const { 17137b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGNUVersionD != NULL) && (f_pGNUVersionD->size() != 0); 17237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 17437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGNUVersionR() const { 17537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGNUVersionR != NULL) && (f_pGNUVersionR->size() != 0); 17637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 17837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGOTPLT() const { 17937b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGOTPLT != NULL) && (f_pGOTPLT->size() != 0); 18037b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 18237b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasJCR() const { return (f_pJCR != NULL) && (f_pJCR->size() != 0); } 1835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 18437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasNoteABITag() const { 18537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pNoteABITag != NULL) && (f_pNoteABITag->size() != 0); 18637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 18837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasStab() const { return (f_pStab != NULL) && (f_pStab->size() != 0); } 1895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 19037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasStabStr() const { 19137b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pStabStr != NULL) && (f_pStabStr->size() != 0); 19237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 1935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 19437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasStack() const { 19537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pStack != NULL) && (f_pStack->size() != 0); 19637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 197affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 19837b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasStackNote() const { return (f_pStackNote != NULL); } 19922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 20037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasDataRelRoLocal() const { 20137b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pDataRelRoLocal != NULL) && (f_pDataRelRoLocal->size() != 0); 20237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 20322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 20437b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool hasGNUHashTab() const { 20537b74a387bb3993387029859c2d9d051c41c724eStephen Hines return (f_pGNUHashTab != NULL) && (f_pGNUHashTab->size() != 0); 20637b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 2076f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 2085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // ----- access functions ----- // 2095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition. 2105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getNULLSection() { 21137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNULLSection != NULL); 2125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNULLSection; 2135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getNULLSection() const { 21637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNULLSection != NULL); 2175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNULLSection; 2185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGOT() { 22137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGOT != NULL); 2225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGOT; 2235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGOT() const { 22637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGOT != NULL); 2275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGOT; 2285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getPLT() { 23137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pPLT != NULL); 2325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pPLT; 2335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getPLT() const { 23637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pPLT != NULL); 2375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pPLT; 2385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getRelDyn() { 24137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelDyn != NULL); 2425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelDyn; 2435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getRelDyn() const { 24637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelDyn != NULL); 2475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelDyn; 2485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getRelPlt() { 25137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelPlt != NULL); 2525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelPlt; 2535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getRelPlt() const { 25637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelPlt != NULL); 2575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelPlt; 2585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getRelaDyn() { 26137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelaDyn != NULL); 2625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelaDyn; 2635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getRelaDyn() const { 26637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelaDyn != NULL); 2675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelaDyn; 2685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getRelaPlt() { 27137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelaPlt != NULL); 2725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelaPlt; 2735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getRelaPlt() const { 27637b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pRelaPlt != NULL); 2775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pRelaPlt; 2785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getComment() { 28137b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pComment != NULL); 2825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pComment; 2835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21. 2865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getComment() const { 28737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pComment != NULL); 2885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pComment; 2895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getData1() { 29237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pData1 != NULL); 2935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pData1; 2945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 2955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getData1() const { 29737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pData1 != NULL); 2985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pData1; 2995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDebug() { 30237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDebug != NULL); 3035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDebug; 3045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDebug() const { 30737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDebug != NULL); 3085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDebug; 3095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDynamic() { 31237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynamic != NULL); 3135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynamic; 3145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDynamic() const { 31737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynamic != NULL); 3185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynamic; 3195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDynStrTab() { 32237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynStrTab != NULL); 3235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynStrTab; 3245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDynStrTab() const { 32737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynStrTab != NULL); 3285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynStrTab; 3295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDynSymTab() { 33237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynSymTab != NULL); 3335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynSymTab; 3345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDynSymTab() const { 33737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDynSymTab != NULL); 3385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDynSymTab; 3395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getFini() { 34237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pFini != NULL); 3435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pFini; 3445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getFini() const { 34737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pFini != NULL); 3485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pFini; 3495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getFiniArray() { 35237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pFiniArray != NULL); 3535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pFiniArray; 3545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getFiniArray() const { 35737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pFiniArray != NULL); 3585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pFiniArray; 3595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getHashTab() { 36237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pHashTab != NULL); 3635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pHashTab; 3645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getHashTab() const { 36737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pHashTab != NULL); 3685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pHashTab; 3695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getInit() { 37237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInit != NULL); 3735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInit; 3745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getInit() const { 37737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInit != NULL); 3785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInit; 3795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getInitArray() { 38237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInitArray != NULL); 3835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInitArray; 3845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getInitArray() const { 38737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInitArray != NULL); 3885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInitArray; 3895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getInterp() { 39237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInterp != NULL); 3935460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInterp; 3945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 3955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getInterp() const { 39737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pInterp != NULL); 3985460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pInterp; 3995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getLine() { 40237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pLine != NULL); 4035460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pLine; 4045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getLine() const { 40737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pLine != NULL); 4085460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pLine; 4095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getNote() { 41237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNote != NULL); 4135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNote; 4145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getNote() const { 41737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNote != NULL); 4185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNote; 4195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getPreInitArray() { 42237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pPreInitArray != NULL); 4235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pPreInitArray; 4245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getPreInitArray() const { 42737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pPreInitArray != NULL); 4285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pPreInitArray; 4295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getROData1() { 43237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pROData1 != NULL); 4335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pROData1; 4345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getROData1() const { 43737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pROData1 != NULL); 4385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pROData1; 4395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getShStrTab() { 44237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pShStrTab != NULL); 4435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pShStrTab; 4445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getShStrTab() const { 44737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pShStrTab != NULL); 4485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pShStrTab; 4495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getStrTab() { 45237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStrTab != NULL); 4535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStrTab; 4545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getStrTab() const { 45737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStrTab != NULL); 4585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStrTab; 4595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getSymTab() { 46237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pSymTab != NULL); 4635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pSymTab; 4645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getSymTab() const { 46737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pSymTab != NULL); 4685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pSymTab; 4695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getTBSS() { 47237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pTBSS != NULL); 4735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pTBSS; 4745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getTBSS() const { 47737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pTBSS != NULL); 4785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pTBSS; 4795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getTData() { 48237b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pTData != NULL); 4835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pTData; 4845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getTData() const { 48737b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pTData != NULL); 4885460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pTData; 4895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24. 4925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getCtors() { 49337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pCtors != NULL); 4945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pCtors; 4955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 4965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getCtors() const { 49837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pCtors != NULL); 4995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pCtors; 5005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDataRelRo() { 50337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDataRelRo != NULL); 5045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDataRelRo; 5055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDataRelRo() const { 50837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDataRelRo != NULL); 5095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDataRelRo; 5105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getDtors() { 51337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDtors != NULL); 5145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDtors; 5155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getDtors() const { 51837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDtors != NULL); 5195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pDtors; 5205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getEhFrame() { 52337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pEhFrame != NULL); 5245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pEhFrame; 5255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getEhFrame() const { 52837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pEhFrame != NULL); 5295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pEhFrame; 5305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getEhFrameHdr() { 53337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pEhFrameHdr != NULL); 5345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pEhFrameHdr; 5355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getEhFrameHdr() const { 53837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pEhFrameHdr != NULL); 5395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pEhFrameHdr; 5405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGCCExceptTable() { 54337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGCCExceptTable != NULL); 5445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGCCExceptTable; 5455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGCCExceptTable() const { 54837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGCCExceptTable != NULL); 5495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGCCExceptTable; 5505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGNUVersion() { 55337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersion != NULL); 5545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersion; 5555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGNUVersion() const { 55837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersion != NULL); 5595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersion; 5605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGNUVersionD() { 56337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersionD != NULL); 5645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersionD; 5655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGNUVersionD() const { 56837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersionD != NULL); 5695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersionD; 5705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGNUVersionR() { 57337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersionR != NULL); 5745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersionR; 5755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGNUVersionR() const { 57837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUVersionR != NULL); 5795460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGNUVersionR; 5805460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5815460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getGOTPLT() { 58337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGOTPLT != NULL); 5845460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGOTPLT; 5855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5875460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getGOTPLT() const { 58837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGOTPLT != NULL); 5895460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pGOTPLT; 5905460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5915460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5925460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getJCR() { 59337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pJCR != NULL); 5945460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pJCR; 5955460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 5965460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5975460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getJCR() const { 59837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pJCR != NULL); 5995460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pJCR; 6005460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6015460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6025460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getNoteABITag() { 60337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNoteABITag != NULL); 6045460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNoteABITag; 6055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6075460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getNoteABITag() const { 60837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pNoteABITag != NULL); 6095460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pNoteABITag; 6105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getStab() { 61337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStab != NULL); 6145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStab; 6155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getStab() const { 61837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStab != NULL); 6195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStab; 6205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection& getStabStr() { 62337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStabStr != NULL); 6245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStabStr; 6255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const LDSection& getStabStr() const { 62837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStabStr != NULL); 6295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao return *f_pStabStr; 6305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 6315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 632affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSection& getStack() { 63337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStack != NULL); 634affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return *f_pStack; 635affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 636affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 637affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const LDSection& getStack() const { 63837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStack != NULL); 639affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return *f_pStack; 640affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 6415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 64222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection& getStackNote() { 64337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStackNote != NULL); 64422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return *f_pStackNote; 64522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 64622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 64722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const LDSection& getStackNote() const { 64837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pStackNote != NULL); 64922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return *f_pStackNote; 65022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 65122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 65222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection& getDataRelRoLocal() { 65337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDataRelRoLocal != NULL); 65422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return *f_pDataRelRoLocal; 65522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 65622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 65722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const LDSection& getDataRelRoLocal() const { 65837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pDataRelRoLocal != NULL); 65922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return *f_pDataRelRoLocal; 66022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 66122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 6626f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines LDSection& getGNUHashTab() { 66337b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUHashTab != NULL); 6646f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines return *f_pGNUHashTab; 6656f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } 6666f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 6676f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines const LDSection& getGNUHashTab() const { 66837b74a387bb3993387029859c2d9d051c41c724eStephen Hines assert(f_pGNUHashTab != NULL); 6696f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines return *f_pGNUHashTab; 6706f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } 6716f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 67237b74a387bb3993387029859c2d9d051c41c724eStephen Hines protected: 6735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // variable name : ELF 6745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref Special Sections, Ch. 4.17, System V ABI, 4th edition. 6755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao LDSection* f_pNULLSection; 67637b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGOT; // .got 67737b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pPLT; // .plt 67837b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pRelDyn; // .rel.dyn 67937b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pRelPlt; // .rel.plt 68037b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pRelaDyn; // .rela.dyn 68137b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pRelaPlt; // .rela.plt 6825460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6835460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.1, ISO/IEC 23360, Part 1:2010(E), p. 21. 68437b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pComment; // .comment 68537b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pData1; // .data1 68637b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDebug; // .debug 68737b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDynamic; // .dynamic 68837b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDynStrTab; // .dynstr 68937b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDynSymTab; // .dynsym 69037b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pFini; // .fini 69137b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pFiniArray; // .fini_array 69237b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pHashTab; // .hash 69337b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pInit; // .init 69437b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pInitArray; // .init_array 69537b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pInterp; // .interp 69637b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pLine; // .line 69737b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pNote; // .note 69837b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pPreInitArray; // .preinit_array 69937b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pROData1; // .rodata1 70037b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pShStrTab; // .shstrtab 70137b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pStrTab; // .strtab 70237b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pSymTab; // .symtab 70337b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pTBSS; // .tbss 70437b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pTData; // .tdata 7055460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7065460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /// @ref 10.3.1.2, ISO/IEC 23360, Part 1:2010(E), p. 24. 70737b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pCtors; // .ctors 70837b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDataRelRo; // .data.rel.ro 70937b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDtors; // .dtors 71037b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pEhFrame; // .eh_frame 71137b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pEhFrameHdr; // .eh_frame_hdr 71237b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGCCExceptTable; // .gcc_except_table 71337b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGNUVersion; // .gnu.version 71437b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGNUVersionD; // .gnu.version_d 71537b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGNUVersionR; // .gnu.version_r 71637b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGOTPLT; // .got.plt 71737b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pJCR; // .jcr 71837b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pNoteABITag; // .note.ABI-tag 71937b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pStab; // .stab 72037b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pStabStr; // .stabstr 721affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 722affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// practical 72337b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pStack; // .stack 72437b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pStackNote; // .note.GNU-stack 72537b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pDataRelRoLocal; // .data.rel.ro.local 72637b74a387bb3993387029859c2d9d051c41c724eStephen Hines LDSection* f_pGNUHashTab; // .gnu.hash 7275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}; 7285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 72937b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 730affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 73137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_LD_ELFFILEFORMAT_H_ 732