<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/93709>93709</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc] i386 support
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            build-problem,
            libc
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          nickdesaulniers
      </td>
    </tr>
</table>

<pre>
    In order to incorporate llvm-libc into Android, we MUST to support 32b x86.

Currently, the most immediate build failure with `-m32` is:
```
In file included from external/llvm-libc/test/UnitTest/LibcTest.cpp:9:
In file included from external/llvm-libc/test/UnitTest/LibcTest.h:28:
In file included from external/llvm-libc/src/__support/CPP/string.h:14:
In file included from external/llvm-libc/src/string/memory_utils/inline_memcpy.h:22:
external/llvm-libc/src/string/memory_utils/x86_64/inline_memcpy.h:195:22: error: no member named 'K_AVX' in namespace '
llvmlibc::x86'
  195 | if constexpr (x86::K_AVX) {
      | ~~~~~^
external/llvm-libc/src/string/memory_utils/x86_64/inline_memcpy.h:214:17: error: no member named 'Memcpy' in namespace 
'llvmlibc::x86'
  214 | return x86::Memcpy::repmovsb(dst, src, count);
      | ~~~~~^
external/llvm-libc/src/string/memory_utils/x86_64/inline_memcpy.h:219:19: error: no member named 'Memcpy' in namespace 
'llvmlibc::x86'
  219 | return x86::Memcpy::repmovsb(dst, src, count);
      | ~~~~~^
```

This is because `x86::K_AVX` is only defined when `LIBC_TARGET_ARCH_IS_X86_64` is, which is 64b only.  We probably need more preprocessor guards using `LIBC_TARGET_ARCH_IS_X86_64` (64b vs 32b).

(There may be more build or runtime failures)

cc @gchatelet @enh-google 

It will be less work for us to support 32b x86 then for Android to drop 32b x86 support.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VU2P2zYQ_TX0ZbCGNJIt6aCD443bRRMgSJw2N0MixxYbfggktWtf-tsLUl6nTYMGSJsYBkGRnDfzhpw3nffyZIhatnrBVveLbgqDda2R_KMg303KSHJ-0VtxaR8MWCfIQbAgDbdutK4LBEo96jslew7SBAsbI5yVguEWnghev3-3jwZ-GkfrAhTYw7leL1l2z7LNPG4n58gEdYk2YSDQ1geQWpOQ0UE_SSXg2Ek1OYInGQZg6-xOF8jWGUjPiisQW2fXf_p8MHCUimKwahIk4OisBjoHcqZTDHe3yBnuAvnAcPfeyLCfp69kz-N0yceRFZvm5ub_wh1YscH622C9i-PhcM0rw932zZu4Hpw0pwSdl_8FegZiuNOkrbscpiCVZ7iTRklDB02aj5eZAt78fBPiuV4f1uUXofNm9ewAyDnr4sRY0KR7cmA6TQIYVr8cNr9-YFiBNGnRjx2nuDGHFWNJoRQbVmzO9fq2A5A3K2DVFuQRuDU-0Hl0wLCOp9LxK3YDrHrxbBR_0eiP-GOrl9-HPaYbzKuvsX-dTP5Jf64JrP6NPuZlYuIoTM7AjfUVM80djdo--p5hLeIL3kKitAVuJxMYNqz44Zlp0uv4vplpfkBmPpOsedwP0oP00BPvJk9R7T57jkn3wBp1AUFHaUjA00Amnnz18GJ72G_e_vRyf9i83f58eHh3-DCnclbLKMyD5ENEWJd9QlkC_EYwOtt3vbqAIRKgrYtLNDrLyXvr4DR1TniYvDSnr7tiWEf4Rx9Fn2HzN81nWO8HcgS6u0BPs7NZ6K0DN5kgNT1rvo-Z_Isx58DK7MSHLpCiED_IDHcna0_qdruz8AV4kkpFD4q8hyfrPsLROpj8F7pSbD4mbV-bWDwjnB1vB64Gy4VoC9EUTbegNq_yKstKXFWLoa2zKstyfsRi1Xd5fSRRFP0KK1Ees7ymfCFbzLDMVtjkVVEV1RKzel3mDc_zI3ZNySMZ3Um1jI9zad1pIb2fqG2KKmsWqutJ-dSuEVO-7uKtKdIMkeGWIc7FhbGduzaVWz-dPCszJX3wn2CDDCo1_mSwugdZfGK4mJxqhxDG1F1xx3B3kmGY-iW3-lrGz9U8Ovs78diDUqSxdudgH1v8MwAA__8yW5wp">