Skip to content

Commit 0387254

Browse files
[AArch64][compiler-rt] Disable SME ABI routines if function multiversioning is not supported (#94973)
This prevents build failures when building with `DISABLE_AARCH64_FMV`, see #92921.
1 parent 860f0b5 commit 0387254

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

compiler-rt/lib/builtins/CMakeLists.txt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -561,12 +561,23 @@ set(aarch64_SOURCES
561561
aarch64/fp_mode.c
562562
)
563563

564-
if(COMPILER_RT_HAS_AARCH64_SME AND COMPILER_RT_HAS_FNO_BUILTIN_FLAG AND (COMPILER_RT_HAS_AUXV OR COMPILER_RT_BAREMETAL_BUILD))
565-
list(APPEND aarch64_SOURCES aarch64/sme-abi.S aarch64/sme-abi-init.c aarch64/sme-abi-vg.c aarch64/sme-libc-routines.c)
566-
message(STATUS "AArch64 SME ABI routines enabled")
567-
set_source_files_properties(aarch64/sme-libc-routines.c PROPERTIES COMPILE_FLAGS "-fno-builtin")
568-
else()
569-
message(STATUS "AArch64 SME ABI routines disabled")
564+
if (COMPILER_RT_HAS_AARCH64_SME)
565+
if (NOT COMPILER_RT_DISABLE_AARCH64_FMV AND COMPILER_RT_HAS_FNO_BUILTIN_FLAG AND (COMPILER_RT_HAS_AUXV OR COMPILER_RT_BAREMETAL_BUILD))
566+
list(APPEND aarch64_SOURCES aarch64/sme-abi.S aarch64/sme-abi-init.c aarch64/sme-abi-vg.c aarch64/sme-libc-routines.c)
567+
message(STATUS "AArch64 SME ABI routines enabled")
568+
set_source_files_properties(aarch64/sme-libc-routines.c PROPERTIES COMPILE_FLAGS "-fno-builtin")
569+
else()
570+
if(COMPILER_RT_DISABLE_AARCH64_FMV)
571+
message(WARNING "AArch64 SME ABI routines require function multiversioning support.")
572+
endif()
573+
if(NOT COMPILER_RT_HAS_FNO_BUILTIN_FLAG)
574+
message(WARNING "AArch64 SME ABI routines require '-fno-builtin'")
575+
endif()
576+
if(NOT (COMPILER_RT_HAS_AUXV OR COMPILER_RT_BAREMETAL_BUILD))
577+
message(WARNING "AArch64 SME ABI routines requires sys/auxv.h or COMPILER_RT_BAREMETAL_BUILD flag")
578+
endif()
579+
message(STATUS "AArch64 SME ABI routines disabled")
580+
endif()
570581
endif()
571582

572583
# Generate outline atomics helpers from lse.S base

0 commit comments

Comments
 (0)