brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · e1f0c83 Raw
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