Using the 1.3b stage1 tarball, I built up a system that uses lvm. The kernel I compiled uses modules for LVM. Imagine my surprise when I tried to insmod the module to get to /usr and i get the error: insmod: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory. Turns out that libz.so.1 is in /usr/lib. I cannot stress enough that tools in /bin and /sbin *cannot* rely on libraries in /usr! If libz.so.1 is required for insmod, please move it to /lib, otherwise get rid of that requirement for insmod.
My booboo, as I added the "zlib" USE flag, and did not make modutils compile static.
Fixed in modutils-2.4.16-r1, thanks.
If you want to know why insmod segfaults with zlib as static read this: Compile insmod using gcc-2.95.3 with zlib and make it static. (gcc 3.1 doesn't have this bug) Then run "insmod -s anything", it segfaults. This is because the function "atexit" from glibc doesn't work with static binaries compiled with gcc 2.95.3. "atexit" is used by insmod if you pass it the -s switch. (see source) It works fine with static gcc 3.1 binaries and dynamic binaries with gcc-2.95.3.
It does not segfault here, but just dont want to load the module on demand. called from command line, it works fine though. Weird, I know.