>Number: 156637 >Category: misc >Synopsis: sys/types.h can't be included when _XOPEN_SOURCE is defined >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Apr 25 08:20:18 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Robert Andersson >Release: FreeBSD 8.2-RELEASE i386 >Organization: >Environment: System: FreeBSD maya 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011 r...@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description: When including <sys/file.h> with _XOPEN_SOURCE defined to 500 or higher, compila tion will fail with a message similar to this one (using clang, gcc fails with a similar message): In file included from main.c:3: /usr/include/sys/file.h:161:2: error: unknown type name 'u_int' u_int xf_flag; /* flags (see fcntl.h) */ u_int is defined in types.h, but it is wrapped in a #if __BSD_VISIBLE. __BSD_VISIBLE is defined in cdefs.h only if _POSIX_C_SOURCE is not defined (whic h it is if _XOPEN_SOURCE is defined). I found the following (short) thread about this problem from 2009: http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg69469.html >How-To-Repeat: Try to compile the following code: #define _XOPEN_SOURCE 500 #include <sys/file.h> int main(int argc, char *argv[]) { return 0; } >Fix: I'm not sure what the correct solution is. Any one of the following would solve the problem: * sys/file.h should not use u_int * The relevant parts of sys/file.h should be wrapped in #if __BSD_VISIBLE * The definition of u_int should not be wrapped in #if __BSD_VISIBLE * _XOPEN_SOURCE >= 500 should not imply _POSIX_C_SOURCE * _POSIX_C_SOURCE should not stop __BSD_VISIBLE from being defined. >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"