delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/05/31/00:48:15

From: dumser AT ti DOT com (James Dumser)
Subject: Re: Sergey's patches
31 May 1997 00:48:15 -0700 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <199705301844.NAA25730.cygnus.gnu-win32@lesol1.dseg.ti.com>
Mime-Version: 1.0
Original-To: gnu-win32 AT cygnus DOT com
In-Reply-To: <3.0.1.32.19970530085650.006a9c14@cathy.ijs.si> from "Tomaz Mertelj" at May 30, 97 08:56:50 am
X-MIMI-Options: headers none
X-Mailer: ELM [version 2.4 PL23]
Original-Sender: owner-gnu-win32 AT cygnus DOT com

On Fri, 30 May 1997 08:56:50 +0200, Tomaz Mertelj <tomaz DOT mertelj AT ijs DOT si>
  wrote:
>It works both on WIN95 and NT4.0 if you replace also B18 cygwin.dll with
>Sergey's patched one. But unfortunately, imake and some other binutils stop
>to work with the new cygwin.dll.
>
>With the new cygwin.dll I was also able to succesfuly build und run the
>exemplary reloctable dll at
>http://www.cygnus.com/misc/gnu-win32/building-reloc-dlls.txt which does not
>run with the original one.

One thing you need to be aware of is that switching to Sergey's
cygwin.dll changes the way symlinks are identified. If you had symlinks
prior to installing the rebuilt cygwin.dll, they don't disappear; but
they are no longer recognized as symlinks until you set their system
bit (requiring the use of attrib, not chmod -- or changing properties
one by one).

As Sergey has explained, the reason for doing this was to spead up
fstats. Previously, each file had to be opened and read to determine if
it was a symbolic link. With Sergey's modifications, the open/read test
is only done if the system bit is set -- if it's not set, cygwin.dll
assumes it's not a symlink.

At one point, I believe Sergey indicated he had a utility to search for
and update these "non-conforming" symlink files; but it was not
included in the files he uploaded for distribution. I found my symlinks
using Start->Find->Files or Folders->Advanced to search for
"!<symlink>". (For more than one partition/drive, you have to set the
"Look in:" field under Name & Location.) Save the list to a file. If
you set the system bit on extra files, it's not catastrophic; but you
lose some of the performance speedup this change is meant to provide so
it would be best if you verify your list to make sure they are actually
symlinks. (For example, cygwin.dll will be found because it contains
"!<symlink>", but it is definitely not a symlink.) Real symlinks will
contain only 1 line ("!<symlink>" & the path pointed to) so they should
be very small -- less than 100 bytes unless you've got REALLY long
directory paths. Once verified, you can do something like
	for f in `cat links.list`; do
	  attrib +s $f
	done
(Realize that attrib expects DOS-style [C:\bin\link] filenames.)

-- 
James Dumser    972-462-5335 dumser AT ti DOT com
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019