Re: File system name conflicts on Windows

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Fri, 12 Jun 2009 01:15:58 +1200

Alex Rousskov wrote:
> 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.
>

Way ahead of you there Alex. The ident shuffle was moved forward to fix
this.

We can expect cashes if any of the renamed files matches case-less to
any remaining files in src/. Two identical in different sub-dir are
safe. So with a little care I don't think its going to be a huge problem
for the duration of the transition.

Just one more item on the things to do for each shuffle.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE6 or 3.0.STABLE15
   Current Beta Squid 3.1.0.8 or 3.0.STABLE16-RC1
Received on Thu Jun 11 2009 - 13:16:04 MDT

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