os-test > basic > pthread

Legend

Outcomes
Good Good Missing optional Outside libc
Partial Extension Previous posix
Neutral None
Bad Compile error Incompatible Missing header Undeclared Undefined reference Unknown type

Good. A cell is good if the declaration is present in the header and can be linked with libc. This outcome means the test succeeded with the appropriate -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros and the standard libraries libc, libpthread, libm, librt, and libxnet.

Missing optional. A cell is missing_optional if the test could not be compiled, but the declaration is optional in POSIX and need not be provided.

Outside libc. A cell is outside_libc if the test could be compiled, but had to be linked with another standard library than the ones prescribed by POSIX: libc, libpthread, libm, librt, and libxnet. This may not conform to POSIX depending on the linking options provided by getconf(1)/confstr(3).

Extension. A cell is extension if the test could not be compiled with the _POSIX_C_SOURCE and _XOPEN_SOURCE feature macros, but it could instead be compiled with other system-specific feature macros that provide the entire API. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. This outcome typically indicates a declaration new to POSIX.1-2024.

Previous posix. A cell is previous_posix if the test could not be compiled with the -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros from the POSIX.1-2024 standard, but the test could instead be compiled with the older -D_POSIX_C_SOURCE=200809L or -D_XOPEN_SOURCE=700 feature macros from the older POSIX.1-2008 standard. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. In particular, the header did not check if the value was higher than the supported value, but instead hard-coded the supported values, and failed to be forward compatible with new standard versions.

None. A cell is none if there is no test data result for that operating system.

Compile error. A cell is compile_error if the test could not be compiled and the error message was not recognized as a more precise error test outcome.

Incompatible. A cell is incompatible if the declaration existed in the header, but had a signature that is incompatible with the standardized declaration. This outcome typically indicates a type error in the declaration. Addressing the issue may require an incompatible ABI change or special compatibility logic.

Missing header. A cell is missing_header if the header did not exist.

Undeclared. A cell is undeclared if the header did not contain the declaration.

Undefined reference. A cell is undefined if the test could be compiled, but could not be linked with the standard library.

Unknown type. A cell is unknown_type if the test could not be compiled and failed because a required type was not declared. In some cases, functions fail because the header omitted a required type for a function and instead declared the function in an alternate fashion with an incompatible alias for the type.

§. The § link on the left of each row links to that row.

pthread

genode
Genode
§ pthread_attr_destroy genode: good
exit: 0
§ pthread_attr_getdetachstate genode: good
exit: 0
§ pthread_attr_getguardsize genode: good
exit: 0
§ pthread_attr_getschedparam genode: good
exit: 0
§ pthread_attr_init genode: good
exit: 0
§ pthread_attr_setdetachstate genode: incompatible
§ pthread_attr_setguardsize genode: incompatible
§ pthread_attr_setschedparam genode: bad
pthread_getschedparam: Unknown error: -1
§ pthread_barrier_destroy genode: undefined
§ pthread_barrier_init genode: undefined
§ pthread_barrier_wait genode: undefined
§ pthread_barrierattr_destroy genode: undefined
§ pthread_barrierattr_init genode: undefined
§ pthread_cancel genode: bad
pthread_cancel: ENOENT
§ pthread_cleanup_pop genode: bad
pthread_cancel: ENOENT
§ pthread_cleanup_push genode: bad
pthread_cancel: ENOENT
§ pthread_cond_broadcast genode: good
exit: 0
§ pthread_cond_clockwait genode: compile_error
§ pthread_cond_destroy genode: good
exit: 0
§ pthread_cond_init genode: good
exit: 0
§ pthread_cond_signal genode: good
exit: 0
§ pthread_cond_timedwait genode: good
exit: 0
§ pthread_cond_wait genode: good
exit: 0
§ pthread_condattr_destroy genode: good
exit: 0
§ pthread_condattr_getclock genode: undefined
§ pthread_condattr_init genode: good
exit: 0
§ pthread_condattr_setclock genode: undefined
§ pthread_create genode: bad
sched_yield: ENOENT
§ pthread_detach genode: undeclared
§ pthread_equal genode: good
exit: 0
§ pthread_exit genode: bad
pthread_exit: ENOENT
§ pthread_getspecific genode: good
exit: 0
§ pthread_join genode: good
exit: 0
§ pthread_key_create genode: good
exit: 0
§ pthread_key_delete genode: good
exit: 0
§ pthread_mutex_clocklock genode: compile_error
§ pthread_mutex_consistent genode: undefined
§ pthread_mutex_destroy genode: good
exit: 0
§ pthread_mutex_init genode: good
exit: 0
§ pthread_mutex_lock genode: good
exit: 0
§ pthread_mutex_timedlock genode: good
exit: 0
§ pthread_mutex_trylock genode: good
exit: 0
§ pthread_mutex_unlock genode: good
exit: 0
§ pthread_mutexattr_destroy genode: good
exit: 0
§ pthread_mutexattr_getrobust genode: undefined
§ pthread_mutexattr_gettype genode: bad
mutex type was not default by default
§ pthread_mutexattr_init genode: good
exit: 0
§ pthread_mutexattr_setrobust genode: undefined
§ pthread_mutexattr_settype genode: good
exit: 0
§ pthread_once genode: good
exit: 0
§ pthread_rwlock_clockrdlock genode: compile_error
§ pthread_rwlock_clockwrlock genode: compile_error
§ pthread_rwlock_destroy genode: good
exit: 0
§ pthread_rwlock_init genode: good
exit: 0
§ pthread_rwlock_rdlock genode: good
exit: 0
§ pthread_rwlock_timedrdlock genode: undefined
§ pthread_rwlock_timedwrlock genode: undefined
§ pthread_rwlock_tryrdlock genode: bad
pthread_rwlock_trywrlock did not fail
§ pthread_rwlock_trywrlock genode: bad
second pthread_rwlock_trywrlock did not fail
§ pthread_rwlock_unlock genode: good
exit: 0
§ pthread_rwlock_wrlock genode: good
exit: 0
§ pthread_rwlockattr_destroy genode: good
exit: 0
§ pthread_rwlockattr_init genode: good
exit: 0
§ pthread_self genode: good
exit: 0
§ pthread_setcancelstate genode: bad
pthread_cancel: ENOENT
§ pthread_setcanceltype genode: bad
pthread_cancel: ENOENT
§ pthread_setspecific genode: good
exit: 0
§ pthread_spin_destroy genode: undefined
§ pthread_spin_init genode: undefined
§ pthread_spin_lock genode: undefined
§ pthread_spin_trylock genode: undefined
§ pthread_spin_unlock genode: undefined
§ pthread_testcancel genode: good
exit: 0
Optional: MC1
Non-Robust Mutex Priority Protection or Non-Robust Mutex Priority Inheritance or Robust Mutex Priority Protection or Robust Mutex Priority Inheritance
§ pthread_mutexattr_getprotocol genode: undefined
§ pthread_mutexattr_setprotocol genode: undefined
Optional: OB
Obsolescent
§ pthread_atfork genode: bad
pthread_atfork: ENOENT
Optional: RPP|TPP
Robust Mutex Priority Protection or Non-Robust Mutex Priority Protection
§ pthread_mutex_getprioceiling genode: undefined
§ pthread_mutex_setprioceiling genode: undefined
§ pthread_mutexattr_getprioceiling genode: undefined
§ pthread_mutexattr_setprioceiling genode: undefined
Optional: TCT
Thread CPU-Time Clocks
§ pthread_getcpuclockid genode: undefined
Optional: TPS
Thread Execution Scheduling
§ pthread_attr_getinheritsched genode: bad
default was not inheriting sched
§ pthread_attr_getschedpolicy genode: bad
default policy was not SCHED_OTHER
§ pthread_attr_getscope genode: bad
default scope was not system
§ pthread_attr_setinheritsched genode: incompatible
§ pthread_attr_setschedpolicy genode: bad
pthread_getschedparam: Unknown error: -1
§ pthread_attr_setscope genode: good
exit: 0
§ pthread_getschedparam genode: bad
pthread_getschedparam: Unknown error: -1
§ pthread_setschedparam genode: bad
pthread_getschedparam: Unknown error: -1
§ pthread_setschedprio genode: compile_error
Optional: TSA TSS
Thread Stack Address Attribute and Thread Stack Size Attribute
§ pthread_attr_getstack genode: undefined
§ pthread_attr_setstack genode: incompatible
Optional: TSH
Thread Process-Shared Synchronization
§ pthread_barrierattr_getpshared genode: undefined
§ pthread_barrierattr_setpshared genode: undefined
§ pthread_condattr_getpshared genode: undefined
§ pthread_condattr_setpshared genode: undefined
§ pthread_mutexattr_getpshared genode: undefined
§ pthread_mutexattr_setpshared genode: undefined
§ pthread_rwlockattr_getpshared genode: undefined
§ pthread_rwlockattr_setpshared genode: undefined
Optional: TSS
Thread Stack Size Attribute
§ pthread_attr_getstacksize genode: bad
pthread_attr_setstack: EINVAL
§ pthread_attr_setstacksize genode: incompatible