From 8ccbec8726c58fec3104a28d3a40e71e1e210855 Mon Sep 17 00:00:00 2001 From: Mikhail Kashkarov Date: Tue, 24 Dec 2019 08:53:55 +0300 Subject: [PATCH] libelf: Use int64_t for offsets in libelf.h Some systems don't have loff_t, like FreeBSD where off_t always supports large files. We need a standardized 64-bit signed type for the public header, without depending on configuration... OK, just use int64_t. Signed-off-by: Josh Stone (Backported from commit b1d0b0fc7ef850851574031851cd36d114ea30e7) --- ChangeLog | 4 ++++ lib/libelf.h | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e9b5621..8643d28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-10-09 Josh Stone + + * lib/libelf.h: Replace loff_t with int64_t throughout. + Sun Nov 1 14:08:47 CET 2009, Michael Riepe * README: diff --git a/lib/libelf.h b/lib/libelf.h index 3ebd0f3..03bf730 100644 --- a/lib/libelf.h +++ b/lib/libelf.h @@ -23,6 +23,7 @@ #define _LIBELF_H #include /* for size_t */ +#include #include #if __LIBELF_INTERNAL__ @@ -141,7 +142,7 @@ typedef struct { long ar_uid; long ar_gid; unsigned long ar_mode; - off_t ar_size; + int64_t ar_size; char* ar_rawname; } Elf_Arhdr; @@ -161,7 +162,7 @@ typedef struct { void* d_buf; Elf_Type d_type; size_t d_size; - off_t d_off; + int64_t d_off; size_t d_align; unsigned d_version; } Elf_Data; @@ -192,7 +193,7 @@ extern size_t elf32_fsize __P((Elf_Type __type, size_t __count, unsigned __ver)); extern Elf_Arhdr *elf_getarhdr __P((Elf *__elf)); extern Elf_Arsym *elf_getarsym __P((Elf *__elf, size_t *__ptr)); -extern off_t elf_getbase __P((Elf *__elf)); +extern int64_t elf_getbase __P((Elf *__elf)); extern Elf_Data *elf_getdata __P((Elf_Scn *__scn, Elf_Data *__data)); extern Elf32_Ehdr *elf32_getehdr __P((Elf *__elf)); extern char *elf_getident __P((Elf *__elf, size_t *__ptr)); @@ -212,7 +213,7 @@ extern size_t elf_rand __P((Elf *__elf, size_t __offset)); extern Elf_Data *elf_rawdata __P((Elf_Scn *__scn, Elf_Data *__data)); extern char *elf_rawfile __P((Elf *__elf, size_t *__ptr)); extern char *elf_strptr __P((Elf *__elf, size_t __section, size_t __offset)); -extern off_t elf_update __P((Elf *__elf, Elf_Cmd __cmd)); +extern int64_t elf_update __P((Elf *__elf, Elf_Cmd __cmd)); extern unsigned elf_version __P((unsigned __ver)); extern Elf_Data *elf32_xlatetof __P((Elf_Data *__dst, const Elf_Data *__src, unsigned __encode)); -- 2.7.4