[OpenAFS-devel] OpenAFS 1.4.0-rc7 and Solaris 10

Loic Tortay tortay@cc.in2p3.fr
Thu, 13 Oct 2005 12:40:21 +0200


--+KJYzRxRHjYqLGl5
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by ccmail.in2p3.fr id j9DAeLn6071184

Hello,
The compilation of OpenAFS 1.4.0-rc7 fails with Sun Studio 10 on
Solaris 10 while compiling "src/afs/afs_nfsdisp.c":
 ".../src/afs/afs_nfsdisp.c", line 1619: too many array cc: acomp failed =
for .../openafs-1.4.0-rc7/src/afs/afs_nfsdisp.c

Indeed, the code seems visibly wrong on Solaris 10:
 [...]
  struct afs_nfs_disp_tbl afs_acl3_disp_tbl[3] =3D {
      {afs_nfs2_null},
      {afs_acl3_getacl},
      {afs_acl3_setacl},
  #if defined(AFS_SUN510_ENV)
      {afs_acl3_getxattrdir},
  #endif
  };
 [...]

A patch is attached that also solves a similar issue for the
"afs_acl_disp_tbl" array in the same file.

For what it's worth, the problem with SMF and OpenAFS on Solaris 10
(instant panic when running "svcs -p" or "ctstat -v") is still there,
as is the "No such device" problem in 64 bit mode on x86-64.

Please note that I'm not complaining, merely exposing the issues I have
seen :-)


Lo=EFc.
--=20
| Lo=EFc Tortay <tortay@cc.in2p3.fr> -     IN2P3 Computing Centre     |

--+KJYzRxRHjYqLGl5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="afs_nfsdisp.c.diff"

--- afs_nfsdisp.c.orig	Fri Oct  7 21:33:15 2005
+++ afs_nfsdisp.c	Thu Oct 13 12:11:08 2005
@@ -63,8 +63,12 @@
 };
 
 #ifndef ACL2_NPROC
+#if defined(AFS_SUN510_ENV)
+#define ACL2_NPROC      6
+#else
 #define ACL2_NPROC      5
 #endif
+#endif
 struct afs_nfs_disp_tbl afs_rfs_disp_tbl[RFS_NPROC];
 struct afs_nfs_disp_tbl afs_acl_disp_tbl[ACL2_NPROC];
 
@@ -712,7 +716,7 @@
 }
 #endif
 
-struct afs_nfs_disp_tbl afs_acl_disp_tbl[5] = {
+struct afs_nfs_disp_tbl afs_acl_disp_tbl[ACL2_NPROC] = {
     {afs_nfs2_null},
     {afs_acl2_getacl},
     {afs_acl2_setacl},
@@ -749,8 +753,12 @@
 #endif
 
 #ifndef ACL3_NPROC
+#if defined(AFS_SUN510_ENV)
+#define ACL3_NPROC      4
+#else
 #define ACL3_NPROC      3
 #endif
+#endif
 
 struct afs_nfs_disp_tbl afs_rfs3_disp_tbl[RFS3_NPROC];
 struct afs_nfs_disp_tbl afs_acl3_disp_tbl[ACL3_NPROC];
@@ -1611,7 +1619,7 @@
 }
 #endif
 
-struct afs_nfs_disp_tbl afs_acl3_disp_tbl[3] = {
+struct afs_nfs_disp_tbl afs_acl3_disp_tbl[ACL3_NPROC] = {
     {afs_nfs2_null},
     {afs_acl3_getacl},
     {afs_acl3_setacl},

--+KJYzRxRHjYqLGl5--