X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2AB8B385842C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1704741778; bh=3E2CYiw+x2YxqCRAvPACyxIVCqbk2z03SNLx0xkiY6E=; h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=LctvkZ+RkJoiZV4NmI6L+ZgfehGBRe2ZHUtS+Et4afUsM4Ze9/JDCIw0dqgZk09MN /CQUwuX7Y4LKmMbqy8KgkebfCsTBsGzjo/6SZn3q7i1dBdTzEt+TBKnNnD4ROZ7wFj 7AmiT5hAUt4JVJk8ys5Cl2m1VGqgJCQNnPEaPqjk= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EA1123858C62 Date: Mon, 8 Jan 2024 20:21:58 +0100 To: cygwin AT cygwin DOT com Subject: Re: Cygwin generates syscalls for *.lnk files on filesystems with native symlink support? Message-ID: Mail-Followup-To: cygwin AT cygwin DOT com References: <266017637 DOT 5531727 DOT 1704733902023 AT mail DOT yahoo DOT com> <487617694 DOT 5562874 DOT 1704739459687 AT mail DOT yahoo DOT com> <2f4c9914-1285-42f0-b841-69335687713a AT secure-endpoints DOT com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <2f4c9914-1285-42f0-b841-69335687713a@secure-endpoints.com> X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Corinna Vinschen via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Corinna Vinschen Content-Type: text/plain; charset="utf-8" Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 408JMwm9007649 On Jan 8 14:17, Jeffrey Altman via Cygwin wrote: > On 1/8/2024 1:44 PM, matthew patton via Cygwin wrote: > > > Cygwin does not create symlinks as junctions.  No idea where you got that idea. > > $ echo $CYGWINwinsymlinks:nativestrict > > $ /usr/bin/ln -s default.GGG6q test1 > > 01/08/2024  01:24 PM         test1 [...]Type=File > > $ (unset CYGWIN; /usr/bin/ln -s default.GGG6q test2.nocygwin) > > 01/08/2024  01:25 PM         test2.nocygwin [...]Type=File > > JUNCTIONS are a type of reparse point tag. Many tools report things as > JUNCTIONS when they don't know what else to call it because JUNCTIONS were > the only type of reparse tag commonly used. > [...] > As part of this reply I will note that the NTFS symlinks differ from POSIX > symlinks in significant ways > > 1. A pre-existing file system object is required in order to attach a > reparse tag > 2. The type of the target must be known when the reparse tag is applied > to a pre-existing file system object > 3. The reparse tag may be removed and replaced any number of times > without deleting the pre-existing object to which it is attached.   > Whereas a POSIX symlink inode target cannot be altered once > created.  The inode must be deleted and replaced. > 4. The Windows file APIs do not behave as many applications expect them > to when a symlink reparse tag is present.  For example, opening a > file handle will traverse the reparse tag and open the target but > the file info api when given the same path will return the > information belonging to the object on which the reparse tag was > applied.   This breaks many applications such as the java runtime > among others. > > Jeffrey Altman Thanks, Jeffrey. I couldn't have expressed it so nicely. Very well summarized. Corinna -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple