delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2018/10/14/17:49:26

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:references:in-reply-to:from:date
:message-id:subject:to:content-type; q=dns; s=default; b=Bg/jzaR
ALgXmwm2JpFb23+rFrLNHSLSWbcDs3f8IJZBHLPssivpBrLwzql3CizsMoY/rDAy
w5Jj0WSP8pznR1bmS5SdE6xQ+XTOFUZN6EGwcDQRcHo1JziO4AhwkBWaiD7qTiMr
XHe5r471zVL1c6eIwslgEb6fpf/6krWlPU/0=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:references:in-reply-to:from:date
:message-id:subject:to:content-type; s=default; bh=mu8Grw0rSfCT6
7TAJpoyji44dCU=; b=JTHr66GZN+F7wDepWx9B6eo+0dTBu6TTnOaFWLv3ID78F
0NZX9rKsuM6B4UY9pLPlmRMQ6y6OjMAtpr+gQ+lWyIRyAEinXBo2pa/IXb+3+0f+
3C735nZXhG05lfjr8+eWI+hgukHwmz6DWMG1GSrGlS4jY83dXppSqcBcvMbIvw=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=chains, HX-HELO:sk:mail-lf, H*c:alternative
X-HELO: mail-lf1-f53.google.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=k2hYsBLu+nzpekNjZKrYf2axYPqAl7ItIaW0zqv/ks0=; b=kFLUUHhWx6wSn+IjPOtVVygG9yQInMvrsB1XOjI85gVtu0/7FLMGDZMp376FqDMlLg VA3wfX1C9IQEf3r/dAYo+UJ4YsXRy7u0OC8/TizsbhXaNdAKciZFqV8B9ZEG+NiKRfhB KmBpiEdFO1V6lJOZmuH0/YXEUYQke7tFpgvJV62WFHaXxIL4MbTHKgLHdoDOO3hhmcZM QlY2ZncYnjthG0siXZKvD1lrAK6BqpzpVG8d8jl9IeXluajyjMg2oN1MLu0amlVOPVpx l9OJcq3YUqrDdJI9E1NYDpXhuvNubfJbEmb03LHjXe8MWPfjzdIcqMq04zNQLd8LeyND fY1A==
MIME-Version: 1.0
References: <k-FR7PNenfo1J53Q0MeVTHBabZ0w6SgeipwWNFvMxBIT202N0ZfvtYw6TJcdatirkNpqdJ1FptFfOLvInYQkVheckcD7-3MH_cqsTkrEWOQ=@protonmail.com>
In-Reply-To: <k-FR7PNenfo1J53Q0MeVTHBabZ0w6SgeipwWNFvMxBIT202N0ZfvtYw6TJcdatirkNpqdJ1FptFfOLvInYQkVheckcD7-3MH_cqsTkrEWOQ=@protonmail.com>
From: R0b0t1 <r030t1 AT gmail DOT com>
Date: Sun, 14 Oct 2018 16:48:56 -0500
Message-ID: <CAAD4mYjwpD_asDgmqB5-wMf6EMYEt=pnyRc=n2VxKoi1sTLtuA@mail.gmail.com>
Subject: Re: Distributing program compiled with gcc on Cygwin to Windows users
To: hackerwiz AT protonmail DOT com, cygwin AT cygwin DOT com
X-IsSubscribed: yes

On Sun, Oct 14, 2018, 4:20 PM <hackerwiz AT protonmail DOT com> wrote:

> Hello,
>
> I have a program that uses X11/Motif and runs fine, within Cygwin/X on the
> PC it was compiled on.
>
> What is the *minimum* required set of Cygwin libs and any other files I
> need to distribute along with, it to end-users who may just have Windows
> (and not Cygwin) installed?
>
> I appreciate your help.
>
> "ldd " on my program gives these dependencies listed below:
>
> thanks
> -Ron
>
>   ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x77370000)
>         KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
> (0x75570000)
>         KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
> (0x74940000)
>         cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x5c630000)
>         cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x68c50000)
>         cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
>         libtcl8.6.dll => /usr/bin/libtcl8.6.dll (0x58660000)
>         cygX11-6.dll => /usr/bin/cygX11-6.dll (0x695e0000)
>         cygXm-4.dll => /usr/bin/cygXm-4.dll (0x68a00000)
>         cygXpm-4.dll => /usr/bin/cygXpm-4.dll (0x69560000)
>         cygXt-6.dll => /usr/bin/cygXt-6.dll (0x694b0000)
>         cygperl5_26.dll => /usr/bin/cygperl5_26.dll (0x5d3b0000)
>         cygz.dll => /usr/bin/cygz.dll (0x5b8b0000)
>         cygxcb-1.dll => /usr/bin/cygxcb-1.dll (0x5bc90000)
>         cygfontconfig-1.dll => /usr/bin/cygfontconfig-1.dll (0x67480000)
>         cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x61a20000)
>         cygjpeg-8.dll => /usr/bin/cygjpeg-8.dll (0x60c20000)
>         cygpng16-16.dll => /usr/bin/cygpng16-16.dll (0x5d600000)
>         cygXext-6.dll => /usr/bin/cygXext-6.dll (0x69810000)
>         cygXft-2.dll => /usr/bin/cygXft-2.dll (0x69720000)
>         cygXmu-6.dll => /usr/bin/cygXmu-6.dll (0x69590000)
>         cygICE-6.dll => /usr/bin/cygICE-6.dll (0x6fea0000)
>         cygSM-6.dll => /usr/bin/cygSM-6.dll (0x69970000)
>         cygcrypt-0.dll => /usr/bin/cygcrypt-0.dll (0x68790000)
>         cygXau-6.dll => /usr/bin/cygXau-6.dll (0x698f0000)
>         cygXdmcp-6.dll => /usr/bin/cygXdmcp-6.dll (0x69830000)
>         cygexpat-1.dll => /usr/bin/cygexpat-1.dll (0x67e70000)
>         cygfreetype-6.dll => /usr/bin/cygfreetype-6.dll (0x66950000)
>         cygXrender-1.dll => /usr/bin/cygXrender-1.dll (0x69520000)
>         cyguuid-1.dll => /usr/bin/cyguuid-1.dll (0x5c8b0000)
>         cygbz2-1.dll => /usr/bin/cygbz2-1.dll (0x689a0000)
>         cygintl-8.dll => /usr/bin/cygintl-8.dll (0x64640000)
>         utwin.dll => /cygdrive/c/builds/solaris32/2018/2004-ut/utwin.dll
> (0x64c00000)
>         USER32.dll => /cygdrive/c/WINDOWS/System32/USER32.dll (0x73c50000)
>         win32u.dll => /cygdrive/c/WINDOWS/System32/win32u.dll (0x75650000)
>         mfc140d.dll => /cygdrive/c/WINDOWS/SYSTEM32/mfc140d.dll
> (0x63d20000)
>         ADVAPI32.dll => /cygdrive/c/WINDOWS/System32/ADVAPI32.dll
> (0x76dc0000)
>         GDI32.dll => /cygdrive/c/WINDOWS/System32/GDI32.dll (0x74f20000)
>         msvcrt.dll => /cygdrive/c/WINDOWS/System32/msvcrt.dll (0x74510000)
>         gdi32full.dll => /cygdrive/c/WINDOWS/System32/gdi32full.dll
> (0x770a0000)
>         sechost.dll => /cygdrive/c/WINDOWS/System32/sechost.dll
> (0x74f50000)
>         msvcp_win.dll => /cygdrive/c/WINDOWS/System32/msvcp_win.dll
> (0x758e0000)
>         ucrtbase.dll => /cygdrive/c/WINDOWS/System32/ucrtbase.dll
> (0x757c0000)
>         RPCRT4.dll => /cygdrive/c/WINDOWS/System32/RPCRT4.dll (0x747d0000)
>         COMDLG32.dll => /cygdrive/c/WINDOWS/System32/COMDLG32.dll
> (0x74cc0000)
>         SspiCli.dll => /cygdrive/c/WINDOWS/System32/SspiCli.dll
> (0x73c30000)
>         combase.dll => /cygdrive/c/WINDOWS/System32/combase.dll
> (0x76e40000)
>         CRYPTBASE.dll => /cygdrive/c/WINDOWS/System32/CRYPTBASE.dll
> (0x73c20000)
>         bcryptPrimitives.dll =>
> /cygdrive/c/WINDOWS/System32/bcryptPrimitives.dll (0x75760000)
>         ??? => ??? (0x3840000)
>         shcore.dll => /cygdrive/c/WINDOWS/System32/shcore.dll (0x754e0000)
>         ole32.dll => /cygdrive/c/WINDOWS/System32/ole32.dll (0x75960000)
>         SHLWAPI.dll => /cygdrive/c/WINDOWS/System32/SHLWAPI.dll
> (0x75670000)
>         OLEAUT32.dll => /cygdrive/c/WINDOWS/System32/OLEAUT32.dll
> (0x74da0000)
>         SHELL32.dll => /cygdrive/c/WINDOWS/System32/SHELL32.dll
> (0x75a70000)
>         VCRUNTIME140D.dll =>
> /cygdrive/c/WINDOWS/SYSTEM32/VCRUNTIME140D.dll (0x6f700000)
>         IMM32.dll => /cygdrive/c/WINDOWS/System32/IMM32.dll (0x74b30000)
>         cfgmgr32.dll => /cygdrive/c/WINDOWS/System32/cfgmgr32.dll
> (0x75020000)
>         ucrtbased.dll => /cygdrive/c/WINDOWS/SYSTEM32/ucrtbased.dll
> (0x63ba0000)
>         windows.storage.dll =>
> /cygdrive/c/WINDOWS/System32/windows.storage.dll (0x73de0000)
>         lmgr327b.dll =>
> /cygdrive/c/builds/solaris32/2018/2004-ut/lmgr327b.dll (0x10000000)
>         kernel.appcore.dll =>
> /cygdrive/c/WINDOWS/System32/kernel.appcore.dll (0x77210000)
>         COMCTL32.dll =>
> /cygdrive/c/WINDOWS/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.17134.285_none_41037de2450e52da/COMCTL32.dll
> (0x701f0000)
>         profapi.dll => /cygdrive/c/WINDOWS/System32/profapi.dll
> (0x74f00000)
>         UxTheme.dll => /cygdrive/c/WINDOWS/SYSTEM32/UxTheme.dll
> (0x71c80000)
>         powrprof.dll => /cygdrive/c/WINDOWS/System32/powrprof.dll
> (0x75060000)
>         NETAPI32.dll => /cygdrive/c/WINDOWS/SYSTEM32/NETAPI32.dll
> (0x72c50000)
>         FLTLIB.DLL => /cygdrive/c/WINDOWS/System32/FLTLIB.DLL (0x75010000)
>         WINSPOOL.DRV => /cygdrive/c/WINDOWS/SYSTEM32/WINSPOOL.DRV
> (0x72070000)
>         bcrypt.dll => /cygdrive/c/WINDOWS/SYSTEM32/bcrypt.dll (0x73460000)
>         PROPSYS.dll => /cygdrive/c/WINDOWS/SYSTEM32/PROPSYS.dll
> (0x72540000)
>         IPHLPAPI.DLL => /cygdrive/c/WINDOWS/SYSTEM32/IPHLPAPI.DLL
> (0x723b0000)
>
> Sent with [ProtonMail](https://protonmail.com) Secure Email.


Hello,

You can tell GCC to statically compile your binaries. However I usually
only do this for very simple programs that do not have many dependencies.
With complicated dependency chains it is possible to get to a place where
library X or Y *demands* dynamic loading and you are left trying to gather
the libraries.

To gather the libraries you can parse the output of ldd. I think there is
another program that will print out a dependency *tree* that is harder to
to parse but has options that generate more easily machine readable.

I have used the above for a ramdisk based system. It was easier than
statically compiling everything. I lost the code I think or I'd pass it
along.


Also consider installing Cygwin on the target system. It is a more
realistic solution even for automated deployments.

Cheers,
    R0b0t1

--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019