[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [4/11] Native MSVC support (file-magic-glob)
From: |
Charles Wilson |
Subject: |
Re: [4/11] Native MSVC support (file-magic-glob) |
Date: |
Thu, 12 Jul 2007 03:32:18 -0400 |
User-agent: |
Thunderbird 1.5.0.12 (Windows/20070509) |
Peter Rosin wrote:
* libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD),
libltdl/config/ltmain.m4sh (func_mode_link): On Windows,
find potential libs regardless of file name case.
Hmm. Well, this one might pose some problems. On cygwin, there exists
something called "managed mounts" where cygwin transmogrifies all
filenames (using RFC2396 encoding -- see
http://www.rfc-editor.org/rfc/rfc2396.txt section 2.4) to work around
the limitations of Windows' filesystems.
In particular, it allows you to have distinct files in the same
directory whose names differ only in case. e.g.
FOO.a ==> %46%4F%4F.a
Foo.a ==> %46oo.a
foo.a ==> foo.a
(If you look at the directory using a non-cygwin app, the files are
actually names as they appear in the right hand column above)
If managed mounts are in use, and some idiot actually has libraries like
this [*], what does -lfoo mean? With this patch, it seems a bit --
well, not really random, but non-intuitive and unpredictable to the
casual user. Whichever of FOO.a, Foo.a, or foo.a is returned first by
the shell glob -- which may differ depending on $SHELL and the
underlying glob implementation[**] -- is the one you get.
OTOH, this may be a case of "Doctor, it hurts when I do this", "OK,
don't do that then": don't be stupid when naming distinct libraries. If
you insist on being stupid, we can't help you.
In fact, I rather lean toward this approach -- and to accepting Peter's
patch in principle. There is such a thing as being TOO defensive when
programming.
As to implementation...ye gods. Turning every libname into
[lL][iI][bB][nN][aA][mM][eE]
by using this sed expr
s/[aA]/[aA]/g;s/[bB]/[bB]/g;<22 more>;s/[yY]/[yY]/g;s/[zZ]/[zZ]/g;
Isn't there a better way? (I can't think of one offhand, given how this
is used to generate a list of "potential_libs", but still...this can't
be very efficient.)
--
Chuck
[*] on my generic linux box,
ls -1 /usr/lib | tr '[:lower:]' '[:upper:]' | sort | uniq -d
has no hits. So linux isn't stupid.
[**] the cygwin kernel's glob -- which may or may not be used by $SHELL
-- in CVS HEAD was changed a while back, so behavior under
snapshots/1.7.0 *may* differ from current cygwin 1.5.24.
+ if test -n "$file_magic_glob"; then
+ libnameglob=`$ECHO "X$libname" | $Xsed -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
for i in $lib_search_path $sys_lib_search_path
$shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
for potent_lib in $potential_libs; do
+case $host_os in
+cygwin* | mingw* | pw32*)
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e
"s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ ;;
+*)
+ file_magic_glob=
+ ;;
- Re: [3/11] Native MSVC support (msvc-cwrapper), (continued)
- Re: [3/11] Native MSVC support (msvc-cwrapper), Charles Wilson, 2007/07/12
- Re: [3/11] Native MSVC support (msvc-cwrapper), Charles Wilson, 2007/07/18
- Re: [3/11] Native MSVC support (msvc-cwrapper), Ralf Wildenhues, 2007/07/19
- Re: [3/11] Native MSVC support (msvc-cwrapper), Charles Wilson, 2007/07/19
- Re: [3/11] Native MSVC support (msvc-cwrapper), Bob Friesenhahn, 2007/07/19
- Re: [3/11] Native MSVC support (msvc-cwrapper), Gary V. Vaughan, 2007/07/20
- Re: [3/11] Native MSVC support (msvc-cwrapper), Peter Rosin, 2007/07/21
- Re: [3/11] Native MSVC support (msvc-cwrapper), Charles Wilson, 2007/07/21
- Re: [3/11] Native MSVC support (msvc-cwrapper), Peter Rosin, 2007/07/22
[4/11] Native MSVC support (file-magic-glob), Peter Rosin, 2007/07/10
- Re: [4/11] Native MSVC support (file-magic-glob),
Charles Wilson <=
- Re: [4/11] Native MSVC support (file-magic-glob), Peter Rosin, 2007/07/12
- Re: [4/11] Native MSVC support (file-magic-glob), Paolo Bonzini, 2007/07/13
- Re: [4/11] Native MSVC support (file-magic-glob), Ralf Menzel, 2007/07/13
- Re: [4/11] Native MSVC support (file-magic-glob), Paolo Bonzini, 2007/07/13
- Re: [4/11] Native MSVC support (file-magic-glob), Peter Rosin, 2007/07/17
- Re: [4/11] Native MSVC support (file-magic-glob), Eric Blake, 2007/07/17
- Re: [4/11] Native MSVC support (file-magic-glob), Peter Rosin, 2007/07/18
- Re: [4/11] Native MSVC support (file-magic-glob), Charles Wilson, 2007/07/18
[5/11] Native MSVC support (dashL-envvar), Peter Rosin, 2007/07/10