From b659c67d56062e91c0749ec49fff5b6f7bfbd98c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Sat, 24 Jul 2021 23:47:47 -0300 Subject: [PATCH] musl: allow libraries in /usr/local/lib to override system ones. This was already possible by setting an RPATH, using LD_LIBRARY_PATH or /etc/ld-musl-$ARCH.path. However, none of these should be necessary, since that should be the default behavior. --- srcpkgs/musl/patches/default-sys_path.patch | 17 +++++++++++++++++ srcpkgs/musl/template | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/musl/patches/default-sys_path.patch diff --git a/srcpkgs/musl/patches/default-sys_path.patch b/srcpkgs/musl/patches/default-sys_path.patch new file mode 100644 index 000000000000..a4c4abb37e76 --- /dev/null +++ b/srcpkgs/musl/patches/default-sys_path.patch @@ -0,0 +1,17 @@ +Since Void implements usrmerge, /lib is a symlink to /usr/lib. musl's default, +here, makes it so the libraries under /usr/local/lib won't override the system +ones, which is not the desired behavior. + +diff --git a/ldso/dynlink.c b/ldso/dynlink.c +index 5b9c8be4..f6532968 100644 +--- a/ldso/dynlink.c ++++ b/ldso/dynlink.c +@@ -1095,7 +1095,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) + sys_path = ""; + } + } +- if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib"; ++ if (!sys_path) sys_path = "/usr/local/lib:/usr/lib"; + fd = path_open(name, sys_path, buf, sizeof buf); + } + pathname = buf; diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template index a429ccaf999a..d30c99a563a0 100644 --- a/srcpkgs/musl/template +++ b/srcpkgs/musl/template @@ -2,7 +2,7 @@ pkgname=musl reverts="1.2.0_1" version=1.1.24 -revision=8 +revision=9 archs="*-musl" bootstrap=yes build_style=gnu-configure