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 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit 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 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 "!". (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 "!", but it is definitely not a symlink.) Real symlinks will contain only 1 line ("!" & 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".