<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </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 - TestCases/Posix/no_asan_gen_globals.c FAILs on Solaris"
   href="https://bugs.llvm.org/show_bug.cgi?id=47607">47607</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>TestCases/Posix/no_asan_gen_globals.c FAILs on Solaris
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>compiler-rt
          </td>
        </tr>

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

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Solaris
          </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>asan
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>ro@gcc.gnu.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, vitalybuka@google.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The TestCases/Posix/no_asan_gen_globals.c test FAILs on Solaris.

$ nm no_asan_gen_globals.c.tmp.exe |grep ___asan_gen
0808056b r .L___asan_gen_.1
0808232b r .L___asan_gen_.2
08078df7 r .L___asan_gen_.4
0808232b r .L___asan_gen_.5
08082387 r .L___asan_gen_.7
0808232b r .L___asan_gen_.8

Analysis has shown two issues so far:

* Unlike GNU ld, the Solaris ld doesn't strip local symbols (i.e. those
starting
  with ".L") from executables on output.  I'll follow up with the linker
  engineers about this.  However, one might argue that the linker has no
  business stripping them since they should never have been in the input in the
  first place.

  Simply relinking the input objects with gld lets those symbols above vanish.

* However, they are present in the input object, too:

$ nm no_asan_gen_globals.o |grep ___asan_gen00000000 r .L___asan_gen_.1
00000002 r .L___asan_gen_.2
0000005e r .L___asan_gen_.4
00000060 r .L___asan_gen_.5
000000bc r .L___asan_gen_.7
000000be r .L___asan_gen_.8

  This is a bug in LLVM's integrated assebler, as can be seen when using
  -fno-integrated-as where those symbols are not present, as they shouldn't
have
  been in the first place.

  This issue isn't Solaris-specfic: I see those local symbols in the object
file
  on Linux/x86_64, too.

I have not yet found where to address the second issue.  Maybe the test should
be XFAILed in the meantime?</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>