From d8698e55cbe95e56c3a4cbd67c320048ea4f087a Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 23 Sep 2015 20:44:06 +0200 Subject: Properly mark all internal function definitions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we banned old style function definitions GCC is able to diagnose function definitions that don't match the function declaration: elf32_getehdr.c:78: error: conflicting types for ‘__elf64_getehdr_wrlock’ libelfP.h:498: note: previous declaration of ‘__elf64_getehdr_wrlock’ This happens on i386 because there internal functions are marked with: # define internal_function __attribute__ ((regparm (3), stdcall)) Make sure all internal function declarations and definitions are marked with internal_function. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 14 ++++++++++++++ libelf/elf32_getehdr.c | 1 + libelf/elf32_getshdr.c | 2 ++ libelf/elf_error.c | 1 + libelf/elf_getphdrnum.c | 2 ++ libelf/elf_getshdrnum.c | 1 + libelf/elf_readall.c | 1 + libelf/gelf_getehdr.c | 1 + 8 files changed, 23 insertions(+) (limited to 'libelf') diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 193d1267..1916877c 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,17 @@ +2015-09-23 Mark Wielaard + + * elf32_getehdr.c (getehdr_wrlock): Mark as internal_function. + * elf32_getshdr.c (getshdr_rdlock): Likewise. + (getshdr_wrlock): Likewise. + * elf_error.c (__libelf_seterrno): Likewise. + * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Likewise. + (__elf_getphdrnum_chk_rdlock): Likewise. + * elf_getshdrnum.c (__elf_getphdrnum_rdlock): Likewise. + (__elf_getphdrnum_chk_rdlock): Likewise. + * elf_getshdrnum.c (__elf_getshdrnum_rdlock): Likewise. + * elf_readall.c (__libelf_readall): Likewise. + * gelf_getehdr.c (__gelf_getehdr_rdlock): Likewise. + 2015-09-22 Mark Wielaard * *.c: Remove old-style function definitions. diff --git a/libelf/elf32_getehdr.c b/libelf/elf32_getehdr.c index 2b9ad1fa..89e3c402 100644 --- a/libelf/elf32_getehdr.c +++ b/libelf/elf32_getehdr.c @@ -75,6 +75,7 @@ getehdr_impl (Elf *elf, int wrlock) } ElfW2(LIBELFBITS,Ehdr) * +internal_function __elfw2(LIBELFBITS,getehdr_wrlock) (Elf *elf) { return getehdr_impl (elf, 1); diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c index a5fdb547..3a6375c1 100644 --- a/libelf/elf32_getshdr.c +++ b/libelf/elf32_getshdr.c @@ -243,6 +243,7 @@ scn_valid (Elf_Scn *scn) } ElfW2(LIBELFBITS,Shdr) * +internal_function __elfw2(LIBELFBITS,getshdr_rdlock) (Elf_Scn *scn) { ElfW2(LIBELFBITS,Shdr) *result; @@ -264,6 +265,7 @@ __elfw2(LIBELFBITS,getshdr_rdlock) (Elf_Scn *scn) } ElfW2(LIBELFBITS,Shdr) * +internal_function __elfw2(LIBELFBITS,getshdr_wrlock) (Elf_Scn *scn) { ElfW2(LIBELFBITS,Shdr) *result; diff --git a/libelf/elf_error.c b/libelf/elf_error.c index d6e5183f..d6bdaab0 100644 --- a/libelf/elf_error.c +++ b/libelf/elf_error.c @@ -283,6 +283,7 @@ static const uint_fast16_t msgidx[ELF_E_NUM] = void +internal_function __libelf_seterrno (int value) { global_error = value >= 0 && value < nmsgidx ? value : ELF_E_UNKNOWN_ERROR; diff --git a/libelf/elf_getphdrnum.c b/libelf/elf_getphdrnum.c index fe70345d..061183bb 100644 --- a/libelf/elf_getphdrnum.c +++ b/libelf/elf_getphdrnum.c @@ -38,6 +38,7 @@ int +internal_function __elf_getphdrnum_rdlock (Elf *elf, size_t *dst) { if (unlikely (elf->state.elf64.ehdr == NULL)) @@ -78,6 +79,7 @@ __elf_getphdrnum_rdlock (Elf *elf, size_t *dst) } int +internal_function __elf_getphdrnum_chk_rdlock (Elf *elf, size_t *dst) { int result = __elf_getphdrnum_rdlock (elf, dst); diff --git a/libelf/elf_getshdrnum.c b/libelf/elf_getshdrnum.c index 4875c199..18e5d14a 100644 --- a/libelf/elf_getshdrnum.c +++ b/libelf/elf_getshdrnum.c @@ -39,6 +39,7 @@ int +internal_function __elf_getshdrnum_rdlock (Elf *elf, size_t *dst) { int result = 0; diff --git a/libelf/elf_readall.c b/libelf/elf_readall.c index 52a0b4e5..384d2512 100644 --- a/libelf/elf_readall.c +++ b/libelf/elf_readall.c @@ -66,6 +66,7 @@ set_address (Elf *elf, size_t offset) char * +internal_function __libelf_readall (Elf *elf) { /* Get the file. */ diff --git a/libelf/gelf_getehdr.c b/libelf/gelf_getehdr.c index cace0ef6..abeb70c4 100644 --- a/libelf/gelf_getehdr.c +++ b/libelf/gelf_getehdr.c @@ -40,6 +40,7 @@ GElf_Ehdr * +internal_function __gelf_getehdr_rdlock (Elf *elf, GElf_Ehdr *dest) { GElf_Ehdr *result = NULL; -- cgit v1.2.3