Cygwin testsuite regressions: -dirafter and system files

David.Billinghurst@riotinto.com David.Billinghurst@riotinto.com
Thu Mar 1 19:13:00 GMT 2001


>Category:       preprocessor
>Synopsis:       Cygwin testsuite regressions: -dirafter and system files
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Class:          sw-bug
>Submitter-Id:   net
>Originator:     David Billinghurst
>Release:        gcc 3.0 prerelease
>Environment:
NT4 SP1 / cygwin 
>Description:
This report summarises recent discussions on gcc-patches and gcc-bugs concerning a gcc 3.0 pre-release regression from gcc-2.95.2 on cygwin.

The following five testsuite tests pass with gcc-2.95.2 but fail with gcc 3.0.  

The tests that fail are:
  gcc.dg/cpp/19990407-1.c
  gcc.dg/cpp/19990703-1.c
  gcc.dg/cpp/20000625-2.c
  gcc.dg/cpp/strp1.c
  gcc.dg/cpp/strp2.c


Each test gnerates warnings of the form "/usr/include/sys/types.h:110: ISO C89 does not support `long long'"

The errors occur because /usr/include/sys/types.h is not treated as system header.  To be treated as a system header /usr/include  must be referenced in the specs using -isystem /usr/include, but it is referenced using -dirafter /usr/include.
>How-To-Repeat:

>Fix:
There are at least two fixes.  

1. Treat paths given with -dirafter as system files, see http://gcc.gnu.org/ml/gcc-patches/2001-02/msg01742.html .  I can confirm this bootstraps and fixes the regressions.  This change is relatively safe, as only a couple of targets use -idirafter.

2. Change the cygwin specs to that we use -isystem rather than -dirafter.  This approach could also work - see http://gcc.gnu.org/ml/gcc-bugs/2001-02/msg00678.html but see the follow-up posts as there are some issues to resolve as the use of -dirafter was deliberate.
>Unformatted:

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



More information about the Cygwin mailing list