Message ID | 20190905205620.4646-5-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v2,1/8] Remove PREPARE_VERSION and PREPARE_VERSION_KNOW | expand |
I will commit this shortly if no one opposes, after I tested on the affected architectures. On 05/09/2019 17:56, Adhemerval Zanella wrote: > This patch consolidates the mips, mips64, and mips64-n32 > INTERNAL_VSYSCALL_CALL on a single implementation. > > No semantic changes. I checked against a build for mips-linux-gnu, > mips64-linux-gnu, and mips64-n32-linux-gnu. > > * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h > (INTERNAL_VSYSCALL_CALL): Remove. > * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h > (INTERNAL_VSYSCALL_CALL): Likewise. > * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h > (INTERNAL_VSYSCALL_CALL): Likewise. > * sysdeps/unix/sysv/linux/mips/sysdep.h (INTERNAL_VSYSCALL_CALL): > New macro. > --- > sysdeps/unix/sysv/linux/mips/mips32/sysdep.h | 12 ------------ > sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h | 12 ------------ > sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h | 12 ------------ > sysdeps/unix/sysv/linux/mips/sysdep.h | 16 ++++++++++++++++ > 4 files changed, 16 insertions(+), 36 deletions(-) > > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h > index ebe397b701..bfcb916f15 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h > +++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h > @@ -349,18 +349,6 @@ libc_hidden_proto (__mips_syscall7, nomips16) > #define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ > "$14", "$15", "$24", "$25", "hi", "lo", "memory" > > -/* Standard MIPS syscalls have an error flag, and return a positive errno > - when the error flag is set. Emulate this behaviour for vsyscalls so that > - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ > -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ > - ({ \ > - long _ret = funcptr (args); \ > - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ > - if (err) \ > - _ret = -_ret; \ > - _ret; \ > - }) > - > #endif /* __ASSEMBLER__ */ > > /* Pointer mangling is not yet supported for MIPS. */ > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h > index bb49429c30..49e94a1706 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h > @@ -297,18 +297,6 @@ > #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ > "$14", "$15", "$24", "$25", "hi", "lo", "memory" > > -/* Standard MIPS syscalls have an error flag, and return a positive errno > - when the error flag is set. Emulate this behaviour for vsyscalls so that > - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ > -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ > - ({ \ > - long _ret = funcptr (args); \ > - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ > - if (err) \ > - _ret = -_ret; \ > - _ret; \ > - }) > - > #endif /* __ASSEMBLER__ */ > > /* Pointer mangling is not yet supported for MIPS. */ > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h > index 84a1ff186b..5911a62e5b 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h > @@ -293,18 +293,6 @@ > #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ > "$14", "$15", "$24", "$25", "hi", "lo", "memory" > > -/* Standard MIPS syscalls have an error flag, and return a positive errno > - when the error flag is set. Emulate this behaviour for vsyscalls so that > - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ > -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ > - ({ \ > - long _ret = funcptr (args); \ > - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ > - if (err) \ > - _ret = -_ret; \ > - _ret; \ > - }) > - > #endif /* __ASSEMBLER__ */ > > /* Pointer mangling is not yet supported for MIPS. */ > diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.h b/sysdeps/unix/sysv/linux/mips/sysdep.h > index 58a7244581..77b1f9c2fb 100644 > --- a/sysdeps/unix/sysv/linux/mips/sysdep.h > +++ b/sysdeps/unix/sysv/linux/mips/sysdep.h > @@ -22,3 +22,19 @@ > /* List of system calls which are supported as vsyscalls. */ > #define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_gettimeofday" > #define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_clock_gettime" > + > +#ifndef __ASSEMBLER__ > + > +/* Standard MIPS syscalls have an error flag, and return a positive errno > + when the error flag is set. Emulate this behaviour for vsyscalls so that > + the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ > +#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ > + ({ \ > + long _ret = funcptr (args); \ > + err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ > + if (err) \ > + _ret = -_ret; \ > + _ret; \ > + }) > + > +#endif /* __ASSEMBLER__ */ >
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h index ebe397b701..bfcb916f15 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h @@ -349,18 +349,6 @@ libc_hidden_proto (__mips_syscall7, nomips16) #define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ "$14", "$15", "$24", "$25", "hi", "lo", "memory" -/* Standard MIPS syscalls have an error flag, and return a positive errno - when the error flag is set. Emulate this behaviour for vsyscalls so that - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ - ({ \ - long _ret = funcptr (args); \ - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ - if (err) \ - _ret = -_ret; \ - _ret; \ - }) - #endif /* __ASSEMBLER__ */ /* Pointer mangling is not yet supported for MIPS. */ diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h index bb49429c30..49e94a1706 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h @@ -297,18 +297,6 @@ #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ "$14", "$15", "$24", "$25", "hi", "lo", "memory" -/* Standard MIPS syscalls have an error flag, and return a positive errno - when the error flag is set. Emulate this behaviour for vsyscalls so that - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ - ({ \ - long _ret = funcptr (args); \ - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ - if (err) \ - _ret = -_ret; \ - _ret; \ - }) - #endif /* __ASSEMBLER__ */ /* Pointer mangling is not yet supported for MIPS. */ diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h index 84a1ff186b..5911a62e5b 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h @@ -293,18 +293,6 @@ #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ "$14", "$15", "$24", "$25", "hi", "lo", "memory" -/* Standard MIPS syscalls have an error flag, and return a positive errno - when the error flag is set. Emulate this behaviour for vsyscalls so that - the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ -#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ - ({ \ - long _ret = funcptr (args); \ - err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ - if (err) \ - _ret = -_ret; \ - _ret; \ - }) - #endif /* __ASSEMBLER__ */ /* Pointer mangling is not yet supported for MIPS. */ diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.h b/sysdeps/unix/sysv/linux/mips/sysdep.h index 58a7244581..77b1f9c2fb 100644 --- a/sysdeps/unix/sysv/linux/mips/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/sysdep.h @@ -22,3 +22,19 @@ /* List of system calls which are supported as vsyscalls. */ #define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_gettimeofday" #define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_clock_gettime" + +#ifndef __ASSEMBLER__ + +/* Standard MIPS syscalls have an error flag, and return a positive errno + when the error flag is set. Emulate this behaviour for vsyscalls so that + the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */ +#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ + ({ \ + long _ret = funcptr (args); \ + err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \ + if (err) \ + _ret = -_ret; \ + _ret; \ + }) + +#endif /* __ASSEMBLER__ */