-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Open
0 / 10 of 1 issue completedLabels
Description
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)
It will be less work for us to support 32b x86 then for Android to drop 32b x86 support.