svn commit: r211159 - in head: libexec/rtld-elf/mips sys/mips/include

Neel Natu neel at FreeBSD.org
Wed Aug 11 02:28:40 UTC 2010


Author: neel
Date: Wed Aug 11 02:28:39 2010
New Revision: 211159
URL: http://svn.freebsd.org/changeset/base/211159

Log:
  Add parentheses around the argument 'x' used in the __bswapXX(x) macros. Revert
  r211130 in favor of this more general fix.
  
  This fixes a compilation error for mips 64-bit little endian build.
  libexec/rtld-elf/mips/reloc.c:196: warning: right shift count >= width of type
  
  Suggested by:	stefanf, jchandra, bde

Modified:
  head/libexec/rtld-elf/mips/reloc.c
  head/sys/mips/include/endian.h

Modified: head/libexec/rtld-elf/mips/reloc.c
==============================================================================
--- head/libexec/rtld-elf/mips/reloc.c	Wed Aug 11 02:13:50 2010	(r211158)
+++ head/libexec/rtld-elf/mips/reloc.c	Wed Aug 11 02:28:39 2010	(r211159)
@@ -83,7 +83,7 @@ void _rtld_relocate_nonplt_self(Elf_Dyn 
 #undef ELF_R_SYM
 #undef ELF_R_TYPE
 #define ELF_R_SYM(r_info)		((r_info) & 0xffffffff)
-#define ELF_R_TYPE(r_info)		bswap32(((r_info) >> 32))
+#define ELF_R_TYPE(r_info)		bswap32((r_info) >> 32)
 #endif
 #else
 #define	ELF_R_NXTTYPE_64_P(r_type)	(0)

Modified: head/sys/mips/include/endian.h
==============================================================================
--- head/sys/mips/include/endian.h	Wed Aug 11 02:13:50 2010	(r211158)
+++ head/sys/mips/include/endian.h	Wed Aug 11 02:28:39 2010	(r211159)
@@ -108,12 +108,12 @@ __bswap64_var(__uint64_t _x)
 	    ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)));
 }
 
-#define	__bswap16(x)	(__uint16_t)(__is_constant(x) ?		\
-	__bswap16_const((__uint16_t)x) :  __bswap16_var((__uint16_t)x))
-#define	__bswap32(x)	(__uint32_t)(__is_constant(x) ?		\
-	__bswap32_const((__uint32_t)x) :  __bswap32_var((__uint32_t)x))
-#define	__bswap64(x)	(__uint64_t)(__is_constant(x) ?		\
-	__bswap64_const((__uint64_t)x) :  __bswap64_var((__uint64_t)x))
+#define	__bswap16(x)	((__uint16_t)(__is_constant((x)) ?		\
+	__bswap16_const((__uint16_t)(x)) :  __bswap16_var((__uint16_t)(x))))
+#define	__bswap32(x)	((__uint32_t)(__is_constant((x)) ?		\
+	__bswap32_const((__uint32_t)(x)) :  __bswap32_var((__uint32_t)(x))))
+#define	__bswap64(x)	((__uint64_t)(__is_constant((x)) ?		\
+	__bswap64_const((__uint64_t)(x)) :  __bswap64_var((__uint64_t)(x))))
 
 #ifdef __MIPSEB__
 #define	__htonl(x)	((__uint32_t)(x))


More information about the svn-src-head mailing list