components/guile/patches/gcc4-fix.patch
changeset 1605 7fc7910b6d94
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/guile/patches/gcc4-fix.patch	Tue Dec 17 15:59:46 2013 -0800
@@ -0,0 +1,33 @@
+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
+
+  * module/scripts/snarf-check-and-output-texi.scm
+    (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)))
+