blob: b5b3f0cb7fad506d68b11a1c8bee3fc931aefd6f [file]
The tests in sframe.exp use binary data files:
- test-v2-ET_EXEC.sframe.bz2
- test-v2-ET_REL.sframe.bz2
These files are generated using a as/ld supporting SFrame V2 sections (Binutils
<= 2.45). The purpose of those tests is to make sure readelf/objdump support
works for SFrame V2.
The binary files are generated using the following steps.
$ cat sort.s
.text
.p2align 4
.globl swapit
.type swapit, @function
swapit:
.cfi_startproc
movl (%rsi), %eax
.cfi_def_cfa_register 6
.cfi_offset 6, 16
movl %eax, (%rdi)
.cfi_def_cfa_register 7
ret
.cfi_endproc
.size swapit, .-swapit
.p2align 4
.globl fake_sort
.type fake_sort, @function
fake_sort:
.cfi_startproc
testl %esi, %esi
jg .L5
ret
.p2align 4,,10
.p2align 3
.L5:
movslq %esi, %rsi
leaq -4(%rdi,%rsi,4), %rsi
jmp swapit
.cfi_endproc
.size fake_sort, .-fake_sort
.text
.p2align 4
.globl sort_array
.type sort_array, @function
sort_array:
.cfi_startproc
subq $520, %rsp
.cfi_def_cfa_offset 528
movl $128, %esi
movq %rsp, %rdi
call fake_sort
addq $520, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.size sort_array, .-sort_array
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "done"
.section .text.startup,"ax",@progbits
.p2align 4
.globl main
.type main, @function
main:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
call sort_array
movl $.LC0, %edi
xorl %eax, %eax
call printf
xorl %eax, %eax
addq $8, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.globl _start
.type _start,@function
_start:
call main
.size main, .-main
$ as --gsframe -o sort.o sort.s
$ ld -lc sort.o -o sort
$ cp sort test-v2-ET_EXEC.sframe
$ chmod -x test-v2-ET_EXEC.sframe
$ bzip2 test-v2-ET_EXEC.sframe
$ cp sort.o test-v2-ET_REL.sframe
$ bzip2 test-v2-ET_REL.sframe