interp
interp(filename, (sizeof filename), s); /* interpret any % escapes */
interp(filename, (sizeof filename), scrbuf);
void interp(char *, size_t, const char *);
interp(longlognam, sizeof longlognam, "%N");
interp(longlognam, sizeof longlognam, "%L");
interp(s,PUSHSIZE,str);
obj->interp = (const char *)(uintptr_t)vaddr;
obj->interp = (void *)(uintptr_t)phdr->p_vaddr;
dbg(("%s: PT_INTERP %p", obj->path, obj->interp));
if (obj->interp)
obj->interp = (void *)(obj->relocbase + (Elf_Addr)(uintptr_t)obj->interp);
if (_rtld_objmain->interp != NULL &&
strcmp(_rtld_objmain->interp, _rtld_objself.path) != 0) {
_rtld_objself.path = xstrdup(_rtld_objmain->interp);
const char *interp; /* Pathname of the interpreter, if any */
char *interp,
if (interp && epp->ep_interp == NULL) {
if (strcmp(interp, "/usr/libexec/ld.elf_so") == 0 ||
strcmp(interp, "/libexec/ld.elf_so") == 0) {
snprintf(path, MAXPATHLEN, "%s-%s", interp, interp_suffix);
snprintf(interp, MAXPATHLEN, "%s", path);
char *interp = NULL;
interp = PNBUF_GET();
error = exec_read(l, epp->ep_vp, pp->p_offset, interp,
if (strnlen(interp, pp->p_filesz) != pp->p_filesz - 1) {
error = (*epp->ep_esch->u.elf_probe_func)(l, epp, eh, interp,
if (interp) {
if ((error = elf_load_interp(l, epp, interp,
PNBUF_PUT(interp);
interp = NULL;
if (interp)
PNBUF_PUT(interp);
char *interp(const char *);
cp = interp(p->v_value);