adapt dynamic linker for new binutils versions that omit DT_RPATH

the new DT_RUNPATH semantics for search order are always used, and
since binutils had always set both DT_RPATH and DT_RUNPATH when the
latter was used, processing only DT_RPATH worked fine. however, recent
binutils has stopped generating DT_RPATH when DT_RUNPATH is used,
which broke support for this feature completely.
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 1de430c..00af886 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -645,6 +645,8 @@
 		p->hashtab = (void *)(p->base + dyn[DT_HASH]);
 	if (dyn[0]&(1<<DT_RPATH))
 		p->rpath_orig = (void *)(p->strings + dyn[DT_RPATH]);
+	if (dyn[0]&(1<<DT_RUNPATH))
+		p->rpath_orig = (void *)(p->strings + dyn[DT_RUNPATH]);
 	if (search_vec(p->dynv, dyn, DT_GNU_HASH))
 		p->ghashtab = (void *)(p->base + *dyn);
 	if (search_vec(p->dynv, dyn, DT_VERSYM))