[cfe-dev] Tests and include paths

Daniel Dunbar daniel at zuster.org
Wed Aug 12 17:34:46 PDT 2009


Hi John,

These are my opinions:

1. WIth regard to the first problem, this is a configuration problem
(or perhaps an autodetection problem). The compiler should not have
the giant union of all possible include paths, it should be configured
for the include paths that match the system. For now since we do have
the giant union, I have no problem adding some more standard MSVC
paths.

2. I think using standard headers in tests is fine. After all, users
of a C compiler probably want #include <stdlib.h> to work, for
example.

 - Daniel

On Wed, Aug 12, 2009 at 12:26 PM, John
Thompson<john.thompson.jtsoftware at gmail.com> wrote:
> Some of the tests have #includes which can be problematic across platforms.
>
> Part of the difficulty is in how the default include paths are done now.
>
> Setting C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJCPLUS_INCLUDE_PATH, and
> OBJC_INCLUDE_PATH to the host compiler's includes directory allows the
> compiler to find the include files, except that in running the tests with
> the Python script, the environment variable doesn't seem to be getting
> through.  It did seem to work while running the compiter under the debugger
> or directly from the command line, however.
>
> The InitHeaderSearch.cpp file sets up a hard-coded path for VS9 on a g:
> drive, which of course, is not likely to match most users.  Perhaps
> also adding:
>
> C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\INCLUDE
> C:\\Program Files\\Microsoft Visual Studio 8\\VC\\include
>
> might match most users, since these are the default installation paths.  And
> while we're at it, throw in Cywin's path:
>
> C:\\cygwin\\usr\\include
>
> I can give you a patch for this, if you want.  After adding this, the failed
> test count went from 230 to 204.
>
> Or, it wouldn't be too hard to use the environment variables VS80COMNTOOLS
> and VS90COMNTOOLS to look for them, or perhaps something from the registry.
> Shall I try this and submit a patch for this instead?
>
> However, a key issue I want to get to in this posting is that
> the compiler might not be ready for everything in the host compiler's
> includes, specifically both Visual Studio and Cygwin in this case, as
> unexpected messages arising from compiling these files are making some tests
> fail.
>
> My question is, do we really want to #include standard headers in the tests?
>
> Or, if we need certain definitions from them, should we perhaps create a set
> of canonical headers with just the definitions needed for the tests and
> include those instead, changing the #include's in the tests to be relative,
> to make it obvious?
> Or, what other solutions might there be?  Because of licensing, I'm guessing
> you couldn't just check-in some GNU headers from a platform deemed the
> reference standard.
>
> -John
> --
> John Thompson
> John.Thompson.JTSoftware at gmail.com
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>




More information about the cfe-dev mailing list