svn commit: trunk/uClibc/utils
vapier at uclibc.org
vapier at uclibc.org
Fri Dec 30 06:26:57 UTC 2005
Author: vapier
Date: 2005-12-29 22:26:55 -0800 (Thu, 29 Dec 2005)
New Revision: 13021
Log:
use ElfW(Addr) instead of ElfW(Word) since elf word types are always 32bits in size, even on 64bit hosts, while Addr is the proper native size ... also get creative with our signed/unsigned usage to get rid of warnings
Modified:
trunk/uClibc/utils/readsoname2.c
Changeset:
Modified: trunk/uClibc/utils/readsoname2.c
===================================================================
--- trunk/uClibc/utils/readsoname2.c 2005-12-30 06:10:22 UTC (rev 13020)
+++ trunk/uClibc/utils/readsoname2.c 2005-12-30 06:26:55 UTC (rev 13021)
@@ -2,14 +2,14 @@
{
ElfW(Ehdr) *epnt;
ElfW(Phdr) *ppnt;
- int i, j;
+ unsigned int i, j;
char *header;
- ElfW(Word) dynamic_addr = 0;
- ElfW(Word) dynamic_size = 0;
+ ElfW(Addr) dynamic_addr = 0;
+ ElfW(Addr) dynamic_size = 0;
unsigned long page_size = getpagesize();
- ElfW(Word) strtab_val = 0;
- ElfW(Word) needed_val;
- ElfW(Sword) loadaddr = -1;
+ ElfW(Addr) strtab_val = 0;
+ ElfW(Addr) needed_val;
+ ElfW(Addr) loadaddr = -1;
ElfW(Dyn) *dpnt;
struct stat st;
char *needed;
@@ -62,7 +62,7 @@
ppnt->p_filesz=bswap_32(ppnt->p_filesz);
}
- if (loadaddr == -1 && ppnt->p_type == PT_LOAD)
+ if (loadaddr == (ElfW(Addr))-1 && ppnt->p_type == PT_LOAD)
loadaddr = (ppnt->p_vaddr & ~(page_size-1)) -
(ppnt->p_offset & ~(page_size-1));
if(ppnt->p_type == 2)
@@ -104,8 +104,8 @@
if (dpnt->d_tag == DT_SONAME || dpnt->d_tag == DT_NEEDED)
{
needed_val = dpnt->d_un.d_val;
- if (needed_val + strtab_val - loadaddr >= 0 ||
- needed_val + strtab_val - loadaddr < st.st_size)
+ if (needed_val + strtab_val >= loadaddr ||
+ needed_val + strtab_val < st.st_size - loadaddr)
{
needed = (char *) (header - loadaddr + strtab_val + needed_val);
More information about the uClibc-cvs
mailing list