2012/5/29 Reinhard Tartler <siret...@tauware.de>: > What I find a bit irritating is that while using the same glibc version, > Debian/kFreeBSD ships a different /usr/include/bits/fnctl.h to the other > Debian architectures. > > The kFreeBSD Version reads: > > struct flock > { > __off_t l_start; /* Offset where the lock begins. */ > __off_t l_len; /* Size of the locked area; zero means until EOF. */ > __pid_t l_pid; /* Process holding the lock. */ > short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ > short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ > int __l_sysid; /* remote system id or zero for local */ > }; > > While the Linux version reads: > > struct flock > { > short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ > short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ > #ifndef __USE_FILE_OFFSET64 > __off_t l_start; /* Offset where the lock begins. */ > __off_t l_len; /* Size of the locked area; zero means until EOF. */ > #else > __off64_t l_start; /* Offset where the lock begins. */ > __off64_t l_len; /* Size of the locked area; zero means until EOF. */ > #endif > __pid_t l_pid; /* Process holding the lock. */ > }; > > > Why on earth has the kFreeBSD version of glibc decided to shuffle around > the members of the flock struct?
Kernel ABI is different. Not all of glibc are user structures.... > While discussing the order in detail, > the POSIX spec [1] does mention 'struct flock' having a order of members > that matches the Linux version. > > [1] http://pubs.opengroup.org/onlinepubs/009695399/basedefs/fcntl.h.html > > The FreeBSD *kernel* on the other hand does not seem to obey this > ordering [2]. Obviously, glibc has to model the flock structure after > what is being passed down from the kernel. *sigh* > > [2] http://fxr.watson.org/fxr/source/sys/fcntl.h ...but it seems you already knew that. Why did you ask? :-) If kernel ABI violates POSIX in some way, this should be discussed with upstream (freebsd-a...@freebsd.org). Even if we agreed with you, we couldn't change it on our own. -- Robert Millan -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org