[OpenAFS-devel] not sure what to do about rlim --- also on other 64 bit machines?

Moritz Kiese mbk@mytum.de
Thu, 29 Jun 2006 14:56:49 +0200 (CEST)


On Thu, 29 Jun 2006, Christian Guggenberger wrote:

> On Thu, Jun 29, 2006 at 01:37:18PM +0200, Moritz Kiese wrote:
>> On Thu, 29 Jun 2006, chas williams - CONTRACTOR wrote:
>>
>>> In message <20060629042745.GC5860@narn.hozed.org>,Troy Benjegerdes writes:
>>>> I managed to build OpenAFS 1.4.1 on 2.6.17 (kernel.org) on a PPC64
>>>> machine, using
>>>> "CFLAGS='-m64' ./configure
>>>> --with-linux-kernel-headers=/usr/src/linux-2.6.17"
>>>
>>> i am surprised that is sufficient.  2.6.17 seems to have changed the
>>> way KBUILD_BASENAME is handled and requires a new macro KBUILD_STR.
>>
>> Please forgive my ignorance, but is the compilation error I'm seeing:
>>
>> /usr/src/openafs-1.5.2/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_vnop_flock.c:176:
>> error: struct task_struct has no member named p_opptr
>>
>
> this is on SuSE 10.1, x86_64, isn't it ?

Yup.

> do you really need version 1.5.2 ? I had no problems while compiling 1.4.1 for
> Suse 10.1 (same kernel version as you referred to) here.

Lucky you ;) Here's what I do:

# export CFLAGS=-m64
# ./configure
# make

Compilation stops at
In file included from /usr/src/openafs-1.4.1/src/afs/afs_osi.h:443,
                  from /usr/src/openafs-1.4.1/src/rx/rx_clock.h:88,
                  from /usr/src/openafs-1.4.1/src/rx/rx.h:35,
                  from /usr/src/openafs-1.4.1/src/afs/afsincludes.h:26,
                  from 
/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_analyze.c:36:
/usr/src/openafs-1.4.1/src/afs/LINUX/osi_machdep.h:55:2: error: #error Not 
sure what to do about rlim (should be in the Linux task struct somewhere....)

So that's easy to handhack to
 	#define TASK_STRUCT_RLIM signal->rlim
Once that is done I'm hanging at
/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_osi.c: In 
function afs_osi_TraverseProcTable:
/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_osi.c:828: 
error: implicit declaration of function for_each_task
/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_osi.c:828: 
error: expected ; before if

for_each_task seems to have taken the path of all mere humans, but there's 
a for_each_process macro seemingly (?) doing the same thing, for which 
somehow the #ifdef fails, so I change that as well.

Due to SMP I'm getting stuck because of non-existant TASK_ZOMBIE next, 
which are of course EXIT_ZOMBIE. Getting rid of those leads me to my new 
old final error

/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_vnop_flock.c: 
In function lockIdcmp2:
/usr/src/openafs-1.4.1/src/libafs/MODLOAD-2.6.16.13-4-smp-MP/afs_vnop_flock.c:175: 
error: struct task_struct has no member named p_opptr

Bummer. And if you tell me now, this is all SuSE's fault who am I to 
disagree? Seriously: If you think this is related to a f*** up toolchain 
curtesy of SuSE, I'll have to persuade our computer guy to use something 
else, which effectively puts yet another workstation under my 
(non-) administration (which I dislike).

>> at all related to the modifacations Troy described (skipping syscall table
>> probeing)?
>>
> no, this is a ppc64 (Linux on 64bit powerpc processors, e.g. POWER3/4/5,
> ppc970/G5) only problem, which happens with openafs newer than
> 1.4.1-rc10.

OK. That's what I thought, but hey, I'm never sure w/ Linux.

Thanks for your input,
 	Moritz, who is somehow reminded of compiling X11 extensions in the 
early 90s. But then this is just a personal feeling. At least compilation 
is way faster that on a SS LX.