Changeset View
Changeset View
Standalone View
Standalone View
lld/test/ELF/linkorder-mixed.s
# REQUIRES: x86 | # REQUIRES: x86 | ||||
## Test that we allow SHF_LINK_ORDER sections with sh_link=0. | ## Test that we allow SHF_LINK_ORDER sections with sh_link=0. | ||||
## SHF_LINK_ORDER sections with sh_link!=0 are ordered before others. | ## SHF_LINK_ORDER sections with sh_link!=0 are ordered before others. | ||||
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o | # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o | ||||
# RUN: ld.lld %t.o -o %t | # RUN: ld.lld %t.o -o %t | ||||
# RUN: llvm-readelf -S -x .linkorder %t | FileCheck %s | # RUN: llvm-readelf -S -x .linkorder %t | FileCheck %s | ||||
# CHECK: [Nr] Name {{.*}} Size ES Flg Lk Inf | # CHECK: [Nr] Name {{.*}} Size ES Flg Lk Inf | ||||
# CHECK-NEXT: [ 0] {{.*}} | # CHECK-NEXT: [ 0] {{.*}} | ||||
# CHECK-NEXT: [ 1] .linkorder {{.*}} 000004 00 AL 3 0 | # CHECK-NEXT: [ 1] .linkorder {{.*}} 000004 00 AL 3 0 | ||||
# CHECK-NEXT: [ 2] .ignore {{.*}} | # CHECK-NEXT: [ 2] .ignore {{.*}} | ||||
# CHECK-NEXT: [ 3] .text {{.*}} | # CHECK-NEXT: [ 3] .text {{.*}} | ||||
# CHECK: Hex dump of section '.linkorder': | # CHECK: Hex dump of section '.linkorder': | ||||
# CHECK-NEXT: [[#%x,ADDR:]] 01020003 | # CHECK-NEXT: [[#%x,ADDR:]] 01020003 | ||||
## TODO Allow non-contiguous SHF_LINK_ORDER sections in an output section. | |||||
# RUN: llvm-mc --filetype=obj -triple=x86_64 --defsym EXTRA=1 %s -o %t.o | # RUN: llvm-mc --filetype=obj -triple=x86_64 --defsym EXTRA=1 %s -o %t.o | ||||
# RUN: not ld.lld %t.o -o /dev/null | # RUN: ld.lld %t.o -o %t1 | ||||
# RUN: llvm-readelf -S -x .linkorder %t1 | FileCheck %s --check-prefix=CHECK1 | |||||
# CHECK1: [Nr] Name {{.*}} Size ES Flg Lk Inf | |||||
# CHECK1-NEXT: [ 0] {{.*}} | |||||
# CHECK1-NEXT: [ 1] .linkorder {{.*}} 000005 00 AL 2 0 | |||||
# CHECK1-NEXT: [ 2] .text {{.*}} | |||||
# CHECK1: Hex dump of section '.linkorder': | |||||
# CHECK1-NEXT: [[#%x,ADDR:]] 01020004 03 | |||||
.section .text,"ax",@progbits,unique,0 | .section .text,"ax",@progbits,unique,0 | ||||
.Ltext0: | .Ltext0: | ||||
.section .text,"ax",@progbits,unique,1 | .section .text,"ax",@progbits,unique,1 | ||||
.Ltext1: | .Ltext1: | ||||
.section .linkorder,"ao",@progbits,0,unique,0 | .section .linkorder,"ao",@progbits,0,unique,0 | ||||
.byte 0 | .byte 0 | ||||
.section .linkorder,"ao",@progbits,.Ltext0 | .section .linkorder,"ao",@progbits,.Ltext0 | ||||
Show All 13 Lines |