From df74defbb64026811fe676309a236fe649116d45 Mon Sep 17 00:00:00 2001
From: David Kastrup <dak@gnu.org>
Date: Mon, 28 Nov 2011 14:14:49 +0100
Subject: [PATCH] Work around compiler bug, Issue 1997: segfault in
 tablature-negative-fret.ly

---
 configure.in        |  1 +
 stepmake/aclocal.m4 | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/configure.in b/configure.in
index 74a27bbfa8..8dc4e5ca97 100644
--- a/configure.in
+++ b/configure.in
@@ -99,6 +99,7 @@ STEPMAKE_GCC_OR_CLANG(REQUIRED, 3.4)
 
 STEPMAKE_CXX(REQUIRED)
 STEPMAKE_GXX_OR_CLANG(REQUIRED, 3.4)
+STEPMAKE_GXXCODEGENBUG
 STEPMAKE_CXXTEMPLATE
 STEPMAKE_STL_DATA_METHOD
 STEPMAKE_LIB(REQUIRED)
diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4
index c29621b409..8045c3ef0a 100644
--- a/stepmake/aclocal.m4
+++ b/stepmake/aclocal.m4
@@ -286,6 +286,18 @@ AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
     fi
 ])
 
+AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [
+    AC_MSG_CHECKING([options for known g++ tail call bug])
+    case "$GXX:$CXX_VERSION" in
+	yes:400600?)
+	    AC_MSG_RESULT([-fno-optimize-sibling-calls])
+	    CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls"
+	    ;;
+	*) AC_MSG_RESULT([none])
+    esac
+    AC_SUBST(CXXFLAGS)
+])
+
 
 AC_DEFUN(STEPMAKE_DATADIR, [
     if test "$datadir" = "\${prefix}/share"; then
-- 
2.39.5