libpthreads - CMA and d4 threads not supported; use POSIX threads (CrUn368)
The CMA and d4 thread interfaces are supported on Tru64 UNIX but not on HP-UX Itanium®-based systems.
The CMA (Concert Multithread Architecture) interface is an HP proprietary thread interface. The d4 interface (also known as DCE threads) is an implementation of the POSIX 1003.4a/Draft 4 document. Both are older interfaces that have been superseded by the pthread interface, which is an implementation of the POSIX 1003.1c or
On both platforms, the pthread interface is in the libpthread library.
On Tru64 UNIX, the CMA and d4 interfaces are in a different library, the libpthreads library. It is only provided for backward compatibility and its interfaces are no longer documented.
On HP-UX, the CMA and d4 interfaces are in the libcmalib library. That is a PA library that has been deprecated and may be removed in a future release. Itanium®-based systems do not have a native version of the library.
Migrate to the pthread interface.
The Tru64 UNIX Guide to the POSIX Threads Library explains how
to migrate from the CMA and d4 interfaces to the pthread interface.
The pthread interface has been widely used for years, so it is unusual to see an application still using the CMA or d4 interfaces. When a Tru64 UNIX application does link with the CMA/d4 library, libpthreads, it is often because the developers forgot to update their makefiles when they migrated to the pthread interface. To see which thread creation function the application binary is actually referencing, enter the following command:
nm -u app | grep thread_create
cma_thread_create means the application is using the CMA interface, pthread_create means the d4 interface, and __pthread_create means the pthread interface.
||any HP-UX 11i version