Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Dec 2017 14:05:16 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r327158 - in vendor/lld/dist: ELF test/ELF/linkerscript
Message-ID:  <201712241405.vBOE5GLb007500@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun Dec 24 14:05:16 2017
New Revision: 327158
URL: https://svnweb.freebsd.org/changeset/base/327158

Log:
  Vendor import of lld trunk r321426:
  https://llvm.org/svn/llvm-project/lld/trunk@321426

Modified:
  vendor/lld/dist/ELF/LinkerScript.cpp
  vendor/lld/dist/test/ELF/linkerscript/data-commands.s

Modified: vendor/lld/dist/ELF/LinkerScript.cpp
==============================================================================
--- vendor/lld/dist/ELF/LinkerScript.cpp	Sun Dec 24 14:05:12 2017	(r327157)
+++ vendor/lld/dist/ELF/LinkerScript.cpp	Sun Dec 24 14:05:16 2017	(r327158)
@@ -693,6 +693,8 @@ void LinkerScript::assignOffsets(OutputSection *Sec) {
     if (auto *Cmd = dyn_cast<ByteCommand>(Base)) {
       Cmd->Offset = Dot - Ctx->OutSec->Addr;
       Dot += Cmd->Size;
+      if (Ctx->MemRegion)
+        Ctx->MemRegionOffset[Ctx->MemRegion] += Cmd->Size;
       Ctx->OutSec->Size = Dot - Ctx->OutSec->Addr;
       continue;
     }

Modified: vendor/lld/dist/test/ELF/linkerscript/data-commands.s
==============================================================================
--- vendor/lld/dist/test/ELF/linkerscript/data-commands.s	Sun Dec 24 14:05:12 2017	(r327157)
+++ vendor/lld/dist/test/ELF/linkerscript/data-commands.s	Sun Dec 24 14:05:16 2017	(r327158)
@@ -44,6 +44,42 @@
 # BE-NEXT:   ff12ff11 22ff1122 3346ff11 22334455
 # BE-NEXT:   667788
 
+# RUN: echo "MEMORY {                \
+# RUN:     rom (rwx) : ORIGIN = 0x00, LENGTH = 2K \
+# RUN:  }                            \
+# RUN:  SECTIONS {                   \
+# RUN:    .foo : {                   \
+# RUN:      *(.foo.1)                \
+# RUN:      BYTE(0x11)               \
+# RUN:      *(.foo.2)                \
+# RUN:      SHORT(0x1122)            \
+# RUN:      *(.foo.3)                \
+# RUN:      LONG(0x11223344)         \
+# RUN:      *(.foo.4)                \
+# RUN:      QUAD(0x1122334455667788) \
+# RUN:    } > rom                    \
+# RUN:    .bar : {                   \
+# RUN:      *(.bar.1)                \
+# RUN:      BYTE(a + 1)              \
+# RUN:      *(.bar.2)                \
+# RUN:      SHORT(b)                 \
+# RUN:      *(.bar.3)                \
+# RUN:      LONG(c + 2)              \
+# RUN:      *(.bar.4)                \
+# RUN:      QUAD(d)                  \
+# RUN:    } > rom                    \
+# RUN:  }" > %t-memory.script
+# RUN: ld.lld -o %t-memory %t.o --script %t-memory.script
+# RUN: llvm-objdump -s %t-memory | FileCheck %s --check-prefix=MEM
+
+# MEM:      Contents of section .foo:
+# MEM-NEXT:   0000 ff11ff22 11ff4433 2211ff88 77665544
+# MEM-NEXT:   0010 332211
+
+# MEM:      Contents of section .bar:
+# MEM-NEXT:   0013 ff12ff22 11ff4633 2211ff88 77665544
+# MEM-NEXT:   0023 332211
+
 .global a
 a = 0x11
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712241405.vBOE5GLb007500>