gcc 4.7 breaks guile 1.8.6
Upstream bug is: http://savannah.gnu.org/bugs/?29583
bug #29583: gcc 4.5 breaks guile 1.8.7
fix doc snarfing with fedora 12
(process-multiline-directive): Be more accepting of source location
markers in the preprocessed source, by adding a couple cases in which
they can appear. Not foolproof, but it does adapt to what new GCCs are
putting out (e.g. cpp (GCC) 4.4.2 20091222 (Red Hat 4.4.2-20)).
--- guile-1.8.4/scripts/snarf-check-and-output-texi.orig 2013-12-17 08:05:14.466575700 -0800
+++ guile-1.8.4/scripts/snarf-check-and-output-texi 2013-12-17 08:06:34.623311834 -0800
@@ -267,6 +267,17 @@
(set! *file* file)
(set! *line* line))
+ ;; newer gccs like to throw around more location markers into the
+ ;; preprocessed source; these (hash . hash) bits are what they translate to
+ ;; in snarfy terms.
+ (('location ('string . file) ('int . line) ('hash . 'hash))
+ (set! *file* file)
+ (set! *line* line))
+
+ (('location ('hash . 'hash) ('string . file) ('int . line) ('hash . 'hash))
+ (set! *file* file)
+ (set! *line* line))
+
(('arglist rest ...)
(set! *args* (do-arglist rest)))