ltib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ltib] How to check linux header files availability before compiling


From: Stuart Hughes
Subject: Re: [Ltib] How to check linux header files availability before compiling ?
Date: Fri, 11 Jun 2010 15:39:31 +0100
User-agent: Thunderbird 2.0.0.16 (X11/20080707)

Hi Frank,

That's odd.  I now recall that in the old days the check was for
config.h and it changed to autoconf.h
http://www.mail-archive.com/address@hidden/msg09210.html

I just took a look at mpc8349itx BSP building a kernel.org 2.6.34-rc3
kernel, with install kernel headers and I see:

$ find rootfs/usr/src/linux/ -name autoconf.h
rootfs/usr/src/linux/include/linux/autoconf.h

Can you verify your headers are coming from the kernel.  I just ran this:

$ rpm --root `pwd`/rootfs -qf /usr/src/linux/include/linux/autoconf.h
kernel-local-1

You can try:
$ rpm --root `pwd`/rootfs -qf /usr/src/linux/include/linux/acct.h

Unless someone else knows otherwise, I think autoconf.h should still get
installed.  It may be worth forcing a kernel re-build and logging it.
Maybe an error in the install script (or other) is causing the copy of
this file to be bypassed for your kernel sources (BTW what kernel
version/sources is this?)

Regards, Stuart


Franz TRIERWEILER wrote:
> Hi Stuart,
> 
> I confirm that I do have the interfaces on my rootfs:
> 
> :~/ltib/rootfs/usr/src/linux/include/linux$ ls
> acct.h             dccp.h                if_bridge.h     
> llc.h                param.h            som.h
> adb.h              dlmconstants.h        if_cablemodem.h 
> loop.h               parport.h          sonet.h
> adfs_fs.h          dlm_device.h          if_ec.h         
> lp.h                 patchkey.h         sonypi.h
> affs_hardblocks.h  dlm.h                 if_eql.h        
> magic.h              pci.h              soundcard.h
> .....
> .....
> .....
> 
> :~/ltib/rootfs/usr/src/linux/include/linux$ ls auto*
> auto_fs4.h  auto_fs.h
> 
> But no autoconf.h !
> 
> Indeed, the following options are checked in LTIB:
> 
>   │ │                                 [*] Always rebuild the
> kernel                                                                        
>        
> │ │ 
>   │ │                                 [ ] Produce cscope
> index                                                                         
>            
> │ │ 
>   │ │                                 [*] Include kernel
> headers                                                                       
>            
> │ │ 
>   │ │                                 [ ] Configure the
> kernel                                                                        
>             
> │ │ 
>   │ │                                 --- Leave the sources after
> building                                                                      
>   
> │ │ 
>  
> Maybe should not we just check the availability of
> rootfs/usr/src/linux/include/linux directory instead of a single file in
> order to know if kernel headers are available ?
> 
> regards,
> Franz
> 
> 2010/6/11 Stuart Hughes <address@hidden <mailto:address@hidden>>
> 
>     Hi Franz,
> 
>     This file will always be in rpm/BUILD/linux-xxxxxx/include/linux if left
>     unpacked.  However the interface should be through rootfs/usr/src/linux
>     (DEV_IMAGE...).  This is the public interface for kernel headers.
>     Confirm that you have these installed on your rootfs (there is an option
>     in LTIB to install kernel headers).
> 
>     If you do have kernel headers installed, It's possible that later
>     kernels do not install this file any more?  maybe a kernel expert on the
>     list knows (I vaguely remember something like this).
> 
>     Unfortunately today's best practice is tomorrows
>     _rug_pulled_from_under_your_feet.
> 
>     Regards, Stuart
> 
> 
>     Franz TRIERWEILER wrote:
>     > Hi Stuart,
>     >
>     > I included and tested this. What's weird with my LTIB is that the
>     > autoconf.h file is never copied to KHDR_DIR/linux/autoconf.h even
>     when I
>     > select 'Include kernel headers' in LTIB.
>     >
>     > Instead, this file is with the kernel sources in
>     > rpm/BUILD/linux-xxxxxx/include/linux
>     >
>     > Thus: why ?
>     >
>     > Of course, I could check the availability of another file but I
>     want to
>     > comply with the best practice.
>     >
>     > Franz
>     >
>     > 2010/6/9 Stuart Hughes <address@hidden <mailto:address@hidden>
>     <mailto:address@hidden <mailto:address@hidden>>>
>     >
>     >     Hi Franz,
>     >
>     >     I normally use this in the .spec file %build section:
>     >
>     >
>     >     %Build
>     >     KHDR_DIR=$DEV_IMAGE/usr/src/linux/include
>     >     if [ ! -f $KHDR_DIR/linux/autoconf.h ]
>     >     then
>     >        cat <<TXT
>     >
>     >     No file: $KHDR_DIR/linux/autoconf.h
>     >
>     >     You need to build the kernel and have 'Include kernel headers' set
>     >     to build this package
>     >
>     >     TXT
>     >        exit 1
>     >     fi
>     >
>     >     Regards, Stuart
>     >
>     >
>     >     Franz TRIERWEILER wrote:
>     >     > Hi,
>     >     >
>     >     > My package Makefile needs to set gcc include path to the kernel
>     >     headers
>     >     > (rootfs/usr/src/linux/include). I would like the
>     availability of these
>     >     > files to be checked before gcc prints a cryptic error.
>     >     >
>     >     > Is there a way of checking linux header availability before
>     compiling?
>     >     > (my makefile is not generated by ./configure).
>     >     >
>     >     > Must I specify this in the package dependencies?
>     >     >
>     >     > Is there a LTIB parameter I can catch from the Makefile to
>     set the
>     >     path
>     >     > automatically ?
>     >     >
>     >     > Thanks,
>     >     > Franz
>     >     >
>     >     >
>     >
>     >
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]