diff --git a/recipes/libiconv/01_redox.patch b/recipes/libiconv/01_redox.patch
new file mode 100644
index 0000000000000000000000000000000000000000..35034786642cf9a1bb39ce2a41f10bd10ff6f1d1
--- /dev/null
+++ b/recipes/libiconv/01_redox.patch
@@ -0,0 +1,30 @@
+diff -rupNw source-original/srclib/getprogname.c source/srclib/getprogname.c
+--- source-original/srclib/getprogname.c	2017-01-02 00:02:21.000000000 +0100
++++ source/srclib/getprogname.c	2018-10-03 19:32:07.382785859 +0200
+@@ -144,7 +144,7 @@ getprogname (void)
+     }
+   return p;
+ # else
+-#  error "getprogname module not ported to this OS"
++  return "?";
+ # endif
+ }
+ 
+diff -rupNw source-original/srclib/signal.in.h source/srclib/signal.in.h
+--- source-original/srclib/signal.in.h	2017-01-02 00:02:22.000000000 +0100
++++ source/srclib/signal.in.h	2018-10-03 19:46:53.323659264 +0200
+@@ -186,12 +186,12 @@ _GL_WARN_ON_USE (raise, "raise can crash
+ 
+ /* Maximum signal number + 1.  */
+ #  ifndef NSIG
+-#   define NSIG 32
++#   define NSIG 64
+ #  endif
+ 
+ /* This code supports only 32 signals.  */
+ #  if !GNULIB_defined_verify_NSIG_constraint
+-typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
++typedef int verify_NSIG_constraint[NSIG <= 64 ? 1 : -1];
+ #   define GNULIB_defined_verify_NSIG_constraint 1
+ #  endif
+ 
diff --git a/recipes/libiconv/recipe.sh b/recipes/libiconv/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..580e044462ba15dff48eddece026e1a37858350d
--- /dev/null
+++ b/recipes/libiconv/recipe.sh
@@ -0,0 +1,34 @@
+VERSION=1.15
+TAR=https://ftp.gnu.org/pub/gnu/libiconv/libiconv-$VERSION.tar.gz
+
+function recipe_version {
+    echo "$VERSION"
+    skip=1
+}
+
+function recipe_update {
+    echo "skipping update"
+    skip=1
+}
+
+function recipe_build {
+    ./configure --host=${HOST} --prefix='/' --disable-shared --enable-static
+    make
+    skip=1
+}
+
+function recipe_test {
+    echo "skipping test"
+    skip=1
+}
+
+function recipe_clean {
+    make clean
+    skip=1
+}
+
+function recipe_stage {
+    dest="$(realpath $1)"
+    make DESTDIR="$dest" install
+    skip=1
+}