All the existing gthread implementaions cause thread-package specific code to be compiled into all the libries, thus making it impossible to share the same libraries between operating systems with different thread support packages (or lack thereof), but otherwise identical ABI sets.
By using non-inline, weak stub functions with functionality like for gthr-single, the actual thread implementation can be linked in separately, either statically or dynamically. The following patch is already in the patch tracker: http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00237.html -- Summary: gthread primitives make library binaries specific to one single threading implementation Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: patch Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org OtherBugsDependingO 29842 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29848