Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com From: Patrick Rotsaert Subject: Re: [FAQ Alert, ping JDF!] RE: How to make DLLs in cygwin for MSVC and BCB Date: Wed, 22 Jun 2005 18:22:42 +0200 Lines: 65 Message-ID: References: <42B9854D DOT DBC0BD AT dessent DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) In-Reply-To: X-IsSubscribed: yes > ----Original Message---- > >>From: Brian Dessent >>Sent: 22 June 2005 16:36 > > >>Patrick Rotsaert wrote: >> >> >>>I need to build a DLL in cygwin (I use a lot of POSIX functions), that I >>>can use in MSVC and Borland CBuilder apps. >> >>http://cygwin.com/faq/faq.html#TOC102 > > > >>And, as far as I know, using cygwin1.dll in this way means all your code >>must be released under the GPL, or another OSI approved license. > > > Absolutely so, and I think the FAQ entry needs a little revising, because > I think point 5. in the list of items is misleadingly > not-strongly-emphatic-enough: > > " Download crt0.c from the cygwin website and include it in your sources. > Modify it to call my_crt0() instead of cygwin_crt0(). Since you are using > Cygwin source code, your resulting program will be licensed under the GNU > GPL. For more information, see http://gnu.org/licenses/gpl-faq.html. " > > To my ears, this sounds like it's saying that your program is GPL'd *only* > because you've downloaded, modified and included crt0.c in your source. But > regardless of that fact, and even if you write your own crt0.c entirely from > scratch, you are obliged to GPL your program *anyway*, because as long as > you're LoadLibrarying the cygwin dll and calling functions from it, your > program counts as being 'linked' to the dll - the GPL doesn't discriminate > between compile-time static linking and run-time dynamic linking. So I > would remove this detail from point 5 in the list (it's a little > out-of-place there anyway) and add it as an extra para at the end of the > item, so we'd have just > > " Download crt0.c from the cygwin website and include it in your sources. > Modify it to call my_crt0() instead of cygwin_crt0(). " > > for point 5, and then something like > > " Note that if you are using any other Cygwin-based libraries that you will > probably need to build them as DLLs using gcc and then generate import > libraries for the MS VC linker. > > Note also that Cygwin is GPL'd software (as indeed are all other > Cygwin-based libraries). That means that if your code links against the > cygwin dll (and if your program is calling functions from Cygwin, it must, > as a matter of fact, be linked against it), you must apply the GPL to your > source as well. Of course, this only matters if you plan to distribute your > program in binary form. For more information, see > http://gnu.org/licenses/gpl-faq.html. " > > > cheers, > DaveK No problem that my dll will fall under the GPL. Just out of curiosity, does this also apply for applications that use my DLL? -- 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/