slackware-current/source/y/bsd-games/patches/0012-Fix-include-stdio.h-C-incompatibility.patch
Patrick J Volkerding 66b0761fe7 Sun Feb 17 23:44:53 UTC 2019
ap/cups-filters-1.22.1-x86_64-1.txz:  Upgraded.
y/bsd-games-2.17-x86_64-1.txz:  Upgraded.
2019-02-18 08:59:47 +01:00

43 lines
1.4 KiB
Diff

From: Sven Joachim <svenjoac@gmx.de>
Date: Wed, 1 Nov 2017 09:03:28 +0100
Subject: Fix include/stdio.h C++ incompatibility
I have seen the following error when building bsdgames with
libncurses6:
In file included from /usr/include/wchar.h:36:0,
from /usr/include/curses.h:400,
from dab/box.cc:48:
include/stdio.h:38:14: error: conflicting declaration of 'char* fgetln(FILE*, size_t*)' with 'C' linkage
extern char *fgetln(FILE *stream, size_t *len);
^~~~~~
In file included from /usr/include/curses.h:183:0,
from dab/box.cc:48:
include/stdio.h:38:14: note: previous declaration with 'C++' linkage
extern char *fgetln(FILE *stream, size_t *len);
^~~~~~
GNUmakefile:298: recipe for target 'dab/box.o' failed
Declaring fgetln as extern "C" fixes this. The patch has been taken
from the Fedora bsd-games package, see
https://src.fedoraproject.org/rpms/bsd-games/blob/ac743bec7031199ec6fc09b6eb3760ffcfcfd277/f/bsd-games-2.17-stdio-c++.patch.
---
include/stdio.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/stdio.h b/include/stdio.h
index 32a4b71..b1ac049 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -35,5 +35,11 @@
#include_next <stdio.h>
#ifndef HAVE_fgetln
+#ifdef __cplusplus
+extern "C" {
+#endif
extern char *fgetln(FILE *stream, size_t *len);
+#ifdef __cplusplus
+}
+#endif
#endif