<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 --- - Distros need a mechanism to configure default ISA for given ABI"
   href="http://llvm.org/bugs/show_bug.cgi?id=20989">20989</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Distros need a mechanism to configure default ISA for given ABI
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

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

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

        <tr>
          <th>OS</th>
          <td>Linux
          </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>Driver
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>wookey@wookware.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Distros set a default ISA level for their architectures/ports/ABIs which
changes slowly over time. E.g. Debian 'armhf' uses the ABI defined by
'arm-linux'gnueabihf' (EABI with floats passed in fp registers). The ISA used
is v7 with thumb enabled and VFP3-d16 FP, and no SIMD (NEON).

Any package built for Debian with gcc that does not specify otherwise
explicitly, will be built this way because gcc is configured at build time to
these defaults.

All binary distros have similar implicit of explicit defaults that all
compilers in the archive should use consistently for all supported
architectures.

Typically an ABI/port/arch will have it's base ISA changed a few times over its
lifetime (x86 ISA default moved from i386 to i486 to i586 in Debian for
example, with MMX and SSE made standard at some point). There is also an
implicit -mcpu optimisation applied - typically the 'most generic' one for the
hardware the distro supports/targets.

clang does not currently have a mechanism to set such defaults at built time,
and expects each package to explicitly set options if they differ from upstream
defaults. It is not the responsibility of each package to set such options, as
then changing them over time becomes almost impossible. It should be possible
to tell the compiler to build for a particular default ISA and cpu level by
default unless told otherwise. This could be a build-time configuration (as it
is for gcc) or some kind of config file in the package that is read.</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>