distinguish X32 from I386
authorAndreas Beckmann <anbe@debian.org>
Fri, 26 Jul 2024 02:30:59 +0000 (04:30 +0200)
committerAndreas Beckmann <anbe@debian.org>
Fri, 26 Jul 2024 02:30:59 +0000 (04:30 +0200)
Gbp-Pq: Name x32.patch

CMakeLists.txt
lib/kernel/host/CMakeLists.txt

index 0b7cc0e3d490d3548df336750d9068a7dd8e1d33..03185e6e859dcb0d02784ce3124eb422d773bb06 100644 (file)
@@ -341,7 +341,9 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(arm|aarch64)")
   endif()
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i.86|AMD64|x86_64|amd64)")
   set(X86 1)
-  if(HOST_DEVICE_ADDRESS_BITS MATCHES "32")
+  if(CMAKE_LIBRARY_ARCHITECTURE STREQUAL "x86_64-linux-gnux32")
+    set(X32 1)
+  elseif(HOST_DEVICE_ADDRESS_BITS MATCHES "32")
     set(I386 1)
   else()
     set(X86_64 1)
@@ -1426,7 +1428,7 @@ if(KERNELLIB_HOST_CPU_VARIANTS STREQUAL "distro")
   if(HOST_CPU_FORCED)
     message(FATAL_ERROR "Cannot build with CPU autodetection distro variants build, and enforce LLC_HOST_CPU at the same time. Please pick one")
   endif()
-  if(X86_64 OR I386)
+  if(X86)
     set(KERNELLIB_HOST_CPU_VARIANTS sse2 ssse3 sse41 avx avx_f16c avx_fma4 avx2 avx512)
     if(I386)
       set(KERNELLIB_HOST_CPU_VARIANTS i386 i686 mmx sse ${KERNELLIB_HOST_CPU_VARIANTS})
index 8acf4d97197dc3ee7b842c9f66ff7f1179fdd25b..8bb9d2f97d295eeb16f72f23e707bf04509b7cd4 100644 (file)
@@ -581,7 +581,7 @@ else()
   set(VARIANT "${CPU_VARIANT}")
 endif()
 
-if(X86_64 OR I386)
+if(X86)
   x86_distro_variant_to_flags("${VARIANT}" LLC_CPUFLAGS CLANG_CPUFLAGS)
 else()
   set(CLANG_CPUFLAGS "${CLANG_MARCH_FLAG}${VARIANT}")