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: [FAQ Alert, ping JDF!] RE: How to make DLLs in cygwin for MSVC and BCB


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


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