[OpenAFS] Re: 1.2.11 openafs - RedHat Update 3 x86_64
Troy Dawson
dawson@fnal.gov
Tue, 21 Sep 2004 09:29:07 -0500
Derrick J Brashear wrote
> On Mon, 20 Sep 2004, Troy Dawson wrote:
>
>>> gcc -O2 -fomit-frame-pointer -fno-strength-reduce -fno-strict-aliasing
>>> -fno-common -pipe -mcmodel=kernel -D__KERNEL__ -DKERNEL -D_KERNEL -DMODULE
>>> -DREDHAT_FIX-I. -I../ -I/usr/src/redhat/BUILD/openafs-1.2.11/src/config -c
>>> ../afs/osi_groups.c
>>> ../afs/osi_groups.c:181: syntax error before "old_gid_t"
>>> ../afs/osi_groups.c:182: syntax error before "old_gid_t"
>
>
> i'll guess old_gid_t isn't defined for x86_64. switch to gid_t and see
> what happens.
>
Hi Derrick and all,
I was directed to an earlier e-mail which I had overlooked.
http://www.mail-archive.com/openafs-info@openafs.org/msg08736.html
and Jaroslaw Polok sent me the following
To the spec file add
...
Patch205: openafs-1.2.11-no_old_gid_t.patch
...
...
%ifarch x86_64
%patch205 -p1
%endif
...
and openafs-1.2.11-no_old_gid_t.patch is
-----------------------
--- openafs-1.2.11/src/afs/LINUX/osi_module.c.org 2004-09-21
11:05:30.000000000 +0200
+++ openafs-1.2.11/src/afs/LINUX/osi_module.c 2004-09-21
11:07:31.000000000 +0200
@@ -92,7 +92,7 @@
#endif
static void *ia32_ni_syscall = 0;
-asmlinkage long (*sys32_setgroupsp)(int gidsetsize, old_gid_t *grouplist);
+asmlinkage long (*sys32_setgroupsp)(int gidsetsize, u16 *grouplist);
#if defined(__NR_ia32_setgroups32)
asmlinkage long (*sys32_setgroups32p)(int gidsetsize, gid_t *grouplist);
#endif /* __NR_ia32_setgroups32 */
--- openafs-1.2.11/src/afs/LINUX/osi_groups.c.org 2004-09-21
10:56:15.000000000 +0200
+++ openafs-1.2.11/src/afs/LINUX/osi_groups.c 2004-09-21
11:05:24.000000000 +0200
@@ -178,8 +178,8 @@
#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_AMD64_LINUX20_ENV)
/* Intercept the uid16 system call as used by 32bit programs. */
-extern long (*sys32_setgroupsp)(int gidsetsize, old_gid_t *grouplist);
-asmlinkage long afs32_xsetgroups(int gidsetsize, old_gid_t *grouplist)
+extern long (*sys32_setgroupsp)(int gidsetsize, u16 *grouplist);
+asmlinkage long afs32_xsetgroups(int gidsetsize, u16 *grouplist)
{
long code;
cred_t *cr = crref();
---------------------------------
I have tested this and it works for the x86_64 stuff.
Thanks for the help everyone.
Troy
--
__________________________________________________
Troy Dawson dawson@fnal.gov (630)840-6468
Fermilab ComputingDivision/CSS CSI Group
__________________________________________________