Opened 22 years ago

Closed 21 years ago

Last modified 21 years ago

#555 closed defect (fixed)

-isystem preprocessor flag prevents detection of <X11/xpm.h> and <X11/forms.h>

Reported by: mi+lyx@… 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 levon, 22 years ago

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.

comment:2 by mi+lyx@…, 22 years ago

Component: configureconvertors

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:3 by levon, 22 years ago

please attach the entire config.log

comment:4 by lasgouttes, 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:5 by levon, 22 years ago

Isn't this a bug of whoever packaged lyx, not us ?

comment:6 by lasgouttes, 22 years ago

I tend to think that it could/should be worked around in the port.

comment:8 by lasgouttes, 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 levon, 22 years ago

Cc: larsbj@… 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 levon, 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.

http://gcc.gnu.org/gcc-3.2/changes.html

comment:11 by levon, 21 years ago

Resolution: fixed
Status: newclosed
Version: 1.2.11.4.0cvs

Well, I removed the -isystem stuff, so ...

comment:12 by michael.gerz@…, 21 years ago

Keywords: VERIFIED added

comment:13 by Richard Heck, 10 years ago

Component: convertorsconverters
Note: See TracTickets for help on using tickets.