From e9108ccbccee54e4f00b8413c41e0669b6bc9f2f Mon Sep 17 00:00:00 2001 From: neel Date: Tue, 10 Aug 2010 05:15:35 +0000 Subject: 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. --- libexec/rtld-elf/mips/reloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libexec/rtld-elf/mips/reloc.c') diff --git a/libexec/rtld-elf/mips/reloc.c b/libexec/rtld-elf/mips/reloc.c index fa0534d..15a0e37 100644 --- a/libexec/rtld-elf/mips/reloc.c +++ b/libexec/rtld-elf/mips/reloc.c @@ -75,7 +75,7 @@ void _rtld_relocate_nonplt_self(Elf_Dyn *, Elf_Addr); * 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 *, Elf_Addr); #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) -- cgit v1.1