From owner-freebsd-amd64@FreeBSD.ORG Tue Jul 3 20:55:40 2007 Return-Path: X-Original-To: freebsd-amd64@freebsd.org Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2B75816A468 for ; Tue, 3 Jul 2007 20:55:40 +0000 (UTC) (envelope-from jdc@parodius.com) Received: from mx01.sc1.parodius.com (mx01.sc1.parodius.com [72.20.106.3]) by mx1.freebsd.org (Postfix) with ESMTP id 187E813C4B8 for ; Tue, 3 Jul 2007 20:55:40 +0000 (UTC) (envelope-from jdc@parodius.com) Received: by mx01.sc1.parodius.com (Postfix, from userid 1000) id E9F051CC05D; Tue, 3 Jul 2007 13:55:39 -0700 (PDT) Date: Tue, 3 Jul 2007 13:55:39 -0700 From: Jeremy Chadwick To: John Baldwin Message-ID: <20070703205539.GA35047@eos.sc1.parodius.com> Mail-Followup-To: John Baldwin , freebsd-amd64@freebsd.org References: <20070703175313.GA31065@eos.sc1.parodius.com> <200707031615.09525.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200707031615.09525.jhb@freebsd.org> User-Agent: Mutt/1.5.15 (2007-04-06) Cc: freebsd-amd64@freebsd.org Subject: Re: accf_http.ko breaks without COMPAT_IA32 (module linker problems?) X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jul 2007 20:55:40 -0000 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 |