From 141749ca169d3a5f3a328d3cb91473e3af4256b1 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 13 Jan 2004 09:15:58 +0000 Subject: * sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int): Cast old up to uint64_t before back down to inner width. (__arch_compare_and_exchange_xxx_16_int): Likewise. (__arch_compare_and_exchange_xxx_32_int): Likewise. (__arch_compare_and_exchange_xxx_64_int): Likewise. (__arch_compare_and_exchange_val_8_int): Cast result to the type of the memory. (__arch_compare_and_exchange_val_16_int): Likewise. (__arch_compare_and_exchange_val_32_int): Likewise. (__arch_compare_and_exchange_val_64_int): Likewise. (atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize. (atomic_compare_and_exchange_bool_rel): Likewise. * sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm based on HAVE___THREAD instead of USE_TLS. * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New. (__adjtimex_tv64): Use it. * sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast to void* rather than directly to the compatibility structure type. * sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise. * sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction): Forward declare. * sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int): Cast old up to uint64_t before back down to inner width. (__arch_compare_and_exchange_xxx_16_int): Likewise. (__arch_compare_and_exchange_xxx_32_int): Likewise. (__arch_compare_and_exchange_xxx_64_int): Likewise. (__arch_compare_and_exchange_val_8_int): Cast result to the type of the memory. (__arch_compare_and_exchange_val_16_int): Likewise. (__arch_compare_and_exchange_val_32_int): Likewise. (__arch_compare_and_exchange_val_64_int): Likewise. (atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize. (atomic_compare_and_exchange_bool_rel): Likewise. * sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm based on HAVE___THREAD instead of USE_TLS. * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New. (__adjtimex_tv64): Use it. * sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast to void* rather than directly to the compatibility structure type. * sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise. * sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction): Forward declare. 2004-01-13 Richard Henderson Paolo Bonzini Compare the node sets after all the other comparisons. the old thread-m.h header too. --- sysdeps/unix/sysv/linux/alpha/adjtime.c | 3 ++- sysdeps/unix/sysv/linux/alpha/semctl.c | 2 +- sysdeps/unix/sysv/linux/alpha/shmctl.c | 2 +- sysdeps/unix/sysv/linux/alpha/sigaction.c | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) (limited to 'sysdeps/unix/sysv') diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c index 69f63d4c32..e036896216 100644 --- a/sysdeps/unix/sysv/linux/alpha/adjtime.c +++ b/sysdeps/unix/sysv/linux/alpha/adjtime.c @@ -60,6 +60,7 @@ struct timex32 { #define TIMEX timex32 #define ADJTIME __adjtime_tv32 #define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x) +#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) #define LINKAGE #else @@ -180,7 +181,7 @@ __adjtimex_tv64 (struct timex *tx) tx32.errcnt = tx->errcnt; tx32.stbcnt = tx->stbcnt; - ret = __adjtimex_tv32 (&tx32); + ret = ADJTIMEX32 (&tx32); if (ret == 0) { tx->modes = tx32.modes; diff --git a/sysdeps/unix/sysv/linux/alpha/semctl.c b/sysdeps/unix/sysv/linux/alpha/semctl.c index 224baf399b..6925c3f058 100644 --- a/sysdeps/unix/sysv/linux/alpha/semctl.c +++ b/sysdeps/unix/sysv/linux/alpha/semctl.c @@ -97,7 +97,7 @@ __new_semctl (int semid, int semnum, int cmd, ...) __set_errno(save_errno); buf = arg.buf; - arg.buf = (struct semid_ds *)&old; + arg.buf = (void *)&old; if (cmd == IPC_SET) { old.sem_perm.uid = buf->sem_perm.uid; diff --git a/sysdeps/unix/sysv/linux/alpha/shmctl.c b/sysdeps/unix/sysv/linux/alpha/shmctl.c index 7dec3a737c..4a9d9445ef 100644 --- a/sysdeps/unix/sysv/linux/alpha/shmctl.c +++ b/sysdeps/unix/sysv/linux/alpha/shmctl.c @@ -116,7 +116,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) } else if (result != -1 && cmd == IPC_INFO) { - struct __old_shminfo *oldi = (struct __old_shminfo *)&old; + struct __old_shminfo *oldi = (void *)&old; struct shminfo *i = (struct shminfo *)buf; memset(i, 0, sizeof(*i)); diff --git a/sysdeps/unix/sysv/linux/alpha/sigaction.c b/sysdeps/unix/sysv/linux/alpha/sigaction.c index 952ee40eee..21a2063c30 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigaction.c +++ b/sysdeps/unix/sysv/linux/alpha/sigaction.c @@ -30,6 +30,7 @@ ? __syscall_rt_sigaction(args) \ : INLINE_SYSCALL1(name, nr, args)) +struct kernel_sigaction; extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded, struct kernel_sigaction *__unbounded, size_t); -- cgit 1.4.1