From 6eaa6b836e9d955d3b528caafaf1233b1b0f83e2 Mon Sep 17 00:00:00 2001 From: midipix Date: Tue, 8 Jan 2019 05:49:33 -0500 Subject: mmglue: syscall_cp: added the bits needed by recent musl versions. --- src/thread/nt32/syscall_cp.s | 23 +++++++++++++++++++---- src/thread/nt64/syscall_cp.s | 27 ++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/thread/nt32/syscall_cp.s b/src/thread/nt32/syscall_cp.s index 1f5142c..2b06d3b 100644 --- a/src/thread/nt32/syscall_cp.s +++ b/src/thread/nt32/syscall_cp.s @@ -1,19 +1,28 @@ .text -.globl ___syscall_cp_asm -.globl ___cp_begin -.globl ___cp_end +.globl ___cp_begin +.globl ___cp_end +.globl ___cp_cancel +.globl ___syscall_cp_asm + +.def ___cp_begin; .scl 2; .type 32; .endef +.def ___cp_end; .scl 2; .type 32; .endef +.def ___cp_cancel; .scl 2; .type 32; .endef +.def ___syscall_cp_asm; .scl 2; .type 32; .endef ___syscall_cp_asm: ___cp_begin: mov (%ecx), %ecx # check content of ptr test %ecx, %ecx - jnz ___cancel # thread is pending cancellation + jnz ___cp_cancel # thread is pending cancellation jmp ___syscall ___cp_end: ret +___cp_cancel: + jmp ___cancel + .section .got$___syscall_cp_asm .global __imp____syscall_cp_asm __imp____syscall_cp_asm: @@ -31,3 +40,9 @@ __imp____cp_begin: __imp____cp_end: .long ___cp_end .linkonce discard + + .section .got$___cp_cancel + .global __imp____cp_cancel +__imp____cp_cancel: + .long ___cp_cancel + .linkonce discard diff --git a/src/thread/nt64/syscall_cp.s b/src/thread/nt64/syscall_cp.s index 7d4cbaf..27b649d 100644 --- a/src/thread/nt64/syscall_cp.s +++ b/src/thread/nt64/syscall_cp.s @@ -1,13 +1,19 @@ .text -.globl __syscall_cp_asm -.globl __cp_begin -.globl __cp_end +.global __cp_begin +.global __cp_end +.global __cp_cancel +.global __syscall_cp_asm + +.def __cp_begin; .scl 2; .type 32; .endef +.def __cp_end; .scl 2; .type 32; .endef +.def __cp_cancel; .scl 2; .type 32; .endef +.def __syscall_cp_asm; .scl 2; .type 32; .endef __syscall_cp_asm: __cp_begin: movq (%rcx), %rcx # check content of ptr test %ecx, %ecx - jnz __cancel # thread is pending cancellation + jnz __cp_cancel # thread is pending cancellation movq %rdx, %rcx # move water movq %r8, %rdx # from one glass @@ -28,19 +34,30 @@ __cp_begin: __cp_end: ret +__cp_cancel: + jmp __cancel + .section .got$__syscall_cp_asm .global __imp___syscall_cp_asm __imp___syscall_cp_asm: .quad __syscall_cp_asm - + .linkonce discard .section .got$__cp_begin .global __imp___cp_begin __imp___cp_begin: .quad __cp_begin + .linkonce discard .section .got$__cp_end .global __imp___cp_end __imp___cp_end: .quad __cp_end + .linkonce discard + + .section .got$__cp_cancel + .global __imp___cp_cancel +__imp___cp_cancel: + .quad __cp_cancel + .linkonce discard -- cgit v1.2.3