Hi, just looking at a recent build failure in Debian, "rdfind". There's some code like:
FileInfo.hh:
...
struct Fileinfostat {
filesizetype st_size;//size
unsigned long st_ino;//inode
unsigned long st_dev;//device
...
};
FileInfo.cc:
#include "FileInfo.hh"
...
#include <sys/stat.h>
...
struct stat info;
...
instance_of_struct_Fileinfostat.st_dev = info.st_dev;
Such code (a simplified version of which is attached) fails to compile
on Hurd, because in bits/stat.h there is:
struct stat
{
...
__fsid_t st_fsid; /* File system ID. */
#define st_dev st_fsid
Is this allowed by POSIX (most probly I'm missing the right part(s) of
it)?
If not, would a "fix" for the above be swapping member and define, like:
__fsid_t st_dev; /* File system ID. */
#define st_fsid st_dev
?
Thanks,
--
Pino Toscano
struct MyTest
{
int st_dev;
};
#include <sys/stat.h>
int main()
{
struct MyTest t;
t.st_dev = 0;
return 0;
}
signature.asc
Description: This is a digitally signed message part.
