diff --git a/Makefile b/Makefile index a9adde9..2a96344 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ SOURCES := src/main.c src/util/calloc.c src/util/string.c src/util/hash.c src/lexer/lexer.c src/builtins/builtins.c src/util/memset.c -CFLAGS := -Oz -nostdlib +CFLAGS := -g -Oz -nostdlib UNAME := $(shell uname) ARCH := $(shell uname -m) diff --git a/src/system/linux/linux.c b/src/system/linux/linux.c index 88020db..253798e 100644 --- a/src/system/linux/linux.c +++ b/src/system/linux/linux.c @@ -124,7 +124,7 @@ int msh_execute(char *cmd, char **args) { SIZE_TYPE ret; char *status_str; - // msh_linux_setup_signals(); + /* msh_linux_setup_signals(); */ ret = (SIZE_TYPE)SYSCALL(waitid, P_ALL, fork, &status, WEXITED, &ru); diff --git a/src/system/linux/signal.c b/src/system/linux/signal.c index d9f35d3..7b51a56 100644 --- a/src/system/linux/signal.c +++ b/src/system/linux/signal.c @@ -11,8 +11,7 @@ #include #include -#define INIT_SIGNAL(x) \ - SYSCALL(rt_sigaction, x, &sigact, &sigact_old, sizeof(sigset_t)); +#define INIT_SIGNAL(x) SYSCALL(rt_sigaction, x, &sigact, 0, sizeof(sigset_t)); static void signal_handler(int sig) { char *status_str = msh_allocate(64); @@ -25,16 +24,14 @@ static void signal_restorer(void) { SYSCALL_0(rt_sigreturn); } void msh_linux_setup_signals() { struct sigaction sigact; - struct sigaction sigact_old; memset(&sigact, 0, sizeof(sigact)); - memset(&sigact_old, 0, sizeof(sigact)); sigact.sa_handler = signal_handler; sigact.sa_restorer = signal_restorer; sigact.sa_flags = SA_RESTORER | SA_RESTART | SA_SIGINFO; - SYSCALL(rt_sigprocmask, SIG_UNBLOCK, &sigact.sa_mask, &sigact_old.sa_mask, + SYSCALL(rt_sigprocmask, SIG_UNBLOCK, &sigact.sa_mask, &sigact.sa_mask, sizeof(sigset_t)); INIT_SIGNAL(SIGINT);