Index: lib/libc/aarch64/sys/Makefile.inc =================================================================== --- lib/libc/aarch64/sys/Makefile.inc +++ lib/libc/aarch64/sys/Makefile.inc @@ -4,8 +4,8 @@ SRCS+= __vdso_gettc.c -#MDASM= ptrace.S MDASM= cerror.S \ + ptrace.S \ shmat.S \ sigreturn.S \ syscall.S \ @@ -15,6 +15,7 @@ NOASM= break.o \ exit.o \ getlogin.o \ + ptrace.o \ sbrk.o \ sstk.o \ vfork.o \ Index: lib/libc/aarch64/sys/ptrace.S =================================================================== --- /dev/null +++ lib/libc/aarch64/sys/ptrace.S @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2016 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); +#include + + .globl _C_LABEL(__error) + .type _C_LABEL(__error),@function + +ENTRY(ptrace) + stp x0, x1, [sp, #-48]! + stp x2, x3, [sp, #16] + stp x29, lr, [sp, #32] + add x29, sp, #32 + bl _C_LABEL(__error) + str xzr, [x0] + ldp x29, lr, [sp, #32] + ldp x2, x3, [sp, #16] + ldp x0, x1, [sp], #48 + _SYSCALL(ptrace) + b.cs cerror + ret +END(ptrace)