diff options
Diffstat (limited to 'src/sysdep.c')
| -rw-r--r-- | src/sysdep.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/sysdep.c b/src/sysdep.c index 3a73b1a467b..fc2f846b0dc 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1534,7 +1534,7 @@ sigset_t | |||
| 1534 | sys_sigblock (sigset_t new_mask) | 1534 | sys_sigblock (sigset_t new_mask) |
| 1535 | { | 1535 | { |
| 1536 | sigset_t old_mask; | 1536 | sigset_t old_mask; |
| 1537 | sigprocmask (SIG_BLOCK, &new_mask, &old_mask); | 1537 | pthread_sigmask (SIG_BLOCK, &new_mask, &old_mask); |
| 1538 | return (old_mask); | 1538 | return (old_mask); |
| 1539 | } | 1539 | } |
| 1540 | 1540 | ||
| @@ -1542,7 +1542,7 @@ sigset_t | |||
| 1542 | sys_sigunblock (sigset_t new_mask) | 1542 | sys_sigunblock (sigset_t new_mask) |
| 1543 | { | 1543 | { |
| 1544 | sigset_t old_mask; | 1544 | sigset_t old_mask; |
| 1545 | sigprocmask (SIG_UNBLOCK, &new_mask, &old_mask); | 1545 | pthread_sigmask (SIG_UNBLOCK, &new_mask, &old_mask); |
| 1546 | return (old_mask); | 1546 | return (old_mask); |
| 1547 | } | 1547 | } |
| 1548 | 1548 | ||
| @@ -1550,7 +1550,7 @@ sigset_t | |||
| 1550 | sys_sigsetmask (sigset_t new_mask) | 1550 | sys_sigsetmask (sigset_t new_mask) |
| 1551 | { | 1551 | { |
| 1552 | sigset_t old_mask; | 1552 | sigset_t old_mask; |
| 1553 | sigprocmask (SIG_SETMASK, &new_mask, &old_mask); | 1553 | pthread_sigmask (SIG_SETMASK, &new_mask, &old_mask); |
| 1554 | return (old_mask); | 1554 | return (old_mask); |
| 1555 | } | 1555 | } |
| 1556 | 1556 | ||
| @@ -1783,7 +1783,8 @@ seed_random (long int arg) | |||
| 1783 | } | 1783 | } |
| 1784 | 1784 | ||
| 1785 | /* | 1785 | /* |
| 1786 | * Build a full Emacs-sized word out of whatever we've got. | 1786 | * Return a nonnegative random integer out of whatever we've got. |
| 1787 | * It contains enough bits to make a random (signed) Emacs fixnum. | ||
| 1787 | * This suffices even for a 64-bit architecture with a 15-bit rand. | 1788 | * This suffices even for a 64-bit architecture with a 15-bit rand. |
| 1788 | */ | 1789 | */ |
| 1789 | EMACS_INT | 1790 | EMACS_INT |
| @@ -1791,16 +1792,17 @@ get_random (void) | |||
| 1791 | { | 1792 | { |
| 1792 | EMACS_UINT val = 0; | 1793 | EMACS_UINT val = 0; |
| 1793 | int i; | 1794 | int i; |
| 1794 | for (i = 0; i < (VALBITS + RAND_BITS - 1) / RAND_BITS; i++) | 1795 | for (i = 0; i < (FIXNUM_BITS + RAND_BITS - 1) / RAND_BITS; i++) |
| 1795 | val = (val << RAND_BITS) ^ random (); | 1796 | val = (random () ^ (val << RAND_BITS) |
| 1796 | return val & (((EMACS_INT) 1 << VALBITS) - 1); | 1797 | ^ (val >> (BITS_PER_EMACS_INT - RAND_BITS))); |
| 1798 | val ^= val >> (BITS_PER_EMACS_INT - FIXNUM_BITS); | ||
| 1799 | return val & INTMASK; | ||
| 1797 | } | 1800 | } |
| 1798 | 1801 | ||
| 1799 | #ifndef HAVE_STRERROR | 1802 | #ifndef HAVE_STRERROR |
| 1800 | #ifndef WINDOWSNT | 1803 | #ifndef WINDOWSNT |
| 1801 | char * | 1804 | char * |
| 1802 | strerror (errnum) | 1805 | strerror (int errnum) |
| 1803 | int errnum; | ||
| 1804 | { | 1806 | { |
| 1805 | extern char *sys_errlist[]; | 1807 | extern char *sys_errlist[]; |
| 1806 | extern int sys_nerr; | 1808 | extern int sys_nerr; |