]> git.saurik.com Git - bison.git/commitdiff
build: avoid infinite recursions on include_next
authorAkim Demaille <akim@lrde.epita.fr>
Fri, 16 Jan 2015 08:25:37 +0000 (09:25 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Fri, 16 Jan 2015 09:52:17 +0000 (10:52 +0100)
On MacOS X 10.5 PPC with Apple's GCC 4.0.1:

  % uname -a
  Darwin aria.cielonegro.org 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:0
  1 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh
  % gcc --version
  powerpc-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5493)
  Copyright (C) 2005 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

building in place enters into an infinite recursion on "#include_next":

  % gmake V=1
  [snip]
  depbase=`echo lib/math.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
  gcc -std=gnu99    -I. -Ilib -I. -I./lib   -g -O2 -MT lib/math.o -MD -MP -MF $depbase.Tpo -c -o lib/math.o lib/math.c &&\
  mv -f $depbase.Tpo $depbase.Po
  In file included from lib/math.h:27,
                   from lib/math.h:27,
                   from lib/math.h:27,
                   from lib/math.h:27,
  [snip]
                   from lib/math.h:27,
                   from lib/math.h:27,
                   from lib/math.c:3:
  lib/math.h:27:23: error: #include nested too deeply
  Makefile:3414: recipe for target 'lib/math.o' failed
  gmake[2]: *** [lib/math.o] Error 1

Using -I./lib instead of -Ilib fixes the problem.

Reported by Pho.
<https://lists.gnu.org/archive/html/bison-patches/2014-01/msg00000.html>

* Makefile.am (AM_CPPFLAGS): Use -I./lib instead of -Ilib.

Makefile.am
THANKS

index fd3db0f13691c485b477605c50e74c58860e090e..b6135cbd1700dde96a172263e59c6bde745770be 100644 (file)
@@ -39,8 +39,9 @@ AM_YFLAGS = -d -v -Werror -Wall -Wno-yacc --report=all
 
 # Initialization before completion by local.mk's.
 AM_CFLAGS = $(WARN_CFLAGS)
-# Find builddir/src/scan-code.c etc.
-AM_CPPFLAGS = -I. -Ilib -I$(top_srcdir) -I$(top_srcdir)/lib
+# Find builddir/src/scan-code.c etc.  For some reason "-I./lib"
+# instead of "-Ilib" avoids infinite recursions on #include_next.
+AM_CPPFLAGS = -I. -I./lib -I$(top_srcdir) -I$(top_srcdir)/lib
 BUILT_SOURCES =
 CLEANFILES =
 DISTCLEANFILES =
diff --git a/THANKS b/THANKS
index b9849103075145af48cf3c6ee2d98d7382d2a1da..875ac961258927e0c454b61815996410373286e7 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -113,6 +113,7 @@ Peter Fales               psfales@lucent.com
 Peter Hamorsky            hamo@upjs.sk
 Peter Simons              simons@cryp.to
 Petr Machata              pmachata@redhat.com
+Pho                       pho@cielonegro.org
 Piotr Gackiewicz          gacek@intertel.com.pl
 Quentin Hocquet           hocquet@gostai.com
 Quoc Peyrot               chojin@lrde.epita.fr