1# REQUIRES: x86
2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3
4# This test case should place input sections in script order:
5# .foo.1 .foo.2 .bar.1 .bar.2
6# RUN: echo "SECTIONS { . = 0x1000; .foo : {*(.foo.*) *(.bar.*)  } }" > %t.script
7# RUN: ld.lld -o %t1 --script %t.script %t
8# RUN: llvm-objdump --section=.foo -s %t1 | FileCheck --check-prefix=SCRIPT_ORDER %s
9# SCRIPT_ORDER: Contents of section .foo:
10# SCRIPT_ORDER-NEXT: 1000 00000000 00000000 ffffffff eeeeeeee
11
12# This test case should place input sections in native order:
13# .bar.1 .foo.1 .bar.2 .foo.2
14# RUN: echo "SECTIONS { . = 0x1000; .foo : {*(.foo.* .bar.*)} }" > %t.script
15# RUN: ld.lld -o %t1 --script %t.script %t
16# RUN: llvm-objdump --section=.foo -s %t1 | FileCheck --check-prefix=FILE_ORDER %s
17# FILE_ORDER: Contents of section .foo:
18# FILE_ORDER-NEXT: 1000 ffffffff 00000000 eeeeeeee 00000000
19
20.global _start
21_start:
22 nop
23
24.section .bar.1,"a"
25bar1:
26 .long 0xFFFFFFFF
27
28.section .foo.1,"a"
29foo1:
30 .long 0
31
32.section .bar.2,"a"
33bar2:
34 .long 0xEEEEEEEE
35
36.section .foo.2,"a"
37foo2:
38 .long 0
39