Subject: libbfd and crunchide & mdsetimage
To: None <tech-toolchain@netbsd.org>
From: Bill Studenmund <wrstuden@nas.nasa.gov>
List: tech-toolchain
Date: 05/17/1999 14:44:56
I've been pushing to get cross-build versions of crunchide & mdsetimage,
so that we could build boot/install floppies & media on any architecture
for (most?) any other.

My first direction of agitation was towards using libbfd, but I didn't
know how to use it. So I asked about it, and two folks have helped out.
Krister Walfridsson made a libbfd-using crunchide, and (I believe)
independently Kazuki Sakamoto made a libbfd-using crunchide & mdsetimage.

Well, the problem is that libbfd is GPL'd, not LGPL'd. So programs which
would depend on it would need to have GPL handling. i.e. src/gnu, etc.

What do we want to do? Options I see are:

1) Just throw the libbfd-using ones in /src/gnu/usr.bin and not worry
about it. (either keeping or retiring the BSD-copywritten ones)

2) Make them packages.

3) Hack on the existing, BSD-licensed, crunchide and mdsetimage to be able
to byteswap.

4) Make the two programs dynamically load libbfd. Like we have exec_aout,
exec_ecoff, exec_elfXX modules now, add an exec_libbfd. The format match
routine would try to load in libbfd, and fail if libbfd weren't available.
That way the program would run fine w/o libbfd, it just wouldn't have the
expanded object format support. :-) I think the fact that the program
would run (and be functional) w/o GPL'd code present would get around GPL
requirements for the non-GPL'd code - it'd be like the case of GPL'd LKM's
being loaded into a kernel

What do people think?

Hmm. 2 or 3 might be the best as only the packaged version of libbfd has
support for all netbsd targets.

Take care,

Bill