static int ssp_used;
static int runtime;
static int ldd_mode;
+static int ldso_fail;
static jmp_buf rtld_fail;
static pthread_rwlock_t lock;
static struct debug debug;
dso->name, name);
if (runtime) longjmp(rtld_fail, 1);
dprintf(2, "%s\n", errbuf);
- _exit(127);
+ ldso_fail = 1;
+ continue;
}
sym_size = sym->st_size;
} else {
p->strings + p->dynv[i+1], p->name);
if (runtime) longjmp(rtld_fail, 1);
dprintf(2, "%s\n", errbuf);
- _exit(127);
+ ldso_fail = 1;
+ continue;
}
if (runtime) {
tmp = realloc(*deps, sizeof(*tmp)*(ndeps+2));
reloc_all(app->next);
reloc_all(app);
+ if (ldso_fail) _exit(127);
if (ldd_mode) _exit(0);
/* Switch to runtime mode: any further failures in the dynamic