<div dir="ltr">The widths of LMA and Size are not correct as you can see below.<div><div><br></div><div><div><div><font face="monospace, monospace">             VMA       LMA             Size Align Out     In      Symbol</font></div><div><font face="monospace, monospace">          2002a8    2002a8               1c     1 .interp</font></div></div><div><br></div></div></div><div>VMA and LMA need to be the same width because they are the same, and we don't need that large space for Size for a obvious reason. So the correct output should be like this.</div><div>

<pre id="m_-8494830795053057383gmail-hterm:copy-to-clipboard-source" style="color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">             VMA              LMA      Size Align Out     In      Symbol
          2002a8           2002a8        1c     1 .interp</pre>

I'll fix this.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 5, 2018 at 3:53 AM George Rimar via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: grimar<br>
Date: Thu Apr  5 03:51:06 2018<br>
New Revision: 329271<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=329271&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=329271&view=rev</a><br>
Log:<br>
[ELF] - Print LMA in a -Map file.<br>
<br>
Currently, LLD prints VA, but not LMA in a map file.<br>
It seems can be useful to print both to reveal layout<br>
details and patch implements it.<br>
<br>
Differential revision: <a href="https://reviews.llvm.org/D44899" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44899</a><br>
<br>
Added:<br>
    lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s<br>
    lld/trunk/test/ELF/linkerscript/map-file2.test<br>
Modified:<br>
    lld/trunk/ELF/MapFile.cpp<br>
    lld/trunk/test/ELF/linkerscript/map-file.test<br>
    lld/trunk/test/ELF/map-file.s<br>
<br>
Modified: lld/trunk/ELF/MapFile.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/MapFile.cpp?rev=329271&r1=329270&r2=329271&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/MapFile.cpp?rev=329271&r1=329270&r2=329271&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/ELF/MapFile.cpp (original)<br>
+++ lld/trunk/ELF/MapFile.cpp Thu Apr  5 03:51:06 2018<br>
@@ -44,10 +44,10 @@ static const std::string Indent8 = "<br>
 static const std::string Indent16 = "                "; // 16 spaces<br>
<br>
 // Print out the first three columns of a line.<br>
-static void writeHeader(raw_ostream &OS, uint64_t Addr, uint64_t Size,<br>
-                        uint64_t Align) {<br>
+static void writeHeader(raw_ostream &OS, uint64_t VMA, uint64_t LMA,<br>
+                        uint64_t Size, uint64_t Align) {<br>
   int W = Config->Is64 ? 16 : 8;<br>
-  OS << format("%0*llx %0*llx %5lld ", W, Addr, W, Size, Align);<br>
+  OS << format("%*llx %9llx %*llx %5lld ", W, VMA, LMA, W, Size, Align);<br>
 }<br>
<br>
 // Returns a list of all symbols that we want to print out.<br>
@@ -102,7 +102,10 @@ getSymbolStrings(ArrayRef<Symbol *> Syms<br>
   std::vector<std::string> Str(Syms.size());<br>
   parallelForEachN(0, Syms.size(), [&](size_t I) {<br>
     raw_string_ostream OS(Str[I]);<br>
-    writeHeader(OS, Syms[I]->getVA(), Syms[I]->getSize(), 1);<br>
+    OutputSection *OSec = Syms[I]->getOutputSection();<br>
+    uint64_t VMA = Syms[I]->getVA();<br>
+    uint64_t LMA = OSec ? OSec->getLMA() + VMA - OSec->getVA(0) : 0;<br>
+    writeHeader(OS, VMA, LMA, Syms[I]->getSize(), 1);<br>
     OS << Indent16 << toString(*Syms[I]);<br>
   });<br>
<br>
@@ -143,7 +146,8 @@ static void printEhFrame(raw_ostream &OS<br>
<br>
   // Print out section pieces.<br>
   for (EhSectionPiece &P : Pieces) {<br>
-    writeHeader(OS, OSec->Addr + P.OutputOff, P.Size, 1);<br>
+    writeHeader(OS, OSec->Addr + P.OutputOff, OSec->getLMA() + P.OutputOff,<br>
+                P.Size, 1);<br>
     OS << Indent8 << toString(P.Sec->File) << ":(" << P.Sec->Name << "+0x"<br>
        << Twine::utohexstr(P.InputOff) + ")\n";<br>
   }<br>
@@ -168,12 +172,12 @@ void elf::writeMapFile() {<br>
<br>
   // Print out the header line.<br>
   int W = Config->Is64 ? 16 : 8;<br>
-  OS << left_justify("Address", W) << ' ' << left_justify("Size", W)<br>
-     << " Align Out     In      Symbol\n";<br>
+  OS << right_justify("VMA", W) << ' ' << right_justify("LMA", 9) << ' '<br>
+     << right_justify("Size", W) << " Align Out     In      Symbol\n";<br>
<br>
   // Print out file contents.<br>
   for (OutputSection *OSec : OutputSections) {<br>
-    writeHeader(OS, OSec->Addr, OSec->Size, OSec->Alignment);<br>
+    writeHeader(OS, OSec->Addr, OSec->getLMA(), OSec->Size, OSec->Alignment);<br>
     OS << OSec->Name << '\n';<br>
<br>
     // Dump symbols for each input section.<br>
@@ -185,7 +189,8 @@ void elf::writeMapFile() {<br>
             continue;<br>
           }<br>
<br>
-          writeHeader(OS, IS->getVA(0), IS->getSize(), IS->Alignment);<br>
+          writeHeader(OS, IS->getVA(0), OSec->getLMA() + IS->getOffset(0),<br>
+                      IS->getSize(), IS->Alignment);<br>
           OS << Indent8 << toString(IS) << '\n';<br>
           for (Symbol *Sym : SectionSyms[IS])<br>
             OS << SymStr[Sym] << '\n';<br>
@@ -194,13 +199,15 @@ void elf::writeMapFile() {<br>
       }<br>
<br>
       if (auto *Cmd = dyn_cast<ByteCommand>(Base)) {<br>
-        writeHeader(OS, OSec->Addr + Cmd->Offset, Cmd->Size, 1);<br>
+        writeHeader(OS, OSec->Addr + Cmd->Offset, OSec->getLMA() + Cmd->Offset,<br>
+                    Cmd->Size, 1);<br>
         OS << Indent8 << Cmd->CommandString << '\n';<br>
         continue;<br>
       }<br>
<br>
       if (auto *Cmd = dyn_cast<SymbolAssignment>(Base)) {<br>
-        writeHeader(OS, Cmd->Addr, Cmd->Size, 1);<br>
+        writeHeader(OS, Cmd->Addr, OSec->getLMA() + Cmd->Addr - OSec->getVA(0),<br>
+                    Cmd->Size, 1);<br>
         OS << Indent8 << Cmd->CommandString << '\n';<br>
         continue;<br>
       }<br>
<br>
Added: lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s?rev=329271&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s?rev=329271&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s (added)<br>
+++ lld/trunk/test/ELF/linkerscript/Inputs/map-file2.s Thu Apr  5 03:51:06 2018<br>
@@ -0,0 +1,19 @@<br>
+.global _start<br>
+_start:<br>
+.global _Z1fi<br>
+_Z1fi:<br>
+.cfi_startproc<br>
+nop<br>
+.cfi_endproc<br>
+<br>
+.section .aaa, "a";<br>
+.quad 1;<br>
+<br>
+.section .bbb, "a";<br>
+.quad 2;<br>
+<br>
+.section .ccc, "a";<br>
+.quad 3;<br>
+<br>
+.section .ddd, "a";<br>
+.quad 4<br>
<br>
Modified: lld/trunk/test/ELF/linkerscript/map-file.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/map-file.test?rev=329271&r1=329270&r2=329271&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/map-file.test?rev=329271&r1=329270&r2=329271&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/linkerscript/map-file.test (original)<br>
+++ lld/trunk/test/ELF/linkerscript/map-file.test Thu Apr  5 03:51:06 2018<br>
@@ -22,16 +22,24 @@ SECTIONS {<br>
   }<br>
 }<br>
<br>
-# CHECK:      Address          Size             Align Out     In      Symbol<br>
-# CHECK-NEXT: 0000000000001000 000000000000125d     1 .foo<br>
-# CHECK-NEXT: 0000000000001000 0000000000000001     1         BYTE ( 0x11 )<br>
-# CHECK-NEXT: 0000000000001001 0000000000000002     1         SHORT ( 0x1122 )<br>
-# CHECK-NEXT: 0000000000001003 0000000000000004     1         LONG ( 0x11223344 )<br>
-# CHECK-NEXT: 0000000000001007 0000000000000008     1         QUAD ( 0x1122334455667788 )<br>
-# CHECK-NEXT: 000000000000100f 0000000000001000     1         . += 0x1000<br>
-# CHECK-NEXT: 000000000000200f 0000000000000008     1         {{.*}}{{/|\\}}map-file.test.tmp.o:(.foo.1)<br>
-# CHECK-NEXT: 0000000000002017 0000000000000246     1         . += 0x123 * ( 1 + 1 )<br>
-# CHECK-NEXT: 000000000000225d 0000000000000000     1         foo = .<br>
-# CHECK-NEXT: 000000000000225d 0000000000000000     1         bar = 0x42 - 0x26<br>
-# CHECK-NEXT: 0000000000002260 0000000000000000     4 .text<br>
-# CHECK-NEXT: 0000000000002260 0000000000000000     4         {{.*}}{{/|\\}}map-file.test.tmp.o:(.text)<br>
+# CHECK:        VMA       LMA             Size Align Out     In      Symbol<br>
+# CHECK-NEXT:  1000      1000             125d     1 .foo<br>
+# CHECK-NEXT:  1000      1000                1     1         BYTE ( 0x11 )<br>
+# CHECK-NEXT:  1001      1001                2     1         SHORT ( 0x1122 )<br>
+# CHECK-NEXT:  1003      1003                4     1         LONG ( 0x11223344 )<br>
+# CHECK-NEXT:  1007      1007                8     1         QUAD ( 0x1122334455667788 )<br>
+# CHECK-NEXT:  100f      100f             1000     1         . += 0x1000<br>
+# CHECK-NEXT:  200f      200f                8     1         {{.*}}{{/|\\}}map-file.test.tmp.o:(.foo.1)<br>
+# CHECK-NEXT:  2017      2017              246     1         . += 0x123 * ( 1 + 1 )<br>
+# CHECK-NEXT:  225d      225d                0     1         foo = .<br>
+# CHECK-NEXT:  225d      225d                0     1         bar = 0x42 - 0x26<br>
+# CHECK-NEXT:  2260      2260                0     4 .text<br>
+# CHECK-NEXT:  2260      2260                0     4         {{.*}}{{/|\\}}map-file.test.tmp.o:(.text)<br>
+# CHECK-NEXT:     0         0                8     1 .comment<br>
+# CHECK-NEXT:     0         0                8     1         <internal>:(.comment)<br>
+# CHECK-NEXT:     0         0               48     8 .symtab<br>
+# CHECK-NEXT:     0         0               48     8         <internal>:(.symtab)<br>
+# CHECK-NEXT:     0         0               2f     1 .shstrtab<br>
+# CHECK-NEXT:     0         0               2f     1         <internal>:(.shstrtab)<br>
+# CHECK-NEXT:     0         0                9     1 .strtab<br>
+# CHECK-NEXT:     0         0                9     1         <internal>:(.strtab)<br>
<br>
Added: lld/trunk/test/ELF/linkerscript/map-file2.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/map-file2.test?rev=329271&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/map-file2.test?rev=329271&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/linkerscript/map-file2.test (added)<br>
+++ lld/trunk/test/ELF/linkerscript/map-file2.test Thu Apr  5 03:51:06 2018<br>
@@ -0,0 +1,43 @@<br>
+# REQUIRES: x86<br>
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/map-file2.s -o %t.o<br>
+# RUN: ld.lld -o %t %t.o -Map=%t.map --script %s<br>
+# RUN: FileCheck -strict-whitespace %s < %t.map<br>
+<br>
+SECTIONS {<br>
+  . = 0x1000;<br>
+  .aaa : { *(.aaa.*) }<br>
+  .bbb : AT(0x2000) { *(.bbb.*) }<br>
+  .ccc : AT(0x3000) { *(.ccc.*) }<br>
+  .ddd : {<br>
+    BYTE(0x11)<br>
+    . += 0x100;<br>
+    *(.ddd.*)<br>
+  }<br>
+  .text : { *(.text.*) }<br>
+}<br>
+<br>
+# CHECK:             VMA       LMA             Size Align Out     In      Symbol<br>
+# CHECK-NEXT:       1000      1000                8     1 .aaa<br>
+# CHECK-NEXT:       1000      1000                8     1         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.aaa)<br>
+# CHECK-NEXT:       1008      2000                8     1 .bbb<br>
+# CHECK-NEXT:       1008      2000                8     1         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.bbb)<br>
+# CHECK-NEXT:       1010      3000                8     1 .ccc<br>
+# CHECK-NEXT:       1010      3000                8     1         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.ccc)<br>
+# CHECK-NEXT:       1018      3008              109     1 .ddd<br>
+# CHECK-NEXT:       1018      3008                1     1         BYTE ( 0x11 )<br>
+# CHECK-NEXT:       1019      3009              100     1         . += 0x100<br>
+# CHECK-NEXT:       1119      3109                8     1         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.ddd)<br>
+# CHECK-NEXT:       1124      3114                1     4 .text<br>
+# CHECK-NEXT:       1124      3114                1     4         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.text)<br>
+# CHECK-NEXT:       1124      3114                0     1                 f(int)<br>
+# CHECK-NEXT:       1124      3114                0     1                 _start<br>
+# CHECK-NEXT:       1128      3118               30     8 .eh_frame<br>
+# CHECK-NEXT:       1128      3118               30     1         {{.*}}{{/|\\}}map-file2.test.tmp.o:(.eh_frame+0x0)<br>
+# CHECK-NEXT:          0         0                8     1 .comment<br>
+# CHECK-NEXT:          0         0                8     1         <internal>:(.comment)<br>
+# CHECK-NEXT:          0         0               48     8 .symtab<br>
+# CHECK-NEXT:          0         0               48     8         <internal>:(.symtab)<br>
+# CHECK-NEXT:          0         0               48     1 .shstrtab<br>
+# CHECK-NEXT:          0         0               48     1         <internal>:(.shstrtab)<br>
+# CHECK-NEXT:          0         0                e     1 .strtab<br>
+# CHECK-NEXT:          0         0                e     1         <internal>:(.strtab)<br>
<br>
Modified: lld/trunk/test/ELF/map-file.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/map-file.s?rev=329271&r1=329270&r2=329271&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/map-file.s?rev=329271&r1=329270&r2=329271&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/ELF/map-file.s (original)<br>
+++ lld/trunk/test/ELF/map-file.s Thu Apr  5 03:51:06 2018<br>
@@ -40,60 +40,60 @@ local:<br>
 abs = 0xAB5<br>
 labs = 0x1AB5<br>
<br>
-// CHECK:      Address          Size             Align Out     In      Symbol<br>
-// CHECK-NEXT: 00000000002001c8 0000000000000078     8 .dynsym<br>
-// CHECK-NEXT: 00000000002001c8 0000000000000078     8         <internal>:(.dynsym)<br>
-// CHECK-NEXT: 0000000000200240 000000000000002c     8 .gnu.hash<br>
-// CHECK-NEXT: 0000000000200240 000000000000002c     8         <internal>:(.gnu.hash)<br>
-// CHECK-NEXT: 000000000020026c 0000000000000030     4 .hash<br>
-// CHECK-NEXT: 000000000020026c 0000000000000030     4         <internal>:(.hash)<br>
-// CHECK-NEXT: 000000000020029c 0000000000000031     1 .dynstr<br>
-// CHECK-NEXT: 000000000020029c 0000000000000031     1         <internal>:(.dynstr)<br>
-// CHECK-NEXT: 00000000002002d0 0000000000000030     8 .rela.dyn<br>
-// CHECK-NEXT: 00000000002002d0 0000000000000030     8         <internal>:(.rela.dyn)<br>
-// CHECK-NEXT: 0000000000200300 0000000000000030     8 .rela.plt<br>
-// CHECK-NEXT: 0000000000200300 0000000000000030     8         <internal>:(.rela.plt)<br>
-// CHECK-NEXT: 0000000000200330 0000000000000060     8 .eh_frame<br>
-// CHECK-NEXT: 0000000000200330 000000000000002c     1         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x0)<br>
-// CHECK-NEXT: 0000000000200360 0000000000000014     1         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x2c)<br>
-// CHECK-NEXT: 0000000000200378 0000000000000018     1         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.eh_frame+0x18)<br>
-// CHECK-NEXT: 0000000000201000 000000000000002d     4 .text<br>
-// CHECK-NEXT: 0000000000201000 0000000000000028     4         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.text)<br>
-// CHECK-NEXT: 0000000000201000 0000000000000000     1                 _start<br>
-// CHECK-NEXT: 000000000020101f 0000000000000000     1                 f(int)<br>
-// CHECK-NEXT: 0000000000201028 0000000000000000     1                 local<br>
-// CHECK-NEXT: 0000000000201028 0000000000000002     4         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.text)<br>
-// CHECK-NEXT: 0000000000201028 0000000000000000     1                 foo<br>
-// CHECK-NEXT: 0000000000201029 0000000000000000     1                 bar<br>
-// CHECK-NEXT: 000000000020102a 0000000000000000     1         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.text.zed)<br>
-// CHECK-NEXT: 000000000020102a 0000000000000000     1                 zed<br>
-// CHECK-NEXT: 000000000020102c 0000000000000000     4         {{.*}}{{/|\\}}map-file.s.tmp3.o:(.text)<br>
-// CHECK-NEXT: 000000000020102c 0000000000000000     1                 bah<br>
-// CHECK-NEXT: 000000000020102c 0000000000000001     4         {{.*}}{{/|\\}}map-file.s.tmp4.a(map-file.s.tmp4.o):(.text)<br>
-// CHECK-NEXT: 000000000020102c 0000000000000000     1                 baz<br>
-// CHECK-NEXT: 0000000000201030 0000000000000030    16 .plt<br>
-// CHECK-NEXT: 0000000000201030 0000000000000030    16         <internal>:(.plt)<br>
-// CHECK-NEXT: 0000000000201040 0000000000000000     1                 sharedFunc1<br>
-// CHECK-NEXT: 0000000000201050 0000000000000000     1                 sharedFunc2<br>
-// CHECK-NEXT: 0000000000202000 0000000000000028     8 .got.plt<br>
-// CHECK-NEXT: 0000000000202000 0000000000000028     8         <internal>:(.got.plt)<br>
-// CHECK-NEXT: 0000000000203000 0000000000000100     8 .dynamic<br>
-// CHECK-NEXT: 0000000000203000 0000000000000100     8         <internal>:(.dynamic)<br>
-// CHECK-NEXT: 0000000000204000 0000000000000010    16 .bss<br>
-// CHECK-NEXT: 0000000000204000 0000000000000004    16         {{.*}}{{/|\\}}map-file.s.tmp1.o:(COMMON)<br>
-// CHECK-NEXT: 0000000000204000 0000000000000004     1                 common<br>
-// CHECK-NEXT: 0000000000204004 0000000000000004     1         <internal>:(.bss)<br>
-// CHECK-NEXT: 0000000000204004 0000000000000004     1                 sharedFoo<br>
-// CHECK-NEXT: 0000000000204008 0000000000000008     1         <internal>:(.bss)<br>
-// CHECK-NEXT: 0000000000204008 0000000000000008     1                 sharedBar<br>
-// CHECK-NEXT: 0000000000000000 0000000000000008     1 .comment<br>
-// CHECK-NEXT: 0000000000000000 0000000000000008     1         <internal>:(.comment)<br>
-// CHECK-NEXT: 0000000000000000 0000000000000198     8 .symtab<br>
-// CHECK-NEXT: 0000000000000000 0000000000000198     8         <internal>:(.symtab)<br>
-// CHECK-NEXT: 0000000000000000 0000000000000084     1 .shstrtab<br>
-// CHECK-NEXT: 0000000000000000 0000000000000084     1         <internal>:(.shstrtab)<br>
-// CHECK-NEXT: 0000000000000000 000000000000006d     1 .strtab<br>
-// CHECK-NEXT: 0000000000000000 000000000000006d     1         <internal>:(.strtab)<br>
+// CHECK:         VMA       LMA             Size Align Out     In      Symbol<br>
+// CHECK-NEXT: 2001c8    2001c8               78     8 .dynsym<br>
+// CHECK-NEXT: 2001c8    2001c8               78     8         <internal>:(.dynsym)<br>
+// CHECK-NEXT: 200240    200240               2c     8 .gnu.hash<br>
+// CHECK-NEXT: 200240    200240               2c     8         <internal>:(.gnu.hash)<br>
+// CHECK-NEXT: 20026c    20026c               30     4 .hash<br>
+// CHECK-NEXT: 20026c    20026c               30     4         <internal>:(.hash)<br>
+// CHECK-NEXT: 20029c    20029c               31     1 .dynstr<br>
+// CHECK-NEXT: 20029c    20029c               31     1         <internal>:(.dynstr)<br>
+// CHECK-NEXT: 2002d0    2002d0               30     8 .rela.dyn<br>
+// CHECK-NEXT: 2002d0    2002d0               30     8         <internal>:(.rela.dyn)<br>
+// CHECK-NEXT: 200300    200300               30     8 .rela.plt<br>
+// CHECK-NEXT: 200300    200300               30     8         <internal>:(.rela.plt)<br>
+// CHECK-NEXT: 200330    200330               60     8 .eh_frame<br>
+// CHECK-NEXT: 200330    200330               2c     1         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x0)<br>
+// CHECK-NEXT: 200360    200360               14     1         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x2c)<br>
+// CHECK-NEXT: 200378    200378               18     1         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.eh_frame+0x18)<br>
+// CHECK-NEXT: 201000    201000               2d     4 .text<br>
+// CHECK-NEXT: 201000    201000               28     4         {{.*}}{{/|\\}}map-file.s.tmp1.o:(.text)<br>
+// CHECK-NEXT: 201000    201000                0     1                 _start<br>
+// CHECK-NEXT: 20101f    20101f                0     1                 f(int)<br>
+// CHECK-NEXT: 201028    201028                0     1                 local<br>
+// CHECK-NEXT: 201028    201028                2     4         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.text)<br>
+// CHECK-NEXT: 201028    201028                0     1                 foo<br>
+// CHECK-NEXT: 201029    201029                0     1                 bar<br>
+// CHECK-NEXT: 20102a    20102a                0     1         {{.*}}{{/|\\}}map-file.s.tmp2.o:(.text.zed)<br>
+// CHECK-NEXT: 20102a    20102a                0     1                 zed<br>
+// CHECK-NEXT: 20102c    20102c                0     4         {{.*}}{{/|\\}}map-file.s.tmp3.o:(.text)<br>
+// CHECK-NEXT: 20102c    20102c                0     1                 bah<br>
+// CHECK-NEXT: 20102c    20102c                1     4         {{.*}}{{/|\\}}map-file.s.tmp4.a(map-file.s.tmp4.o):(.text)<br>
+// CHECK-NEXT: 20102c    20102c                0     1                 baz<br>
+// CHECK-NEXT: 201030    201030               30    16 .plt<br>
+// CHECK-NEXT: 201030    201030               30    16         <internal>:(.plt)<br>
+// CHECK-NEXT: 201040         0                0     1                 sharedFunc1<br>
+// CHECK-NEXT: 201050         0                0     1                 sharedFunc2<br>
+// CHECK-NEXT: 202000    202000               28     8 .got.plt<br>
+// CHECK-NEXT: 202000    202000               28     8         <internal>:(.got.plt)<br>
+// CHECK-NEXT: 203000    203000              100     8 .dynamic<br>
+// CHECK-NEXT: 203000    203000              100     8         <internal>:(.dynamic)<br>
+// CHECK-NEXT: 204000    204000               10    16 .bss<br>
+// CHECK-NEXT: 204000    204000                4    16         {{.*}}{{/|\\}}map-file.s.tmp1.o:(COMMON)<br>
+// CHECK-NEXT: 204000    204000                4     1                 common<br>
+// CHECK-NEXT: 204004    204004                4     1         <internal>:(.bss)<br>
+// CHECK-NEXT: 204004    204004                4     1                 sharedFoo<br>
+// CHECK-NEXT: 204008    204008                8     1         <internal>:(.bss)<br>
+// CHECK-NEXT: 204008    204008                8     1                 sharedBar<br>
+// CHECK-NEXT:      0         0                8     1 .comment<br>
+// CHECK-NEXT:      0         0                8     1         <internal>:(.comment)<br>
+// CHECK-NEXT:      0         0              198     8 .symtab<br>
+// CHECK-NEXT:      0         0              198     8         <internal>:(.symtab)<br>
+// CHECK-NEXT:      0         0               84     1 .shstrtab<br>
+// CHECK-NEXT:      0         0               84     1         <internal>:(.shstrtab)<br>
+// CHECK-NEXT:      0         0               6d     1 .strtab<br>
+// CHECK-NEXT:      0         0               6d     1         <internal>:(.strtab)<br>
<br>
 // RUN: not ld.lld %t1.o %t2.o %t3.o %t4.a -o %t -Map=/ 2>&1 \<br>
 // RUN:  | FileCheck -check-prefix=FAIL %s<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>