https://src.fedoraproject.org/rpms/libmcrypt/blob/e02fbd614a5b7ba093e9e15ab322e7eb02d64e3b/f/libmcrypt-c99.patch

Add return and argument types to fake prototypes in mcrypt_symb.c.
This avoids build failures with future compilers that do not support
implicit function declarations.

Also fix a minor type error in the perminit calls in the Triple DES
implementation.

Submitted upstream: <https://sourceforge.net/p/mcrypt/patches/15/>

diff --git a/lib/Makefile.am b/lib/Makefile.am
index a1a09578858aaf3c..a92f150627a1f610 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -23,8 +23,8 @@ mcrypt_symb.c: mcrypt_internal.h
 	@echo "/* This is automatically created. Don't touch... */" >> mcrypt_symb.c
 	@echo "" >> mcrypt_symb.c
 	-@for i in $(EXTRA_ALGOS); do \
-		if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
-		if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+		if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+		if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
 	done
 	@echo "" >> mcrypt_symb.c
 	@echo "const mcrypt_preloaded mps[] = {" >> mcrypt_symb.c
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 1baaa1e94be1abce..e0e690d1c831370f 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -561,8 +561,8 @@ mcrypt_symb.c: mcrypt_internal.h
 	@echo "/* This is automatically created. Don't touch... */" >> mcrypt_symb.c
 	@echo "" >> mcrypt_symb.c
 	-@for i in $(EXTRA_ALGOS); do \
-		if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
-		if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern "$$3"();";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+		if test -f ../modules/algorithms/$$i.c; then cat ../modules/algorithms/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
+		if test -f ../modules/modes/$$i.c; then cat ../modules/modes/$$i.c 2>/dev/null|grep define|grep LTX|awk '{print "extern void "$$3"(void);";}' >> mcrypt_symb.c 2>/dev/null; fi; \
 	done
 	@echo "" >> mcrypt_symb.c
 	@echo "const mcrypt_preloaded mps[] = {" >> mcrypt_symb.c
diff --git a/modules/algorithms/tripledes.c b/modules/algorithms/tripledes.c
index 98e9bd45b4f336b1..2737d2fd8fd02a3f 100644
--- a/modules/algorithms/tripledes.c
+++ b/modules/algorithms/tripledes.c
@@ -201,8 +201,8 @@ static int _mcrypt_desinit(TRIPLEDES_KEY * key)
 	spinit(key, 0);
 	spinit(key, 1);
 	spinit(key, 2);
-	perminit(&key->iperm, ip);
-	perminit(&key->fperm, fp);
+	perminit(key->iperm, ip);
+	perminit(key->fperm, fp);
 
 
 	return 0;
https://src.fedoraproject.org/rpms/libmcrypt/blob/e02fbd614a5b7ba093e9e15ab322e7eb02d64e3b/f/libmcrypt-configure-c99-2.patch

Fix glitches in the readdir and bcopy probes.  They were
just invalid.

diff --git a/configure b/configure
index d0fb8783e147654b..4fe7660a16359171 100755
--- a/configure
+++ b/configure
@@ -6639,7 +6639,7 @@ fi
 done
 
 
-for ac_func in readdir,,
+for ac_func in readdir
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -6741,7 +6741,7 @@ fi
 done
 
 
-for ac_func in bcopy,,
+for ac_func in bcopy
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
diff --git a/configure.in b/configure.in
index a815778931728ec2..f0c9a0e8f73e1153 100644
--- a/configure.in
+++ b/configure.in
@@ -204,8 +204,8 @@ AC_FUNC_MEMCMP
 AC_FUNC_REALLOC
 
 AC_CHECK_FUNCS([bzero memmove memset mlock readdir_r strchr strdup strrchr])
-AC_CHECK_FUNCS([readdir,,])
-AC_CHECK_FUNCS([bcopy,,])
+AC_CHECK_FUNCS([readdir])
+AC_CHECK_FUNCS([bcopy])
 
 dnl Checks for libraries.
 AC_C_BIGENDIAN
