libgomp/i386: Revert the type of syscall wrappers output back to long.
Linux man-pages 5.07 wrongly declares syscall output type as int. This error was fixed in release 5.10, so this patch reverts my recent change. 2021-02-11 Uroš Bizjak <ubizjak@gmail.com> libgomp/ * config/linux/x86/futex.h (__futex_wait): Revert output type back to long. (__futex_wake): Ditto. (futex_wait): Update for revert. (futex_wake): Ditto.
This commit is contained in:
parent
c36ad24e8a
commit
5e40542f87
@ -30,10 +30,10 @@
|
||||
# define SYS_futex 202
|
||||
# endif
|
||||
|
||||
static inline int
|
||||
static inline long
|
||||
__futex_wait (int *addr, int futex_op, int val)
|
||||
{
|
||||
int res;
|
||||
long res;
|
||||
|
||||
register void *timeout __asm ("r10") = NULL;
|
||||
__asm volatile ("syscall"
|
||||
@ -44,10 +44,10 @@ __futex_wait (int *addr, int futex_op, int val)
|
||||
return res;
|
||||
}
|
||||
|
||||
static inline int
|
||||
static inline long
|
||||
__futex_wake (int *addr, int futex_op, int count)
|
||||
{
|
||||
int res;
|
||||
long res;
|
||||
|
||||
__asm volatile ("syscall"
|
||||
: "=a" (res)
|
||||
@ -61,10 +61,10 @@ __futex_wake (int *addr, int futex_op, int count)
|
||||
# define SYS_futex 240
|
||||
# endif
|
||||
|
||||
static inline int
|
||||
static inline long
|
||||
__futex_wait (int *addr, int futex_op, int val)
|
||||
{
|
||||
int res;
|
||||
long res;
|
||||
|
||||
void *timeout = NULL;
|
||||
__asm volatile ("int $0x80"
|
||||
@ -75,10 +75,10 @@ __futex_wait (int *addr, int futex_op, int val)
|
||||
return res;
|
||||
}
|
||||
|
||||
static inline int
|
||||
static inline long
|
||||
__futex_wake (int *addr, int futex_op, int count)
|
||||
{
|
||||
int res;
|
||||
long res;
|
||||
|
||||
__asm volatile ("int $0x80"
|
||||
: "=a" (res)
|
||||
@ -92,9 +92,9 @@ __futex_wake (int *addr, int futex_op, int count)
|
||||
static inline void
|
||||
futex_wait (int *addr, int val)
|
||||
{
|
||||
int res = __futex_wait (addr, gomp_futex_wait, val);
|
||||
long err = __futex_wait (addr, gomp_futex_wait, val);
|
||||
|
||||
if (__builtin_expect (res == -ENOSYS, 0))
|
||||
if (__builtin_expect (err == -ENOSYS, 0))
|
||||
{
|
||||
gomp_futex_wait &= ~FUTEX_PRIVATE_FLAG;
|
||||
gomp_futex_wake &= ~FUTEX_PRIVATE_FLAG;
|
||||
@ -106,9 +106,9 @@ futex_wait (int *addr, int val)
|
||||
static inline void
|
||||
futex_wake (int *addr, int count)
|
||||
{
|
||||
int res = __futex_wake (addr, gomp_futex_wake, count);
|
||||
long err = __futex_wake (addr, gomp_futex_wake, count);
|
||||
|
||||
if (__builtin_expect (res == -ENOSYS, 0))
|
||||
if (__builtin_expect (err == -ENOSYS, 0))
|
||||
{
|
||||
gomp_futex_wait &= ~FUTEX_PRIVATE_FLAG;
|
||||
gomp_futex_wake &= ~FUTEX_PRIVATE_FLAG;
|
||||
|
Loading…
Reference in New Issue
Block a user