From: Mark Wielaard Date: Wed, 23 Sep 2015 18:44:06 +0000 (+0200) Subject: Properly mark all internal function definitions. X-Git-Tag: elfutils-0.164~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8698e55cbe95e56c3a4cbd67c320048ea4f087a;p=thirdparty%2Felfutils.git Properly mark all internal function definitions. 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 --- diff --git a/libasm/ChangeLog b/libasm/ChangeLog index 0eb84c6ca..7433cb72d 100644 --- a/libasm/ChangeLog +++ b/libasm/ChangeLog @@ -1,3 +1,10 @@ +2015-09-23 Mark Wielaard + + * asm_align.c (__libasm_ensure_section_space): Mark as + internal_function. + * asm_end.c (__libasm_finictx): Likewise. + * asm_error.c (__libasm_seterrno): Likewise. + 2015-09-22 Mark Wielaard * asm_*.c: Remove old-style function definitions. diff --git a/libasm/asm_align.c b/libasm/asm_align.c index b7708f596..6631c4d73 100644 --- a/libasm/asm_align.c +++ b/libasm/asm_align.c @@ -132,6 +132,7 @@ asm_align (AsmScn_t *asmscn, GElf_Word value) /* Ensure there are at least LEN bytes available in the output buffer for ASMSCN. */ int +internal_function __libasm_ensure_section_space (AsmScn_t *asmscn, size_t len) { /* The blocks with the section content are kept in a circular diff --git a/libasm/asm_end.c b/libasm/asm_end.c index d629fcd80..d21a70a3a 100644 --- a/libasm/asm_end.c +++ b/libasm/asm_end.c @@ -554,6 +554,7 @@ free_section (AsmScn_t *scnp) void +internal_function __libasm_finictx (AsmCtx_t *ctx) { /* Iterate through section table and free individual entries. */ diff --git a/libasm/asm_error.c b/libasm/asm_error.c index 54430497d..cc3e660b5 100644 --- a/libasm/asm_error.c +++ b/libasm/asm_error.c @@ -52,6 +52,7 @@ asm_errno (void) void +internal_function __libasm_seterrno (int value) { global_error = value; diff --git a/libdw/ChangeLog b/libdw/ChangeLog index cb5ec9ce7..5a026d879 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,10 @@ +2015-09-23 Mark Wielaard + + * dwarf_error.c (__libdw_seterrno): Mark as internal_function. + * dwarf_formref.c (__libdw_formref): Likewise. + * libdw_findcu.c (__libdw_findcu): Likewise. + * libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. + 2015-09-22 Mark Wielaard * *.c: Remove old-style function definitions. diff --git a/libdw/dwarf_error.c b/libdw/dwarf_error.c index c431bd3e6..66fdc81a7 100644 --- a/libdw/dwarf_error.c +++ b/libdw/dwarf_error.c @@ -100,6 +100,7 @@ static const char *errmsgs[] = void +internal_function __libdw_seterrno (int value) { global_error = (value >= 0 && value < (int) nerrmsgs diff --git a/libdw/dwarf_formref.c b/libdw/dwarf_formref.c index c5fb19b16..2240a2580 100644 --- a/libdw/dwarf_formref.c +++ b/libdw/dwarf_formref.c @@ -35,6 +35,7 @@ #include "libdwP.h" int +internal_function __libdw_formref (Dwarf_Attribute *attr, Dwarf_Off *return_offset) { const unsigned char *datap = attr->valp; diff --git a/libdw/libdw_findcu.c b/libdw/libdw_findcu.c index 5c03843c8..082307b0d 100644 --- a/libdw/libdw_findcu.c +++ b/libdw/libdw_findcu.c @@ -133,6 +133,7 @@ __libdw_intern_next_unit (Dwarf *dbg, bool debug_types) } struct Dwarf_CU * +internal_function __libdw_findcu (Dwarf *dbg, Dwarf_Off start, bool debug_types) { void **tree = debug_types ? &dbg->tu_tree : &dbg->cu_tree; diff --git a/libdw/libdw_visit_scopes.c b/libdw/libdw_visit_scopes.c index c882e4a5a..5e5c26fdd 100644 --- a/libdw/libdw_visit_scopes.c +++ b/libdw/libdw_visit_scopes.c @@ -65,6 +65,7 @@ may_have_scopes (Dwarf_Die *die) } int +internal_function __libdw_visit_scopes (unsigned int depth, struct Dwarf_Die_Chain *root, struct Dwarf_Die_Chain *imports, int (*previsit) (unsigned int, diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 193d12674..1916877c9 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 2b9ad1fa3..89e3c402f 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 a5fdb5478..3a6375c11 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 d6e5183f7..d6bdaab03 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 fe70345d5..061183bb9 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 4875c199e..18e5d14a1 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 52a0b4e54..384d25127 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 cace0ef62..abeb70c4a 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;