mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Fix several build warnings on sparc.
/ * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c (set_obp_int): New function. (get_obp_int): New function. (__get_clockfreq_via_dev_openprom): Likewise. * sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_SYSCALL_ERROR_P): Avoid unused variable warnings on 'val' and use builtin_expect. (INLINE_SYSCALL): Don't wrap INTERNAL_SYSCALL_ERROR_P with builtin_expect. (INLINE_CLONE_SYSCALL): Likewise. nptl/ * sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use atomic_increment and remove unused local variable. (__old_sem_post): Likewise.
This commit is contained in:
parent
f3caba873e
commit
e92584001a
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2012-03-06 David S. Miller <davem@davemloft.net>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
|
||||
(set_obp_int): New function.
|
||||
(get_obp_int): New function.
|
||||
(__get_clockfreq_via_dev_openprom): Likewise.
|
||||
* sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_SYSCALL_ERROR_P): Avoid
|
||||
unused variable warnings on 'val' and use builtin_expect.
|
||||
(INLINE_SYSCALL): Don't wrap INTERNAL_SYSCALL_ERROR_P with builtin_expect.
|
||||
(INLINE_CLONE_SYSCALL): Likewise.
|
||||
|
||||
2012-03-05 David S. Miller <davem@davemloft.net>
|
||||
|
||||
* sysdeps/sparc/fpu/libm-test-ulps: Update.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-03-06 David S. Miller <davem@davemloft.net>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
|
||||
atomic_increment and remove unused local variable.
|
||||
(__old_sem_post): Likewise.
|
||||
|
||||
2012-02-27 David S. Miller <davem@davemloft.net>
|
||||
|
||||
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to non-existing
|
||||
|
@ -30,7 +30,7 @@ __new_sem_post (sem_t *sem)
|
||||
{
|
||||
struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
|
||||
|
||||
int nr = atomic_increment_val (&isem->value);
|
||||
atomic_increment (&isem->value);
|
||||
atomic_full_barrier ();
|
||||
if (isem->nwaiters > 0)
|
||||
{
|
||||
@ -53,10 +53,11 @@ attribute_compat_text_section
|
||||
__old_sem_post (sem_t *sem)
|
||||
{
|
||||
struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
|
||||
int err;
|
||||
|
||||
int nr = atomic_increment_val (&isem->value);
|
||||
int err = lll_futex_wake (&isem->value, 1,
|
||||
isem->private ^ FUTEX_PRIVATE_FLAG);
|
||||
atomic_increment (&isem->value);
|
||||
err = lll_futex_wake (&isem->value, 1,
|
||||
isem->private ^ FUTEX_PRIVATE_FLAG);
|
||||
if (__builtin_expect (err, 0) < 0)
|
||||
{
|
||||
__set_errno (-err);
|
||||
|
@ -154,6 +154,22 @@ __get_clockfreq_via_proc_openprom (void)
|
||||
return result;
|
||||
}
|
||||
|
||||
static void set_obp_int (struct openpromio *op, int val)
|
||||
{
|
||||
char *cp = op->oprom_array;
|
||||
int *ip = (int *) cp;
|
||||
|
||||
*ip = val;
|
||||
}
|
||||
|
||||
static int get_obp_int (struct openpromio *op)
|
||||
{
|
||||
char *cp = op->oprom_array;
|
||||
int *ip = (int *) cp;
|
||||
|
||||
return *ip;
|
||||
}
|
||||
|
||||
static hp_timing_t
|
||||
__get_clockfreq_via_dev_openprom (void)
|
||||
{
|
||||
@ -171,11 +187,11 @@ __get_clockfreq_via_dev_openprom (void)
|
||||
|
||||
obp_cmd->oprom_size =
|
||||
sizeof (obp_buf) - sizeof (unsigned int);
|
||||
*(int *) obp_cmd->oprom_array = 0;
|
||||
set_obp_int (obp_cmd, 0);
|
||||
ret = ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
|
||||
if (ret == 0)
|
||||
{
|
||||
int cur_node = *(int *) obp_cmd->oprom_array;
|
||||
int cur_node = get_obp_int (obp_cmd);
|
||||
|
||||
while (cur_node != 0 && cur_node != -1)
|
||||
{
|
||||
@ -190,15 +206,14 @@ __get_clockfreq_via_dev_openprom (void)
|
||||
strcpy (obp_cmd->oprom_array, "clock-frequency");
|
||||
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||
if (ret == 0)
|
||||
result =
|
||||
(hp_timing_t) *(unsigned int *) obp_cmd->oprom_array;
|
||||
result = (hp_timing_t) get_obp_int (obp_cmd);
|
||||
}
|
||||
obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
|
||||
*(int *) obp_cmd->oprom_array = cur_node;
|
||||
set_obp_int (obp_cmd, cur_node);
|
||||
ret = ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
|
||||
if (ret < 0)
|
||||
break;
|
||||
cur_node = *(int *)obp_cmd->oprom_array;
|
||||
cur_node = get_obp_int (obp_cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define INLINE_SYSCALL(name, nr, args...) \
|
||||
({ INTERNAL_SYSCALL_DECL(err); \
|
||||
unsigned int resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
|
||||
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, err), 0)) \
|
||||
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
|
||||
{ \
|
||||
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
||||
resultvar = 0xffffffff; \
|
||||
@ -44,7 +44,8 @@
|
||||
inline_syscall##nr(__SYSCALL_STRING, err, name, args)
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERROR_P
|
||||
#define INTERNAL_SYSCALL_ERROR_P(val, err) ((err) != 0)
|
||||
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||
((void) (val), __builtin_expect((err) != 0, 0))
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERRNO
|
||||
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
||||
@ -152,7 +153,7 @@
|
||||
"0" (__g1), "1" (__o0), "2" (__o1), \
|
||||
"r" (__o2), "r" (__o3), "r" (__o4) : \
|
||||
__SYSCALL_CLOBBERS); \
|
||||
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (__o0, __g1), 0)) \
|
||||
if (INTERNAL_SYSCALL_ERROR_P (__o0, __g1)) \
|
||||
{ \
|
||||
__set_errno (INTERNAL_SYSCALL_ERRNO (__o0, __g1)); \
|
||||
__o0 = -1L; \
|
||||
|
Loading…
Reference in New Issue
Block a user