X-Spam-Check-By: sourceware.org
Message-ID: <45801D69.8050204@cygwin.com>
Date: Wed, 13 Dec 2006 10:34:01 -0500
From: "Larry Hall (Cygwin)" <reply-to-list-only-lh@cygwin.com>
Reply-To: cygwin@cygwin.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8) Gecko/20061108 Fedora/1.5.0.8-1.fc4.remi Thunderbird/1.5.0.8 Mnenhy/0.7.4.0
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: libraries
References: <195b3f1f0612130010r1ff74342sfc4a699380ee873d@mail.gmail.com>
In-Reply-To: <195b3f1f0612130010r1ff74342sfc4a699380ee873d@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Wynfield Henman wrote:
> I have managed to confuse myself regarding libraries under cygwin,
> after reading extensively on building dlls under cygwin.....
> 
> Please check if my understanding is correct.
> (1) For simple static libraries ld's output is fine.
>     Because only cygwin code will access it.
> 
> (2) Does this follow with *nix shared library format? (if only used by
> cygwin programs which
>    emulate *nix (does it also know about shared library objects)?
> 
> (3) The ms-dll shared library format is only necessary if we want
> ms-programs to be able to
>     use the program.
> 


There's no incompatibility of object format between Cygwin static libs
and those created by the MS compiler.  Ditto for DLLs.  There is no such
thing as shared libraries in the traditional UNIX sense on Windows.  The
only "incompatibilities" between Cygwin built libs/DLLs and MS's are:

   1. References to C++ in libs/DLLs built in one won't be resolved in the
      other (this is true when mixing and matching C++ object code from any
      compiler).  This is not a problem for C code.

   2. Calling Cygwin compiled code from a native executable needs some extra
      steps to make sure that the Cygwin C-runtime initialization code gets
      called.  The reverse situation is not generally a problem.

-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

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

