On Tue, 24 Jun 2008, John E. Malmberg wrote: > Andy Dougherty wrote:
> > To the best of my recollection, here's how it's supposed to look for header > > files: > > > > 1. Configure guesses a location $usrinc for header files. Usually, > > this is just /usr/include. What did Configure guess for $usrinc > > in your case? (I think we used to prompt for this, but don't any > > more.) Setting -Dusrinc='none' from the Configure command line (or > > from a hints file) should disable this file checking. > > The VMS standard header files are not in a directory, they are in a text > library file that compiler knows how to find. That's fine. It's probably a harmless failure. Still, setting usrinc='none' will bypass this test entirely, since we know in advance it's never going to succeed anyway. > > 2. For each header file $wanted, Configure looks to see if the file > > $usrinc/$wanted exists. a. If it does, Configure says the header > > file is found. > > b. If it does not, then Configure tries locating the header file > > with the C preprocessor. Essentially, Configure does something > > like: > > echo "#include <$wanted>" | $cc -E - | grep $wanted > > to see if the file is found. > > I just tested that code, it fails on VMS. The CC wrapper does not support > piping the output that way. I will have to add that to the GNV todo list. > > I have not figured out where it put the output of the CC -E from the standard > input, so that is another mystery. We might get by with using a cppstdin wrapper. For compilers that don't take input from the standard input, there's a little shell script that copies stdin to a file and then runs cc on it. For AIX's cc, we use the -M flag, since the -E flag doesn't help. It would be relatively easy to add in another special case for VMS. That might be sufficient. > > > IMHO: If the configure is looking for ANSI/ISO library and compiler > > > behavior, > > > it should first test for the routine using the standard headers as the > > > program does, and only fall back to the other tests if needed. > > > > I'm afraid I don't know exactly what you mean by "test for the routine using > > the standard headers". > > I mean use the system supplied headers that contain the prototype for the > routine. But the existence of a prototype in the system-supplied headers does not guarantee the availability of the routine. There are oodles of counter examples. But I think I know what you mean -- the test for the routine ought to include the appropriate headers. > > I think fixing the Configure tests is probably a better plan than adding > > additional wrappers and workarounds to the VMS compilation scripts. > > Sounds good to me. -- Andy Dougherty [EMAIL PROTECTED]