<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>lowest
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Deprecate header inclusion of pthread.h and add a define option to disable inclusion of pthread.h"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=80044">80044</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>xcb@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Deprecate header inclusion of pthread.h and add a define option to disable inclusion of pthread.h
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>xcb@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>sstewartgallus00@mylangara.bc.ca
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Library
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>XCB
          </td>
        </tr></table>
      <p>
        <div>
        <pre>As far as I can tell the only place pthread.h is included or used is in
xcb/xcb.h. Because libraries may have grown to depend upon the inclusion it
will not be possible to simply remove pthread.h from the header file. However,
adding a check for a define (maybe "XCB_NO_INCLUDE_PTHREAD") that disables the
inclusion of pthread.h would be backwards compatible. Then perhaps in the far
flung future the inclusion of pthread.h could be disabled by default.

This issue is important to me because I am interested in statically analysing
my programs and to do so I use a custom set of headers for libc which are
specially annotated. Because statically analysing multithreading is really,
really hard the headers for pthreads have not been implemented yet and so the
static analyser falls back to the system's headers which causes the build to
fail. I would like to be able to disable inclusion of pthread.h and so
statically analyse my program. Of course, I can use an ugly hack to work around
the issue by defining the header guard _PTHREAD_H in my program so the issue is
not at all urgent but eventually in the far flung future I'd like to get rid of
it. Also, statically analysing a big interface such as a GUI is very hard and
not something to bother putting much effort in so this issue is also not
important in that way. I feel this should be done eventually though. I feel
this issue should be solved eventually though.

This issue will eventually make for very, very, slightly faster build times.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>