Re: Moving zlib so that others may use it

Tom Rini (trini@kernel.crashing.org)
Thu, 10 Jan 2002 08:36:57 -0700


On Thu, Jan 10, 2002 at 03:44:47PM +1100, Keith Owens wrote:
> On Wed, 09 Jan 2002 22:23:31 -0600,
> Corey Minyard <minyard@acm.org> wrote:
> >Keith Owens wrote:
> >>On Wed, 09 Jan 2002 17:32:20 -0600,
> >>Corey Minyard <minyard@acm.org> wrote:
> >>>I would like to propose putting zlib in the lib directory and making it
> >>>optionally compile if it is needed.
> >>
> >>The best option is to build zlib.o for the kernel (not module) and
> >>store it in lib.a. Compile zlib.o if any consumer of zlib has been
> >>selected and add a dummy reference to zlib code in vmlinux to ensure
> >>that zlib is pulled from the archive if anybody needs it, even if all
> >>the consumers are in modules. Some of the zlib symbols will need to be
> >>exported, I will leave that to you.
> >>
> >Why not just create zlib as a module if all the users are modules (so
> >depmod and modprobe load it)? That's what everything else does. And
> >that way, if it's already in the kernel, the module just won't get
> >loaded, but if it's not the module gets loaded. What you are suggesting
> >seems rather convoluted.
>
> If zlib is a module then it cannot be part of lib/lib.a, it has to be
> separate, with changes to the top level Makefile to conditionally
> include lib/zlib.o. I did that originally but the changes to
> lib/Makefile and the top level Makefile were worse. Building zlib as a
> module guarantees that you cannot use it in a boot loader, forcing you
> to maintain multiple versions of zlib.c. If you are going to use one
> version of zlib then you should try to handle bootloaders as well.

It's possible they can share, but the bootloaders (PPC & MIPS) need a
slight change to the zlib.c code to to allow using zero as a real
address to store the uncompressed data. So we'd want to guard the
changes with __BOOTER__ or so, and then cp the file or do
#define __BOOTER__
#include "zlib.c"

And do -I$(TOPDIR)/lib, or something along those lines.

-- 
Tom Rini (TR1265)
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/