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

John Baldwin jhb at freebsd.org
Tue Jul 3 20:15:30 UTC 2007


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.

-- 
John Baldwin


More information about the freebsd-amd64 mailing list