<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:rafael.espindola@gmail.com" title="Rafael Ávila de Espíndola <rafael.espindola@gmail.com>"> <span class="fn">Rafael Ávila de Espíndola</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Regression with Musl after adding support for outputting to /dev/null"
   href="https://bugs.llvm.org/show_bug.cgi?id=32425">bug 32425</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>REOPENED
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Regression with Musl after adding support for outputting to /dev/null"
   href="https://bugs.llvm.org/show_bug.cgi?id=32425#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Regression with Musl after adding support for outputting to /dev/null"
   href="https://bugs.llvm.org/show_bug.cgi?id=32425">bug 32425</a>
              from <span class="vcard"><a class="email" href="mailto:rafael.espindola@gmail.com" title="Rafael Ávila de Espíndola <rafael.espindola@gmail.com>"> <span class="fn">Rafael Ávila de Espíndola</span></a>
</span></b>
        <pre>(In reply to Rich Felker from <a href="show_bug.cgi?id=32425#c9">comment #9</a>)
<span class="quote">> This is a bug in lld's interpretation of protected, and affects any
> reference to protected functions in a shared library from the main program.
> Protected means that the symbol is _semantically_ not subject to
> interposition, not that the address always resolves the the address of the
> definition; often due to PLT entries or copy relocations, the address will
> necessarily resolve to something other than the original definition.</span >

I don't think that interpretation makes any sense whatsoever. The idea of
protected is to allow efficient access inside of a DSO. If a symbol can be
accessed directly inside a DSO, it cannot be accessed directly from the outside
and have a single address.

As I mentioned before, I am OK with supporting an option where lld doesn't care
about pointer equality, but that should *not* be the default.

Note that this has been discussed before in the generic-abi:

<a href="https://groups.google.com/forum/#!topic/generic-abi/waK1dGiUGvM">https://groups.google.com/forum/#!topic/generic-abi/waK1dGiUGvM</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>