<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>