Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Use better variable names in MIPS syscall macros.
Carlos noted in
<https://sourceware.org/ml/libc-alpha/2015-05/msg00680.html> that
various ports use potentially problematic short variables names in
their syscall macros, which could shadow variables with the same name
from containing scopes.

This patch fixes variables called err and ret in MIPS macros.  (I left
result_var and _sys_result - separate variables in different macros,
which need separate names - alone.)

Tested for mips64 (all three ABIs) that installed stripped shared
libraries are unchanged by this patch.

	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (INLINE_SYSCALL):
	Use variable name _sc_err instead of err.
	[__mips16] (INTERNAL_SYSCALL_NCS): Use variable name _sc_ret
	instead of ret.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
	(INLINE_SYSCALL): Use variable name _sc_err instead of err.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
	(INLINE_SYSCALL): Likewise.
  • Loading branch information
Joseph Myers committed Jun 2, 2015
1 parent 1769608 commit e0c349b
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 16 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
@@ -1,5 +1,14 @@
2015-06-02 Joseph Myers <joseph@codesourcery.com>

* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (INLINE_SYSCALL):
Use variable name _sc_err instead of err.
[__mips16] (INTERNAL_SYSCALL_NCS): Use variable name _sc_ret
instead of ret.
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
(INLINE_SYSCALL): Use variable name _sc_err instead of err.
* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
(INLINE_SYSCALL): Likewise.

* string/strnlen.c [!STRNLEN] (__strnlen): Use libc_hidden_def.
* include/string.h (__strnlen): Use libc_hidden_proto.
* sysdeps/aarch64/strnlen.S (__strnlen): Use libc_hidden_def.
Expand Down
16 changes: 8 additions & 8 deletions sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
Expand Up @@ -49,11 +49,11 @@
call. */
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
({ INTERNAL_SYSCALL_DECL (_sc_err); \
long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
result_var = -1L; \
} \
result_var; })
Expand Down Expand Up @@ -111,10 +111,10 @@

# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
({ \
union __mips16_syscall_return ret; \
ret.val = __mips16_syscall##nr (args, number); \
err = ret.reg.v1; \
ret.reg.v0; \
union __mips16_syscall_return _sc_ret; \
_sc_ret.val = __mips16_syscall##nr (args, number); \
err = _sc_ret.reg.v1; \
_sc_ret.reg.v0; \
})

# define INTERNAL_SYSCALL_MIPS16(number, err, nr, args...) \
Expand Down
8 changes: 4 additions & 4 deletions sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
Expand Up @@ -51,11 +51,11 @@
call. */
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
({ INTERNAL_SYSCALL_DECL (_sc_err); \
long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
result_var = -1L; \
} \
result_var; })
Expand Down
8 changes: 4 additions & 4 deletions sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
Expand Up @@ -47,11 +47,11 @@
call. */
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
({ INTERNAL_SYSCALL_DECL (_sc_err); \
long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
__set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
result_var = -1L; \
} \
result_var; })
Expand Down

0 comments on commit e0c349b

Please sign in to comment.