Skip to content

Require all the CFRunLoop headers together - #159

Open
DTW-Thalion wants to merge 1 commit into
gnustep:masterfrom
DTW-Thalion:fix/cfrunloop-header-check
Open

Require all the CFRunLoop headers together#159
DTW-Thalion wants to merge 1 commit into
gnustep:masterfrom
DTW-Thalion:fix/cfrunloop-header-check

Conversation

@DTW-Thalion

Copy link
Copy Markdown
Contributor

AC_CHECK_HEADERS runs its action once for every header it finds, not once when all of them are found. Finding unistd.h alone is therefore enough to reach AC_SEARCH_LIBS and define HAVE_CFRUNLOOP_SUPPORT.

On a host without poll.h the result is a config.h carrying HAVE_CFRUNLOOP_SUPPORT 1 next to an undefined HAVE_POLL_H. configure reports "checking for poll.h... no" and succeeds anyway, and the build then fails in CFRunLoop.c on the missing header.

The headers are collected first and the decision made once, so the define follows the check.

Found building on MSYS2 ucrt64, which has no poll.h. The same applies to any host missing one of the 5 headers.

AC_CHECK_HEADERS runs its action once per header it finds, so finding
unistd.h alone was enough to reach AC_SEARCH_LIBS and define
HAVE_CFRUNLOOP_SUPPORT.  On a host without poll.h the result is a config.h
carrying HAVE_CFRUNLOOP_SUPPORT 1 next to an undefined HAVE_POLL_H, and the
build then fails in CFRunLoop.c on the missing header.

Collect the results and decide once.
@DTW-Thalion
DTW-Thalion marked this pull request as ready for review August 14, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant