base: Rename Section to Segment, and some of its members.

ELF is, in my opinion, the most important object file format gem5
currently understands, and in ELF terminolgy the blob of data that
needs to be loaded into memory to a particular location is called a
segment. A section is a software level view of what's in a region
of memory, and a single segment may contain multiple sections which
happen to follow each other in memory.

Change-Id: Ib810c5050723d5a96bd7550515b08ac695fb1b02
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21462
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc
index ea1cb08..d0bfa79 100644
--- a/src/arch/alpha/process.cc
+++ b/src/arch/alpha/process.cc
@@ -58,9 +58,8 @@
                      objFile->bssSize();
     brk_point = roundUp(brk_point, PageBytes);
 
-    // Set up stack.  On Alpha, stack goes below text section.  This
-    // code should get moved to some architecture-specific spot.
-    Addr stack_base = objFile->textBase() - (409600+4096);
+    // Set up stack.  On Alpha, stack goes below the image.
+    Addr stack_base = objFile->textBase() - (409600 + 4096);
 
     // Set up region for mmaps.
     Addr mmap_end = 0x10000;
@@ -80,7 +79,7 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();
 
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     std::vector<AuxVector<uint64_t>>  auxv;
 
diff --git a/src/arch/alpha/system.cc b/src/arch/alpha/system.cc
index b72821e..7bff6da 100644
--- a/src/arch/alpha/system.cc
+++ b/src/arch/alpha/system.cc
@@ -109,8 +109,8 @@
     System::initState();
 
     // Load program sections into memory
-    pal->loadSections(physProxy, loadAddrMask);
-    console->loadSections(physProxy, loadAddrMask);
+    pal->loadSegments(physProxy, loadAddrMask);
+    console->loadSegments(physProxy, loadAddrMask);
 
     /**
      * Copy the osflags (kernel arguments) into the consoles
diff --git a/src/arch/arm/freebsd/system.cc b/src/arch/arm/freebsd/system.cc
index 84538e1..6e544a7 100644
--- a/src/arch/arm/freebsd/system.cc
+++ b/src/arch/arm/freebsd/system.cc
@@ -133,7 +133,7 @@
         bootReleaseAddr = ra & ~ULL(0x7F);
 
     dtb_file->setTextBase(params()->atags_addr + loadAddrOffset);
-    dtb_file->loadSections(physProxy);
+    dtb_file->loadSegments(physProxy);
     delete dtb_file;
 
     // Kernel boot requirements to set up r0, r1 and r2 in ARMv7
diff --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc
index 094e4d7..f03a5c6 100644
--- a/src/arch/arm/linux/system.cc
+++ b/src/arch/arm/linux/system.cc
@@ -152,7 +152,7 @@
         }
 
         dtb_file->setTextBase(params()->atags_addr + loadAddrOffset);
-        dtb_file->loadSections(physProxy);
+        dtb_file->loadSegments(physProxy);
         delete dtb_file;
     } else {
         // Using ATAGS
diff --git a/src/arch/arm/process.cc b/src/arch/arm/process.cc
index 8e3cfd9..1a1d4a2 100644
--- a/src/arch/arm/process.cc
+++ b/src/arch/arm/process.cc
@@ -272,7 +272,7 @@
     updateBias();
 
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     //Setup the auxilliary vectors. These will already have endian conversion.
     //Auxilliary vectors are loaded only for elf formatted executables.
diff --git a/src/arch/arm/system.cc b/src/arch/arm/system.cc
index 4ea0d1a..efc347d 100644
--- a/src/arch/arm/system.cc
+++ b/src/arch/arm/system.cc
@@ -143,7 +143,7 @@
 
     if (bootldr) {
         bool isGICv3System = dynamic_cast<Gicv3 *>(getGIC()) != nullptr;
-        bootldr->loadSections(physProxy);
+        bootldr->loadSegments(physProxy);
 
         inform("Using bootloader at address %#x\n", bootldr->entryPoint());
 
diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc
index fb78cee..e3405fd 100644
--- a/src/arch/mips/process.cc
+++ b/src/arch/mips/process.cc
@@ -94,7 +94,7 @@
     updateBias();
 
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     std::vector<AuxVector<IntType>> auxv;
 
diff --git a/src/arch/power/process.cc b/src/arch/power/process.cc
index 6362027..467c820 100644
--- a/src/arch/power/process.cc
+++ b/src/arch/power/process.cc
@@ -100,7 +100,7 @@
     updateBias();
 
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     //Setup the auxilliary vectors. These will already have endian conversion.
     //Auxilliary vectors are loaded only for elf formatted executables.
diff --git a/src/arch/riscv/bare_metal/system.cc b/src/arch/riscv/bare_metal/system.cc
index 5cbd63a..3fb07a4 100644
--- a/src/arch/riscv/bare_metal/system.cc
+++ b/src/arch/riscv/bare_metal/system.cc
@@ -55,7 +55,7 @@
     RiscvSystem::initState();
 
     // load program sections into memory
-    if (!bootloader->loadSections(physProxy)) {
+    if (!bootloader->loadSegments(physProxy)) {
         warn("could not load sections to memory");
     }
 }
diff --git a/src/arch/riscv/process.cc b/src/arch/riscv/process.cc
index ab83052..ca3f0e2 100644
--- a/src/arch/riscv/process.cc
+++ b/src/arch/riscv/process.cc
@@ -126,7 +126,7 @@
     const int addrSize = sizeof(IntType);
 
     updateBias();
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
     ElfObject* elfObject = dynamic_cast<ElfObject*>(objFile);
     memState->setStackMin(memState->getStackBase());
 
diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc
index d89c606..cca61c1 100644
--- a/src/arch/sparc/process.cc
+++ b/src/arch/sparc/process.cc
@@ -208,7 +208,7 @@
     updateBias();
 
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     enum hardwareCaps
     {
diff --git a/src/arch/sparc/system.cc b/src/arch/sparc/system.cc
index a68b11c..5896061 100644
--- a/src/arch/sparc/system.cc
+++ b/src/arch/sparc/system.cc
@@ -138,22 +138,22 @@
 
     // Load reset binary into memory
     reset->setTextBase(params()->reset_addr);
-    reset->loadSections(physProxy);
+    reset->loadSegments(physProxy);
     // Load the openboot binary
     openboot->setTextBase(params()->openboot_addr);
-    openboot->loadSections(physProxy);
+    openboot->loadSegments(physProxy);
     // Load the hypervisor binary
     hypervisor->setTextBase(params()->hypervisor_addr);
-    hypervisor->loadSections(physProxy);
+    hypervisor->loadSegments(physProxy);
     // Load the nvram image
     nvram->setTextBase(params()->nvram_addr);
-    nvram->loadSections(physProxy);
+    nvram->loadSegments(physProxy);
     // Load the hypervisor description image
     hypervisor_desc->setTextBase(params()->hypervisor_desc_addr);
-    hypervisor_desc->loadSections(physProxy);
+    hypervisor_desc->loadSegments(physProxy);
     // Load the partition description image
     partition_desc->setTextBase(params()->partition_desc_addr);
-    partition_desc->loadSections(physProxy);
+    partition_desc->loadSegments(physProxy);
 
 
     // @todo any fixup code over writing data in binaries on setting break
diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc
index 0765ade..60f4f47 100644
--- a/src/arch/x86/process.cc
+++ b/src/arch/x86/process.cc
@@ -776,7 +776,7 @@
     updateBias();
 
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSegments(initVirtMem);
 
     enum X86CpuFeature {
         X86_OnboardFPU = 1 << 0,
diff --git a/src/base/loader/aout_object.cc b/src/base/loader/aout_object.cc
index b731c9a..e3f703e 100644
--- a/src/base/loader/aout_object.cc
+++ b/src/base/loader/aout_object.cc
@@ -46,9 +46,8 @@
         // right now this is only used for Alpha PAL code
         return new AoutObject(fname, len, data,
                               ObjectFile::Alpha, ObjectFile::UnknownOpSys);
-    }
-    else {
-        return NULL;
+    } else {
+        return nullptr;
     }
 }
 
@@ -62,21 +61,21 @@
 
     entry = execHdr->entry;
 
-    text.baseAddr = N_TXTADDR(*execHdr);
+    text.base = N_TXTADDR(*execHdr);
     text.size = execHdr->tsize;
-    text.fileImage = fileData + N_TXTOFF(*execHdr);
+    text.data = fileData + N_TXTOFF(*execHdr);
 
-    data.baseAddr = N_DATADDR(*execHdr);
+    data.base = N_DATADDR(*execHdr);
     data.size = execHdr->dsize;
-    data.fileImage = fileData + N_DATOFF(*execHdr);
+    data.data = fileData + N_DATOFF(*execHdr);
 
-    bss.baseAddr = N_BSSADDR(*execHdr);
+    bss.base = N_BSSADDR(*execHdr);
     bss.size = execHdr->bsize;
-    bss.fileImage = NULL;
+    bss.data = NULL;
 
     DPRINTFR(Loader, "text: 0x%x %d\ndata: 0x%x %d\nbss: 0x%x %d\n",
-             text.baseAddr, text.size, data.baseAddr, data.size,
-             bss.baseAddr, bss.size);
+             text.base, text.size, data.base, data.size,
+             bss.base, bss.size);
 }
 
 
diff --git a/src/base/loader/dtb_object.cc b/src/base/loader/dtb_object.cc
index fab6a76..92e305f 100644
--- a/src/base/loader/dtb_object.cc
+++ b/src/base/loader/dtb_object.cc
@@ -55,17 +55,17 @@
                      Arch _arch, OpSys _opSys)
     : ObjectFile(_filename, _len, _data, _arch, _opSys)
 {
-    text.baseAddr = 0;
+    text.base = 0;
     text.size = len;
-    text.fileImage = fileData;
+    text.data = fileData;
 
-    data.baseAddr = 0;
+    data.base = 0;
     data.size = 0;
-    data.fileImage = NULL;
+    data.data = nullptr;
 
-    bss.baseAddr = 0;
+    bss.base = 0;
     bss.size = 0;
-    bss.fileImage = NULL;
+    bss.data = nullptr;
 
     fileDataMmapped = true;
 }
@@ -141,7 +141,7 @@
     }
 
     text.size = newLen;
-    text.fileImage = fdt_buf_w_space;
+    text.data = fdt_buf_w_space;
 
     // clean up old buffer and set to new fdt blob
     munmap(fileData, this->len);
diff --git a/src/base/loader/ecoff_object.cc b/src/base/loader/ecoff_object.cc
index caeab5f..76b91dd 100644
--- a/src/base/loader/ecoff_object.cc
+++ b/src/base/loader/ecoff_object.cc
@@ -73,21 +73,21 @@
 
     entry = aoutHdr->entry;
 
-    text.baseAddr = aoutHdr->text_start;
+    text.base = aoutHdr->text_start;
     text.size = aoutHdr->tsize;
-    text.fileImage = fileData + ECOFF_TXTOFF(execHdr);
+    text.data = fileData + ECOFF_TXTOFF(execHdr);
 
-    data.baseAddr = aoutHdr->data_start;
+    data.base = aoutHdr->data_start;
     data.size = aoutHdr->dsize;
-    data.fileImage = fileData + ECOFF_DATOFF(execHdr);
+    data.data = fileData + ECOFF_DATOFF(execHdr);
 
-    bss.baseAddr = aoutHdr->bss_start;
+    bss.base = aoutHdr->bss_start;
     bss.size = aoutHdr->bsize;
-    bss.fileImage = NULL;
+    bss.data = nullptr;
 
-    DPRINTFR(Loader, "text: 0x%x %d\ndata: 0x%x %d\nbss: 0x%x %d\n",
-             text.baseAddr, text.size, data.baseAddr, data.size,
-             bss.baseAddr, bss.size);
+    DPRINTFR(Loader, "text: %#x %d\ndata: %#x %d\nbss: %#x %d\n",
+             text.base, text.size, data.base, data.size,
+             bss.base, bss.size);
 }
 
 bool
diff --git a/src/base/loader/elf_object.cc b/src/base/loader/elf_object.cc
index 2a8fb04..3279195 100644
--- a/src/base/loader/elf_object.cc
+++ b/src/base/loader/elf_object.cc
@@ -295,7 +295,7 @@
 
     // initialize segment sizes to 0 in case they're not present
     text.size = data.size = bss.size = 0;
-    text.baseAddr = data.baseAddr = bss.baseAddr = 0;
+    text.base = data.base = bss.base = 0;
 
     int sec_idx = 1;
 
@@ -352,9 +352,9 @@
         if (phdr.p_paddr <= bss_sec_start &&
             phdr.p_paddr + phdr.p_memsz > bss_sec_start &&
             phdr.p_memsz - phdr.p_filesz > 0) {
-            bss.baseAddr = phdr.p_paddr + phdr.p_filesz;
+            bss.base = phdr.p_paddr + phdr.p_filesz;
             bss.size = phdr.p_memsz - phdr.p_filesz;
-            bss.fileImage = NULL;
+            bss.data = nullptr;
         }
 
         // Check to see if this is the text or data segment
@@ -365,21 +365,21 @@
             if (phdr.p_vaddr != 0)
                 relocate = false;
 
-            text.baseAddr = phdr.p_paddr;
+            text.base = phdr.p_paddr;
             text.size = phdr.p_filesz;
-            text.fileImage = fileData + phdr.p_offset;
+            text.data = fileData + phdr.p_offset;
         } else if (phdr.p_vaddr <= data_sec_start &&
                    phdr.p_vaddr + phdr.p_filesz > data_sec_start) {
-            data.baseAddr = phdr.p_paddr;
+            data.base = phdr.p_paddr;
             data.size = phdr.p_filesz;
-            data.fileImage = fileData + phdr.p_offset;
+            data.data = fileData + phdr.p_offset;
         } else {
             // If it's none of the above but is loadable,
             // load the filesize worth of data
             Segment extra;
-            extra.baseAddr = phdr.p_paddr;
+            extra.base = phdr.p_paddr;
             extra.size = phdr.p_filesz;
-            extra.fileImage = fileData + phdr.p_offset;
+            extra.data = fileData + phdr.p_offset;
             extraSegments.push_back(extra);
         }
     }
@@ -389,9 +389,9 @@
             "Empty .text segment in '%s'. ELF file corrupted?\n",
             filename);
 
-    DPRINTFR(Loader, "text: 0x%x %d\ndata: 0x%x %d\nbss: 0x%x %d\n",
-             text.baseAddr, text.size, data.baseAddr, data.size,
-             bss.baseAddr, bss.size);
+    DPRINTFR(Loader, "text: %#x %d\ndata: %#x %d\nbss: %#x %d\n",
+             text.base, text.size, data.base, data.size,
+             bss.base, bss.size);
 
     elf_end(elf);
 
@@ -498,20 +498,20 @@
 }
 
 bool
-ElfObject::loadSections(const PortProxy& mem_proxy, Addr addr_mask,
+ElfObject::loadSegments(const PortProxy& mem_proxy, Addr addr_mask,
                         Addr offset)
 {
-    if (!ObjectFile::loadSections(mem_proxy, addr_mask, offset))
+    if (!ObjectFile::loadSegments(mem_proxy, addr_mask, offset))
         return false;
 
     for (auto seg : extraSegments) {
-        if (!loadSection(&seg, mem_proxy, addr_mask, offset)) {
+        if (!loadSegment(&seg, mem_proxy, addr_mask, offset)) {
             return false;
         }
     }
 
     if (interpreter)
-        interpreter->loadSections(mem_proxy, addr_mask, offset);
+        interpreter->loadSegments(mem_proxy, addr_mask, offset);
 
     return true;
 }
@@ -570,9 +570,9 @@
     entry += bias_addr;
 
     // Patch segments with the bias_addr.
-    text.baseAddr += bias_addr;
-    data.baseAddr += bias_addr;
-    bss.baseAddr  += bias_addr;
+    text.base += bias_addr;
+    data.base += bias_addr;
+    bss.base  += bias_addr;
     for (auto &segment : extraSegments)
-        segment.baseAddr += bias_addr;
+        segment.base += bias_addr;
 }
diff --git a/src/base/loader/elf_object.hh b/src/base/loader/elf_object.hh
index 9585684..244b9fc 100644
--- a/src/base/loader/elf_object.hh
+++ b/src/base/loader/elf_object.hh
@@ -51,9 +51,6 @@
 class ElfObject : public ObjectFile
 {
   protected:
-    // The global definition of a gem5 "Section" is closest to ELF's segments.
-    typedef ObjectFile::Section Segment;
-
     // These values are provided to a linux process by the kernel, so we
     // need to keep them around.
     Addr _programHeaderTable;
@@ -94,7 +91,7 @@
   public:
     virtual ~ElfObject() {}
 
-    bool loadSections(const PortProxy& mem_proxy, Addr addr_mask = maxAddr,
+    bool loadSegments(const PortProxy& mem_proxy, Addr addr_mask = maxAddr,
                       Addr offset = 0) override;
 
     virtual bool loadAllSymbols(SymbolTable *symtab, Addr base = 0,
diff --git a/src/base/loader/hex_file.cc b/src/base/loader/hex_file.cc
index 32de905..4c9ffa5 100644
--- a/src/base/loader/hex_file.cc
+++ b/src/base/loader/hex_file.cc
@@ -62,7 +62,7 @@
 }
 
 bool
-HexFile::loadSections(PortProxy& memProxy)
+HexFile::loadSegments(PortProxy& memProxy)
 {
     char Line[64];
     Addr MemAddr;
diff --git a/src/base/loader/hex_file.hh b/src/base/loader/hex_file.hh
index fe34fdd..befd7f3 100644
--- a/src/base/loader/hex_file.hh
+++ b/src/base/loader/hex_file.hh
@@ -52,7 +52,7 @@
     virtual ~HexFile();
 
     void close();
-    bool loadSections(PortProxy& memProxy);
+    bool loadSegments(PortProxy& memProxy);
 };
 
 #endif // __BASE_LOADER_HEX_FILE_HH__
diff --git a/src/base/loader/object_file.cc b/src/base/loader/object_file.cc
index 0bb897c..8a6b063 100644
--- a/src/base/loader/object_file.cc
+++ b/src/base/loader/object_file.cc
@@ -73,17 +73,16 @@
 
 
 bool
-ObjectFile::loadSection(Section *sec, const PortProxy& mem_proxy,
+ObjectFile::loadSegment(Segment *seg, const PortProxy& mem_proxy,
                         Addr addr_mask, Addr offset)
 {
-    if (sec->size != 0) {
-        Addr addr = (sec->baseAddr & addr_mask) + offset;
-        if (sec->fileImage) {
-            mem_proxy.writeBlob(addr, sec->fileImage, sec->size);
-        }
-        else {
+    if (seg->size != 0) {
+        Addr addr = (seg->base & addr_mask) + offset;
+        if (seg->data) {
+            mem_proxy.writeBlob(addr, seg->data, seg->size);
+        } else {
             // no image: must be bss
-            mem_proxy.memsetBlob(addr, 0, sec->size);
+            mem_proxy.memsetBlob(addr, 0, seg->size);
         }
     }
     return true;
@@ -91,12 +90,12 @@
 
 
 bool
-ObjectFile::loadSections(const PortProxy& mem_proxy, Addr addr_mask,
+ObjectFile::loadSegments(const PortProxy& mem_proxy, Addr addr_mask,
                          Addr offset)
 {
-    return (loadSection(&text, mem_proxy, addr_mask, offset)
-            && loadSection(&data, mem_proxy, addr_mask, offset)
-            && loadSection(&bss, mem_proxy, addr_mask, offset));
+    return (loadSegment(&text, mem_proxy, addr_mask, offset)
+            && loadSegment(&data, mem_proxy, addr_mask, offset)
+            && loadSegment(&bss, mem_proxy, addr_mask, offset));
 }
 
 namespace
diff --git a/src/base/loader/object_file.hh b/src/base/loader/object_file.hh
index 14dee3b..db995f5 100644
--- a/src/base/loader/object_file.hh
+++ b/src/base/loader/object_file.hh
@@ -88,17 +88,17 @@
 
     static const Addr maxAddr = std::numeric_limits<Addr>::max();
 
-    virtual bool loadSections(const PortProxy& mem_proxy,
-                              Addr mask = maxAddr, Addr offset = 0);
+    virtual bool loadSegments(const PortProxy &mem_proxy,
+                              Addr mask=maxAddr, Addr offset=0);
 
     virtual bool loadAllSymbols(SymbolTable *symtab, Addr base = 0,
-                                Addr offset = 0, Addr mask = maxAddr) = 0;
+                                Addr offset=0, Addr mask=maxAddr) = 0;
     virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr base = 0,
-                                   Addr offset = 0, Addr mask = maxAddr) = 0;
-    virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base = 0,
-                                  Addr offset = 0, Addr mask = maxAddr) = 0;
-    virtual bool loadWeakSymbols(SymbolTable *symtab, Addr base = 0,
-                                 Addr offset = 0, Addr mask = maxAddr)
+                                   Addr offset=0, Addr mask=maxAddr) = 0;
+    virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base=0,
+                                  Addr offset=0, Addr mask=maxAddr) = 0;
+    virtual bool loadWeakSymbols(SymbolTable *symtab, Addr base=0,
+                                 Addr offset=0, Addr mask=maxAddr)
     { return false; }
 
     virtual ObjectFile *getInterpreter() const { return nullptr; }
@@ -116,27 +116,28 @@
 
   protected:
 
-    struct Section {
-        Addr baseAddr;
-        uint8_t *fileImage;
+    struct Segment
+    {
+        Addr base;
+        uint8_t *data;
         size_t size;
     };
 
     Addr entry;
 
-    Section text;
-    Section data;
-    Section bss;
+    Segment text;
+    Segment data;
+    Segment bss;
 
-    bool loadSection(Section *sec, const PortProxy& mem_proxy, Addr mask,
-                     Addr offset = 0);
+    bool loadSegment(Segment *seg, const PortProxy &mem_proxy, Addr mask,
+                     Addr offset=0);
 
   public:
     Addr entryPoint() const { return entry; }
 
-    Addr textBase() const { return text.baseAddr; }
-    Addr dataBase() const { return data.baseAddr; }
-    Addr bssBase() const { return bss.baseAddr; }
+    Addr textBase() const { return text.base; }
+    Addr dataBase() const { return data.base; }
+    Addr bssBase() const { return bss.base; }
 
     size_t textSize() const { return text.size; }
     size_t dataSize() const { return data.size; }
@@ -147,7 +148,7 @@
      * blob that doesn't include an object header.
      * @param a address to load the binary/text section at
      */
-    void setTextBase(Addr a) { text.baseAddr = a; }
+    void setTextBase(Addr a) { text.base = a; }
 
     /**
      * Each instance of a Loader subclass will have a chance to try to load
diff --git a/src/base/loader/raw_object.cc b/src/base/loader/raw_object.cc
index 4a04f7d..9662d86 100644
--- a/src/base/loader/raw_object.cc
+++ b/src/base/loader/raw_object.cc
@@ -45,21 +45,21 @@
         uint8_t *_data, Arch _arch, OpSys _opSys)
     : ObjectFile(_filename, _len, _data, _arch, _opSys)
 {
-    text.baseAddr = 0;
+    text.base = 0;
     text.size = len;
-    text.fileImage = fileData;
+    text.data = fileData;
 
-    data.baseAddr = 0;
+    data.base = 0;
     data.size = 0;
-    data.fileImage = NULL;
+    data.data = nullptr;
 
-    bss.baseAddr = 0;
+    bss.base = 0;
     bss.size = 0;
-    bss.fileImage = NULL;
+    bss.data = nullptr;
 
-    DPRINTFR(Loader, "text: 0x%x %d\ndata: 0x%x %d\nbss: 0x%x %d\n",
-             text.baseAddr, text.size, data.baseAddr, data.size,
-             bss.baseAddr, bss.size);
+    DPRINTFR(Loader, "text: %#x %d\ndata: %#x %d\nbss: %#x %d\n",
+             text.base, text.size, data.base, data.size,
+             bss.base, bss.size);
 }
 
 bool
@@ -73,10 +73,6 @@
 RawObject::loadGlobalSymbols(SymbolTable *symtab, Addr base, Addr offset,
                              Addr addr_mask)
 {
-/*    int fnameStart = filename.rfind('/',filename.size()) + 1;
-    int extStart = filename.rfind('.',filename.size());
-    symtab->insert(text.baseAddr & addr_mask, filename.substr(fnameStart,
-                extStart-fnameStart) + "_start");*/
     return true;
 }
 
@@ -84,9 +80,5 @@
 RawObject::loadLocalSymbols(SymbolTable *symtab, Addr base, Addr offset,
                             Addr addr_mask)
 {
-/*    int fnameStart = filename.rfind('/',filename.size()) + 1;
-    int extStart = filename.rfind('.',filename.size());
-    symtab->insert(text.baseAddr & addr_mask, filename.substr(fnameStart,
-                extStart-fnameStart) + "_start");*/
     return true;
 }
diff --git a/src/sim/system.cc b/src/sim/system.cc
index 7476965..73f93a2 100644
--- a/src/sim/system.cc
+++ b/src/sim/system.cc
@@ -327,9 +327,9 @@
                 }
             }
             // Load program sections into memory
-            kernel->loadSections(physProxy, loadAddrMask, loadAddrOffset);
+            kernel->loadSegments(physProxy, loadAddrMask, loadAddrOffset);
             for (const auto &extra_kernel : kernelExtras) {
-                extra_kernel->loadSections(physProxy, loadAddrMask,
+                extra_kernel->loadSegments(physProxy, loadAddrMask,
                                            loadAddrOffset);
             }