shithub: scc

Download patch

ref: 1c2826a8e5a78c85eea6bd234ff384241b2dc3db
parent: 7e1d196fa2b2496328632d515a3205004a5cefaf
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Wed Aug 29 16:09:33 EDT 2018

[lib/c] Fix signal implementation for NetBSD

The definition of struct sigaction was wrong and sa_flags was
in a wrong offset.

--- a/lib/c/target/amd64-sysv-netbsd/Makefile
+++ b/lib/c/target/amd64-sysv-netbsd/Makefile
@@ -5,7 +5,7 @@
 
 SYSNAME    = amd64-sysv-netbsd
 SCC_CFLAGS = -static -nostdinc -I$(INCDIR) -I$(INCDIR)/bits/amd64-sysv/ -I.
-SYSOBJ = raise.o signal.o
+SYSOBJ = raise.o signal.o _sigaction.o _sigaction2.o _setcontext.o
 
 include syscall.mk
 include ../script/objlst.mk
--- a/lib/c/target/amd64-sysv-netbsd/sys.h
+++ b/lib/c/target/amd64-sysv-netbsd/sys.h
@@ -11,7 +11,7 @@
 
 struct sigaction {
 	void (*sa_handler)(int);
-	int sa_mask;
+	char sa_mask[8];
 	int sa_flags;
 };
 
--- a/lib/c/target/amd64-sysv-netbsd/syscall.lst
+++ b/lib/c/target/amd64-sysv-netbsd/syscall.lst
@@ -8,4 +8,3 @@
 20	_getpid
 37	_kill
 199	_lseek
-340	_sigaction
--- a/lib/c/target/amd64-sysv-netbsd/syscall.mk
+++ b/lib/c/target/amd64-sysv-netbsd/syscall.mk
@@ -1,1 +1,1 @@
-SYSCALL = _Exit.o _read.o _write.o _open.o _close.o _brk.o _getpid.o _kill.o _sigaction.o _lseek.o 
+SYSCALL = _Exit.o _read.o _write.o _open.o _close.o _brk.o _getpid.o _kill.o _lseek.o 
--- a/lib/c/target/posix/signal.c
+++ b/lib/c/target/posix/signal.c
@@ -12,7 +12,6 @@
 {
 	struct sigaction sa = {
 		.sa_handler = func,
-		.sa_flags = 0,
 	};
 
 	if (_sigaction(signum, &sa, &sa) < 0)
--- a/tests/libc/execute/libc-tests.lst
+++ b/tests/libc/execute/libc-tests.lst
@@ -1,1 +1,1 @@
-0001-abort.c [TODO]
+0001-abort.c