Hi Maciej,
Am 17.11.2009 um 15:58 schrieb Maciej (Matchek) Blizinski:
I'm looking at building postgresql-8.4.1. I used this db engine
before a lot and I'd like to have its recent version.
The main problem with compilation is this:
http://archives.postgresql.org/pgsql-general/2009-11/msg00687.php
In short, the old includes from /opt/csw/postgresql/include are
breaking the build. How would you fix it? I guess that uninstalling
the devel postgresql package would help, but it's not the proper
solution. It looks like a general problem: suppose there are old,
incompatible header files in the include/ directory. The application
needs include its foo.h, which is present in both /opt/csw/include/
and its source directory. The code using the header file just says:
#include "foo.h"
The foo.h file is also in, say ../../../src/include. The compiler
invocation looks like this:
/opt/studio/SOS11/SUNWspro/bin/cc -Xa -xO3 -xarch=v8
-I/opt/csw/include -I../../../src/include -I/opt/csw/include -c -o
nodeGroup.o nodeGroup.c
What should it look like to compile correctly, assuming that the
/opt/csw/include/foo.h files is incompatible with the software being
built?
The problem is that GAR adds the include to CPPFLAGS and CFLAGS. An
upstream maintainer (can't remember who) already pointed out that
it is not good to pass -I in CPPFLAGS and CFLAGS and that CPPFLAGS
would be sufficient. The Makefile from Postgres makes the assumption
that it takes CFLAGS, then adds his includes and then the CPPFLAGS.
Putting the include in CFLAGS erranously prepends it before his own
flags.
I had this problem myself some times but didn't recognize the cause
properly:
grep filter-out */trunk/Makefile | grep CFLAGS
I even used argument-reordering on compile invocation for flac to
work around it which may have better be solved in the above way.
Now that I have understood it I would propose to remove
the "-I" from CFLAGS in GAR, but I am afraid that this may break
existing Makefiles as they may rely on it. This is especially true
for manual builds which pass CFLAGS explicitly without passing
CPPFLAGS explicitly.
What do the C-gurus say? James? Anybody?
Best regards
-- Dago
_______________________________________________
maintainers mailing list
[email protected]
https://lists.opencsw.org/mailman/listinfo/maintainers