Re: Unresolved symbol errors when trying to install BLCR modules

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Mon Mar 21 2005 - 11:05:39 PST

  • Next message: 任明明: "lam/mpi blcr problem"
       Sorry for the slow response.
       The key thing you'll need to setup a configured source tree will be 
    the configuration for your kernel.  In many cases the configuration gets 
    stored somewhere when the kernel is installed.  Good places to check 
    would be /boot/config-2.4.26-1-386 or /config-2.4.26-1-386.  In some 
    distributions, the kernel is actually setup to include it's 
    configuration in /proc/config.gz (or .bz2).  If you can find any one of 
    these files then we can proceed with the following steps:
    1. Make a copy of the unconfigured source
      $ cp -a /usr/src/kernel-source-2.4.26 /tmp/linux-2.4.26-1-386
    2. Configure it using the file you located
      $ cd /tmp/linux-2.4.26-1-386
      $ cp [CONFIG_FILE] .config
      $ make oldconfig
      $ make dep
      $ make include/linux/version.h EXTRAVERSION=-1-386
    The 'make dep' step will actually take a little while.
    Once that is done, you should be able to configure BLCR using the newly 
    configured kernel source.  You should continue to use the 
    file from your running kernel.  What you want is probably something like
       $ ./configure --with-system-map=/boot/ 
    Let me know if you have any further problems.
    Paolo Victor wrote:
    > Paul,
    > Here's the output you asked for:
    >>grep d_path /boot/
    > c0142592 T __d_path
    > c0173a5f T acpi_ns_valid_path_separator
    > c0233987 R __kstrtab___d_path
    > c023f328 R __ksymtab___d_path
    > I believe that the kernel sources are not configured. How can you help
    > me with this?
    > Thanks,
    > Paolo
    > On Wed, 16 Mar 2005 13:41:22 -0800, Paul H. Hargrove <PHHargrove_at_lbl_dot_gov> wrote:
    >>  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
    >>  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/
    >>Paolo Victor wrote:
    >>>   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: unresolved symbol
    >>>   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:
    >>>>* 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.             *
    >>>>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/
    >>>>  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
    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: 任明明: "lam/mpi blcr problem"