}
}
+static void free_all(struct dso *p)
+{
+ struct dso *n;
+ while (p) {
+ n = p->next;
+ if (p->map) free(p);
+ p = n;
+ }
+}
+
void *__dynlink(int argc, char **argv, size_t *got)
{
size_t *auxv, aux[AUX_CNT] = {0};
reloc_all(head);
+ free_all(head);
+
errno = 0;
return (void *)aux[AT_ENTRY];
}