Changeset 11909


Ignore:
Timestamp:
Apr 8, 2009, 5:47:01 PM (10 years ago)
Author:
gb
Message:

There may not be an external "sigreturn" symbol to jmp to (or it
may have been renamed), so do the syscall ourselves.

Location:
trunk/source/lisp-kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-asmutils32.s

    r11784 r11909  
    181181   since we're trying to do what sigtramp() would do if we'd returned
    182182   to it ... */
    183         .globl C(sigreturn)
    184183        __(movl $0x1e,8(%esp))
    185         __(jmp *jsigreturn)
    186         .data
    187 jsigreturn:     .long C(sigreturn)
    188         .text
     184        __(movl $0xb8,%eax)     /* SYS_sigreturn */
     185        __(int $0x80)
     186        __(ret)                 /* shouldn't return */
    189187
    190188_endfn
  • trunk/source/lisp-kernel/x86-asmutils64.s

    r11710 r11909  
    167167        __(movl $417,%eax)      /* SYS_sigreturn */
    168168        __(syscall)                             
     169       
    169170_exportfn(C(get_vector_registers))
    170171_endfn
     
    178179   to it ... */
    179180        __(movl $0x1e,%esi)
    180         __(jmp C(sigreturn))
     181        __(movl $0x20000b8,%eax)
     182        __(syscall)
     183        __(ret)
    181184_endfn
    182185        __endif
Note: See TracChangeset for help on using the changeset viewer.