diff options
| -rw-r--r-- | src/internal/pthread_impl.h | 6 | ||||
| -rw-r--r-- | src/thread/pthread_create.c | 4 | ||||
| -rw-r--r-- | src/time/timer_create.c | 2 | 
3 files changed, 7 insertions, 5 deletions
| diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h index 24cbeb25..615713c7 100644 --- a/src/internal/pthread_impl.h +++ b/src/internal/pthread_impl.h @@ -79,8 +79,10 @@ struct __timer {  #define SIGCANCEL 33  #define SIGSYSCALL 34 -#define SIGPT_SET ((sigset_t){{[sizeof(long)==4] = 3<<(32*(sizeof(long)>4))}}) -#define SIGTIMER_SET ((sigset_t){{ 0x80000000 }}) +#define SIGPT_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \ +	[sizeof(long)==4] = 3<<(32*(sizeof(long)>4)) }) +#define SIGTIMER_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \ +	 0x80000000 })  int __set_thread_area(void *);  int __libc_sigaction(int, const struct sigaction *, struct sigaction *); diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c index 6545539b..0609aab1 100644 --- a/src/thread/pthread_create.c +++ b/src/thread/pthread_create.c @@ -45,7 +45,7 @@ static int start(void *p)  {  	struct pthread *self = p;  	if (self->unblock_cancel) -		__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, &SIGPT_SET, 0, 8); +		__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, SIGPT_SET, 0, 8);  	pthread_exit(self->start(self->start_arg));  	return 0;  } @@ -68,7 +68,7 @@ int pthread_create(pthread_t *res, const pthread_attr_t *attr, void *(*entry)(vo  	if (!self) return ENOSYS;  	if (!libc.threaded) { -		__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, &SIGPT_SET, 0, 8); +		__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, SIGPT_SET, 0, 8);  		libc.threaded = 1;  	} diff --git a/src/time/timer_create.c b/src/time/timer_create.c index 3bcfa951..1561d797 100644 --- a/src/time/timer_create.c +++ b/src/time/timer_create.c @@ -51,7 +51,7 @@ static void install_handler()  		.sa_flags = SA_SIGINFO | SA_RESTART  	};  	__libc_sigaction(SIGTIMER, &sa, 0); -	__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, &SIGTIMER_SET, 0, 8); +	__syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, SIGTIMER_SET, 0, 8);  }  static void *start(void *arg) | 
