| # REQUIRES: x86 |
| # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t |
| # RUN: ld.lld %t -o %tout |
| # RUN: llvm-readobj -sections %tout | FileCheck %s |
| |
| # Check that sections are laid out in the correct order. |
| |
| .global _start |
| .text |
| _start: |
| |
| .section t,"x",@nobits |
| .section s,"x" |
| .section r,"w",@nobits |
| .section q,"w" |
| .section p,"wx",@nobits |
| .section o,"wx" |
| .section n,"",@nobits |
| .section m,"" |
| |
| .section l,"awx",@nobits |
| .section k,"awx" |
| .section j,"aw",@nobits |
| .section i,"aw" |
| .section g,"awT",@nobits |
| .section e,"awT" |
| .section d,"ax",@nobits |
| .section c,"ax" |
| .section a,"a",@nobits |
| .section b,"a" |
| |
| // For non-executable and non-writable sections, PROGBITS appear after others. |
| // CHECK: Name: a |
| // CHECK: Name: b |
| // CHECK: Name: c |
| // CHECK: Name: d |
| |
| // Sections that are both writable and executable appear before |
| // sections that are only writable. |
| // CHECK: Name: k |
| // CHECK: Name: l |
| |
| // Writable sections appear before TLS and other relro sections. |
| // CHECK: Name: i |
| |
| // TLS sections are only sorted on NOBITS. |
| // CHECK: Name: e |
| // CHECK: Name: g |
| |
| // CHECK: Name: j |
| |
| // Non allocated sections are in input order. |
| // CHECK: Name: t |
| // CHECK: Name: s |
| // CHECK: Name: r |
| // CHECK: Name: q |
| // CHECK: Name: p |
| // CHECK: Name: o |
| // CHECK: Name: n |
| // CHECK: Name: m |