mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +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>
|
2012-03-05 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
* sysdeps/sparc/fpu/libm-test-ulps: Update.
|
* 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>
|
2012-02-27 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to non-existing
|
* 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;
|
struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
|
||||||
|
|
||||||
int nr = atomic_increment_val (&isem->value);
|
atomic_increment (&isem->value);
|
||||||
atomic_full_barrier ();
|
atomic_full_barrier ();
|
||||||
if (isem->nwaiters > 0)
|
if (isem->nwaiters > 0)
|
||||||
{
|
{
|
||||||
@ -53,9 +53,10 @@ attribute_compat_text_section
|
|||||||
__old_sem_post (sem_t *sem)
|
__old_sem_post (sem_t *sem)
|
||||||
{
|
{
|
||||||
struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
|
struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
|
||||||
|
int err;
|
||||||
|
|
||||||
int nr = atomic_increment_val (&isem->value);
|
atomic_increment (&isem->value);
|
||||||
int err = lll_futex_wake (&isem->value, 1,
|
err = lll_futex_wake (&isem->value, 1,
|
||||||
isem->private ^ FUTEX_PRIVATE_FLAG);
|
isem->private ^ FUTEX_PRIVATE_FLAG);
|
||||||
if (__builtin_expect (err, 0) < 0)
|
if (__builtin_expect (err, 0) < 0)
|
||||||
{
|
{
|
||||||
|
@ -154,6 +154,22 @@ __get_clockfreq_via_proc_openprom (void)
|
|||||||
return result;
|
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
|
static hp_timing_t
|
||||||
__get_clockfreq_via_dev_openprom (void)
|
__get_clockfreq_via_dev_openprom (void)
|
||||||
{
|
{
|
||||||
@ -171,11 +187,11 @@ __get_clockfreq_via_dev_openprom (void)
|
|||||||
|
|
||||||
obp_cmd->oprom_size =
|
obp_cmd->oprom_size =
|
||||||
sizeof (obp_buf) - sizeof (unsigned int);
|
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);
|
ret = ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
|
||||||
if (ret == 0)
|
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)
|
while (cur_node != 0 && cur_node != -1)
|
||||||
{
|
{
|
||||||
@ -190,15 +206,14 @@ __get_clockfreq_via_dev_openprom (void)
|
|||||||
strcpy (obp_cmd->oprom_array, "clock-frequency");
|
strcpy (obp_cmd->oprom_array, "clock-frequency");
|
||||||
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
result =
|
result = (hp_timing_t) get_obp_int (obp_cmd);
|
||||||
(hp_timing_t) *(unsigned int *) obp_cmd->oprom_array;
|
|
||||||
}
|
}
|
||||||
obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
|
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);
|
ret = ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
break;
|
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...) \
|
#define INLINE_SYSCALL(name, nr, args...) \
|
||||||
({ INTERNAL_SYSCALL_DECL(err); \
|
({ INTERNAL_SYSCALL_DECL(err); \
|
||||||
unsigned int resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
|
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)); \
|
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
||||||
resultvar = 0xffffffff; \
|
resultvar = 0xffffffff; \
|
||||||
@ -44,7 +44,8 @@
|
|||||||
inline_syscall##nr(__SYSCALL_STRING, err, name, args)
|
inline_syscall##nr(__SYSCALL_STRING, err, name, args)
|
||||||
|
|
||||||
#undef INTERNAL_SYSCALL_ERROR_P
|
#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
|
#undef INTERNAL_SYSCALL_ERRNO
|
||||||
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
||||||
@ -152,7 +153,7 @@
|
|||||||
"0" (__g1), "1" (__o0), "2" (__o1), \
|
"0" (__g1), "1" (__o0), "2" (__o1), \
|
||||||
"r" (__o2), "r" (__o3), "r" (__o4) : \
|
"r" (__o2), "r" (__o3), "r" (__o4) : \
|
||||||
__SYSCALL_CLOBBERS); \
|
__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)); \
|
__set_errno (INTERNAL_SYSCALL_ERRNO (__o0, __g1)); \
|
||||||
__o0 = -1L; \
|
__o0 = -1L; \
|
||||||
|
Loading…
Reference in New Issue
Block a user