From 2da9fd8d06ddeb9505a7f954fe11974bb13c84f7 Mon Sep 17 00:00:00 2001 From: Ivan K Date: Thu, 25 Dec 2025 21:54:06 +0300 Subject: [PATCH 1/5] utils.c: include for siginfo_t POSIX says: > The header shall define the siginfo_t type as a structure So is not enough to see the definition (not just a forward declaration) of siginfo_t. --- src/utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils.c b/src/utils.c index e11bc09d57..e1e4af13a9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,6 +1,7 @@ #ifndef _WIN32 # define _POSIX_C_SOURCE 200809L // required for POSIX (not standard C) features in is_direct_child e.g. 'siginfo_t' -# include +# include // siginfo_t +# include // waitid #endif #include "data.table.h" From 513b017a5837821db701cdb7eebf16b5dc557879 Mon Sep 17 00:00:00 2001 From: Ivan K Date: Thu, 25 Dec 2025 22:48:23 +0300 Subject: [PATCH 2/5] NEWS entry --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index 5c97d3b69e..856df182bd 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,9 @@ ## data.table [v1.18.99](https://github.com/Rdatatable/data.table/milestone/37?closed=1) (in development) +### BUG FIXES + +1. Fixed the compilation failure on FreeBSD due to an `#include` directive missing in v1.18.0, [#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 From baaf8ca299d918a8eca9b09f955d0c44e32a978b Mon Sep 17 00:00:00 2001 From: Ivan K Date: Fri, 26 Dec 2025 00:02:44 +0300 Subject: [PATCH 3/5] Amend NEWS --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 856df182bd..4d83c61fe5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,7 +6,7 @@ ### BUG FIXES -1. Fixed the compilation failure on FreeBSD due to an `#include` directive missing in v1.18.0, [#7516](https://github.com/rdatatable/data.table/issues/7516). Thanks to @jszhao for the report and @aitap for the fix. +1. Fixed the compilation failure 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 From db69eae79ca5b5b2303c7ce384897366768238a9 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Wed, 31 Dec 2025 00:47:37 -0800 Subject: [PATCH 4/5] more robustly define _POSIX_C_SOURCE (h/t Hugh) --- src/utils.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils.c b/src/utils.c index e1e4af13a9..11ec0c1a70 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,5 +1,8 @@ #ifndef _WIN32 -# define _POSIX_C_SOURCE 200809L // required for POSIX (not standard C) features in is_direct_child e.g. 'siginfo_t' +# 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 From 327e2a53118d0321344821bed54ba963ba8b1061 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Wed, 31 Dec 2025 00:49:42 -0800 Subject: [PATCH 5/5] tidy up NEWS --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 4d83c61fe5..8fd4c61b82 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,7 +6,7 @@ ### BUG FIXES -1. Fixed the compilation failure 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. +1. 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