MacPorts 1.4 rc2

Vincent Lefevre vincent-opdarw at vinc17.org
Thu Mar 15 07:04:54 PDT 2007


On 2007-03-15 14:37:08 +0100, Vincent Lefevre wrote:
> If I unset C_INCLUDE_PATH, then the build doesn't fail. So, this means
> that readline.h is taken from /opt/local/include/readline/readline.h
> (with my C_INCLUDE_PATH), even though -I"/usr/include" is used. Any
> explanation?

This is confirmed with:

prunille:~> cat test.c
#include <readline/readline.h>
prunille:~> gcc -E -I/usr/include test.c | grep readline/readline.h
# 1 "/opt/local/include/readline/readline.h" 1 3
[...]

Similar problem under Linux. BTW, this bug seems to occur only with
/usr/include (perhaps because it is a system directory). The gcc man
page says:

  -isystem dir
     Search dir for header files, after all directories specified by -I
     but before the standard system directories.  Mark it as a system
     directory, so that it gets the same special treatment as is applied
     to the standard system directories.

so that one should have a path like:

  /usr/include /opt/local/include /usr/include

the first /usr/include being specified by -I and the last one being
in the standard system directories list.

As MacPorts needs /usr/include, it should probably unset CPATH,
C_INCLUDE_PATH and LIBRARY_PATH.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)



More information about the macports-dev mailing list