summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2021-10-29 23:30:43 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2021-10-30 17:47:42 +0200
commit1001e63bd8309b58880902e70f65115952b1db04 (patch)
treead0a227199e44c7b0bfb6ed8e1089b4f6349d8fb
parent16dbcc605532bfa9da31b64c56cbba602f78be49 (diff)
gnutls: Fix build with uclibc-ng
Recent gnutls update introduced "gnulib module fopen" (gl/fopen.c) which tries to get fopen() declaration from stdio.h by defining __need_FILE before including the header. While this seems unnecessary for the purpose (alegedly __need_FILE is used by headers including stdio.h to get the FILE declaration while avoiding namespace pollution), uClibc-ng's stdio.h behaves unexpected if __need_FILE is defined: 1) features.h is not included, therefore __BEGIN_NAMESPACE_STD (and likely more) is not known later on 2) it declares *only* FILE, nothing else To avoid these problems, don't define __need_FILE in gnutls and pray this works with other libc's as well. Actually one should fix uClibc-ng instead. Signed-off-by: Phil Sutter <phil@nwl.cc>
-rw-r--r--package/gnutls/patches/0001-uclibc.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/package/gnutls/patches/0001-uclibc.patch b/package/gnutls/patches/0001-uclibc.patch
new file mode 100644
index 000000000..b1b90016a
--- /dev/null
+++ b/package/gnutls/patches/0001-uclibc.patch
@@ -0,0 +1,32 @@
+diff -ur gnutls-3.6.16.orig/gl/fopen.c gnutls-3.6.16/gl/fopen.c
+--- gnutls-3.6.16.orig/gl/fopen.c 2021-05-24 10:04:41.000000000 +0200
++++ gnutls-3.6.16/gl/fopen.c 2021-10-29 14:28:33.850290352 +0200
+@@ -19,12 +19,10 @@
+ /* If the user's config.h happens to include <stdio.h>, let it include only
+ the system's <stdio.h> here, so that orig_fopen doesn't recurse to
+ rpl_fopen. */
+-#define __need_FILE
+ #include <config.h>
+
+ /* Get the original definition of fopen. It might be defined as a macro. */
+ #include <stdio.h>
+-#undef __need_FILE
+
+ static FILE *
+ orig_fopen (const char *filename, const char *mode)
+diff -ur gnutls-3.6.16.orig/src/gl/fopen.c gnutls-3.6.16/src/gl/fopen.c
+--- gnutls-3.6.16.orig/src/gl/fopen.c 2021-05-24 10:05:13.000000000 +0200
++++ gnutls-3.6.16/src/gl/fopen.c 2021-10-29 14:28:41.435290892 +0200
+@@ -19,12 +19,10 @@
+ /* If the user's config.h happens to include <stdio.h>, let it include only
+ the system's <stdio.h> here, so that orig_fopen doesn't recurse to
+ rpl_fopen. */
+-#define __need_FILE
+ #include <config.h>
+
+ /* Get the original definition of fopen. It might be defined as a macro. */
+ #include <stdio.h>
+-#undef __need_FILE
+
+ static FILE *
+ orig_fopen (const char *filename, const char *mode)