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