[gobject-introspection] gitypelib.c: on macOS, treat @-prefixed shlib paths as absolute
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] gitypelib.c: on macOS, treat @-prefixed shlib paths as absolute
- Date: Thu, 2 Dec 2021 22:53:16 +0000 (UTC)
commit 56df7b0f007fe260b2bd26ef9cc331ad73022700
Author: Rok Mandeljc <rok mandeljc gmail com>
Date: Sat Nov 27 20:05:32 2021 +0100
gitypelib.c: on macOS, treat @-prefixed shlib paths as absolute
On macOS, @-prefixed shlib paths (@rpath, @executable_path, and
@loader_path) need to be treated as absolute. Trying to combine them
with a configured library path produces a mangled path that is
unresolvable and may cause unintended side effects (such as loading
the library from a fall-back location on macOS 12.0.1).
girepository/gitypelib.c | 10 ++++++++++
1 file changed, 10 insertions(+)
---
diff --git a/girepository/gitypelib.c b/girepository/gitypelib.c
index 904dff45..d5ef4506 100644
--- a/girepository/gitypelib.c
+++ b/girepository/gitypelib.c
@@ -2262,7 +2262,17 @@ load_one_shared_library (const char *shlib)
GSList *p;
GModule *m;
+#ifdef __APPLE__
+ /* On macOS, @-prefixed shlib paths (@rpath, @executable_path, @loader_path)
+ need to be treated as absolute; trying to combine them with a
+ configured library path produces a mangled path that is unresolvable
+ and may cause unintended side effects (such as loading the library
+ from a fall-back location on macOS 12.0.1).
+ */
+ if (!g_path_is_absolute (shlib) && !g_str_has_prefix (shlib, "@"))
+#else
if (!g_path_is_absolute (shlib))
+#endif
{
/* First try in configured library paths */
for (p = library_paths; p; p = p->next)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]