[OpenAFS] pam-afs-session-2.5 and solaris 11 make problem

Renata Maria Dart renata@slac.stanford.edu
Fri, 1 Jun 2012 22:54:18 -0700 (PDT)


Thanks a lot Russ....I'll check it out and let you know how it works.

Renata

On Fri, 1 Jun 2012, Russ Allbery wrote:

>Renata Maria Dart <renata@slac.stanford.edu> writes:
>
>> Hi, I have been trying to compile pam-afs-session-2.5 on solaris 11.  I
>> have generated krb5 1.6.2, and heimdal 1.5.2 so that I have libkafs.a
>> and libkafs.la, and I have OpenAFS 1.6.1 running on the system.  I am
>> using the following configure:
>
>> ./configure --prefix=/opt/pam --with-krb5=/afs/slac.stanford.edu/package/krb5/1.6.2/sunx86_511 --with-libkafs=/afs/slac.stanford.edu/package/heimdal/sunx86_511/sunx86_511
>
>The configure script was unable to find any libkafs library at that path
>and is falling back on the internal implementation.
>
>> The make fails:
>
>> In file included from kafs/kafs.c:75:0:
>> ./kafs/sys-solaris.c: In function 'k_syscall':
>> ./kafs/sys-solaris.c:80:25: error: storage size of 'syscall_data' isn't known
>> ./kafs/sys-solaris.c:89:15: error: invalid application of 'sizeof' to incomplete type 'struct afssysargs32' 
>> ./kafs/sys-solaris.c:80:25: warning: unused variable 'syscall_data'
>> ./kafs/sys-solaris.c:77:13: warning: unused variable 'code'
>> *** Error code 1
>> make: Fatal error: Command failed for target `kafs/kafs.lo'
>
>The structure namings turned out to neither match the structures defined
>in that file or the names used by OpenAFS.  The perils of writing code for
>a platform that I can't test.  The following patch should fix it:
>
>diff --git a/kafs/sys-solaris.c b/kafs/sys-solaris.c
>index 27dbc46..cb3421f 100644
>--- a/kafs/sys-solaris.c
>+++ b/kafs/sys-solaris.c
>@@ -77,7 +77,7 @@ k_syscall(long call, long param1, long param2, long param3, long param4,
>     int fd, code, oerrno, callnum;
> 
> #ifdef _ILP32
>-    struct afssysargs32 syscall_data;
>+    struct afssysargs syscall_data;
> 
>     syscall_data.syscall = call;
>     syscall_data.param1 = param1;
>@@ -86,9 +86,9 @@ k_syscall(long call, long param1, long param2, long param3, long param4,
>     syscall_data.param4 = param4;
>     syscall_data.param5 = 0;
>     syscall_data.param6 = 0;
>-    callnum = _IOW('C', 2, struct afssysargs32);
>+    callnum = _IOW('C', 2, struct afssysargs);
> #else
>-    struct afssysargs syscall_data;
>+    struct afssysargs64 syscall_data;
> 
>     syscall_data.syscall = call;
>     syscall_data.param1 = param1;
>@@ -97,7 +97,7 @@ k_syscall(long call, long param1, long param2, long param3, long param4,
>     syscall_data.param4 = param4;
>     syscall_data.param5 = 0;
>     syscall_data.param6 = 0;
>-    callnum = _IOW('C', 1, struct afssysargs);
>+    callnum = _IOW('C', 1, struct afssysargs64);
> #endif
> 
>     fd = open("/dev/afs", O_RDWR);
>
>-- 
>Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>
>_______________________________________________
>OpenAFS-info mailing list
>OpenAFS-info@openafs.org
>https://lists.openafs.org/mailman/listinfo/openafs-info
>