summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf/mips/reloc.c
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2010-08-10 05:15:35 +0000
committerneel <neel@FreeBSD.org>2010-08-10 05:15:35 +0000
commite9108ccbccee54e4f00b8413c41e0669b6bc9f2f (patch)
treeb4eb13e9c851cb37ab2b5ec0a3ea1dec5934f52c /libexec/rtld-elf/mips/reloc.c
parent9cecaf1c609002e678a1da679f00863707438b89 (diff)
downloadFreeBSD-src-e9108ccbccee54e4f00b8413c41e0669b6bc9f2f.zip
FreeBSD-src-e9108ccbccee54e4f00b8413c41e0669b6bc9f2f.tar.gz
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.
Diffstat (limited to 'libexec/rtld-elf/mips/reloc.c')
-rw-r--r--libexec/rtld-elf/mips/reloc.c4
1 files changed, 2 insertions, 2 deletions
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)
OpenPOWER on IntegriCloud