public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Re: Nobody in the world understands Gnu's 'ld'.
@ 1997-03-25 12:55 Ian Lance Taylor
  1997-03-25 20:52 ` Mr Taylor surely understands ld: a correction to my previous post root
  1997-03-25 23:17 ` Nobody in the world understands Gnu's 'ld' Fergus Henderson
  0 siblings, 2 replies; 24+ messages in thread
From: Ian Lance Taylor @ 1997-03-25 12:55 UTC (permalink / raw)
  To: root; +Cc: gnu-win32

In gnu-win32 root@jacob.remcomp.fr writes:

>Since several months people here report that Cygnus's linker is flawed.
>I think that it is just plain that Cygnus doesn't have the
>know-how to repair it, since Steve Chamberlain, the guy that
>wrote most of it, hasn't posted anything here since ages and
>he was very active before.

Let's not get carried away here.  I understand the linker perfectly
well, and so do a number of other people.

It's true that Steve Chamberlain left Cygnus a while ago.

If you look at the ChangeLog files, you can see who has been working
on the linker and other parts of BFD.  You'll see that although Steve
wrote most of the original code several years ago, he hasn't been
heavily involved with BFD or the linker for quite some time.

>Just to give you an idea, ld is supposed to link an object file
>from sun's unix format with some code from windows 95 and with
>some code of hp Unix. Of course this is ridiculous and it will never
>work, but this is how 'ld' is designed: an incredible complexity
>that (to me) seems completely unwarranted.

It's true that it is rare for people to link together different object
file formats.  However, you have missed the actual reasons for the
complexity.

The first reason is that the linker is able to generate an object file
format which is different from the input file formats.  For example,
this permits the linker to directly generate S-record output without
requiring a convertor.  This may not be too useful for native
programmers, but it is useful for embedded systems programmers.

The second reason is that a single linker binary can serve as the
linker for different targets.  The Linux people use this, for example:
the binary binutils distribution for Linux is built to support all the
various Linux targets in a single binary.

>It has a full blown LANGUAGE
>(with lex+yacc parser/lexer!) that is supposed to recognize linker
>commands. Obviously nobody ever uses it, but to understand
>what the linker is doing you have to go through yet another layer
>of complexity.

In fact, many people use the linker script language.  I can't imagine
why you think that nobody uses it.  Moreover, this is hardly a unique
or even unusual feature of the GNU linker: most linkers have a
scripting language, and the one used by the GNU linker is based on the
one used by the SVR3 linker.

>Then you have the 'BFD' format, that is supposed to be an universal
>binary format designed by GNU that will abstract the binary format
>of all machines in the western world into ONE format. Obviously
>it doesn't work, but then you have not only to understand what
>binary format you have in windows (what is difficult enough) but
>you have to understand BFD too.

In fact, BFD works quite well.  I don't know why you think that it
doesn't work.

It's not quite correct to describe BFD as abtracting all binary
formats into one format.  What it actually does is provide a library
interface which may be used to examine and generate an object file in
any format.

Mind you, I'm not going to defend the way that BFD is written.  There
is definitely a very steep learning curve before being able to program
using BFD.  I've tried to clean up some of the more egregious
problems.  Unfortunately, the cost of rewriting BFD is high.

>And to crown this beatiful construction there is NO DOCUMENTATION
>whatsoever about anything I have told you in this message. I inferred
>this from reading THE C CODE!!!

I'd love to have some documentation if you care to write some and
contribute it.  This is, after all, free software.  It improves by
contributions.

>That is why this linker can't even recognize MSVC object code
>format and use the MSVC .LIBs. Because nobody in the world
>is able to modify it. Of course we do not need compatibility
>with SUN or HP Unix under Windows 95. We would need MSVC
>compatibility. But to do that we would have to find somebody
>that understands 'ld'...

Well, all you need to do is add support for the object code format to
BFD.  I'm sorry you think that is impossible.  In fact, BFD supports a
number of object file formats already, including a.out, COFF, ELF,
IEEE-695, XCOFF, SOM, etc.  Adding another one is really not all that
difficult if you know what you are doing.

I'm always willing to answer specific questions about BFD and the
linker.  I'm not willing to give a tutorial on how to program it,
because I simply don't have the time.

I suppose I should add that my personal interest in adding MSVC object
support is nil.  I do work at Cygnus, but I don't work on gnu-win32,
and I have no idea whether Cygnus has any plans to do anything in this
area.

Ian
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: Commercial Licensing
@ 1997-03-29  5:40 Reed Kotler Consulting
  1997-03-29 17:29 ` Jim Balter
  0 siblings, 1 reply; 24+ messages in thread
From: Reed Kotler Consulting @ 1997-03-29  5:40 UTC (permalink / raw)
  To: Jim Balter, David Essex; +Cc: gnu-win32

At 07:39 PM 3/28/97 -0800, Jim Balter wrote:
>David Essex wrote:
>> 
>> Ian Lance Taylor <ian@cygnus.com> wrote:
>> 
>> >BFD, gas, ld, the binutils, are all under the GPL
>> >and always have been.  Any contributions you or anybody chooses to
>> >make will be made under the GPL, will require a copyright assignment
>> >to the Free Software Foundation, and will be included in future
>> >binutils net releases for anybody to use.
>> >
>> >The commercial licensing stuff applies only to the gnu win32 library
>> >itself, which is copyrighted by Cygnus.  It does not apply to the
>> >binutils.
>> Commercial licensing ?
>> The cygnus gnu-win32 web page says that this is free software.
>> If win32 library is part of gnu why do you need a commercial license ?
>> Could some one expand on this ?
>
>
>In addition to the GPL, Cygnus offers cygwin.dll under a restricted
>license to commercial clients who wish to use it without sharing their
>own sources.  As the owner, Cygnus has every legal right to do this.
>Whether it is consistent with the spirit of the GPL is another matter.
>There was a long, heated debate on the mailing list after Cygnus
>posted a press release announcing their intentions; no sense in
>repeating it.
>
>Note that many libraries, such as glibc, are released under the LGPL,
>not the GPL, implicitly allowing commercial users to do what commercial
>users of cygwin must pay Cygnus for a license to do.  Cygnus
>intentionally used the GPL rather than the LGPL for just this reason.
>
>--
I remember seeing this GPL thread go on and on and frankly I ignored it.

However, I'm looking at the webpage for cygnus and seeing some
claim that if you build software using the cygwin.dll that it has
to become free software too if you don't have the commercial license.

This seems to be a pretty far fetched reading of the GPL.

reed




Reed Kotler
http://www.reedkotler.com  home of a nice unix like toolset for windows NT/95
http://www.justjazz.com    home of a jazz musicians discussion list
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: Commercial Licensing
@ 1997-03-30 18:44 Reed Kotler Consulting
  1997-03-30 22:35 ` Jim Balter
  0 siblings, 1 reply; 24+ messages in thread
From: Reed Kotler Consulting @ 1997-03-30 18:44 UTC (permalink / raw)
  To: Jim Balter; +Cc: gnu-win32

At 02:18 PM 3/29/97 -0800, you wrote:
>Reed Kotler Consulting wrote:
>
>> I remember seeing this GPL thread go on and on and frankly I ignored it.
>> 
>> However, I'm looking at the webpage for cygnus and seeing some
>> claim that if you build software using the cygwin.dll that it has
>> to become free software too if you don't have the commercial license.
>> 
>> This seems to be a pretty far fetched reading of the GPL.
>
>Farfetched?  That seems pretty standard, since the issue is actually
>libcygwin.a, which incorporates portions of GPL code into
>your executable.  The situation is no different from using the bison
>parser.  If you still think that's a wrong reading, perhaps you can take
>it up on gnu.misc.discuss, where people like to talk about these things.
>
>--
Well what is libcygwin.a? Presumably just the thunks that call the
DLL.

So how can that code be under GPL?

THe microsoft (and any NT comapatable) linker generates that code.

I guess regarding Bison you are talking about the shell code for bison.

Then what about libc.a from GNU?

It seems that almost anything ever build with GNU would fall under GPL.

Thats a pretty novel reading of the GPL though I guess it's discussed
somewhere by people that care.

reed


Reed Kotler
http://www.reedkotler.com  home of a nice unix like toolset for windows NT/95
http://www.justjazz.com    home of a jazz musicians discussion list
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: Commercial Licensing
@ 1997-03-30 21:22 Reed Kotler Consulting
  1997-03-30 22:35 ` Jim Balter
  0 siblings, 1 reply; 24+ messages in thread
From: Reed Kotler Consulting @ 1997-03-30 21:22 UTC (permalink / raw)
  To: Jim Balter; +Cc: gnu-win32

At 08:47 PM 3/30/97 -0800, Jim Balter wrote:
>Reed Kotler Consulting wrote:
>
>> I suppose thought that you could relink cygwin.dll adding those other
>> components and then you wouldnt be violating any rules.
>
>libccrt0 has to live in the .exe, not the dll.  If Cygnus had published
>an interface specification for cygwin.dll then of course you could
>just say that you were following the spec if you provided your own
>version, but they haven't.  As I said, I don't know how copyright
>law applies to reverse engineering.
>
>> In that case you could distribute your own version of cygwin.dll,
>> under GPL of course and then you would not be linking in any code
>> from cygwin.dll.
>
>Distributing a modified cygwin.dll or putting it at an ftp site
>separately from that which depends on it is really pushing things, and
>seems pretty dangerous if anyone actually brought suit.
>
Why is that dangerous?

Isnt that the whole point of GPL?

You can modify the code as long as you give everyone else the
modifications.

>> However, presumably cygnus can't enforce GPL anyway, only FSF can do
>> that.
>
>Huh?  The copyright on libcygwin.a and cygwin.dll belong to Cygnus
>Solutions, not the FSF; the FSF just publishes the text of copyright,
>but that doesn't give them any legal standing.  And it's the courts that
>enforce these things.
>

I quote from section 3 of GPL

"Section 3 -

3.You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1
     above, provided that you also meet all of these conditions: 
        1.You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change. 
        2.You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third
          parties under the terms of this License. 
        3.If the modified program normally reads commands interactively
when run, you must cause it, when started running for such interactive use
in the most ordinary way, to print or display an
          announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide a
warranty) and that users may redistribute the program under
          these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but does not
normally print such an announcement, your work based on the
          Program is not required to print an announcement.) 
     These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, and
can be reasonably considered independent and separate works in
     themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work
     based on the Program, the distribution of the whole must be on the
terms of this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of
     who wrote it. Thus, it is not the intent of this section to claim
rights or contest your rights to work written entirely by you; rather, the
intent is to exercise the right to control the distribution of derivative
     or collective works based on the Program. In addition, mere
aggregation of another work not based on the Program with the Program (or
with a work based on the Program) on a volume of a storage
     or distribution medium does not bring the other work under the scope
of this License. 
"

Clearly it's okay to distribute a modified cygwin if it's subject to GPL.

In addition, it states clearly  "it is not the intent of this section to
claim rights or contest your rights to work written entirely by you;
rather, the intent is to exercise the right to control the distribution of
derivative
     or collective works based on the Program. In addition, mere
aggregation of another work not based on the Program with the Program (or
with a work based on the Program) on a volume of a storage
     or distribution medium does not bring the other work under the scope
of this License. "

Thus, even if you link in their .a you still don't violate GPL.

The whole point of GPL is to prevent someone from doing something like
taking cygwin.dll, improving it and then not letting everyone else
have the improvements.

It's not meant, as clearly stated, to cause some "independent work" to
be become part of GNU.

Also, it's my understanding that even if cygnus owns the copyright,
the GPL is a license from FSF so I don't see how somebody else could
enforce the license.

reed


>--
><J Q B>
>


Reed Kotler
http://www.reedkotler.com  home of a nice unix like toolset for windows NT/95
http://www.justjazz.com    home of a jazz musicians discussion list
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: Commercial Licensing
@ 1997-03-30 23:21 Reed Kotler Consulting
  1997-03-30 20:51 ` Jim Balter
  0 siblings, 1 reply; 24+ messages in thread
From: Reed Kotler Consulting @ 1997-03-30 23:21 UTC (permalink / raw)
  To: Jim Balter; +Cc: gnu-win32

>> >Reed Kotler Consulting wrote:
>> >
>> >> I remember seeing this GPL thread go on and on and frankly I ignored it.
>> >>
>> >> However, I'm looking at the webpage for cygnus and seeing some
>> >> claim that if you build software using the cygwin.dll that it has
>> >> to become free software too if you don't have the commercial license.
>> >>
>> >> This seems to be a pretty far fetched reading of the GPL.
>> >
>> >Farfetched?  That seems pretty standard, since the issue is actually
>> >libcygwin.a, which incorporates portions of GPL code into
>> >your executable.  The situation is no different from using the bison
>> >parser.  If you still think that's a wrong reading, perhaps you can take
>> >it up on gnu.misc.discuss, where people like to talk about these things.
>> >
>> >--
>> Well what is libcygwin.a? Presumably just the thunks that call the
>> DLL.
>> 
>> So how can that code be under GPL?
>
>libcygwin.a also includes libccrt0, libcctype, libcerr, libcmain,
>getopt, and getopt1.  getopt* doesn't belong to Cygnus.  It would be
>quite easy to provide your own versions of the others,
>with the exception of libcmain, which would necessarily require either
>copying the cygwin code or reverse engineering it.  What a court of law
>would have to say, I dunno, but Cygnus has made their intention pretty
>clear.
>
well that's quite interesting!

I guess like you say, the key is to just not link with libcygwin.a .

I suppose thought that you could relink cygwin.dll adding those other
components and then you wouldnt be violating any rules.

In that case you could distribute your own version of cygwin.dll,
under GPL of course and then you would not be linking in any code
from cygwin.dll.

However, presumably cygnus can't enforce GPL anyway, only FSF can do 
that.

reed


Reed Kotler
http://www.reedkotler.com  home of a nice unix like toolset for windows NT/95
http://www.justjazz.com    home of a jazz musicians discussion list
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread
* Re: Commercial Licensing
@ 1997-03-31 11:05 Reed Kotler Consulting
  1997-03-31  6:07 ` Jim Balter
  1997-04-01 13:02 ` Fergus Henderson
  0 siblings, 2 replies; 24+ messages in thread
From: Reed Kotler Consulting @ 1997-03-31 11:05 UTC (permalink / raw)
  To: Jim Balter; +Cc: gnu-win32

<<snip>>
>
>You seem to be confused by the fact that much GPLed code is owned
>by the FSF, including code that was written by others but ownership
>was turned over to the FSF, and perhaps by the fact that the GPL itself
>is copyrighted by the FSF.  The GPL is a document that describes the
>terms of a copyright, terms that involve the granting of software
>licenses.  The "License" in "GPL" is a license to the "General
>Public" from the owner of the copyright, not a license from the FSF.
>How could the FSF possibly have licensing rights to code owned by
>Cygnus to the exclusion of Cygnus; how were they granted such exclusive
>rights?  As opposed to code that Cygnus turned over to the FSF, such as
>BFD; cygwin.dll is not such code.  Anybody can put their code, code they
>own, code they have the copyright to, under the GPL, which happens to be
>published by the FSF.  That does not automatically give the FSF any
>special legal standing, including licensing rights.  There is nothing in
>the GPL that gives the FSF any rights to code copyrighted under it
>(other than the rights that *everyone* in the public gets).
>
>
>Really, all these issues have been discussed before and elsewhere;
>I'm not the best person to debate them with, and this isn't the
>best place to do it.  So if you think I've said something false,
>I direct you to gnu.misc.discuss (where you won't necessarily
>get the right answers either), the FSF and Cygnus legal departments,
>the U.S. Patent and Copyrights office, etc.
>
>But then, I thought you didn't care. :-)
>
Wow! I must be out of touch with all this! I guess I need to re-read
the gpl.

I think I'll skip the gnu.misc.discuss. I need one more mailing
list or newsgroup like I need a hole in my head.

Your stating that Stallman considers code derived from the bison
skelleton as being free source because it derives from bison is
pretty schocking. I've never heard anything like that!

Well I'm considerring adding gcc to the unix like toolset I distribute
for NT/windows 95. My toolset has no cygwin dependence since they were
all built with vc++ . 

I guess if I choose to distribute the cygwin dll then people
building applications could potentially have to deal with those GPL
issues. However since the cygwin dll is separately available from
other sources it seems totally safe to me but of course lawyers can
always hassle you no matter what you do. And that is what it will
come down to. For some small fry, nobody will care anyway and for
someone that has something to worry about, paying cygnus 10k or
whatever to avoid getting hassled is no big deal. Although someone
with 10k to spend may choose some competing commercial product
like nutcraker.

Has any of GPL ever been tested in court?

reed


Reed Kotler
http://www.reedkotler.com  home of a nice unix like toolset for windows NT/95
http://www.justjazz.com    home of a jazz musicians discussion list
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~1997-04-01 13:02 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-03-25 12:55 Nobody in the world understands Gnu's 'ld' Ian Lance Taylor
1997-03-25 20:52 ` Mr Taylor surely understands ld: a correction to my previous post root
1997-03-27  8:16   ` Fergus Henderson
1997-03-25 23:17 ` Nobody in the world understands Gnu's 'ld' Fergus Henderson
1997-03-26 10:43   ` Joel Dinolt
1997-03-27  9:46     ` Fergus Henderson
1997-03-27 20:59   ` Pedro A. Aranda Gutiirrez
1997-03-27  9:46     ` Ian Lance Taylor
1997-03-28 10:32       ` Commercial Licensing David Essex
1997-03-28 19:43         ` Jim Balter
1997-03-29  0:06         ` Geoffrey Noer
1997-03-27 22:51   ` Nobody in the world understands Gnu's 'ld' Ian Lance Taylor
1997-03-29  5:40 Commercial Licensing Reed Kotler Consulting
1997-03-29 17:29 ` Jim Balter
1997-03-30 18:44 Reed Kotler Consulting
1997-03-30 22:35 ` Jim Balter
1997-03-30 21:22 Reed Kotler Consulting
1997-03-30 22:35 ` Jim Balter
1997-03-30 23:21 Reed Kotler Consulting
1997-03-30 20:51 ` Jim Balter
1997-04-01  4:09   ` Robert W. Fuller
1997-03-31 11:05 Reed Kotler Consulting
1997-03-31  6:07 ` Jim Balter
1997-04-01 13:02 ` Fergus Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).