lol

mesa: tweak the patch after 7fe69244af7

In particular, do not try dlopening libudev by a non-absolute path.
/cc @wkennington.

+10 -16
+10 -16
pkgs/development/libraries/mesa/dlopen-absolute-paths.diff
··· 1 - diff --git a/src/loader/loader.c b/src/loader/loader.c 2 - index 4fdf3c2..0cd62b5 100644 1 + diff --git a/loader.c b/loader.c 2 + index 4fdf3c2..69ea22d 100644 3 3 --- a/src/loader/loader.c 4 4 +++ b/src/loader/loader.c 5 - @@ -112,7 +112,6 @@ static void *udev_handle = NULL; 5 + @@ -112,7 +112,7 @@ static void *udev_handle = NULL; 6 6 static void * 7 7 udev_dlopen_handle(void) 8 8 { 9 9 - char name[80]; 10 + + char name[256]; 10 11 unsigned flags = RTLD_NOLOAD | RTLD_LOCAL | RTLD_LAZY; 11 12 int version; 12 13 13 - @@ -125,12 +124,9 @@ udev_dlopen_handle(void) 14 - 14 + @@ -126,7 +126,7 @@ udev_dlopen_handle(void) 15 15 /* First try opening an already linked libudev, then try loading one */ 16 16 do { 17 - - for (version = 1; version >= 0; version--) { 17 + for (version = 1; version >= 0; version--) { 18 18 - snprintf(name, sizeof(name), "libudev.so.%d", version); 19 - - udev_handle = dlopen(name, flags); 20 - - if (udev_handle) 21 - - return udev_handle; 22 - - } 23 - + udev_handle = dlopen("@udev@/lib/libudev.so", flags); 24 - + if (udev_handle) 25 - + return udev_handle; 26 - 27 - if ((flags & RTLD_NOLOAD) == 0) 28 - break; 19 + + snprintf(name, sizeof(name), "@udev@/lib/libudev.so.%d", version); 20 + udev_handle = dlopen(name, flags); 21 + if (udev_handle) 22 + return udev_handle;