Re: File system name conflicts on Windows

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Wed, 10 Jun 2009 16:04:46 -0600

On 06/01/2009 04:04 AM, Amos Jeffries wrote:
> Guido Serassio wrote:
>> Hi Amos,
>>
>> At 03.13 01/06/2009, Amos Jeffries wrote:
>>> Serassio Guido wrote:
>>> > Hi,
>>> >
>>> > This is from acl/Ident.c:
>>> >
>>> > #include "acl/Ident.h"
>>> > #include "ident.h"
>>> >
>>> > This cannot work on Windows, because the acl/Ident.h file will be
>>> > included two times ...
>>> >
>>> > What rule should be used to rename one of the conflicting files ?
>>>
>>>
>>> Best long-term bet is to not have -I. anywhere in the paths if you can
>>> remove it. I have cleared it out for the non-windows builders already.
>>> Everything is referenced relative to ~/src/ and ~/ paths now.
>>
>> MinGW uses the standard autotools based builder, the only difference
>> is the case insensitive file system, and -I. is not present in the
>> compile command (IntRange.cc was the first failing source file):
>>
>> guido.serassio_at_TITANO /c/work/mgw-3.nt/src/acl
>> $ make IntRange.o
>> if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src
>> -I../../include -I/mingw/include -I/usr/include/libxml2 -Werror
>> -Wall -Wpointer-arith -Wwrite-strings -Wcomments
>> -D_FILE_OFFSET_BITS=64 -g -O2 -mthreads -MT IntRange.o -MD -MP -MF
>> ".deps/IntRange.Tpo" -c -o IntRange.o IntRange.cc; \
>> then mv -f ".deps/IntRange.Tpo" ".deps/IntRange.Po"; else rm -f
>> ".deps/IntRange.Tpo"; exit 1; fi
>>
>> guido.serassio_at_TITANO /c/work/mgw-3.nt/src/acl
>
> Which means the pre-compiler is still using -I. despite not being given
> it to use. :(
>
>>
>>> I'm thinking initially a src/ident/ folder with all the ident stuff
>>> inside it was planned. http://wiki.squid-cache.org/Features/SourceLayout
>>>
>>> That would make them ident/ident.h and ident/AclIdent.h
>>
>> OK, for now I will fix the problem renaming src/acl/Ident.h in
>> src/acl/AclIdent.h
>>
>> Regards
>>
>> Guido
>>
>
> Okay. Just running build tests on the full shuffling fix for this. Will
> commit tonight if it passes them all.

Just wanted to note that using acl/AclAnything is borderline OK as a
short-term fix but is not the right long-term solution. It would be
better to actually rename the offending file instead.

Long-term, src/ident.h should be moved and #included as "somepath/ident.h".

FWIW, we have "-I../../src" which is the same as -I. for header files
directly in src/

Cheers,

Alex.
Received on Wed Jun 10 2009 - 23:47:36 MDT

This archive was generated by hypermail 2.2.0 : Thu Jun 11 2009 - 12:00:04 MDT