This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! On Thu, Feb 07, 2002 at 01:34:57PM +0100, Andreas Jaeger wrote: > > With current CVS I get: > > GCONV_PATH=/builds/glibc/gcc-3.1/iconvdata LC_ALL=C /builds/glibc/gcc-3.1/elf/ld-linux.so.2 --library-path /builds/glibc/gcc-3.1:/builds/glibc/gcc-3.1/math:/builds/glibc/gcc-3.1/elf:/builds/glibc/gcc-3.1/dlfcn:/builds/glibc/gcc-3.1/nss:/builds/glibc/gcc-3.1/nis:/builds/glibc/gcc-3.1/rt:/builds/glibc/gcc-3.1/resolv:/builds/glibc/gcc-3.1/crypt:/builds/glibc/gcc-3.1/linuxthreads /builds/glibc/gcc-3.1/io/test-stat > /builds/glibc/gcc-3.1/io/test-stat.out > test-stat: test-stat.c:35: main: Assertion `sizeof (struct stat) == sizeof (struct stat64)' failed. > > Removing the assertions gives: > test-stat: test-stat.c:39: main: Assertion `((size_t) &((struct stat *)0)->st_ino) == ((size_t) &((struct stat64 *)0)->st_ino)' failed. Here is a fix for this. I don't think we need to add attribute packed if the structures are already properly packed (which they were not on IA-32, fixed below). I've tested this with all combinations of nothing/-fpack-struct and nothing/-D_FILE_OFFSET_BITS=64 and in all cases the structures have 88 bytes resp. 96 bytes as they used to (unless -fpack-struct was given). arm/cris/hppa/sh maintainers should probably check whether the patch doesn't make any difference on their arches, but I think just m68k doesn't align 32-bit value to 32-bits. 2002-02-07 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/bits/stat.h (struct stat): Remove packed attribute, change __pad{1,2} type to unsigned int. (struct stat64): Remove packed attribute. --- libc/sysdeps/unix/sysv/linux/bits/stat.h.jj Thu Feb 7 15:10:47 2002 +++ libc/sysdeps/unix/sysv/linux/bits/stat.h Thu Feb 7 15:16:53 2002 @@ -36,7 +36,7 @@ struct stat { __dev_t st_dev; /* Device. */ - unsigned short int __pad1; + unsigned int __pad1; #ifndef __USE_FILE_OFFSET64 __ino_t st_ino; /* File serial number. */ #else @@ -47,7 +47,7 @@ struct stat __uid_t st_uid; /* User ID of the file's owner. */ __gid_t st_gid; /* Group ID of the file's group.*/ __dev_t st_rdev; /* Device number, if device. */ - unsigned short int __pad2; + unsigned int __pad2; #ifndef __USE_FILE_OFFSET64 __off_t st_size; /* Size of file, in bytes. */ #else @@ -72,7 +72,7 @@ struct stat #else __ino64_t st_ino; /* File serial number. */ #endif - } __attribute__ ((__packed__)); + }; #ifdef __USE_LARGEFILE64 struct stat64 @@ -98,7 +98,7 @@ struct stat64 __time_t st_ctime; /* Time of last status change. */ unsigned long int __unused3; __ino64_t st_ino; /* File serial number. */ - } __attribute__ ((__packed__)); + }; #endif /* Tell code we have these members. */ Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |