Date: Tue, 10 Aug 2010 05:15:35 +0000 (UTC) From: Neel Natu <neel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r211130 - head/libexec/rtld-elf/mips Message-ID: <201008100515.o7A5FZZF017552@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008100515.o7A5FZZF017552>