• Guido van Rossum's avatar
    Pat Knight: · 02a1c400
    Guido van Rossum authored
    Solaris 2 has stub implementations of the POSIX thread functions such as
    pthread_detach in libc. This means that configure tries to use them without
    -lpthread, then the test of pthread_create fails and the configuration
    falls back to the Solaris thread library. This patch moves the test for
    pthread_create in -lpthread ahead of the test for pthread_detach in libc.
    The patch also ensures that -lpthread is at the start of the library list
    when linking, to pick up POSIX thread semantics for fork (see below).
    
    Justification.
    Use of POSIX threads on Solaris ensures that the fork() call only runs the
    thread that called fork() in the child. This is desirable to prevent (for
    example) parent server or database threads running in the child. Sun's
    -lthread library uses a traditional fork() which replicates all the
    parent's threads in the child. I find this undesirable.
    
    Digression.
    The configure.in seems to always test for -lthread even if a POSIX library
    is found. I'm not enough of a configure.in wizard to decide whether this is
    desirable or how to fix it. It is also irrelevant to this patch - I just
    spotted it while testing.
    End of Digression.
    02a1c400
configure 140 KB