mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-11 01:23:51 +02:00
31 lines
1.1 KiB
Diff
31 lines
1.1 KiB
Diff
From d8dc2b7c0289b12eeef4feff65e3c918111b0f55 Mon Sep 17 00:00:00 2001
|
|
From: Rich Felker <dalias@aerifal.cx>
|
|
Date: Sun, 23 Nov 2014 16:17:57 -0500
|
|
Subject: [PATCH] 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.
|
|
---
|
|
src/ldso/dynlink.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
|
|
index 1de430c..00af886 100644
|
|
--- src/ldso/dynlink.c
|
|
+++ src/ldso/dynlink.c
|
|
@@ -645,6 +645,8 @@ static void decode_dyn(struct dso *p)
|
|
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))
|
|
--
|
|
2.2.0
|
|
|