Offset in elf_read_u{16,32,64} should be 64-bit even when ltrace is 32-bit
diff --git a/ltrace-elf.c b/ltrace-elf.c
index 810e29a..3f0c636 100644
--- a/ltrace-elf.c
+++ b/ltrace-elf.c
@@ -144,7 +144,7 @@
 }
 
 static int
-need_data(Elf_Data *data, size_t offset, size_t size)
+need_data(Elf_Data *data, GElf_Xword offset, GElf_Xword size)
 {
 	assert(data != NULL);
 	if (data->d_size < size || offset > data->d_size - size) {
@@ -157,7 +157,7 @@
 
 #define DEF_READER(NAME, SIZE)						\
 	int								\
-	NAME(Elf_Data *data, size_t offset, uint##SIZE##_t *retp)	\
+	NAME(Elf_Data *data, GElf_Xword offset, uint##SIZE##_t *retp)	\
 	{								\
 		if (!need_data(data, offset, SIZE / 8) < 0)		\
 			return -1;					\
diff --git a/ltrace-elf.h b/ltrace-elf.h
index dec072b..54a5386 100644
--- a/ltrace-elf.h
+++ b/ltrace-elf.h
@@ -67,9 +67,9 @@
 /* Read, respectively, 2, 4, or 8 bytes from Elf data at given OFFSET,
  * and store it in *RETP.  Returns 0 on success or a negative value if
  * there's not enough data.  */
-int elf_read_u16(Elf_Data *data, size_t offset, uint16_t *retp);
-int elf_read_u32(Elf_Data *data, size_t offset, uint32_t *retp);
-int elf_read_u64(Elf_Data *data, size_t offset, uint64_t *retp);
+int elf_read_u16(Elf_Data *data, GElf_Xword offset, uint16_t *retp);
+int elf_read_u32(Elf_Data *data, GElf_Xword offset, uint32_t *retp);
+int elf_read_u64(Elf_Data *data, GElf_Xword offset, uint64_t *retp);
 
 int default_elf_add_plt_entry(struct Process *proc, struct ltelf *lte,
 			      const char *a_name, GElf_Rela *rela, size_t ndx,