No subject
Wed Feb 14 08:32:59 UTC 2007
Modified:
trunk/uClibc/ldso/ldso/dl-elf.c
Changeset:
Modified: trunk/uClibc/ldso/ldso/dl-elf.c
===================================================================
--- trunk/uClibc/ldso/ldso/dl-elf.c 2007-02-16 17:17:07 UTC (rev 17909)
+++ trunk/uClibc/ldso/ldso/dl-elf.c 2007-02-16 18:02:50 UTC (rev 17910)
@@ -607,9 +607,19 @@
_dl_memset((*rpnt)->next, 0, sizeof(struct dyn_elf));
(*rpnt)->next->prev = (*rpnt);
*rpnt = (*rpnt)->next;
- (*rpnt)->dyn = tpnt;
- tpnt->symbol_scope = _dl_symbol_tables;
}
+#ifndef SHARED
+ /* When statically linked, the first time we dlopen a DSO
+ * the *rpnt is NULL, so we need to allocate memory for it,
+ * and initialize the _dl_symbol_table.
+ */
+ else {
+ *rpnt = _dl_symbol_tables = (struct dyn_elf *) _dl_malloc(sizeof(struct dyn_elf));
+ _dl_memset(*rpnt, 0, sizeof(struct dyn_elf));
+ }
+#endif
+ (*rpnt)->dyn = tpnt;
+ tpnt->symbol_scope = _dl_symbol_tables;
tpnt->usage_count++;
tpnt->libtype = elf_lib;
More information about the uClibc-cvs
mailing list