http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54696



             Bug #: 54696

           Summary: Makefile doesn't propagate CPPFLAGS properly

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: noah.b.lav...@gmail.com





I tried to build GCC 4.7.2 from the source tarball, specifying a -I option in

CPPFLAGS because I keep header files in a nonstandard place

(~/.nix-profile/include).



Unfortunately, gcc failed to build. Instead it produced the error



gcc  -I../.././libcpp -I. -I../.././libcpp/../include -I../.././libcpp/include 

-g -fkeep-inline-functions -W -Wall -Wwrite-strings -Wmissing-format-attribute

-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wc++-compat

-pedantic -Wno-long-long  -I../.././libcpp -I. -I../.././libcpp/../include

-I../.././libcpp/include  -c -o charset.o -MT charset.o -MMD -MP -MF

.deps/charset.Tpo ../.././libcpp/charset.c

In file included from ../.././libcpp/charset.c:22:0:

../.././libcpp/system.h:276:21: fatal error: libintl.h: No such file or

directory

compilation terminated.



But libintl.h exists in ~/.nix-profile/include. The problem is clear: the -I

statement from CPPFLAGS is not being used.



This particular statement is part of compiling libcpp, so I looked at the

makefile for libcpp, and found this line:



CPPFLAGS = 



This is the problem. It seems clear that what is happening is that the CPPFLAGS

that I use when I configure the main GCC executable are not being passed on to

the configuration script for libcpp, which then doesn't know where to find

libintl. When I edit the makefile by hand to set CPPFLAGS correctly, the build

gets past that point.



One odd note is that I also pass LDFLAGS, and that *is* passed on to libcpp. So

it is not that all environment variables aren't propagated.

Reply via email to