# Generated by devtools/yamaker/ym2 LIBRARY() LICENSE( Apache-2.0 AND Apache-2.0 WITH LLVM-exception AND MIT AND NCSA ) LICENSE_TEXTS(.yandex_meta/licenses.list.txt) VERSION(19.1.7) ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/compiler-rt-19.1.7.src.tar.xz) NO_COMPILER_WARNINGS() # Check MUSL before NO_PLATFORM() disables it. IF (MUSL) # We use C headers despite NO_PLATFORM, but we do not propagate # them with ADDINCL GLOBAL because we do not have an API, and we # can not propagate them because libcxx has to put its own # includes before musl includes for its include_next to work. IF (ARCH_X86_64) ADDINCL( contrib/libs/musl/arch/x86_64 ) ENDIF() IF (ARCH_AARCH64) ADDINCL( contrib/libs/musl/arch/aarch64 ) ENDIF() ADDINCL( contrib/libs/musl/arch/generic contrib/libs/musl/include contrib/libs/musl/extra ) ENDIF() NO_UTIL() NO_RUNTIME() NO_PLATFORM() NO_COMPILER_WARNINGS() IF (GCC OR CLANG) # Clang (maybe GCC too) LTO code generator leaves the builtin calls unresolved # even if they are available. After the code generation pass is done # a linker is forced to select original object files from this library again # as they contain unresolved symbols. But code generation is already done, # object files actually are not ELFs but an LLVM bytecode and we get # "member at xxxxx is not an ELF object" errors from the linker. # Just generate native code from the beginning. NO_LTO() ENDIF() IF (OS_DARWIN OR OS_IOS) SRCS( atomic_flag_clear.c atomic_flag_clear_explicit.c atomic_flag_test_and_set.c atomic_flag_test_and_set_explicit.c atomic_signal_fence.c atomic_thread_fence.c ) ENDIF() IF (ARCH_ARM64 OR ARCH_X86_64) # As of r25b, clang-for-android does not have bf16 support. # These can be built using r27 and above. IF (NOT OS_ANDROID) SRCS( # NB: sources that were commented out were added in llvm-20 extendbfsf2.c truncdfbf2.c # truncxfbf2.c truncsfbf2.c # trunctfbf2.c ) ENDIF() ENDIF() IF (ARCH_AARCH64) SRCS( aarch64/chkstk.S aarch64/fp_mode.c aarch64/sme-abi-init.c aarch64/sme-abi-vg.c aarch64/sme-abi.S aarch64/sme-libc-mem-routines.S absvdi2.c absvsi2.c absvti2.c adddf3.c addsf3.c addtf3.c addvdi3.c addvsi3.c addvti3.c apple_versioning.c ashldi3.c ashlti3.c ashrdi3.c ashrti3.c atomic.c bswapdi2.c bswapsi2.c clear_cache.c clzdi2.c clzsi2.c clzti2.c cmpdi2.c cmpti2.c comparedf2.c comparesf2.c comparetf2.c cpu_model/aarch64.c ctzdi2.c ctzsi2.c ctzti2.c divdc3.c divdf3.c divdi3.c divmoddi4.c divmodsi4.c divmodti4.c divsc3.c divsf3.c divsi3.c divtc3.c divtf3.c divti3.c emutls.c enable_execute_stack.c eprintf.c extenddftf2.c extendhfsf2.c extendhftf2.c extendsfdf2.c extendsftf2.c ffsdi2.c ffssi2.c ffsti2.c fixdfdi.c fixdfsi.c fixdfti.c fixsfdi.c fixsfsi.c fixsfti.c fixtfdi.c fixtfsi.c fixtfti.c fixunsdfdi.c fixunsdfsi.c fixunsdfti.c fixunssfdi.c fixunssfsi.c fixunssfti.c fixunstfdi.c fixunstfsi.c fixunstfti.c floatdidf.c floatdisf.c floatditf.c floatsidf.c floatsisf.c floatsitf.c floattidf.c floattisf.c floattitf.c floatundidf.c floatundisf.c floatunditf.c floatunsidf.c floatunsisf.c floatunsitf.c floatuntidf.c floatuntisf.c floatuntitf.c gcc_personality_v0.c int_util.c lshrdi3.c lshrti3.c moddi3.c modsi3.c modti3.c muldc3.c muldf3.c muldi3.c mulodi4.c mulosi4.c muloti4.c mulsc3.c mulsf3.c multc3.c multf3.c multi3.c mulvdi3.c mulvsi3.c mulvti3.c negdf2.c negdi2.c negsf2.c negti2.c negvdi2.c negvsi2.c negvti2.c os_version_check.c paritydi2.c paritysi2.c parityti2.c popcountdi2.c popcountsi2.c popcountti2.c powidf2.c powisf2.c powitf2.c subdf3.c subsf3.c subtf3.c subvdi3.c subvsi3.c subvti3.c trampoline_setup.c truncdfhf2.c truncdfsf2.c truncsfhf2.c trunctfdf2.c trunctfhf2.c trunctfsf2.c ucmpdi2.c ucmpti2.c udivdi3.c udivmoddi4.c udivmodsi4.c udivmodti4.c udivsi3.c udivti3.c umoddi3.c umodsi3.c umodti3.c ) IF (NOT OS_DARWIN) SRCS( aarch64/sme-libc-routines.c ) ENDIF() ELSEIF (ARCH_X86_64) SRCS( absvdi2.c absvsi2.c absvti2.c adddf3.c addsf3.c addtf3.c addvdi3.c addvsi3.c addvti3.c apple_versioning.c ashldi3.c ashlti3.c ashrdi3.c ashrti3.c atomic.c bswapdi2.c bswapsi2.c clear_cache.c clzdi2.c clzsi2.c clzti2.c cmpdi2.c cmpti2.c comparedf2.c comparesf2.c comparetf2.c cpu_model/x86.c ctzdi2.c ctzsi2.c ctzti2.c divdc3.c divdf3.c divdi3.c divmoddi4.c divmodsi4.c divmodti4.c divsc3.c divsf3.c divsi3.c divtc3.c divtf3.c divti3.c emutls.c enable_execute_stack.c eprintf.c extenddftf2.c extendhfsf2.c extendhftf2.c extendsfdf2.c extendsftf2.c ffsdi2.c ffssi2.c ffsti2.c fixdfdi.c fixdfsi.c fixdfti.c fixsfdi.c fixsfsi.c fixsfti.c fixtfdi.c fixtfsi.c fixtfti.c fixunsdfdi.c fixunsdfsi.c fixunsdfti.c fixunssfdi.c fixunssfsi.c fixunssfti.c fixunstfdi.c fixunstfsi.c fixunstfti.c floatditf.c floatsidf.c floatsisf.c floatsitf.c floattidf.c floattisf.c floattitf.c floatunditf.c floatunsidf.c floatunsisf.c floatunsitf.c floatuntidf.c floatuntisf.c floatuntitf.c fp_mode.c gcc_personality_v0.c int_util.c lshrdi3.c lshrti3.c moddi3.c modsi3.c modti3.c muldc3.c muldf3.c muldi3.c mulodi4.c mulosi4.c muloti4.c mulsc3.c mulsf3.c multc3.c multf3.c multi3.c mulvdi3.c mulvsi3.c mulvti3.c negdf2.c negdi2.c negsf2.c negti2.c negvdi2.c negvsi2.c negvti2.c os_version_check.c paritydi2.c paritysi2.c parityti2.c popcountdi2.c popcountsi2.c popcountti2.c powidf2.c powisf2.c powitf2.c subdf3.c subsf3.c subtf3.c subvdi3.c subvsi3.c subvti3.c trampoline_setup.c truncdfhf2.c truncdfsf2.c truncsfhf2.c trunctfdf2.c trunctfhf2.c trunctfsf2.c ucmpdi2.c ucmpti2.c udivdi3.c udivmoddi4.c udivmodsi4.c udivmodti4.c udivsi3.c udivti3.c umoddi3.c umodsi3.c umodti3.c x86_64/chkstk.S x86_64/floatdidf.c x86_64/floatdisf.c x86_64/floatundidf.S x86_64/floatundisf.S x86_64/floatundixf.S ) IF (NOT OS_WINDOWS AND NOT OS_ANDROID) SRCS( x86_64/floatdixf.c divxc3.c extendxftf2.c fixunsxfdi.c fixunsxfsi.c fixunsxfti.c fixxfdi.c fixxfti.c floattixf.c floatuntixf.c mulxc3.c powixf2.c trunctfxf2.c ) ENDIF() ELSE() SRCS( absvdi2.c absvsi2.c absvti2.c adddf3.c addsf3.c addtf3.c addvdi3.c addvsi3.c addvti3.c apple_versioning.c ashldi3.c ashlti3.c ashrdi3.c ashrti3.c atomic.c bswapdi2.c bswapsi2.c clzdi2.c clzsi2.c clzti2.c cmpdi2.c cmpti2.c comparedf2.c comparesf2.c comparetf2.c ctzdi2.c ctzsi2.c ctzti2.c divdc3.c divdf3.c divdi3.c divmoddi4.c divmodsi4.c divmodti4.c divsc3.c divsf3.c divsi3.c divtc3.c divtf3.c divti3.c extenddftf2.c extendhfsf2.c extendhftf2.c extendsfdf2.c extendsftf2.c ffsdi2.c ffssi2.c ffsti2.c fixdfdi.c fixdfsi.c fixdfti.c fixsfdi.c fixsfsi.c fixsfti.c fixtfdi.c fixtfsi.c fixtfti.c fixunsdfdi.c fixunsdfsi.c fixunsdfti.c fixunssfdi.c fixunssfsi.c fixunssfti.c fixunstfdi.c fixunstfsi.c fixunstfti.c floatdidf.c floatdisf.c floatditf.c floatsidf.c floatsisf.c floatsitf.c floattidf.c floattisf.c floattitf.c floatundidf.c floatundisf.c floatunditf.c floatunsidf.c floatunsisf.c floatunsitf.c floatuntidf.c floatuntisf.c floatuntitf.c fp_mode.c gcc_personality_v0.c int_util.c lshrdi3.c lshrti3.c moddi3.c modsi3.c modti3.c muldc3.c muldf3.c muldi3.c mulodi4.c mulosi4.c muloti4.c mulsc3.c mulsf3.c multc3.c multf3.c multi3.c mulvdi3.c mulvsi3.c mulvti3.c negdf2.c negdi2.c negsf2.c negti2.c negvdi2.c negvsi2.c negvti2.c os_version_check.c paritydi2.c paritysi2.c parityti2.c popcountdi2.c popcountsi2.c popcountti2.c powidf2.c powisf2.c powitf2.c subdf3.c subsf3.c subtf3.c subvdi3.c subvsi3.c subvti3.c trampoline_setup.c truncdfhf2.c truncdfsf2.c truncsfhf2.c trunctfdf2.c trunctfhf2.c trunctfsf2.c ucmpdi2.c ucmpti2.c udivdi3.c udivmoddi4.c udivmodsi4.c udivmodti4.c udivsi3.c udivti3.c umoddi3.c umodsi3.c umodti3.c ) IF (NOT OS_EMSCRIPTEN) SRCS( clear_cache.c emutls.c enable_execute_stack.c eprintf.c ) ENDIF() ENDIF() IF (OS_LINUX AND NOT WITH_MAPKIT) SRCS( crtbegin.c crtend.c ) ENDIF() END()