Andy:

> Unfortunetaly I missed the first passes of the discussion, just some
>  thoughts.. 
>  
>  If you throw the flag -v on gcc when you compile it tells you where it
>  searches for include-files and which it finds.
>  
>  Throw your commandline in this direction and I can see if I can help
>  you further.

Thanks; here's my command line:

gcc -save-temps -H -dD -g -v -O3 -m486 -I/usr/include -idirafter 
/cygdrive/h/usr/include  ./dcheck.c -o /usr/bin/dcheck 

Notice the use of -v, along with -H, -dD and -save-temps to provide the 
following:

Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/specs
gcc version 2.95.2-6 19991024 (cygwin experimental)
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/cpp.exe -lang-c -v -I/usr/include 
-D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -D__386__ -D__i386 -D_X86=1 
-D__STDC__=1 -D__stdcall=__attribute__((__stdcall__)) 
-D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x)) 
-D__i386__ -D__386__ -D__i386 -D_X86=1 -D__STDC__=1 
-D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) 
-D__declspec(x)=__attribute__((x)) -D__i386 -Asystem(winnt) -Acpu(i386) 
-Amachine(i386) -D__OPTIMIZE__ -g -H -dD -remap -Acpu(i386) -Amachine(i386) 
-Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ -D__CYGWIN32__ 
-D__CYGWIN__ -Dunix -D__unix__ -D__unix -isystem /usr/local/include 
-idirafter /usr/include -D_WIN32 -DWINNT -idirafter /usr/include/w32api 
-idirafter /cygdrive/h/usr/include ./dcheck.c dcheck.i

GNU CPP version 2.95.2-6 19991024 (cygwin experimental) (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include
 /usr/include
 /usr/include/w32api
 /cygdrive/h/usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/../../../../include/g++-3
End of omitted list.
/usr/include/isglobal.h
 /usr/include/stdio.h
  /usr/include/_ansi.h
   /usr/include/sys/config.h
  /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h
  /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stdarg.h
  /usr/include/sys/reent.h
   /usr/include/time.h
    /usr/include/machine/time.h
    /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h
    /usr/include/sys/types.h
     /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/include/stddef.h
     /usr/include/machine/types.h
    /usr/include/sys/features.h
 /usr/include/errno.h
  /usr/include/sys/errno.h
 /usr/include/disam.h
  /usr/include/isport.h
  /cygdrive/h/usr/include/CXlinkspec.h  <== NOTE: FILE WITH #error AS FIRST 
LINE!  Comp should stop here.
 /cygdrive/h/usr/include/isdecl.h
 /cygdrive/h/usr/include/isdclint.h

 /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2-6/cc1.exe dcheck.i -quiet -dumpbase 
dcheck.c -dD -m486 -g -O3 -version -o dcheck.s
GNU C version 2.95.2-6 19991024 (cygwin experimental) (i686-pc-cygwin) 
compiled by GNU C version 2.95.2-6 19991024 (cygwin experimental).

(...COMPILE continues to errant output because CXlinkspec.h was not 
processed) 

AFTERWARDS the dcheck.i file contains (blank lines suppressed):

# 1 "./dcheck.c"

# 1 "/usr/include/isglobal.h" 1 3

(...many lines suppressed for length ...  see list of #includes above)

# 1 "/usr/include/isport.h" 1 3
#define ISDECL                  
typedef        char     S8;      
 
# 31 "/usr/include/disam.h" 2 3

# 1 "/cygdrive/h/usr/include/CXlinkspec.h" 1 3
# 41 "/usr/include/disam.h" 2 3

dll_data U32 isrecnum;             
dll_data int isreclen; 
(...compile continues ...)

THE numbers following each #include indicate "going to" and "returning from" 
statuses, and they can be quite confusing.

NOTE how the line at CXlinkspec.h is followed immediately by disam.h.  This 
is very odd.  In a full listing, a .i file contains many blank lines, 
essentially one for each comment, etc., which is not part of the "active" .i 
information; #defines, etc., appear whenever they are actually used.  And the 
first line of CXlinkspec is a #error instruction, which should have aborted 
all further processing. 

If I move the CXlinkspec.h from /cygdrive/h to cygdrive/c (the windows 
machine) the compiler likewise finds the file there, and the #error causes it 
to properly abort processing at that point.

Any ideas of others tests I can run to help isolate this problem?  I admit 
that it is most likely in my environment, but the fact that I am not getting 
any sort of error message when the CXlinkspec.h is found but not processed 
seems very telling.

Thanks,
John

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

Reply via email to