Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <3C463058.CCF7A0EB@x-ray.at> Date: Thu, 17 Jan 2002 02:00:56 +0000 From: Reini Urban Organization: http://www.x-ray.at X-Mailer: Mozilla 4.7 [de] (WinNT; I) X-Accept-Language: de,en MIME-Version: 1.0 To: Robert Collins CC: "Larry Hall (RFK Partners, Inc)" , cygwin AT cygwin DOT com Subject: Re: error trying to compile anything References: <1011214219 DOT 8034 DOT ezmlm AT cygwin DOT com> <4 DOT 3 DOT 1 DOT 2 DOT 20020116182829 DOT 02304590 AT pop DOT ma DOT ultranet DOT com> <3C4617B1 DOT 7A7A5C31 AT x-ray DOT at> <182801c19eee$f0166890$0200a8c0 AT lifelesswks> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Robert Collins schrieb: > From: "Reini Urban" > > cygwin does support softlinks, so we should use them. sorry about the confusion. I mixed copies (aka "cygwin file hardlinks") with softlinks. to stay zynical I meant those links which you create by $ ln /bin/cygwin-1.1.1.6.dll /bin/cygwin1.dll and not those by $ ln -s /bin/cygwin-1.1.1.6.dll /bin/cygwin1.dll which is of course not trivial :) There can be only one, multiple strong version hardly linked into apps is wrong and I'll keep my mouth shut. > But .dll's are loaded by the win32 (on 95) and the Native API (NT). > Cygwin symlinks are _not_ supported by those OS's, so symlinking is not > an option. > > > the implementation is trivial, but there should be consense. > > Implementation is non trivial (IMO). Here are some potential > implementations: > 1) For win95, produce a kernel VXD that patches the CreateProcess call > to interpret symlinks. > 2) For winNT, create a kernel thunk to do the same. > 3) Create an NT service/device driver that creates an NT Reparse point, > and returns the correct cygwin1.dll canonical location. hardlinks aren't > good enough, they can't go across file systems. > 4) Create replacement assembly stub for gcc to use when linking against > cygwin1.dll that will interpret symlinks and then at runtime fix up the > symbols that should have resolved to cygwin1.dll, to resolve against a > dynamically opened cygwin1.dll. Note that this will have to execute > before any .dll startup code. > > Now, if you still think it's trivial, I'll be happy to review your > (trivial) patch to implement that. -- Reini Urban http://atelier.akbild.ac.at/ (soon) http://xarch.tu-graz.ac.at/home/rurban/ (big) http://tv.mur.at/ (kulturelles) -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/