[OpenAFS-devel] RH 7.1 spec file: archlist
Rudolph T Maceyko
rtm@cert.org
Wed, 25 Jul 2001 13:50:01 -0400
Derek,
--On Wednesday, July 25, 2001 13:28:12 -0400 Derek Atkins
<warlord@MIT.EDU> wrote:
> The SPEC file tries to work around this problem by building a
> different module for each architeture.
Well, it's not having an effect. I'm looking at this now. Please note
that whatever the problem is, it's not specific to me, since I pointed
out that the distributed openafs-kernel-1.1.1 RPM has the same modules
for each architecture (and they're for i386):
>> This is from the openafs-kernel-1.1.1 RPM (straight from
>> openafs.org):
>>
>> $ pwd
>> /usr/vice/etc/modload
>> $ md5sum *.o | sort
>> 1c7d991de1682fb242bd014ff15df96e libafs-2.4.2-2-athlon.o
>> 1c7d991de1682fb242bd014ff15df96e libafs-2.4.2-2-i386.o
>> 1c7d991de1682fb242bd014ff15df96e libafs-2.4.2-2-i586.o
>> 1c7d991de1682fb242bd014ff15df96e libafs-2.4.2-2-i686.o
> [snip]
>>
>> Of 16 total files there are really only 4 distinct files. Shouldn't
>> they be different? The same thing happens when I build from the
>> source RPM.
>
> Yes, they should be different. In particular, they should each be
> using a different set of kernel module symbols. Can you take a look
> at /usr/vice/etc/modload/SymTable -- each module should be using a
> different set of symbols, so each module should be listed differently.
> Clearly this isn't working right. I don't know why, but I'll try to
> look into it. This is most certainly a bug, but I don't know whose
> bug.
[note: info below is for 2.4.3-12, but everything's the same about this
problem for that kernel as it is for 2.4.2-2...]
$ rpm -qf /usr/src/linux-2.4.3/include/linux/modules/ksyms.ver
kernel-source-2.4.3-12
$ grep -A 1 -B 1 iget4 $_
#if defined(__module__i686_up) || defined(__module__i586_up)
#define __ver_iget4 _ver_str(67b2bf7c)
#define iget4 _set_ver(iget4)
#elif defined(__module__BOOT) || defined(__module__i386_up)
#define __ver_iget4 _ver_str(6fc4bdd5)
#define iget4 _set_ver(iget4)
#elif defined(__module__enterprise)
#define __ver_iget4 _ver_str(4a17441e)
#define iget4 _set_ver(iget4)
#elif defined(__module__athlon_up)
#define __ver_iget4 _ver_str(0ac9f202)
#define iget4 _set_ver(iget4)
#elif defined(__module__i686_smp) || defined(__module__i586_smp)
#define __ver_iget4 _ver_str(c0971f1d)
#define iget4 _set_ver(iget4)
#elif defined(__module__athlon_smp)
#define __ver_iget4 _ver_str(d7538340)
#define iget4 _set_ver(iget4)
#endif
$ uname -rm
$ fgrep iget4 /proc/ksyms
c0145ad0 iget4_R67b2bf7c
$ cat /usr/vice/etc/modload/SymTable
# SymTable, automatically generated
# symbol version cpu module
iget4 smp_7fec98bb - 2.4.2-2-athlon.mp
iget4 f9ac5c53 - 2.4.2-2-athlon
iget4 smp_7fec98bb - 2.4.2-2-i386.mp
iget4 f9ac5c53 - 2.4.2-2-i386
iget4 smp_7fec98bb - 2.4.2-2-i586.mp
iget4 f9ac5c53 - 2.4.2-2-i586
iget4 smp_7fec98bb - 2.4.2-2-i686.mp
iget4 f9ac5c53 - 2.4.2-2-i686
iget4 6fc4bdd5 - 2.4.3-12-athlon
iget4 6fc4bdd5 - 2.4.3-12-i386
iget4 6fc4bdd5 - 2.4.3-12-i586
iget4 6fc4bdd5 - 2.4.3-12-i686
Those'll only work on an i386.
I'll help look at this (since I'm running into it right now :-) but I'm
kinda hoping that you'll figure it out first and send the solution
since I'm not so familiar with the AFS build process as I ought to be
at this point... :-)
Thanks,
Rudy