gettid is not available on GNU/Hurd and not defined in glibc. It is specific to Linux for its thread implementation, while GNU/Hurd uses a different one. Without a definition, compiling libgav1 on GNU/Hurd will result in an error of undeclared function.
In commit f06328bf, we have already fixed a mistake usage of a pthread api on GNU/Hurd. The reason why this error is not noticed might be that abseil has failed to build on GNU/Hurd for a long time, therefore libgav1 might have not been compiled once as well. Change-Id: Id0a8f8dbd7660d4dbd0f2968b670d439a273fe20 Signed-off-by: Yuqian Yang <crup...@crupest.life> --- src/utils/threadpool.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/threadpool.cc b/src/utils/threadpool.cc index ad79ba2..048ad59 100644 --- a/src/utils/threadpool.cc +++ b/src/utils/threadpool.cc @@ -44,7 +44,7 @@ // Linux. #if defined(__ANDROID__) static pid_t GetTid() { return gettid(); } -#elif defined(__GLIBC__) +#elif defined(__GLIBC__) && !defined(__GNU__) // The glibc wrapper for the gettid() system call was added in glibc 2.30. // Emulate it for older versions of glibc. #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 30) @@ -54,7 +54,7 @@ static pid_t GetTid() { return gettid(); } static pid_t GetTid() { return static_cast<pid_t>(syscall(SYS_gettid)); } #endif // glibc 2.30 or later. -#endif // defined(__GLIBC__) +#endif // defined(__GLIBC__) && !defined(__GNU__) namespace libgav1 { -- Yuqian Yang <crup...@crupest.life>