summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimir Kalnitsky <klntsky@gmail.com>2022-11-27 19:00:03 +0400
committerVladimir Kalnitsky <klntsky@gmail.com>2022-11-27 19:00:03 +0400
commitcf5b4eae5f34acb11c3c3d02fde904a354609c71 (patch)
tree5f9d794af6b932b1d2a4cb0d384ea9eee48b99d7
parentc32deeb0530b20d24bc7ba8277e0136c2cb9495a (diff)
downloadnixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar.gz
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar.bz2
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar.lz
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar.xz
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.tar.zst
nixpkgs-cf5b4eae5f34acb11c3c3d02fde904a354609c71.zip
Fix hotpatch: skip tests that assume .so files presence at hardcoded paths
-rw-r--r--pkgs/development/libraries/hotpatch/default.nix2
-rw-r--r--pkgs/development/libraries/hotpatch/no-loader-test.patch25
2 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/development/libraries/hotpatch/default.nix b/pkgs/development/libraries/hotpatch/default.nix
index 84803159a2b..66be524a86c 100644
--- a/pkgs/development/libraries/hotpatch/default.nix
+++ b/pkgs/development/libraries/hotpatch/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
     LD_LIBRARY_PATH=$(pwd)/src make test
   '';
 
+  patches = [ ./no-loader-test.patch ];
+
   meta = with lib; {
     description = "Hot patching executables on Linux using .so file injection";
     homepage = src.meta.homepage;
diff --git a/pkgs/development/libraries/hotpatch/no-loader-test.patch b/pkgs/development/libraries/hotpatch/no-loader-test.patch
new file mode 100644
index 00000000000..5bc975bb848
--- /dev/null
+++ b/pkgs/development/libraries/hotpatch/no-loader-test.patch
@@ -0,0 +1,25 @@
+diff --git a/test/loader.c b/test/loader.c
+index 4e3dfdc..7f98d94 100644
+--- a/test/loader.c
++++ b/test/loader.c
+@@ -54,20 +54,6 @@ int main(int argc, char **argv)
+ 	assert(ret < 0);
+ 	ret = ld_find_library(maps, mapnum, "libc", false, NULL, 6);
+ 	assert(ret >= 0);
+-#if __WORDSIZE == 64
+-	ret = ld_find_library(maps, mapnum, "/lib64/ld-linux-x86-64.so.2",
+-						  true, NULL, 6);
+-	assert(ret >= 0);
+-	ret = ld_find_library(maps, mapnum, "/lib/ld-linux-x86-64.so.2",
+-						  false, NULL, 6);
+-#else
+-	ret = ld_find_library(maps, mapnum, "/lib/ld-linux.so.2",
+-						  true, NULL, 6);
+-	assert(ret >= 0);
+-	ret = ld_find_library(maps, mapnum, "/lib32/ld-linux.so.2",
+-						  false, NULL, 6);
+-#endif
+-	assert(ret < 0);
+ 	ld_free_maps(maps, mapnum);
+     return 0;
+ }