60 lines · plain
1# REQUIRES: x862## Test SORT_BY_INIT_PRIORITY can be used to convert .ctors into .init_array3 4# RUN: split-file %s %t5# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/asm -o %t.o6# RUN: ld.lld -T %t/lds %t.o -o %t.out7# RUN: llvm-readelf -x .init_array %t.out | FileCheck %s8 9# CHECK: Hex dump of section '.init_array':10# CHECK-NEXT: 0x00000001 00010203 0405060711 12## Test REVERSE can be used to reverse the order of .init_array and .ctors13 14# RUN: ld.lld -T %t/reverse.lds %t.o -o %t2.out15# RUN: llvm-readelf -x .init_array %t2.out | FileCheck %s --check-prefix=CHECK216 17# CHECK2: Hex dump of section '.init_array':18# CHECK2-NEXT: 0x00000001 04030201 0005070619 20#--- asm21.globl _start22_start:23 nop24 25.section foo, "aw", @init_array26 .byte 527 28.section .ctors.65435, "a"29 .byte 330.section .init_array.100, "aw", @init_array31 .byte 432 33.section .init_array.7, "aw", @init_array34 .byte 235.section .ctors.65529,"a"36 .byte 137.section .init_array.5, "aw", @init_array38 .byte 039 40.section .init_array, "aw", @init_array41 .byte 642.section .ctors, "a"43 .byte 744 45#--- lds46SECTIONS {47 .init_array : {48 *(SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*) SORT_BY_INIT_PRIORITY(foo*))49 *(.init_array .ctors)50 }51}52 53#--- reverse.lds54SECTIONS {55 .init_array : {56 *(REVERSE(SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*)) SORT_BY_INIT_PRIORITY(foo*))57 *(REVERSE(.init_array .ctors))58 }59}60