diff --git a/newlib/libc/sys/rtems/include/semaphore.h b/newlib/libc/sys/rtems/include/semaphore.h
index 6d756d522..d81a10c21 100644
--- a/newlib/libc/sys/rtems/include/semaphore.h
+++ b/newlib/libc/sys/rtems/include/semaphore.h
@@ -57,7 +57,13 @@ int	 sem_unlink(const char *);
 int	 sem_wait(sem_t *);
 
 #if (__GNU_VISIBLE || __POSIX_VISIBLE >= 202405)
-int sem_clockwait(sem_t * __restrict, __clockid_t,
+#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED)
+typedef	__clockid_t	clockid_t;
+#define	__clockid_t_defined
+#define	_CLOCKID_T_DECLARED
+#endif
+
+int sem_clockwait(sem_t * __restrict, clockid_t,
        const struct timespec * __restrict);
 #endif /* __GNU_VISIBLE || __POSIX_VISIBLE >= 202405 */
 
