Date: Sat, 27 Apr 2013 23:42:18 +0300 From: Kimmo Paasiala <kpaasial@gmail.com> To: "Wojciech A. Koszek" <wkoszek@freebsd.org> Cc: freebsd-hackers@freebsd.org Subject: Re: config(8) -x headscratcher Message-ID: <CA%2B7WWScWuFCOMXSU3LogrGOGt1FF6z-HZSAAsz_Bvkkxoc7t2Q@mail.gmail.com> In-Reply-To: <20130427190514.GA85673@FreeBSD.org> References: <CA%2B7WWSeZ=Mg=-duGY-RHZ=n8vrJtDRM28jwCr1Szv4t_4Cdh%2Bw@mail.gmail.com> <20130427190514.GA85673@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 27, 2013 at 10:05 PM, Wojciech A. Koszek <wkoszek@freebsd.org> wrote: > On Sat, Apr 27, 2013 at 06:54:11PM +0300, Kimmo Paasiala wrote: >> I'm getting a core dump on 'config -x /boot/kernel/kernel' on 9.1-RELEASE i386. >> >> Assertion failed: (r != '\0' && ("Char present in the configuration " >> "string mustn't be equal to 0")), function kernconfdump, file >> /usr/src/usr.sbin/config/main.c, line 710. >> >> I have double checked that my config file is sane and does not have >> any funny characters anywhere. >> >> The system is i386 9.1-RELEASE r249856. The world and kernel are built >> with clang and I'm suspecting that the use of clang has something to >> do with this segfault. >> >> Looking at the kernel files I can see one very obvious difference. >> This is the 'elfdump -c kernel | grep -A 8 kern_conf' output (what >> config -x seems to use for finding out the config file from the kernel >> image) for the GENERIC kernel from the stock installation: >> >> sh_name: kern_conf >> sh_type: SHT_PROGBITS >> sh_flags: SHF_ALLOC >> sh_addr: 0xc1039f80 >> sh_offset: 12820352 >> sh_size: 3771 >> sh_link: 0 >> sh_info: 0 >> sh_addralign: 32 >> >> And this is from the kernel I have built myself using clang and a >> custom config file: >> >> sh_name: kern_conf >> sh_type: SHT_PROGBITS >> sh_flags: SHF_ALLOC >> sh_addr: 0xc09aee9c >> sh_offset: 5959324 >> sh_size: 1994 >> sh_link: 0 >> sh_info: 0 >> sh_addralign: 1 >> >> The align field looks suspicious, config -x seems to use it to check >> for padding but to me it looks like the logic may not work if the >> alignment is 1. >> >> This the relevant bit from main.c of config(8) >> > > Kimmo, > > Lets keep discussion on hackers@ only. I do agree with you that config(8) > internal implementation might have its issues. > > Can you make your kernel configuration file, faulty kernel image and exact > build instructions available to me? > > -- > Wojciech A. Koszek > wkoszek@FreeBSD.czest.pl > http://FreeBSD.czest.pl/~wkoszek/ The kernel config file: http://pastebin.com/j0J9NPCi My /etc/make.conf: http://pastebin.com/HYudWCA9 And /etc/src.conf: http://pastebin.com/ZAKq6ABT I'll see how I can make the kernel image available. -Kimmo
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B7WWScWuFCOMXSU3LogrGOGt1FF6z-HZSAAsz_Bvkkxoc7t2Q>