diff options
Diffstat (limited to 'ldso/ldso')
-rw-r--r-- | ldso/ldso/dl-hash.c | 2 | ||||
-rw-r--r-- | ldso/ldso/i386/dl-startup.h | 4 | ||||
-rw-r--r-- | ldso/ldso/ldso.c | 9 |
3 files changed, 8 insertions, 7 deletions
diff --git a/ldso/ldso/dl-hash.c b/ldso/ldso/dl-hash.c index 2247207a6..ed55031ed 100644 --- a/ldso/ldso/dl-hash.c +++ b/ldso/ldso/dl-hash.c @@ -84,7 +84,7 @@ static inline Elf_Symndx _dl_elf_hash(const char *name) */ struct elf_resolve *_dl_add_elf_hash_table(const char *libname, char *loadaddr, unsigned long *dynamic_info, unsigned long dynamic_addr, - unsigned long dynamic_size) + attribute_unused unsigned long dynamic_size) { Elf_Symndx *hash_addr; struct elf_resolve *tpnt; diff --git a/ldso/ldso/i386/dl-startup.h b/ldso/ldso/i386/dl-startup.h index 95609bbb3..cfa412621 100644 --- a/ldso/ldso/i386/dl-startup.h +++ b/ldso/ldso/i386/dl-startup.h @@ -41,9 +41,9 @@ asm( #define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long*) & ARGS)+1) /* Handle relocation of the symbols in the dynamic loader. */ -static inline +static __always_inline void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr, - unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab) + unsigned long symbol_addr, unsigned long load_addr, attribute_unused Elf32_Sym *symtab) { switch (ELF32_R_TYPE(rpnt->r_info)) { diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 65295a2f1..fe4c46726 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -122,7 +122,8 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr, ElfW(Phdr) *ppnt; ElfW(Dyn) *dpnt; char *lpntstr; - int i, unlazy = 0, trace_loaded_objects = 0; + unsigned int i; + int unlazy = 0, trace_loaded_objects = 0; struct dyn_elf *rpnt; struct elf_resolve *tcurr; struct elf_resolve *tpnt1; @@ -178,8 +179,8 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr, * Note that for SUID programs we ignore the settings in * LD_LIBRARY_PATH. */ - if ((auxvt[AT_UID].a_un.a_val == -1 && _dl_suid_ok()) || - (auxvt[AT_UID].a_un.a_val != -1 && + if ((auxvt[AT_UID].a_un.a_val == (size_t)-1 && _dl_suid_ok()) || + (auxvt[AT_UID].a_un.a_val != (size_t)-1 && auxvt[AT_UID].a_un.a_val == auxvt[AT_EUID].a_un.a_val && auxvt[AT_GID].a_un.a_val == auxvt[AT_EGID].a_un.a_val)) { _dl_secure = 0; @@ -227,7 +228,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr, * different from what the ELF header says for ET_DYN/PIE executables. */ { - int i; + unsigned int i; ElfW(Phdr) *ppnt = (ElfW(Phdr) *) auxvt[AT_PHDR].a_un.a_val; for (i = 0; i < auxvt[AT_PHNUM].a_un.a_val; i++, ppnt++) |