This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about the ldd output


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]