accf_http.ko breaks without COMPAT_IA32 (module linker problems?)

Jeremy Chadwick koitsu at FreeBSD.org
Tue Jul 3 20:55:40 UTC 2007


On Tue, Jul 03, 2007 at 04:15:09PM -0400, John Baldwin wrote:
> On Tuesday 03 July 2007 01:53:13 pm Jeremy Chadwick wrote:
> > Came across this today (and is reproducable):
> > 
> > With COMPAT_IA32 removed from the kernel configuration, accf_http.ko
> > breaks in a bad way.  Only shown on the console is the message "kldload:
> > Unsupported file type" when kldload is used to load the module.  Worse,
> > the module linker appears to load a portion of the module anyways:
> > 
> > # kldstat
> > Id Refs Address            Size     Name
> >  1    2 0xffffffff80100000 566cd0   kernel
> >  2    1 0xffffffffb468a000 795      accf_http.ko
> > 
> > # kldstat -v -i 2
> > Id Refs Address            Size     Name
> >  2    1 0xffffffffb468a000 795      accf_http.ko
> >         Contains modules:
> >                 Id Name
> >                 173 accf_http
> > 
> > And attempts to unload the module fail (which is where I question the
> > reliability of the module linker (no offence intended)):
> > 
> > # kldunload accf_http.ko
> > kldunload: can't unload file: Operation not supported
> > icarus# kldunload -v -f accf_http.ko
> > Unloading accf_http.ko, id=2
> > kldunload: can't unload file: Operation not supported
> > 
> > Minor details:
> > 
> > -r-xr-xr-x  1 root  wheel  5544 Jul  3 10:35 /boot/kernel/accf_http.ko
> > 
> > /boot/kernel/accf_http.ko: ELF 64-bit LSB relocatable, AMD x86-64, version 1 
> (FreeBSD), not stripped
> > 
> > Putting COMPAT_IA32 back in results in proper behaviour all around.
> 
> What is in dmseg after the kldload?  Usually if there is a missing symbol the 
> kernel will print out its name in dmesg.

This is during bootup, so it happens right as rc.d/apache22 starts.
rc.d/apache22 loads the module via apache22_http_accept_enable="yes".
The script also redirects kldload's stderr output to /dev/null, so if
kldload spits it out to stderr, that might be why nothing gets shown.

-- 
| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |



More information about the freebsd-amd64 mailing list