From 0bd63ce8befc8b7f0ac6e9158aa0610739549b9b Mon Sep 17 00:00:00 2001
From: Erik Schnetter <schnetter@gmail.com>
Date: Fri, 2 Sep 2016 10:53:59 -0400
Subject: [PATCH] Make libiconv work with C11

C11 does not provide gets() any more, so we cannot reference it
---
 .../repos/builtin/packages/libiconv/gets.patch      | 13 +++++++++++++
 .../repos/builtin/packages/libiconv/package.py      |  4 ++++
 2 files changed, 17 insertions(+)
 create mode 100644 var/spack/repos/builtin/packages/libiconv/gets.patch

diff --git a/var/spack/repos/builtin/packages/libiconv/gets.patch b/var/spack/repos/builtin/packages/libiconv/gets.patch
new file mode 100644
index 0000000000..7c4b5562ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libiconv/gets.patch
@@ -0,0 +1,13 @@
+--- a/srclib/stdio.in.h
++++ b/srclib/stdio.in.h
+@@ -692,10 +692,6 @@
+ #  undef gets
+ # endif
+ _GL_CXXALIASWARN (gets);
+-/* It is very rare that the developer ever has full control of stdin,
+-   so any use of gets warrants an unconditional warning.  Assume it is
+-   always declared, since it is required by C89.  */
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+ 
+ 
diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py
index f2eeb07b26..982929b80a 100644
--- a/var/spack/repos/builtin/packages/libiconv/package.py
+++ b/var/spack/repos/builtin/packages/libiconv/package.py
@@ -34,6 +34,10 @@ class Libiconv(Package):
 
     version('1.14', 'e34509b1623cec449dfeb73d7ce9c6c6')
 
+    # We cannot set up a warning for gets(), since gets() is not part
+    # of C11 any more and thus might not exist.
+    patch("gets.patch")
+
     def install(self, spec, prefix):
         configure('--prefix={0}'.format(prefix),
                   '--enable-extra-encodings')
-- 
GitLab