From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com [IPv6:2001:4860:4864:20::34]) by sourceware.org (Postfix) with ESMTPS id CFF293858025; Mon, 21 Aug 2023 12:03:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CFF293858025 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-1c4d67f493bso2373806fac.2; Mon, 21 Aug 2023 05:03:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692619400; x=1693224200; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=0CHlRrJ+VLuo/pkdJRWAL7s50iRqDt1fReuEbVZQhI0=; b=PmSvGQKRPvIaJ5YYosQKnzWJVdGcIUW9yhrnraob9zAkiYPbFsxT5Xlcwr3xvYGl0S +eAfYJmDdApOAFSViU5UmYTGM39X09YbjYh+2SeWogHg+uhD+1dAJ+M4dBNGVj/DHacx bsV+oNtb4ijMnkxl9UfJDYFAoEX2qnGsScx4UWC/EXsePL9xolVrM5XRiTk69RfAmGgi sQje7eQV+uVZ+IPAZxNxZbrElsz1WtJSZ3RE6P0pLe1IFQCO/K6luutKd0pC50QycuyA VPwqK/RE/0sYXMgxxBEVSkRAgzxUpyUAOSyp0OEEQuL7ah1Si0GxpMYu9n7yVPOK2Fse fLoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692619400; x=1693224200; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0CHlRrJ+VLuo/pkdJRWAL7s50iRqDt1fReuEbVZQhI0=; b=QKt9WsSujRk0mtYoLYdNVFl4qU8zNDv7+/yUcKCziHeOckVpAu9J9Wtj30cQkQy/2X +du+/RTFVN90YgYyeBJ3wfm1aL3W+IWVM7ROHO/28byGEv9q0kQwNVG4Y0jO9Qrtw+fh pGsP9KFH7Qz4yYjmFMwFti5qzoaEsvREhSHdVvFO4FYizzzuT3SvJBImhZagh7LzAZFs EOIRKRDIbSHWqX2/WTdRE3TwK8nFlQAqZRFv6s0oE0jYjt23gxvzCwBAgs/rLX2/Cvbe 7X2/dSWJqMzo0vdR5slh11z1aH/Or8HiYKWCg37Akr6MWRWQx1O1nr+1G+1x+SdnayYn SADQ== X-Gm-Message-State: AOJu0YxcTfTMnIsclw8MHWtgEDRvz1nN7ihkFdJpgvohtQE7q1RcTpEH oaPHVCSyakIlOcR00ohEGaEOe8f/Q/FLtQJNFiR/o8dzjb9dZw== X-Google-Smtp-Source: AGHT+IFco2Y4UfjeF6LjA2MEI8PQLFee/7SKdym/dntGWVsqL+SCztNtxPAff33/PGkp51qWbhGs3uXIxNgQc8ZxpzA= X-Received: by 2002:a05:6870:9122:b0:1c8:bf19:e1db with SMTP id o34-20020a056870912200b001c8bf19e1dbmr8738551oae.11.1692619399881; Mon, 21 Aug 2023 05:03:19 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Martin Wege Date: Mon, 21 Aug 2023 14:03:00 +0200 Message-ID: Subject: Re: Cygwin pathconf() query filesystem kernel data? Re: How does Cygwin detect MSFT NFSv3 file system? Re: Weird (path) problems with cygwin test release 3.5.0-0.384.g9939aa7d0945.x86_64 ... To: cygwin@cygwin.com, Corinna Vinschen Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Sat, Aug 19, 2023 at 7:50=E2=80=AFPM Brian Inglis = wrote: > > On 2023-08-18 07:09, Martin Wege via Cygwin wrote: > > On Fri, Aug 18, 2023 at 10:44=E2=80=AFAM Corinna Vinschen via Cygwin > > wrote: > >> > >> On Aug 17 20:49, Martin Wege via Cygwin wrote: > >>> On Mon, Aug 14, 2023 at 10:56=E2=80=AFPM Corinna Vinschen via Cygwin > >>> wrote: > >>>> and the result is the same. Note that Cygwin supports MSFT NFSv3 bu= t > >>>> not CITI NFSv4.1 internally. No gurantee that Cygwin always does wh= at > >>>> is necessary for that other NFS. > >>> > >>> 1. How does Cygwin detect whether something is a MSFT NFSv3, or not? > >>> Cygwin /bin/mount lists the CITI NFSv4.1 as 'nfs', so there *IS* > >>> something which detects that? > >> > >> The filesystem name returned by NtQueryVolumeInformationFile is "NFS". > >> If any other NFS returns the same filesystem name, it will be treated > >> just like MSFT NFSv3. > >> > >>> 2. Are Cygwin soft link handing depend on MSFT NFSv3 or not, i.e. doe= s > >>> the Cygwin soft link code behave differently for MSFT NFSv3 file > >>> systems? > >> > >> Yes. NFS doesn't support symlink creation and symlink reading via > >> the usual functions, because Windows symlinks are created as reparse > >> points. NFS doesn't support reparse points. So the developers of > >> the MSFT NFS client had to invent their own way to create and > >> read NFS symlinks: > >> > >> https://sourceware.org/git/?p=3Dnewlib-cygwin.git;a=3Dblob;f=3Dwinsup/= cygwin/path.cc;hb=3DHEAD#l1719 > >> > >> https://sourceware.org/git/?p=3Dnewlib-cygwin.git;a=3Dblob;f=3Dwinsup/= cygwin/path.cc;hb=3DHEAD#l2750 > >> > >>> 3. Does Cygwin implement the pathconf() api? > >> > >> Yes. Surprisingly, you can check this yourself by just calling the > >> function and trying to compile your code. > > > > Apologies, how do we say in German? "Ich sollte meine Frage konkretisie= ren:" > > > > Does the Cygwin implementation of pathconf() support query data of the > > underlying filesystem based on data from the kernel, as UNIX does? So > > pathconf() returns different values for NTFS, ReFS, or Windows builtin > > NFSv3? > > > > I am asking, because as far as I know the Linux implementation is not > > a syscall, and instead glibc guesses values based on builtin static > > data, and whatever fstatfs() has to offer. Compared to that UNIX > > (Solaris, AIX, HPUX, ...) have pathconf() as a syscall, and actually > > ask the filesystem itself. > > Many library functions are implemented as documented either in the Cygwin > packages cygwin-doc and man-pages-posix available for installation; and u= se as > e.g. `man 3p fpathconf`, also available online at: > https://pubs.opengroup.org/onlinepubs/9699919799/functions/fpathconf.html= or > https://man7.org/linux/man-pages/man3/fpathconf.3p.html > and for comparison and reference we make Cygwin package man-pages-linux > available for installation; and use as e.g. `man -m linux 3 fpathconf`, a= lso > available online at: > > https://man7.org/linux/man-pages/man3/fpathconf.3.html > > suggestions for setup are in the package announcements made every 9-12 we= eks > when the latest Linux man-pages package is released and updated on Cygwin= . > > Please also note that the getconf(1) program is installed as part of Cygw= in and > can access f/pathconf variables associated with a pathname argument, as s= hown in > getconf(1) `man 1 getconf` and getconf(1p) `man 1p getconf`. Thanks, but my question was about the Cygwin *implementation*: Does it distinguish between NTFS, REFS, FAT, NFS? Does it use data obtained from the Windows kernel at runtime, or does it rely on static data compiled into the cygwin.dll library? Thanks, Martin