diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/hppa/sysdep.h | 8 |
2 files changed, 10 insertions, 4 deletions
@@ -1,3 +1,9 @@ +2001-04-19 Matthew Wilcox <willy@ldl.fc.hp.com> + + * sysdeps/unix/sysv/linux/hppa/sysdep.h (INLINE_SYSCALL): + Change to return a signed result for compatibility with other + architectures, and correctness. + 2001-04-19 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_32BITUIDS): diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h index 10e360d..1430642 100644 --- a/sysdeps/unix/sysv/linux/hppa/sysdep.h +++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h @@ -192,21 +192,21 @@ #undef INLINE_SYSCALL #define INLINE_SYSCALL(name, nr, args...) ({ \ - unsigned long __sys_res; \ + long __sys_res; \ { \ register unsigned long __res asm("r28"); \ LOAD_ARGS_##nr(args) \ asm volatile( \ - "ble 0x100(%%sr2, %%r0)\n\t" \ + "ble 0x100(%%sr2, %%r0)\n\t" \ " ldi %1, %%r20" \ : "=r" (__res) \ : "i" (SYS_ify(name)) ASM_ARGS_##nr \ ); \ __sys_res = __res; \ } \ - if (__sys_res >= (unsigned long)-4095) { \ + if ((unsigned long)__sys_res >= (unsigned long)-4095) { \ __set_errno(-__sys_res); \ - __sys_res = (unsigned long)-1; \ + __sys_res = -1; \ } \ __sys_res; \ }) |