File tree 2 files changed +49
-0
lines changed
2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,14 @@ uint64_t LinkerScript<ELFT>::parsePrimary(ArrayRef<StringRef> &Tokens) {
94
94
return 0 ;
95
95
return V;
96
96
}
97
+ if (Tok == " ALIGN" ) {
98
+ if (!expect (Tokens, " (" ))
99
+ return 0 ;
100
+ uint64_t V = parseExpr (Tokens);
101
+ if (!expect (Tokens, " )" ))
102
+ return 0 ;
103
+ return alignTo (Dot, V);
104
+ }
97
105
return getInteger (Tok);
98
106
}
99
107
Original file line number Diff line number Diff line change
1
+ # REQUIRES: x86
2
+ # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3
+
4
+ # RUN: echo "SECTIONS { \
5
+ # RUN: . = 0x10000; \
6
+ # RUN: .aaa : \
7
+ # RUN: { \
8
+ # RUN: *(.aaa) \
9
+ # RUN: } \
10
+ # RUN: . = ALIGN(4096); \
11
+ # RUN: .bbb : \
12
+ # RUN: { \
13
+ # RUN: *(.bbb) \
14
+ # RUN: } \
15
+ # RUN: . = ALIGN(4096 * 4); \
16
+ # RUN: .ccc : \
17
+ # RUN: { \
18
+ # RUN: *(.ccc) \
19
+ # RUN: } \
20
+ # RUN: }" > %t.script
21
+ # RUN: ld.lld -o %t1 --script %t.script %t
22
+ # RUN: llvm-objdump -section-headers %t1 | FileCheck %s
23
+ # CHECK: Sections:
24
+ # CHECK-NEXT: Idx Name Size Address Type
25
+ # CHECK-NEXT: 0 00000000 0000000000000000
26
+ # CHECK-NEXT: 1 .aaa 00000008 0000000000010000 DATA
27
+ # CHECK-NEXT: 2 .bbb 00000008 0000000000011000 DATA
28
+ # CHECK-NEXT: 3 .ccc 00000008 0000000000014000 DATA
29
+
30
+ .global _start
31
+ _start:
32
+ nop
33
+
34
+ .section .aaa , "a"
35
+ .quad 0
36
+
37
+ .section .bbb, "a"
38
+ .quad 0
39
+
40
+ .section .ccc, "a"
41
+ .quad 0
You can’t perform that action at this time.
0 commit comments