Put sections to segments according to linker scripts if available. Rework the code of TargetLayout::assignSectionsToSegments so it operates on the given list of segments, which can be either read from linker scripts or constructed as before. Handle NONE segments defined in linker scripts by putting corresponding sections to PT_NULL segment. Consider flags set for segments through linker scripts. Differential Revision: http://reviews.llvm.org/D10918 llvm-svn: 243002
36 lines
813 B
Plaintext
36 lines
813 B
Plaintext
/*
|
|
Test sections put to same segment with FLAGS attribute set.
|
|
|
|
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 FLAGS-PHDRS-SECS %s
|
|
RUN: llvm-readobj -program-headers %t1 | FileCheck -check-prefix FLAGS-PHDRS-HDRS %s
|
|
*/
|
|
|
|
ENTRY(_start)
|
|
|
|
PHDRS
|
|
{
|
|
text PT_LOAD FLAGS(0x4);
|
|
}
|
|
|
|
SECTIONS
|
|
{
|
|
.text : { *(.text) } :text
|
|
.data : { *(.data) }
|
|
}
|
|
|
|
/*
|
|
FLAGS-PHDRS-SECS: .text {{[0-9a-f]+}} 00000000004000b0
|
|
FLAGS-PHDRS-SECS: .data {{[0-9a-f]+}} 00000000004000dc
|
|
|
|
FLAGS-PHDRS-HDRS: ProgramHeader {
|
|
FLAGS-PHDRS-HDRS: Type: PT_LOAD (0x1)
|
|
FLAGS-PHDRS-HDRS: VirtualAddress: 0x400000
|
|
FLAGS-PHDRS-HDRS: Flags [ (0x4)
|
|
FLAGS-PHDRS-HDRS: PF_R (0x4)
|
|
FLAGS-PHDRS-HDRS: ]
|
|
FLAGS-PHDRS-HDRS: }
|
|
*/
|