Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 1998 23:37:10 -0700
From:      Mike Smith <mike@smith.net.au>
To:        Brett Glass <brett@lariat.org>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Producing non-GPLed tools for FreeBSD 
Message-ID:  <199810190637.XAA16847@dingo.cdrom.com>
In-Reply-To: Your message of "Mon, 19 Oct 1998 00:23:11 MDT." <4.1.19981019000937.06571220@mail.lariat.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> I'm interested in producing some programming tools that will aid in the
> development of code for FreeBSD. Unfortunately, when I've asked various
> people about such things as the object and executable formats, they've all
> told me that there was no documentation of these things, and that the best
> way to do this was to UTSL ("Use the source, Luke!"). I was pointed, in
> particular, to the as(1) assembler and ld(1) linker.

As has been mentioned previously, the ELF object format is copiously
described by the ELF documentation, sources for which have been posted 
here several times. 

> Unfortunately, when I looked for the source in the 3.0-current tree, I
> discovered, to my horror, that both programs were in the /src/gnu
> subdirectory. This creates a problem. Technically, if I use GPLed source, I
> must GPL the resulting product. And both as(1) and ld(1) are GPLed.

Binutils uses libbfd, which unfortunately is licensed under the GPL, 
not the LGPL.

> Thus, without descriptions of the output formats that do not require me to
> read the source code, I can't produce tools that I am 100% sure can be
> licensed under the Berkeley license and/or sold as commercial products.

Since such documentation exists, you're safe here.  You can also 
consult with the relevant experts, who can give you uninfected advice.

> (This is, perhaps, precisely the sort of "trap" Richard Stallman intended
> to set when he wrote the GPL in the first place: making it difficult to
> develop alternatives.)

Correct.

> If I'm going to start doing language compilers (and an optimizing
> assembler) for FreeBSD, I need descriptions of the object format,
> executable format, register usage conventions, parameter passing
> conventions, and library conventions that are independent of any GPLed
> code. How can I obtain these? These would also be required by any
> commercial developer (say, Green Hills, Borland, or Watcom) who wished to
> develop tools for FreeBSD, so they wouldn't just be for MY benefit; they're
> necessary to open up the tools market to ANYONE other than the FSF.

To be quite honest, if all you're doing when you look at the code is 
reverse-engineering the interface(s), it's unlikely that your 
derived specification will be subject to the GPL.  If you obtain this 
specification without looking at the code (eg. by conversing with 
someone else who has done the work) then you're almost certainly clean 
(this is the standrd 'clean room' methodology).

-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810190637.XAA16847>