musl: patch from master for recent binutils (via Alpine).

This commit is contained in:
Juan RP 2014-12-29 09:44:29 +01:00
parent bc11098e29
commit 74644e432b
2 changed files with 32 additions and 1 deletions

View file

@ -0,0 +1,31 @@
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

View file

@ -1,7 +1,7 @@
# Template file for 'musl'.
pkgname=musl
version=1.1.5
revision=3
revision=4
build_style=gnu-configure
configure_args="--prefix=/usr --disable-gcc-wrapper"
conflicts="glibc>=0"