[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1f4994dc-2d0b-f657-2b86-04259760272d@infradead.org>
Date: Wed, 29 Nov 2017 11:31:39 -0800
From: Randy Dunlap <rdunlap@...radead.org>
To: Lee Strobel <leestrobel@...root.org>, linux-kernel@...r.kernel.org
Cc: Theodore Ts'o <tytso@....edu>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: Missing version line in System.map file?
On 11/29/2017 11:07 AM, Randy Dunlap wrote:
> On 11/28/2017 07:20 PM, Lee Strobel wrote:
>> Hi,
>>
>> I have a question about the Linux kernel, which I have been trying to
>> find an answer to through various forums for some time now, but without
>> success. I'm wondering if anyone on this mailing list might be able to
>> help?
>>
>> I've been trying to build a Linux From Scratch (LFS) system, using
>> SysVinit and sysklogd. However, when I tried to boot up, klogd wasn't
>> accepting the System.map file, printing log messages such as:
>>
>> Oct 9 17:24:17 <lee_lfs> kernel: klogd 1.5.1, log source = /proc/kmsg
>> started.
>> Oct 9 17:24:17 <lee_lfs> kernel: Inspecting /boot/System.map
>> Oct 9 17:24:17 <lee_lfs> kernel: Cannot find map file.
>>
>> So, I dug into the source code for klogd a little bit, and it appears
>> the reason the map file wasn't being accepted was because it didn't
>> contain a 'version' line, which klogd was looking for, in the form:
>>
>> [address] [type] Version_XXXXX
>>
>> (where XXXXX is the kernel version # in base 256).
>>
>> So, I've been asking around on various forums. It seems that none of the
>> map files that are being produced by more recent kernel versions include
>> this line and no-one that I've spoken to on the Linux user forums seems
>> to know why this is.
>>
>> Was a change made to the kernel, to remove this 'version' line
>> from the map file? If so, how are the newer init systems verifying that
>> the map file is the same version as the running kernel? Perhaps sysklogd
>> needs to be updated?
>>
>> By the way, I tried adding a 'dummy' version line to my map file and
>> klogd accepted it fine.
>>
>> Hopefully someone out there can assist, as no-one in the Linux user
>> community seems to know what is going on with this.
>>
>> Best regards,
>>
>> Lee Strobel
>> Engineer/Tinkerer/Free Software Supporter ..
>
> Hi,
>
> Having that symbol in the System.map file depends on the kernel config
> symbol CONFIG_KALLSYMS. KALLSYMS must be disabled (unset) for that
> symbol to be generated. I don't know why it's like that.
>
> ffffffff815e50a8 B Version_197216
>
> Ted, do you have any idea about that?
>
> thanks.
ah, git log tells us:
commit 197dcffc8ba0ea943fee86e28e99cd9575799772
Author: Daniel Guilak <guilak@...ux.vnet.ibm.com>
Date: Fri Jul 25 01:45:50 2008 -0700
init/version.c: define version_string only if CONFIG_KALLSYMS is not defined
int Version_* is only used with ksymoops, which is only needed (according
to README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined.
Therefore this patch defines version_string only if CONFIG_KALLSYMS is not
defined.
Signed-off-by: Daniel Guilak <daniel@...ielguilak.com>
Cc: Randy Dunlap <randy.dunlap@...cle.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org>
I would be OK with reverting that commit so that Version_xxxxxx is
always present in System.map.
--
~Randy
Powered by blists - more mailing lists