[OpenAFS] RHEL4 x86_64 1.4.0-rc5 RPM install aklog segfault

Derek Atkins warlord@MIT.EDU
Tue, 1 Nov 2005 17:36:12 -0500


Quoting Lee Damon <nomad@crow.ee.washington.edu>:

> Just to make darn sure I started the rpmbuild process over again.  
> Here is the beginning of the output:
>
> : || nomad@kick0 ~ [8] ; uname -r
> 2.6.9-22.ELsmp
> : || nomad@kick0 ~ [9] ; rpmbuild -ba /usr/src/redhat/SPECS/openafs.spec
> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.88104
> + umask 022
> + cd /tmp/rpmbuild
> + LANG=C
> + export LANG
> + unset DISPLAY
> + : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> + : @@@
> + : @@@ kernel version: 2.6.9-22.EL
> + : @@@ base kernel version:2.6.9-22.EL
> + : @@@ kernel modules dir: /lib/modules/2.6.9-22.EL
> + : @@@ kernel source dir: /lib/modules/2.6.9-22.EL/build
> + : @@@ kernel type: up
> + : @@@ PAM modules dir: /lib64/security
> + : @@@ build userspace: 1
> + : @@@ build modules: 1
> + : @@@ arch: x86_64
> + : @@@ target cpu: x86_64
> + : @@@
> + : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>
>
> I note the kernel modules dir and kernel source dir output.
>
> The resulting openafs-kernel RPM contained the following:
>
> -rwxr--r--    1 root    root          1081624 Nov  1 14:20 
> /lib/modules/2.6.9-22.EL/kernel/fs/openafs/openafs.ko
>
> Again, I feel very strongly that this RPM should contain UP, SMP, and 
> any other "standard" kernel module.

For Linux 2.6 you cannot do that.  For a 2.6 kernel you ABSOLUTELY MUST
build the kernel module against the ACTUAL header files for /that particular
kernel/.  In other words, there is exactly a one-to-one mapping from
/lib/modules/xxx/build to kernel module.  You CANNOT build multiple
modules from one kernel source tree.

Now, having said that, I wrote a script that does a full build of modules
for all kernels.  If you run /usr/src/redhat/SOURCES/openafs-buildall.sh
it will build the base module and then all the kernel modules for your
particular system.  For 2.6 it looks in /usr/src/kernels/ for the set of
kernel headers, and it will build a kernel module RPM for each kernel
it finds.

Just to be clear, for 2.6 kernels you CANNOT build multiple modules from
a single source tree.

In your case, `uname -a` is reporting a UP kernel, so it's building a
UP module.  This is not a bug.

As for having all kernel modules in one RPM, I've said before and I'll say
again that I'm willing to accept a patch that reinstates that functionality
based on some --with XXX value, but I have no intention of actually
implementing or supporting such a feature myself.  I personally believe that
the one-RPM-per-kernel is the right approach for the general population.

-derek
-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available