[Pkg-gauche-devel] Bug#882328: Bug#882328: gauche-c-wrapper FTBFS with glibc 2.25
Jens Thiele
karme at karme.de
Sat Nov 25 12:50:06 UTC 2017
Adrian Bunk <bunk at debian.org> writes:
> Testing c-wrapper ... <stdin>:444:13: error: invalid "#pragma GCC warning" directive
[...]
> ././ffitest.h:828: GCC exitted abnormally (at token: *eoi*)
> ././ffitest.h:828: #f
> ././ffitest.h:828: process 44299 exitted abnormally with exit code 256 (at token: *eoi*)
> *** ERROR: process 44299 exitted abnormally with exit code 256
> While loading "./cwrappertest.scm" at line 13
> Stack Trace:
> _______________________________________
> 0 (with-error-handler (lambda (e) (let ((e e)) (%guard-rec e e ...
> expanded from (guard (e ((<message-condition> e) (let ((errmsg (make-error
> at "../lib/c-wrapper/c-parser.scm":1104
> 1 (parse-macro include-dirs headers options)
> at "../lib/c-wrapper/c-parser.scm":1159
> 2 (trunk)
> at "../lib/c-wrapper/c-parser.scm":67
> 3 (c-parse (if (list? include-dirs) include-dirs (list include- ...
> at "../lib/c-wrapper.scm":105
> Makefile:69: recipe for target 'check-c' failed
> make[2]: *** [check-c] Error 70
gauche-c-wrapper fails to handle the "__glibc_macro_warning" macro
included by stdio.h -> libio.h -> cdefs.h
/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
intended for use in preprocessor macros.
Note: MESSAGE must be a _single_ string; concatenation of string
literals is not supported. */
#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)
# define __glibc_macro_warning1(message) _Pragma (#message)
# define __glibc_macro_warning(message) \
__glibc_macro_warning1 (GCC warning message)
#else
# define __glibc_macro_warning(msg)
#endif
an ugly workaround would be to skip that macro by name with something
like:
diff -Nur gauche-c-wrapper-0.6.1.orig/lib/c-wrapper/c-parser.scm gauche-c-wrapper-0.6.1/lib/c-wrapper/c-parser.scm
--- gauche-c-wrapper-0.6.1.orig/lib/c-wrapper/c-parser.scm 2009-08-08 16:44:52.000000000 +0200
+++ gauche-c-wrapper-0.6.1/lib/c-wrapper/c-parser.scm 2017-11-24 21:57:47.071382470 +0100
@@ -1115,7 +1115,10 @@
(raise e))))
(call-with-gcc-io include-dirs headers options
(lambda (in out)
- (let ((macro-list (queue->list (macro-queue))))
+ (let ((macro-list (filter (lambda(x)
+ (not (string=? (car x)
+ "__glibc_macro_warning(message)")))
+ (queue->list (macro-queue)))))
(for-each (lambda (macro-def)
(display (car macro-def) out)
(newline out))
More information about the Pkg-gauche-devel
mailing list