tags 330191 patch
thanks

Hi,

I've investigated the stat() problem a bit and found that the definition of 'struct stat' in klibc's include/arch/sparc64/archstat.h is (most probably) incorrect. I've written a simple test case using stat() function and then looked at preprocessed source, which includes the 'struct stat' definition (from glibc headers) and copied that to include/arch/sparc64/archstat.h. That required changing the storage size for some fields, rearranging them, and adding some padding fields where neccessary. Attached patch implements these changes.

With this change and the increased value of the delay after udevsynthesize (mentioned above), I was able to successfully boot my ultra5 box.

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC
--- a/include/arch/sparc64/klibc/archstat.h     2005-09-06 13:49:34.000000000 
-0700
+++ b/include/arch/sparc64/klibc/archstat.h     2005-10-29 10:31:26.000000000 
-0700
@@ -3,20 +3,26 @@
 
 /* No nsec fields?! */
 struct stat {
-       unsigned   st_dev;
+       unsigned long st_dev;
+       unsigned short __pad1;
        ino_t   st_ino;
        mode_t  st_mode;
-       short   st_nlink;
+       unsigned int st_nlink;
        uid_t   st_uid;
        gid_t   st_gid;
-       unsigned   st_rdev;
+       unsigned long st_rdev;
+       unsigned short __pad2;
        off_t   st_size;
+       off_t   st_blksize;
+       off_t   st_blocks;
        time_t  st_atime;
+       unsigned long __unused1;
        time_t  st_mtime;
+       unsigned long __unused2;
        time_t  st_ctime;
-       off_t   st_blksize;
-       off_t   st_blocks;
-       unsigned long  __unused4[2];
+       unsigned long __unused3;
+       unsigned long __unused4;
+       unsigned long __unused5;
 };
 
 #endif

Reply via email to