Re: Unresolved symbol errors when trying to install BLCR modules

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Wed Mar 16 2005 - 13:41:22 PST

  • Next message: Paolo Victor: "Re: Unresolved symbol errors when trying to install BLCR modules"
    Paolo,
    
      Your sysadmin is both right and wrong.  The kernel sources you used 
    are probably the correct source for building your kernel, but they are 
    not fully configured, or the version found in include/linux/version.h 
    (2.4.26) would have matched.  Based on the configuration settings a 
    given kernel source can generate many (millions) of different kernels.  
    The differences among most of those potential kernels is small, but even 
    the smallest changes will cause the kernel's functions to appear at 
    different addresses in different builds.  These differences are handled 
    using a symbol table.  However, there are some difference (such as 
    configuring SMP support on or off) that are more significant because 
    they change the fields in some kernel data structures.  To operate 
    correcly  any loadable kernel module must agree with the running kernel 
    on the composition of any data structures it uses.  This agreement can 
    optionally be checked at module load time using versioning on the 
    symbols in the symbol table.  In the example error you provided 0e2ea584 
    is a sort of checksum of the types of the arguments to the function 
    __d_path().
    
      There are two possibilities now.  One is that you'll need to get a 
    configured kernel source, which we may be able to help you with.  The 
    other possibility is that the blcr kernel modules are incorrectly 
    assuming symbol versioning is being used when it is not enabled in your 
    kernel.  To determine which is the case, please provide the output of
        grep d_path /boot/System.map-2.4.26-1-386
    
    -Paul
    
    Paolo Victor wrote:
    
    > Hello,
    >
    >    I'm trying to install BLCR on my machine. I ran configure, make and 
    > make install, the libs and modules were created and put in the
    > usr/local dir, but when I try to install the vmadump and blcr modules, 
    > some errors occurr, being all of them like this:
    >
    >> /usr/local/lib/blcr/2.4.26/vmadump_blcr.o: 
    >> /usr/local/lib/blcr/2.4.26/vmadump_blcr.o: unresolved symbol 
    >> __d_path_R0e2ea584
    >
    >
    >    So, what could be wrong? Did I try to use a wrong version of the 
    > kernel sources? I suppose the problem lies on the kernel sources
    > I'm using because when I run configure, I get this warning:
    >
    >> *******************************************************************
    >> ***** WARNING WARNING WARNING WARNING WARNING WARNING WARNING *****
    >> *******************************************************************
    >> * The kernel source does not match currently the running kernel.  *
    >> * Compilation will produce modules unsuitable for the currently   *
    >> * running kernel, which may not be what you intended.             *
    >> *******************************************************************
    >> ***** WARNING WARNING WARNING WARNING WARNING WARNING WARNING *****
    >> *******************************************************************
    >> ======================================================================
    >> Please review the following configuration information:
    >>   Kernel source directory = /usr/src/kernel-source-2.4.26
    >>   Kernel build directory = /usr/src/kernel-source-2.4.26
    >>   Kernel symbol table = /boot/System.map-2.4.26-1-386
    >>   Kernel version probed from kernel build = 2.4.26
    >>   Kernel running currently = 2.4.26-1-386
    >> ======================================================================
    >
    >
    >    But when I asked the system admin if the versions where different, 
    > he said that the "-1-386" is just a kind of label and that the
    > versions are the same. Could you help me with this?
    >
    > Thanks in advance for your help,
    > Paolo Victor
    
    
    -- 
    Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
    Future Technologies Group                 
    HPC Research Department                   Tel: +1-510-495-2352
    Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
    

  • Next message: Paolo Victor: "Re: Unresolved symbol errors when trying to install BLCR modules"