Hello all,

        Bad day...  Bad week, and more...  Last several kernel updates
from RedHat have been impossible to use to build custom kernel builds.

        I swear I must be doing something fundamental wrong but a proceedure
I've been using to build custom kernels from the RedHat kernel source
rpm just isn't working any more (and a backup proceedure is even worse).

        I need a custom kernel to add some options and add some drivers
(usbvision for one - mods to a kernel driver I MAINTAIN for another).  The
proceedure I HAVE been using is to install the kernel "source" RPM from the
install CD's and then gone to /usr/src/linux-2.4 and copied the appropriate
configs/kernel{whatever} to .config and then "make oldconfig ; make deps
clean bzImage ; make modules" etc...  Worked like a charm under 2.4.18-5
and earlier.  Then I would reboot to that "custom" kernel (which really
shouldn't be custom but it makes the version strings match) make my
modifications to the kernel sources (changes to SCSI parameters and/or add
drivers) and rebuild...

        Ever after 2.4.18-5, the "make dep clean bzImage" works like a charm
but the "make modules" catches fire and burns to high hell.  First I
thought it was just the stupid CIPE module that RedHat has been adding
in (since it's the first module to blow chunks).  But disabling that
module just causes the blowup to be in the next module.  The errors are
bizzare.  Things like "non-numeric character in number but not hex" and
stuff.  It LOOKS like there is some totally wacked out header, but I
haven't been able to track it down.

        Here is what I get from "make modules" trying the stock RedHat
(there's a $#@$%@# oxymoron for you) kernel sources and one of their
unmodified configuration files (configs/kernel-2.4.18-i386.config):

make[3]: Entering directory `/usr/local/src/linux-2.4.18-19.7.x/drivers/addon/cipe'
gcc -D__KERNEL__ -I/usr/local/src/linux-2.4.18-19.7.x/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE 
-DMODVERSIONS -include /usr/local/src/linux-2.4.18-19.7.x/include/linux/modversions.h  
-nostdinc -I /usr/lib/gcc-lib/i386-redhat-linux/2.96/include -DKBUILD_BASENAME=module  
-c -o module.o module.c
In file included from /usr/local/src/linux-2.4.18-19.7.x/include/linux/if.h:23,
                 from cipe.h:21,
                 from module.c:15:
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: parse error before 
`9fb3dd30'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: 
`memcpy_fromiovec_R_ver_str' declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:249: warning: function 
declaration isn't a prototype
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: floating constant 
exponent has no digits
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: missing white space 
after number `9ce'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: parse error before `9ce'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: 
`memcpy_toiovec_R_ver_str' declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:258: warning: function 
declaration isn't a prototype
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:259: 
`memcpy_tokerneliovec_R_ver_str' declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:259: warning: parameter 
names (without types) in function declaration
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:260: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:260: parse error before 
`38c99093'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:260: 
`move_addr_to_user_R_ver_str' declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:260: warning: function 
declaration isn't a prototype
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: parse error before 
`5dfa4696'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: 
`move_addr_to_kernel_R_ver_str' declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:261: warning: function 
declaration isn't a prototype
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:262: `put_cmsg_R_ver_str' 
declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/socket.h:262: warning: parameter 
names (without types) in function declaration
In file included from cipe.h:62,
                 from module.c:15:
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: nondigits in number 
and not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: nondigits in number 
and not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: nondigits in number 
and not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: nondigits in number 
and not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: parse error before 
`9cf0c64f'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: 
`if_port_text_R_ver_str' declared as function returning an array
/usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:144: warning: function 
declaration isn't a prototype
In file included from /usr/local/src/linux-2.4.18-19.7.x/include/linux/skbuff.h:18,
                 from /usr/local/src/linux-2.4.18-19.7.x/include/linux/netdevice.h:147,
                 from cipe.h:62,
                 from module.c:15:
/usr/local/src/linux-2.4.18-19.7.x/include/linux/kernel.h:60: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/kernel.h:60: nondigits in number and 
not hexadecimal
/usr/local/src/linux-2.4.18-19.7.x/include/linux/kernel.h:60: parse error before 
`01075bf0'
/usr/local/src/linux-2.4.18-19.7.x/include/linux/kernel.h:61: `panic_R_ver_str' 
declared as function returning a function
/usr/local/src/linux-2.4.18-19.7.x/include/linux/kernel.h:61: warning: function 
declaration isn't a prototype

        I also tried doing a "make mrproper" followed by a "make xconfig"
where I "loaded" a "configs/kernel-2.4.18-i386.config" config file and
saved it.  That was even WORSE!  Then I couldn't even build bzImage!
That blew up with this error:

kallsyms pass 1
ld -m elf_i386 -T /usr/local/src/linux-2.4.18-19.7.x/arch/i386/vmlinux.lds -e stext 
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o 
init/do_mounts.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o 
kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o  drivers/char/char.o drivers/block/block.o 
drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/net/fc/fc.o 
drivers/net/appletalk/appletalk.o drivers/net/tokenring/tr.o drivers/net/wan/wan.o 
drivers/atm/atm.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o 
drivers/net/pcmcia/pcmcia_net.o drivers/net/wireless/wireless_net.o drivers/pnp/pnp.o 
drivers/video/video.o drivers/md/mddev.o drivers/isdn/vmlinux-obj.o 
drivers/sensors/sensor.o arch/i386/math-emu/math.o net/network.o crypto/crypto.o 
abi/abi.o /usr/local/src/linux-2.4.18-19.7.x/arch/i386/lib/lib.a 
/usr/local/src/linux-2.4.18-19.7.x/lib/lib.a 
/usr/local/src/linux-2.4.18-19.7.x/arch/i386/lib/lib.a --end-group -o .tmp_vmlinux1
fs/fs.o: In function `zisofs_readpage':
fs/fs.o(.text+0x2b6eb): undefined reference to `zlib_inflateInit_'
fs/fs.o(.text+0x2b837): undefined reference to `zlib_inflate'
fs/fs.o(.text+0x2b9cb): undefined reference to `zlib_inflateEnd'
fs/fs.o: In function `mnt_init':
fs/fs.o(.text.init+0x864): undefined reference to `init_rootfs'
fs/fs.o: In function `zisofs_init':
fs/fs.o(.text.init+0xb7d): undefined reference to `zlib_inflate_workspacesize'
make[1]: *** [kallsyms] Error 1
make[1]: Leaving directory `/usr/local/src/linux-2.4.18-19.7.x'
make: *** [vmlinux] Error 2

        Sigh...  No joy...

        But if I take the kernel SRPM and install it and build it, it
builds a set of stock kernels just fine...  But I can't build a custom
kernel from the "source" RPM that it generates.  Bizzare...  Anyone have
any idea what is hosed up here?  Anyone have this actually working since
2.4.18-5.  Latest one I tried is 2.4.18-19.7.x and it's still busted.  If
I drop back to 2.4.18-5 it works...

        Tried this on three different systems.  Two are RedHat 7.3 and
one is RedHat 8.0.  All are fully up to date with the latest RPMS from
the RedHat update sites.  Doubled checked after the blowups.  All blow
chunks on custom kernel builds from the RedHat source RPMS using the
RedHat config files with no modification (preparatory builds).

        Time to go dumpster diving in the toxic waste dump of RedHat kernel
patches I guess and figure out just what got screwed (other than me).

        Blows up the same way on linux-2.4.20-2.2 from the Phoebe beta.
I build the linux-2.4.20-2.2 RPMS from the SRPM (successfully) and then
tried to buid a custom kernel from the "source" RPM that created.
Same chunks blown all over hell's half acre.

        If I can't figure out what RedHat screwed up between 2.4.18-5
and it's followers, then I guess the best option is to dump the RedHat
kernel cruft and go back to working from tarballs.  The only reason
I shifted to the RedHat rpms for kernel builds, to begin with, was thanks
to the lamosity of the "LABEL=" mount cruft (and later got burned by that
when moving hard drives for forensic work and had the stupid shit mount
two partitions on every mount point...  Grrr...)

        I figure I must be doing something wrong or others would have
seen this earlier...  But what changed after 2.4.18-5 to cause this????

        Mike
-- 
 Michael H. Warfield    |  (770) 985-6132   |  [EMAIL PROTECTED]
  /\/\|=mhw=|\/\/       |  (678) 463-0932   |  http://www.wittsend.com/mhw/
  NIC whois:  MHW9      |  An optimist believes we live in the best of all
 PGP Key: 0xDF1DD471    |  possible worlds.  A pessimist is sure of it!

Attachment: msg100112/pgp00000.pgp
Description: PGP signature

Reply via email to