Summary: | /usr/include/sys/file.h uses the u_int typedef which causes C compilation to sometimes fail | ||
---|---|---|---|
Product: | Base System | Reporter: | Andras Farkas <deepbluemistake> |
Component: | misc | Assignee: | freebsd-bugs (Nobody) <bugs> |
Status: | New --- | ||
Severity: | Affects Some People | CC: | imp, jilles |
Priority: | --- | ||
Version: | 12.0-RELEASE | ||
Hardware: | Any | ||
OS: | Any |
Description
Andras Farkas
2018-12-20 13:14:42 UTC
The current implementation of the feature test macros like _XOPEN_SOURCE that request strict standards compliance is that the application is assumed not to need any extensions. For the most part, defining such a macro hides things not belonging to the selected standard from header files listed in the standard. If a header file is used that is not in the standard, this is a bad idea: it either fails (as you see here) or exposes extensions to the standard. A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=a2b53e53a3f38dd89b64500a2d2a1727baffe4f9 commit a2b53e53a3f38dd89b64500a2d2a1727baffe4f9 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2021-11-24 09:25:47 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2021-11-24 09:38:09 +0000 sys/file.h: Allow inclusion when compiling for a strict namespace Although not part of the standard, this file is sometimes included with -D_POSIX_C_SOURCE=<value> or -D_XOPEN_SOURCE=<value>. Limit those sturctures that use types hidden by __BSD_VISIBLE to when they are visible. PR: 259975, 234205 Sponsored by: Netflix sys/sys/file.h | 4 ++++ 1 file changed, 4 insertions(+) I'll note in passing that all the other files in sys/sys/*.h today that are self-contained will compile when specific feature macros are defined, except sys/file.h. A commit in branch stable/12 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=5fb6ac34479dc0e23b5ff8f3ae74c6266cf32476 commit 5fb6ac34479dc0e23b5ff8f3ae74c6266cf32476 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2021-11-24 09:25:47 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2021-12-06 15:54:10 +0000 sys/file.h: Allow inclusion when compiling for a strict namespace Although not part of the standard, this file is sometimes included with -D_POSIX_C_SOURCE=<value> or -D_XOPEN_SOURCE=<value>. Limit those sturctures that use types hidden by __BSD_VISIBLE to when they are visible. PR: 259975, 234205 Sponsored by: Netflix (cherry picked from commit a2b53e53a3f38dd89b64500a2d2a1727baffe4f9) sys/sys/file.h | 4 ++++ 1 file changed, 4 insertions(+) A commit in branch stable/13 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=793fad727a33a5f539eb414e4f0b09aaee0a1b23 commit 793fad727a33a5f539eb414e4f0b09aaee0a1b23 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2021-11-24 09:25:47 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2021-12-06 15:55:58 +0000 sys/file.h: Allow inclusion when compiling for a strict namespace Although not part of the standard, this file is sometimes included with -D_POSIX_C_SOURCE=<value> or -D_XOPEN_SOURCE=<value>. Limit those sturctures that use types hidden by __BSD_VISIBLE to when they are visible. PR: 259975, 234205 Sponsored by: Netflix (cherry picked from commit a2b53e53a3f38dd89b64500a2d2a1727baffe4f9) sys/sys/file.h | 4 ++++ 1 file changed, 4 insertions(+) |