diff --git a/NEWS.md b/NEWS.md index ef2148e099..187b3cfb80 100644 --- a/NEWS.md +++ b/NEWS.md @@ -30,6 +30,8 @@ 2. `set()` now automatically pre-allocates new column slots if needed, similar to what `:=` already does, [#1831](https://github.com/Rdatatable/data.table/issues/1831) [#4100](https://github.com/Rdatatable/data.table/issues/4100). Thanks to @zachokeeffe and @tyner for the report and @ben-schwen for the fix. +3. Fixed compilation failure like "error: unknown type name 'siginfo_t'" in v1.18.0 in some strict environments, e.g., FreeBSD, where the header file declaring the POSIX function `waitid` does not transitively include the header file defining the `siginfo_t` type, [#7516](https://github.com/rdatatable/data.table/issues/7516). Thanks to @jszhao for the report and @aitap for the fix. + ## data.table [v1.18.0](https://github.com/Rdatatable/data.table/milestone/37?closed=1) 23 December 2025 ### BREAKING CHANGE diff --git a/src/utils.c b/src/utils.c index e11bc09d57..11ec0c1a70 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,6 +1,10 @@ #ifndef _WIN32 -# define _POSIX_C_SOURCE 200809L // required for POSIX (not standard C) features in is_direct_child e.g. 'siginfo_t' -# include +# if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L +# undef _POSIX_C_SOURCE +# define _POSIX_C_SOURCE 200809L // required for POSIX (not standard C) features in is_direct_child e.g. 'siginfo_t' +# endif +# include // siginfo_t +# include // waitid #endif #include "data.table.h"