Author: neel
Date: Tue Aug 10 05:15:35 2010
New Revision: 211130
URL: http://svn.freebsd.org/changeset/base/211130

Log:
  Fix compilation error for 64-bit little endian build:
  libexec/rtld-elf/mips/reloc.c:196: warning: right shift count >= width of type
  
  When the expression '(r_info) >> 32' was passed to bswap32() it was promptly
  changed to '(uint32_t)(r_info) >> 32' which is not what we intended.

Modified:
  head/libexec/rtld-elf/mips/reloc.c

Modified: head/libexec/rtld-elf/mips/reloc.c
==============================================================================
--- head/libexec/rtld-elf/mips/reloc.c  Mon Aug  9 23:32:37 2010        
(r211129)
+++ head/libexec/rtld-elf/mips/reloc.c  Tue Aug 10 05:15:35 2010        
(r211130)
@@ -75,7 +75,7 @@ void _rtld_relocate_nonplt_self(Elf_Dyn 
  * ELF64 MIPS encodes the relocs uniquely.  The first 32-bits of info contain
  * the symbol index.  The top 32-bits contain three relocation types encoded
  * in big-endian integer with first relocation in LSB.  This means for little
- * endian we have to byte swap that interger (r_type).
+ * endian we have to byte swap that integer (r_type).
  */
 #define        Elf_Sxword                      Elf64_Sxword
 #define        ELF_R_NXTTYPE_64_P(r_type)      ((((r_type) >> 8) & 0xff) == 
R_TYPE(64))
@@ -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)
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to