| // REQUIRES: x86 |
| // RUN: llvm-mc --triple=x86_64 -filetype=obj %s -o %t.o |
| // RUN: echo "SECTIONS { \ |
| // RUN: . = 0x80000000; \ |
| // RUN: .linkorder : { *(.linkorder.*) } \ |
| // RUN: .text : { *(.text) } \ |
| // RUN: .text.1 0x80000200 : AT(0x1000) { *(.text.1) } \ |
| // RUN: .text.2 0x80000100 : AT(0x2000) { *(.text.2) } \ |
| // RUN: } " > %t.script |
| // RUN: ld.lld --script %t.script %t.o -o %t |
| // RUN: llvm-readobj -x .linkorder %t | FileCheck %s |
| |
| /// When a linker script does not have monotonically increasing addresses |
| /// the SHF_LINK_ORDER sections should still be in monotonically increasing |
| /// order. |
| |
| // CHECK: Hex dump of section '.linkorder': |
| // CHECK-NEXT: 0x80000000 0201 |
| |
| .section .text.1, "ax", %progbits |
| .global _start |
| _start: |
| nop |
| |
| .section .text.2, "ax", %progbits |
| .byte 0 |
| |
| .section .linkorder.1, "ao", %progbits, .text.1 |
| .byte 1 |
| |
| .section .linkorder.2, "ao", %progbits, .text.2 |
| .byte 2 |