public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Brian Inglis <Brian.Inglis@SystematicSw.ab.ca>
To: cygwin@cygwin.com
Subject: Re: Question about the ldd output
Date: Tue, 09 Jul 2019 16:40:00 -0000	[thread overview]
Message-ID: <ee7608a2-2e13-d2eb-6410-c07362d75296@SystematicSw.ab.ca> (raw)
In-Reply-To: <BN6PR09MB2227BA2644949DB75A67A6B2A5F60@BN6PR09MB2227.namprd09.prod.outlook.com>

On 2019-07-08 12:00, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin wrote:
> Well, I don't think there's anything special that Cygwin does to load executables, because these are essentially Windows processes, so they are loaded by Windows, first and foremost.
> 
> But it gets even weirder.  Below are two _consecutive!_ runs of ldd on the very same executable.  Why the output differs so drastically (including the unknown dlls all of a sudden)?
> 
> 1.
>         ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffc339d0000)
>         KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ffc31a00000)
>         KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ffc30090000)
>         cygbz2-1.dll => /usr/bin/cygbz2-1.dll (0x3f6a40000)
>         cygcom_err-2.dll => /usr/bin/cygcom_err-2.dll (0x3ef750000)
>         cyggssapi_krb5-2.dll => /usr/bin/cyggssapi_krb5-2.dll (0x3eceb0000)
>         cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ec980000)
>         cygpcre-1.dll => /usr/bin/cygpcre-1.dll (0x3eb1a0000)
>         cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x3ee3a0000)
>         cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x3ea280000)
>         cygz.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygz.dll (0x3aba30000)
>         cygk5crypto-3.dll => /usr/bin/cygk5crypto-3.dll (0x3ec300000)
>         cygwin1.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygwin1.dll (0x180040000)
>         ??? => ??? (0xe80000)
>         ??? => ??? (0x1440000)
>         ??? => ??? (0xe80000)
>         cygkrb5-3.dll => /usr/bin/cygkrb5-3.dll (0x3ec170000)
>         cygkrb5support-0.dll => /usr/bin/cygkrb5support-0.dll (0x3ec150000)
>         cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3ec8d0000)
> 
> 2.
>         ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffc339d0000)
>         KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ffc31a00000)
>         KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ffc30090000)
>         cygbz2-1.dll => /usr/bin/cygbz2-1.dll (0x3f6a40000)
>         cygcom_err-2.dll => /usr/bin/cygcom_err-2.dll (0x3ef750000)
>         cyggssapi_krb5-2.dll => /usr/bin/cyggssapi_krb5-2.dll (0x3eceb0000)
>         cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ec980000)
>         cygpcre-1.dll => /usr/bin/cygpcre-1.dll (0x3eb1a0000)
>         cygwin1.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygwin1.dll (0x180040000)
>         cyggcc_s-seh-1.dll => /usr/bin/cyggcc_s-seh-1.dll (0x3ee3a0000)
>         cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x3ea280000)
>         cygk5crypto-3.dll => /usr/bin/cygk5crypto-3.dll (0x3ec300000)
>         cygkrb5-3.dll => /usr/bin/cygkrb5-3.dll (0x3ec170000)
>         cygz.dll => /cygdrive/u/2.4.0/release/Cygwin-64/bin/cygz.dll (0x3aba30000)
>         cygkrb5support-0.dll => /usr/bin/cygkrb5support-0.dll (0x3ec150000)
>         cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3ec8d0000)

Libraries may be loaded asynchronously as they are accessed, and ldd just dumps
the dll import table once the subprocess is ready to run.
Perhaps these are import entries that ldd should detect and skip or annotate in
some more useful way.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  reply	other threads:[~2019-07-09 16:40 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-08 20:13 Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin
2019-07-09 16:40 ` Brian Inglis [this message]
2019-07-09 17:39   ` René Berber
2019-07-09 18:02   ` Jon Turney
2019-07-10 22:55     ` Brian Inglis
2019-07-17  2:38 ` Mark Geisert
  -- strict thread matches above, loose matches on Subject: below --
2019-07-08 21:07 Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin
2019-07-05 18:28 Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin
2019-07-06  6:45 ` Brian Inglis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee7608a2-2e13-d2eb-6410-c07362d75296@SystematicSw.ab.ca \
    --to=brian.inglis@systematicsw.ab.ca \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).