From: Robby Workman on
On 2009-11-01, Henrik Carlqvist <Henrik.Carlqvist(a)deadspam.com> wrote:
> ".Martin." <xtd8865(a)gmail.com> wrote:
>> Henrik Carlqvist wrote:
>>> you are supposed to have the same kernel headers which
>>> was used to compile your installed glibc.
>
>> Does that mean that I'm supposed to install the
>> kernel-headers for the stock slackware kernel (29.x)?
>
> Yes, reinstalling the kernel-headers package will give you the right .h
> files which match your installed glibc.
>
> There is one possible case when headers matching the used kernel is needed
> and that is when compiling kernel modules. However, mostly you will only
> compile normal programs and then these headers are the ones that you want.


Anything building kernel modules will use this instead of the
system headers: /lib/modules/$(uname -r)/source/include/

If it doesn't, then it's broken, and that's no reason to break
your own system. :-)

-RW
From: .Martin. on
Robby Workman wrote:
> On 2009-11-01, goarilla <kevin.paulus(a)skynet.remove-this.be> wrote:
>> On Sun, 01 Nov 2009 12:45:29 +0000, .Martin. wrote:
>>
>>> Henrik Carlqvist wrote:
>>>> ".Martin." <xtd8865(a)gmail.com> wrote:
>>>>> I compiled a new kernel (31.5). Everything works fine, apart from one
>>>>> thing: I can't compile new programs. When I ./configure or use sbopkg
>>>>> I get the following errors:
>>>>>
>>>>>> /usr/include/bits/local_lim.h:39:26: error: linux/limits.h: No such
>>>>>> file or directory
>>>>> I can guess why I get such errors. I probably don't heave
>>>>> kernel-headers for the new kernel.
>>>> You are not supposed to have kernel headers for your new kernel. When
>>>> compiling programs you are supposed to have the same kernel headers
>>>> which was used to compile your installed glibc.
>>>>
>>>> regards Henrik
>>> Thanks for your reply. Does that mean that I'm supposed to install the
>>> kernel-headers for the stock slackware kernel (29.x)?
>>>
>> maybe you can fix it differently
>> it seems /usr/include/linux/limits.h doesn't exist
>>
>> it ought to be the same file as /usr/src/linux/include/linux/limits.h
>> so maybe you could copy /usr/src/linux/include/linux to /usr/include/
>>
>> because i don't think the kernel headers from 29.x vs 31.5
>> differ that much (someone mentioned 30.x and onwards are the same)
>>
>> i don't know if it's the right way to do tho
>> iirc most distro's seem to symlink /usr/src/linux/include/linux to /usr/
>> include/linux. while in slackware the kernel headers are seperate files
>> from /usr/src/linux
>
>
> It's DEFINITELY NOT the right way to do it.
>
> http://www.linuxquestions.org/questions/slackware-14/compiling-a-new-kernel-579618/?postcount=11
>
> The context is not quite the same, but the points are still relevant
> and still apply to this situation. In short, you should NEVER upgrade
> the kernel-headers package (or replace or remove the installed headers
> in /usr/include/) except with an official package created FOR that
> SAME version of Slackware. Sure there are exceptions to that, but
> you won't be encountering any of them until you can explain why they
> are exceptions, and once you reach that point, you'll not want to
> bother with them :-)
>
> -RW

Thanks Robby
From: .Martin. on
Robby Workman wrote:
> On 2009-11-01, .Martin. <xtd8865(a)gmail.com> wrote:
>> goarilla wrote:
>>> On Sun, 01 Nov 2009 12:45:29 +0000, .Martin. wrote:
>>>
>>>> Henrik Carlqvist wrote:
>>>>> ".Martin." <xtd8865(a)gmail.com> wrote:
>>>>>> I compiled a new kernel (31.5). Everything works fine, apart from one
>>>>>> thing: I can't compile new programs. When I ./configure or use sbopkg
>>>>>> I get the following errors:
>>>>>>
>>>>>>> /usr/include/bits/local_lim.h:39:26: error: linux/limits.h: No such
>>>>>>> file or directory
>>>>>> I can guess why I get such errors. I probably don't heave
>>>>>> kernel-headers for the new kernel.
>>>>> You are not supposed to have kernel headers for your new kernel. When
>>>>> compiling programs you are supposed to have the same kernel headers
>>>>> which was used to compile your installed glibc.
>>>>>
>>>>> regards Henrik
>>>> Thanks for your reply. Does that mean that I'm supposed to install the
>>>> kernel-headers for the stock slackware kernel (29.x)?
>>>>
>>> maybe you can fix it differently
>>> it seems /usr/include/linux/limits.h doesn't exist
>>>
>>> it ought to be the same file as /usr/src/linux/include/linux/limits.h
>>> so maybe you could copy /usr/src/linux/include/linux to /usr/include/
>>>
>>> because i don't think the kernel headers from 29.x vs 31.5
>>> differ that much (someone mentioned 30.x and onwards are the same)
>>>
>>> i don't know if it's the right way to do tho
>>> iirc most distro's seem to symlink /usr/src/linux/include/linux to /usr/
>>> include/linux. while in slackware the kernel headers are seperate files
>>> from /usr/src/linux
>>>
>>> eg the same files reside 2 times in the filesystem instead of only once
>>> yes i checked it with hashes eg /usr/include/linux/ and /usr/src/linux/
>>> include/linux containt he exact same files (except one is missing
>>> compile.h) while beeing seeded by 2 seperate packages eg: kernel-source
>>> and kernel-headers.
>>>
>> Thanks for your answer.
>> I've already installed the headers for 29.x, but, yes, that's a good
>> idea to make symlinks.
>
>
> No, it's not. It's a HORRIBLE idea. Don't do it.
> http://uwsg.iu.edu/hypermail/linux/kernel/0007.3/0587.html
>
> -RW

Ok, I get the idea:)
regards
Martin