<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - built-in pexpect.py produces ioctl sign-extension warnings on FreeBSD"
   href="http://llvm.org/bugs/show_bug.cgi?id=18749">18749</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>built-in pexpect.py produces ioctl sign-extension warnings on FreeBSD
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

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

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>FreeBSD
          </td>
        </tr>

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

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

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>emaste@freebsd.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>LLDB includes a copy of pexpect, in test/pexpect-2.4/pexpect.py

It includes a hack to work around some buggy platforms:

        # Check for buggy platforms. Some Python versions on some platforms     
        # (notably OSF1 Alpha and RedHat 7.1) truncate the value for            
        # termios.TIOCSWINSZ. It is not clear why this happens.                 
        # These platforms don't seem to handle the signed int very well;        
        # yet other platforms like OpenBSD have a large negative value for      
        # TIOCSWINSZ and they don't have a truncate problem.                    
        # Newer versions of Linux have totally different values for TIOCSWINSZ. 
        # Note that this fix is a hack.                                         
        TIOCSWINSZ = getattr(termios, 'TIOCSWINSZ', -2146929561)               
        if TIOCSWINSZ == 2148037735L: # L is not required in Python >= 2.2.    
            TIOCSWINSZ = -2146929561 # Same bits, but with sign.               

-2146929561 == 0xffffffff80087467.  Passing this sign-extended value, instead
of the desired 0x80087467, produces a warning message in the system console on
FreeBSD:

Feb  5 17:19:11 feynman kernel: WARNING pid 11323 (python2.7): ioctl
sign-extension ioctl ffffffff80087467</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>