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>
