From 82c9b261f457523f408e703956182fd3aa9a5dfc Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 29 Jan 2019 07:12:19 -0600
Subject: [PATCH] chelf: init at 0.2.2

Utility for changing default thread stack size
(via PT_GNU_STACK program header)
as supported by musl 1.1.21+.

patchelf for default thread stack size :).

This makes it possible to use a larger value
without changing the source, which is preferred
but may be awkward or otherwise undesirable in some cases.

The value can also be set via LDFLAGS with some linkers,
such as with GNU ld using "-Wl,-z,stack-size=N".

See:
https://git.musl-libc.org/cgit/musl/commit/?id=7b3348a98c139b4b4238384e52d4b0eb237e4833
---
 pkgs/tools/misc/chelf/default.nix | 25 +++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix   |  2 ++
 2 files changed, 27 insertions(+)
 create mode 100644 pkgs/tools/misc/chelf/default.nix

diff --git a/pkgs/tools/misc/chelf/default.nix b/pkgs/tools/misc/chelf/default.nix
new file mode 100644
index 000000000000..4c54ab239d29
--- /dev/null
+++ b/pkgs/tools/misc/chelf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "chelf-${version}";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "Gottox";
+    repo = "chelf";
+    rev = "v${version}";
+    sha256 = "0xwd84aynyqsi2kcndbff176vmhrak3jmn3lfcwya59653pppjr6";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv chelf $out/bin/chelf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "change or display the stack size of an ELF binary";
+    homepage = https://github.com/Gottox/chelf;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 285ed3b75450..15684544fdbb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1112,6 +1112,8 @@ in
 
   cfdyndns = callPackage ../applications/networking/dyndns/cfdyndns { };
 
+  chelf = callPackage ../tools/misc/chelf { };
+
   cht-sh = callPackage ../tools/misc/cht.sh { };
 
   ckbcomp = callPackage ../tools/X11/ckbcomp { };