[lld] r243006 - [LinkerScript] Fix case when setting custom NONE segment

Denis Protivensky dprotivensky at accesssoftek.com
Thu Jul 23 04:46:59 PDT 2015


Author: denis-protivensky
Date: Thu Jul 23 06:46:59 2015
New Revision: 243006

URL: http://llvm.org/viewvc/llvm-project?rev=243006&view=rev
Log:
[LinkerScript] Fix case when setting custom NONE segment

Added:
    lld/trunk/test/elf/linkerscript/phdrs-custom-none.test
Modified:
    lld/trunk/lib/ReaderWriter/LinkerScript.cpp

Modified: lld/trunk/lib/ReaderWriter/LinkerScript.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/LinkerScript.cpp?rev=243006&r1=243005&r2=243006&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/LinkerScript.cpp (original)
+++ lld/trunk/lib/ReaderWriter/LinkerScript.cpp Thu Jul 23 06:46:59 2015
@@ -2740,7 +2740,7 @@ std::error_code Sema::buildSectionToPHDR
 
   // Add NONE header to the map provided there's no user-defined
   // header with the same name.
-  if (!_sectionToPHDR.count(PHDR_NONE.name()))
+  if (!phdrs.count(PHDR_NONE.name()))
     phdrs[PHDR_NONE.name()] = &PHDR_NONE;
 
   // Match output sections to available headers.

Added: lld/trunk/test/elf/linkerscript/phdrs-custom-none.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/linkerscript/phdrs-custom-none.test?rev=243006&view=auto
==============================================================================
--- lld/trunk/test/elf/linkerscript/phdrs-custom-none.test (added)
+++ lld/trunk/test/elf/linkerscript/phdrs-custom-none.test Thu Jul 23 06:46:59 2015
@@ -0,0 +1,36 @@
+/*
+Test when PHDRS contains custom NONE segment.
+
+RUN: yaml2obj -format=elf %p/Inputs/simple.o.yaml -o=%t.o
+
+RUN: lld -flavor gnu -target x86_64 -T %s %t.o -static -o %t1
+RUN: llvm-objdump -section-headers %t1 | FileCheck -check-prefix CUSTOM-NONE-SECS %s
+RUN: llvm-readobj -program-headers %t1 | FileCheck -check-prefix CUSTOM-NONE-HDRS %s
+*/
+
+ENTRY(_start)
+
+PHDRS
+{
+    NONE PT_LOAD;
+}
+
+SECTIONS
+{
+  .text : { *(.text) } :NONE
+  .data : { *(.data) }
+}
+
+/*
+CUSTOM-NONE-SECS: .text {{[0-9a-f]+}} 00000000004000b0
+CUSTOM-NONE-SECS: .data {{[0-9a-f]+}} 00000000004000dc
+
+CUSTOM-NONE-HDRS: ProgramHeader {
+CUSTOM-NONE-HDRS: Type: PT_LOAD (0x1)
+CUSTOM-NONE-HDRS: VirtualAddress: 0x400000
+CUSTOM-NONE-HDRS: Flags [ (0x5)
+CUSTOM-NONE-HDRS: PF_R (0x4)
+CUSTOM-NONE-HDRS: PF_X (0x1)
+CUSTOM-NONE-HDRS: ]
+CUSTOM-NONE-HDRS: }
+*/





More information about the llvm-commits mailing list