This is a problem in glibc-headers but I don't see a category for that and this is as close as I can get. I have a network application that compiles and runs in Fedora 8 but which fails in Fedora 9 complaining that it is unable to determine the size of a structure of type "ucred". That structure is defined in /usr/include/bits/socket.h. The telling difference is that in F9 it's under and #ifdef as follows: F8: /* User visible structure for SCM_CREDENTIALS message */ struct ucred { pid_t pid; /* PID of sending process. */ uid_t uid; /* UID of sending process. */ gid_t gid; /* GID of sending process. */ }; F9: #ifdef __USE_GNU /* User visible structure for SCM_CREDENTIALS message */ struct ucred { pid_t pid; /* PID of sending process. */ uid_t uid; /* UID of sending process. */ gid_t gid; /* GID of sending process. */ }; #endif What gives? And defining __USE_GNU in the calling application did not solve the problem. One of the intervening includes must be undefining it. I don't see the reason for this change since all it does is eliminate the ucred structure definition without defining any replacement. The application clearly compiled and worked under F8 and it compiles and works under F9 if I remove that #ifdef, so I don't understand what it's there for or what it's accomplishing since it won't conflict with any other definition. F8: glibc-headers-2.7-2 F9: glibc-headers-2.8-8
Problem resolved on mailing list. Not a bug.