mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Fix some 64-bit sparc build warnings.
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c (__makecontext): Fix signedness of pointer casts setting up 'sp'. * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL) Use 'long' for 'resultvar' otherwise things get truncated on 64-bit.
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
2012-03-11 David S. Miller <davem@davemloft.net>
|
2012-03-11 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
|
||||||
|
(__makecontext): Fix signedness of pointer casts setting up 'sp'.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL) Use 'long'
|
||||||
|
for 'resultvar' otherwise things get truncated on 64-bit.
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
|
* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
|
||||||
Fix masking out of the most significant byte of random value used.
|
Fix masking out of the most significant byte of random value used.
|
||||||
|
|
||||||
|
@@ -29,9 +29,9 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
|||||||
va_list ap;
|
va_list ap;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
sp = (long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
|
sp = (unsigned long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
|
||||||
sp -= (argc > 6 ? argc : 6) + 32;
|
sp -= (argc > 6 ? argc : 6) + 32;
|
||||||
sp = (long *) (((long) sp) & -16L);
|
sp = (unsigned long *) (((long) sp) & -16L);
|
||||||
topsp = sp + (argc > 6 ? argc : 6) + 16;
|
topsp = sp + (argc > 6 ? argc : 6) + 16;
|
||||||
|
|
||||||
ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func;
|
ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func;
|
||||||
|
@@ -22,13 +22,13 @@
|
|||||||
#undef INLINE_SYSCALL
|
#undef INLINE_SYSCALL
|
||||||
#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 long resultvar = INTERNAL_SYSCALL(name, err, nr, args);\
|
||||||
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
|
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
|
||||||
{ \
|
{ \
|
||||||
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
||||||
resultvar = 0xffffffff; \
|
resultvar = (unsigned long) -1; \
|
||||||
} \
|
} \
|
||||||
(int) resultvar; \
|
(long) resultvar; \
|
||||||
})
|
})
|
||||||
|
|
||||||
#undef INTERNAL_SYSCALL_DECL
|
#undef INTERNAL_SYSCALL_DECL
|
||||||
|
Reference in New Issue
Block a user