Page MenuHomeFreeBSD

D40794.id124062.diff
No OneTemporary

D40794.id124062.diff

diff --git a/libexec/rtld-elf/amd64/rtld_start.S b/libexec/rtld-elf/amd64/rtld_start.S
--- a/libexec/rtld-elf/amd64/rtld_start.S
+++ b/libexec/rtld-elf/amd64/rtld_start.S
@@ -30,14 +30,18 @@
.globl .rtld_start
.type .rtld_start,@function
.rtld_start:
+ .cfi_startproc
+ .cfi_undefined %rip
xorq %rbp,%rbp # Clear frame pointer for good form
subq $24,%rsp # A place to store exit procedure addr
+ .cfi_def_cfa_offset 32
movq %rdi,%r12
movq %rsp,%rsi # save address of exit proc
movq %rsp,%rdx # construct address of obj_main
addq $8,%rdx
call _rtld # Call rtld(sp); returns entry point
popq %rsi # Get exit procedure address
+ .cfi_def_cfa_offset 24
movq %r12,%rdi # *ap
/*
* At this point, %rax contains the entry point of the main program, and
@@ -47,6 +51,7 @@
.globl .rtld_goto_main
.rtld_goto_main: # This symbol exists just to make debugging easier.
jmp *%rax # Enter main program
+ .cfi_endproc
/*

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 8, 8:08 PM (12 h, 33 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28492249
Default Alt Text
D40794.id124062.diff (951 B)

Event Timeline