#555 closed defect (fixed)
-isystem preprocessor flag prevents detection of <X11/xpm.h> and <X11/forms.h>
Reported by: | Owned by: | lasgouttes | |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | converters | Version: | 1.4.0cvs |
Severity: | normal | Keywords: | VERIFIED |
Cc: | larsbj@… |
Description
The use of -isystem flag, causes cpp to complain on every invocation:
cpp0: warning: changing search order for system directory "/opt/include"
cpp0: warning: as it has already been specified as a non-system directory
And, apparently, prevents detection of the two crucial include files:
[...]
configure:9579: checking for X11/xpm.h
configure:9589: c++ -E -I/opt/include/X11 -I/opt/include -I/opt/include
-isys
tem /opt/include conftest.C >/dev/null 2>conftest.out
cpp0: warning: changing search order for system directory "/opt/include"
cpp0: warning: as it has already been specified as a non-system directory
configure: failed program was:
#line 9584 "configure"
#include "confdefs.h"
#include <X11/xpm.h>
[....]
configure:9801: checking for X11/forms.h
configure:9811: c++ -E -I/opt/include/X11 -I/opt/include -I/opt/include
-isys
tem /opt/include conftest.C >/dev/null 2>conftest.out
cpp0: warning: changing search order for system directory "/opt/include"
cpp0: warning: as it has already been specified as a non-system directory
configure: failed program was:
#line 9806 "configure"
#include "confdefs.h"
#include <X11/forms.h>
[...]
Change History (13)
comment:1 by , 22 years ago
comment:2 by , 22 years ago
Component: | configure → convertors |
---|
On Thursday 01 August 2002 01:57 pm, bugzilla-daemon@… wrote:
That shouldn't be breaking the tests, that's something else (and
should work in the 1.2 branch cvs).
What system are you running ? What did you pass to configure ? Did you
run autogen.sh by any chance ?
/opt is the PREFIX on my system and is passed to configure as such. Yes,
I believe, the FreeBSD port will call autogen.
I quoted the relevant entries from config.log. I am guessing, that any
output to stderr by c++ -E is taken as a failure by the configure.
It's a minor problem, though I don't know why it's decided
/opt/include is a system header directory, because it's not.
Because it is specified as a PREFIX? And it is the same as X11BASE (and
LOCALBASE) on my system. And the port passes
--with-extra-inc="${X11BASE}/include/X11 ${X11BASE}/include \
${LOCALBASE}/include"
to configure.
-mi
comment:4 by , 22 years ago
Sorry if the question is stupid (related to BSD ports, maybe), but what
does 'passed as a PREFIX' mean? using --prefix in configure?
Also, is it really clear that all these --with-extra-inc are needed?
It seems that the port is a bit maximalist in what directories it wants to
search (and cpp is not very intelligent about what to do then).
comment:7 by , 22 years ago
comment:8 by , 22 years ago
Rather than adding even more complexity to our scripts, we should think
about workarounds: remove this -isystem thing, have the port fixed, or whatever.
comment:9 by , 22 years ago
Cc: | added |
---|
Hmm, looking at our hack in configure.in, isn't this a gcc mis-configuration
issue ? It should do fixincludes itself, or set that as a system dir.
comment:10 by , 21 years ago
fyi:
Changes in GCC 3.2.1
C/C++/Objective-C
- The method of constructing the list of directories to be searched for
header files has been revised. If a directory named by a -I option is a standard
system include directory, the option is ignored to ensure that the default
search order for system directories and the special treatment of system header
files are not defeated.
comment:11 by , 21 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Version: | 1.2.1 → 1.4.0cvs |
Well, I removed the -isystem stuff, so ...
comment:12 by , 21 years ago
Keywords: | VERIFIED added |
---|
comment:13 by , 10 years ago
Component: | convertors → converters |
---|
That shouldn't be breaking the tests, that's something else (and should
work in the 1.2 branch cvs).
What system are you running ? What did you pass to configure ? Did you
run autogen.sh by any chance ?
It's a minor problem, though I don't know why it's decided /opt/include
is a system header directory, because it's not.