[uClibc-cvs] svn commit: trunk/uClibc/ldso/ldso/mips

andersen at uclibc.org andersen at uclibc.org
Mon Mar 14 22:13:36 UTC 2005


Author: andersen
Date: 2005-03-14 15:13:36 -0700 (Mon, 14 Mar 2005)
New Revision: 10003

Log:
Make mips at least compile


Modified:
   trunk/uClibc/ldso/ldso/mips/dl-startup.h
   trunk/uClibc/ldso/ldso/mips/dl-sysdep.h


Changeset:
Modified: trunk/uClibc/ldso/ldso/mips/dl-startup.h
===================================================================
--- trunk/uClibc/ldso/ldso/mips/dl-startup.h	2005-03-14 22:09:14 UTC (rev 10002)
+++ trunk/uClibc/ldso/ldso/mips/dl-startup.h	2005-03-14 22:13:36 UTC (rev 10003)
@@ -51,15 +51,16 @@
 #define PERFORM_BOOTSTRAP_GOT(got, tpnt)					\
 do {										\
 	Elf32_Sym *sym;								\
-	unsigned long i;							\
+	Elf32_Addr i;							\
+	Elf32_Addr *mipsgot = (void *) got;					\
 										\
 	/* Add load address displacement to all local GOT entries */		\
 	i = 2;									\
 	while (i < tpnt->dynamic_info[DT_MIPS_LOCAL_GOTNO_IDX])			\
-		got[i++] += load_addr;						\
+		mipsgot[i++] += load_addr;					\
 										\
 	/* Handle global GOT entries */						\
-	got += tpnt->dynamic_info[DT_MIPS_LOCAL_GOTNO_IDX];			\
+	mipsgot += tpnt->dynamic_info[DT_MIPS_LOCAL_GOTNO_IDX];			\
 	sym = (Elf32_Sym *) (tpnt->dynamic_info[DT_SYMTAB] +			\
 		 load_addr) + tpnt->dynamic_info[DT_MIPS_GOTSYM_IDX];		\
 	i = tpnt->dynamic_info[DT_MIPS_SYMTABNO_IDX] - tpnt->dynamic_info[DT_MIPS_GOTSYM_IDX];\
@@ -67,23 +68,22 @@
 	while (i--) {								\
 		if (sym->st_shndx == SHN_UNDEF ||				\
 			sym->st_shndx == SHN_COMMON)				\
-			*got = load_addr + sym->st_value;			\
+			*mipsgot = load_addr + sym->st_value;			\
 		else if (ELF32_ST_TYPE(sym->st_info) == STT_FUNC &&		\
-			*got != sym->st_value)					\
-			*got += load_addr;					\
+			*mipsgot != sym->st_value)				\
+			*mipsgot += load_addr;					\
 		else if (ELF32_ST_TYPE(sym->st_info) == STT_SECTION) {		\
 			if (sym->st_other == 0)					\
-				*got += load_addr;				\
+				*mipsgot += load_addr;				\
 		}								\
 		else								\
-			*got = load_addr + sym->st_value;			\
+			*mipsgot = load_addr + sym->st_value;			\
 										\
-		got++;								\
+		mipsgot++;							\
 		sym++;								\
 	}									\
 } while (0)
 
-
 /*
  * Here is a macro to perform a relocation.  This is only used when
  * bootstrapping the dynamic loader.

Modified: trunk/uClibc/ldso/ldso/mips/dl-sysdep.h
===================================================================
--- trunk/uClibc/ldso/ldso/mips/dl-sysdep.h	2005-03-14 22:09:14 UTC (rev 10002)
+++ trunk/uClibc/ldso/ldso/mips/dl-sysdep.h	2005-03-14 22:13:36 UTC (rev 10003)
@@ -8,6 +8,8 @@
 /* Define this if the system uses RELOCA.  */
 #undef ELF_USES_RELOCA
 #include <elf.h>
+#include <link.h>
+
 #define ARCH_NUM 3
 #define DT_MIPS_GOTSYM_IDX	(DT_NUM + OS_NUM)
 #define DT_MIPS_LOCAL_GOTNO_IDX	(DT_NUM + OS_NUM +1)




More information about the uClibc-cvs mailing list