[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What exactly is Derivative ?



Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> writes:

> > Really? A dynamically linked executable does not include code from the
> > library, so it would take something more argument-like to convince me,
> > at least ;-)

> No, you are confusing it with another case Wichert listed.

Is there any technical difference between what happens to the library
in the dynamically-linked case and the load-on-demand case?

I've always understood that 'dynamic linking' was implemented by
prefacing the executable with a small piece of linker-generated
code that loads ld.so "on demand" after which ld.so resolves
dependencies with the library using the same mecanisms that the
program would itself use to load the library "on demand".

If I'm not wrong about this, what the library experiences is not
different between the two ways of using it.

> A dynamically linked program usually does include the header files of the
> library it links to.

The source code does not. An intermediate data stream that exists only
during the compilation process does. The object code does not (i.e, no
part of the object code is a "translation" of the data in the header
file).

> Furthermore, the program is only runable after it was linked to the library,
> so you have to look at the program after the linking was done.

No, not when discussing wheter the library author can legally object
to my making of copies of the dynamically linked executable.

> > The rules are supposed to be the same as for literary works.

> This is not quite correct, because a computer is not a book cover and vice
> versa.

Nevertheless most of the rules (at least the Danish codex) are the
same, and only a few have special points to make about software. None
of the software-related exceptions seem to have anything to do with
dynamic linking.

> > If I
> > printed the text of the novel on the right-hand pages and my
> > commentary on the left-hand ones, I'd be statically linking in the
> > novel, and would need permission from its author.

> I wonder where you got this from. Really, I think this is absurd.

Hm, then just try to publish a commentary including the text of the
work you're commenting. I'd bet the original author would sue you
as soon as (s)he found out what you're doing.

> Imagine a judge and an attorney, and the attorney would tell the
> judge what you are trying to tell me. How would the judge respond?

Probably by pointing out that analogies are usually not valid argument
devices. Analogies are, however, convenient ways to find out what a
disagreement is really about. That was the way I was trying to use one.

> The attorney would have to say that the right-hand pages of the
> dynamically linked book, which were empty, would now be filled with
> the content of the other book.

No. The dynamically linked book does not have any empty pages. It
has an instruction to its reader that he should place a copy of the
original work along with it for easy reference during the reading.

The reader may have to visit a bookstore or a public library before
he can do that. The dynamically linked book does not do this for him.

> Imagine a book, left-hand pages are commentary, right-hand pages are
> empty. But every time you open the book, the right-hand pages are magically
> filled with the words of the novel.

This is not a valid analogy. A dynamically linked executable does not
contain empty space that is going to be filled with library code. And
the library does not get there by magic - a copy of it must already
be accessible. This can be easily observed simply by copying the
dynamically linked executable to another computer without also copying
the shared object file for the library. Now when you run the
executable on the other computer, the library code does *NOT* appear,
magically or otherwise.

> Well, actually, I have to be careful with my argumentation. If you would
> propose a machine that inserts the pages of the novel in your commentary
> automatically, you would win.

This machine is called ld.so.

> > If the header files for the library only contains the likes of
> > assertations that "there is a function called FastFrobnicate taking
> > two integer arguments and returning void", the executable would be no
> > more in debt to the library than my commentary is indebted to the
> > novel when noting that there's a person called Jack M. Sparrow in there?

> No, the header files are really included inthe derived work.

That is a postulate for which you have provided no arguments. The
header files are no more a part of the object file than this article
is legally derived from Merriam-Webster's online dictionary because
I just looked up the spelling of "conscious" there.

-- 
Henning Makholm


Reply to: