stacksize = __vm_page_size * 4;
stacksize = __vm_page_size * 8;
_hurdsig_init (void){  error_t err;  vm_size_t stacksize;  __mutex_init (&_hurd_siglock);  err = __mach_port_allocate (__mach_task_self (),			      MACH_PORT_RIGHT_RECEIVE,			      &_hurd_msgport);  assert_perror (err);  /* Make a send right to the signal port.  */  err = __mach_port_insert_right (__mach_task_self (),				  _hurd_msgport,				  _hurd_msgport,				  MACH_MSG_TYPE_MAKE_SEND);  assert_perror (err);  /* Set the default thread to receive task-global signals     to this one, the main (first) user thread.  */  _hurd_sigthread = __mach_thread_self ();  /* Start the signal thread listening on the message port.  */  err = __thread_create (__mach_task_self (), &_hurd_msgport_thread);  assert_perror (err);  stacksize = __vm_page_size * 4; /* Small stack for signal thread.  */  err = __mach_setup_thread (__mach_task_self (), _hurd_msgport_thread,			     _hurd_msgport_receive,			     (vm_address_t *) &__hurd_sigthread_stack_base,			     &stacksize);  assert_perror (err);  __hurd_sigthread_stack_end = __hurd_sigthread_stack_base + stacksize;  __hurd_sigthread_variables =    malloc (__hurd_threadvar_max * sizeof (unsigned long int));  if (__hurd_sigthread_variables == NULL)    __libc_fatal ("hurd: Can't allocate thread variables for signal thread\n");  /* Reinitialize the MiG support routines so they will use a per-thread     variable for the cached reply port.  */  __mig_init ((void *) __hurd_sigthread_stack_base);  err = __thread_resume (_hurd_msgport_thread);  assert_perror (err);  /* Receive exceptions on the signal port.  */  __task_set_special_port (__mach_task_self (),			   TASK_EXCEPTION_PORT, _hurd_msgport);}