ya.make 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. # Generated by devtools/yamaker/ym2
  2. LIBRARY()
  3. LICENSE(
  4. Apache-2.0 AND
  5. Apache-2.0 WITH LLVM-exception AND
  6. MIT AND
  7. NCSA
  8. )
  9. LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
  10. VERSION(19.1.7)
  11. ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/compiler-rt-19.1.7.src.tar.xz)
  12. NO_COMPILER_WARNINGS()
  13. # Check MUSL before NO_PLATFORM() disables it.
  14. IF (MUSL)
  15. # We use C headers despite NO_PLATFORM, but we do not propagate
  16. # them with ADDINCL GLOBAL because we do not have an API, and we
  17. # can not propagate them because libcxx has to put its own
  18. # includes before musl includes for its include_next to work.
  19. IF (ARCH_X86_64)
  20. ADDINCL(
  21. contrib/libs/musl/arch/x86_64
  22. )
  23. ENDIF()
  24. IF (ARCH_AARCH64)
  25. ADDINCL(
  26. contrib/libs/musl/arch/aarch64
  27. )
  28. ENDIF()
  29. ADDINCL(
  30. contrib/libs/musl/arch/generic
  31. contrib/libs/musl/include
  32. contrib/libs/musl/extra
  33. )
  34. ENDIF()
  35. NO_UTIL()
  36. NO_RUNTIME()
  37. NO_PLATFORM()
  38. NO_COMPILER_WARNINGS()
  39. IF (GCC OR CLANG)
  40. # Clang (maybe GCC too) LTO code generator leaves the builtin calls unresolved
  41. # even if they are available. After the code generation pass is done
  42. # a linker is forced to select original object files from this library again
  43. # as they contain unresolved symbols. But code generation is already done,
  44. # object files actually are not ELFs but an LLVM bytecode and we get
  45. # "member at xxxxx is not an ELF object" errors from the linker.
  46. # Just generate native code from the beginning.
  47. NO_LTO()
  48. ENDIF()
  49. IF (ARCH_AARCH64)
  50. SRCS(
  51. aarch64/chkstk.S
  52. aarch64/fp_mode.c
  53. aarch64/sme-abi-init.c
  54. aarch64/sme-abi-vg.c
  55. aarch64/sme-abi.S
  56. aarch64/sme-libc-mem-routines.S
  57. absvdi2.c
  58. absvsi2.c
  59. absvti2.c
  60. adddf3.c
  61. addsf3.c
  62. addtf3.c
  63. addvdi3.c
  64. addvsi3.c
  65. addvti3.c
  66. apple_versioning.c
  67. ashldi3.c
  68. ashlti3.c
  69. ashrdi3.c
  70. ashrti3.c
  71. atomic.c
  72. atomic_flag_clear.c
  73. atomic_flag_clear_explicit.c
  74. atomic_flag_test_and_set.c
  75. atomic_flag_test_and_set_explicit.c
  76. atomic_signal_fence.c
  77. atomic_thread_fence.c
  78. bswapdi2.c
  79. bswapsi2.c
  80. clear_cache.c
  81. clzdi2.c
  82. clzsi2.c
  83. clzti2.c
  84. cmpdi2.c
  85. cmpti2.c
  86. comparedf2.c
  87. comparesf2.c
  88. comparetf2.c
  89. cpu_model/aarch64.c
  90. ctzdi2.c
  91. ctzsi2.c
  92. ctzti2.c
  93. divdc3.c
  94. divdf3.c
  95. divdi3.c
  96. divmoddi4.c
  97. divmodsi4.c
  98. divmodti4.c
  99. divsc3.c
  100. divsf3.c
  101. divsi3.c
  102. divtc3.c
  103. divtf3.c
  104. divti3.c
  105. emutls.c
  106. enable_execute_stack.c
  107. eprintf.c
  108. extendbfsf2.c
  109. extenddftf2.c
  110. extendhfsf2.c
  111. extendhftf2.c
  112. extendsfdf2.c
  113. extendsftf2.c
  114. ffsdi2.c
  115. ffssi2.c
  116. ffsti2.c
  117. fixdfdi.c
  118. fixdfsi.c
  119. fixdfti.c
  120. fixsfdi.c
  121. fixsfsi.c
  122. fixsfti.c
  123. fixtfdi.c
  124. fixtfsi.c
  125. fixtfti.c
  126. fixunsdfdi.c
  127. fixunsdfsi.c
  128. fixunsdfti.c
  129. fixunssfdi.c
  130. fixunssfsi.c
  131. fixunssfti.c
  132. fixunstfdi.c
  133. fixunstfsi.c
  134. fixunstfti.c
  135. floatdidf.c
  136. floatdisf.c
  137. floatditf.c
  138. floatsidf.c
  139. floatsisf.c
  140. floatsitf.c
  141. floattidf.c
  142. floattisf.c
  143. floattitf.c
  144. floatundidf.c
  145. floatundisf.c
  146. floatunditf.c
  147. floatunsidf.c
  148. floatunsisf.c
  149. floatunsitf.c
  150. floatuntidf.c
  151. floatuntisf.c
  152. floatuntitf.c
  153. gcc_personality_v0.c
  154. int_util.c
  155. lshrdi3.c
  156. lshrti3.c
  157. moddi3.c
  158. modsi3.c
  159. modti3.c
  160. muldc3.c
  161. muldf3.c
  162. muldi3.c
  163. mulodi4.c
  164. mulosi4.c
  165. muloti4.c
  166. mulsc3.c
  167. mulsf3.c
  168. multc3.c
  169. multf3.c
  170. multi3.c
  171. mulvdi3.c
  172. mulvsi3.c
  173. mulvti3.c
  174. negdf2.c
  175. negdi2.c
  176. negsf2.c
  177. negti2.c
  178. negvdi2.c
  179. negvsi2.c
  180. negvti2.c
  181. os_version_check.c
  182. paritydi2.c
  183. paritysi2.c
  184. parityti2.c
  185. popcountdi2.c
  186. popcountsi2.c
  187. popcountti2.c
  188. powidf2.c
  189. powisf2.c
  190. powitf2.c
  191. subdf3.c
  192. subsf3.c
  193. subtf3.c
  194. subvdi3.c
  195. subvsi3.c
  196. subvti3.c
  197. trampoline_setup.c
  198. truncdfbf2.c
  199. truncdfhf2.c
  200. truncdfsf2.c
  201. truncsfbf2.c
  202. truncsfhf2.c
  203. trunctfdf2.c
  204. trunctfhf2.c
  205. trunctfsf2.c
  206. ucmpdi2.c
  207. ucmpti2.c
  208. udivdi3.c
  209. udivmoddi4.c
  210. udivmodsi4.c
  211. udivmodti4.c
  212. udivsi3.c
  213. udivti3.c
  214. umoddi3.c
  215. umodsi3.c
  216. umodti3.c
  217. )
  218. IF (NOT OS_DARWIN)
  219. SRCS(
  220. aarch64/sme-libc-routines.c
  221. )
  222. ENDIF()
  223. ELSEIF (ARCH_X86_64)
  224. SRCS(
  225. absvdi2.c
  226. absvsi2.c
  227. absvti2.c
  228. adddf3.c
  229. addsf3.c
  230. addtf3.c
  231. addvdi3.c
  232. addvsi3.c
  233. addvti3.c
  234. apple_versioning.c
  235. ashldi3.c
  236. ashlti3.c
  237. ashrdi3.c
  238. ashrti3.c
  239. atomic.c
  240. atomic_flag_clear.c
  241. atomic_flag_clear_explicit.c
  242. atomic_flag_test_and_set.c
  243. atomic_flag_test_and_set_explicit.c
  244. atomic_signal_fence.c
  245. atomic_thread_fence.c
  246. bswapdi2.c
  247. bswapsi2.c
  248. clear_cache.c
  249. clzdi2.c
  250. clzsi2.c
  251. clzti2.c
  252. cmpdi2.c
  253. cmpti2.c
  254. comparedf2.c
  255. comparesf2.c
  256. comparetf2.c
  257. cpu_model/x86.c
  258. ctzdi2.c
  259. ctzsi2.c
  260. ctzti2.c
  261. divdc3.c
  262. divdf3.c
  263. divdi3.c
  264. divmoddi4.c
  265. divmodsi4.c
  266. divmodti4.c
  267. divsc3.c
  268. divsf3.c
  269. divsi3.c
  270. divtc3.c
  271. divtf3.c
  272. divti3.c
  273. emutls.c
  274. enable_execute_stack.c
  275. eprintf.c
  276. extendbfsf2.c
  277. extenddftf2.c
  278. extendhfsf2.c
  279. extendhftf2.c
  280. extendsfdf2.c
  281. extendsftf2.c
  282. ffsdi2.c
  283. ffssi2.c
  284. ffsti2.c
  285. fixdfdi.c
  286. fixdfsi.c
  287. fixdfti.c
  288. fixsfdi.c
  289. fixsfsi.c
  290. fixsfti.c
  291. fixtfdi.c
  292. fixtfsi.c
  293. fixtfti.c
  294. fixunsdfdi.c
  295. fixunsdfsi.c
  296. fixunsdfti.c
  297. fixunssfdi.c
  298. fixunssfsi.c
  299. fixunssfti.c
  300. fixunstfdi.c
  301. fixunstfsi.c
  302. fixunstfti.c
  303. floatditf.c
  304. floatsidf.c
  305. floatsisf.c
  306. floatsitf.c
  307. floattidf.c
  308. floattisf.c
  309. floattitf.c
  310. floatunditf.c
  311. floatunsidf.c
  312. floatunsisf.c
  313. floatunsitf.c
  314. floatuntidf.c
  315. floatuntisf.c
  316. floatuntitf.c
  317. fp_mode.c
  318. gcc_personality_v0.c
  319. int_util.c
  320. lshrdi3.c
  321. lshrti3.c
  322. moddi3.c
  323. modsi3.c
  324. modti3.c
  325. muldc3.c
  326. muldf3.c
  327. muldi3.c
  328. mulodi4.c
  329. mulosi4.c
  330. muloti4.c
  331. mulsc3.c
  332. mulsf3.c
  333. multc3.c
  334. multf3.c
  335. multi3.c
  336. mulvdi3.c
  337. mulvsi3.c
  338. mulvti3.c
  339. negdf2.c
  340. negdi2.c
  341. negsf2.c
  342. negti2.c
  343. negvdi2.c
  344. negvsi2.c
  345. negvti2.c
  346. os_version_check.c
  347. paritydi2.c
  348. paritysi2.c
  349. parityti2.c
  350. popcountdi2.c
  351. popcountsi2.c
  352. popcountti2.c
  353. powidf2.c
  354. powisf2.c
  355. powitf2.c
  356. subdf3.c
  357. subsf3.c
  358. subtf3.c
  359. subvdi3.c
  360. subvsi3.c
  361. subvti3.c
  362. trampoline_setup.c
  363. truncdfbf2.c
  364. truncdfhf2.c
  365. truncdfsf2.c
  366. truncsfbf2.c
  367. truncsfhf2.c
  368. trunctfdf2.c
  369. trunctfhf2.c
  370. trunctfsf2.c
  371. ucmpdi2.c
  372. ucmpti2.c
  373. udivdi3.c
  374. udivmoddi4.c
  375. udivmodsi4.c
  376. udivmodti4.c
  377. udivsi3.c
  378. udivti3.c
  379. umoddi3.c
  380. umodsi3.c
  381. umodti3.c
  382. x86_64/chkstk.S
  383. x86_64/floatdidf.c
  384. x86_64/floatdisf.c
  385. x86_64/floatundidf.S
  386. x86_64/floatundisf.S
  387. x86_64/floatundixf.S
  388. )
  389. IF (NOT OS_WINDOWS)
  390. SRCS(
  391. x86_64/floatdixf.c
  392. divxc3.c
  393. extendxftf2.c
  394. fixunsxfdi.c
  395. fixunsxfsi.c
  396. fixunsxfti.c
  397. fixxfdi.c
  398. fixxfti.c
  399. floattixf.c
  400. floatuntixf.c
  401. mulxc3.c
  402. powixf2.c
  403. trunctfxf2.c
  404. )
  405. ENDIF()
  406. ELSE()
  407. SRCS(
  408. absvdi2.c
  409. absvsi2.c
  410. absvti2.c
  411. adddf3.c
  412. addsf3.c
  413. addtf3.c
  414. addvdi3.c
  415. addvsi3.c
  416. addvti3.c
  417. apple_versioning.c
  418. ashldi3.c
  419. ashlti3.c
  420. ashrdi3.c
  421. ashrti3.c
  422. atomic.c
  423. atomic_flag_clear.c
  424. atomic_flag_clear_explicit.c
  425. atomic_flag_test_and_set.c
  426. atomic_flag_test_and_set_explicit.c
  427. atomic_signal_fence.c
  428. atomic_thread_fence.c
  429. bswapdi2.c
  430. bswapsi2.c
  431. clzdi2.c
  432. clzsi2.c
  433. clzti2.c
  434. cmpdi2.c
  435. cmpti2.c
  436. comparedf2.c
  437. comparesf2.c
  438. comparetf2.c
  439. ctzdi2.c
  440. ctzsi2.c
  441. ctzti2.c
  442. divdc3.c
  443. divdf3.c
  444. divdi3.c
  445. divmoddi4.c
  446. divmodsi4.c
  447. divmodti4.c
  448. divsc3.c
  449. divsf3.c
  450. divsi3.c
  451. divtc3.c
  452. divtf3.c
  453. divti3.c
  454. extendbfsf2.c
  455. extenddftf2.c
  456. extendhfsf2.c
  457. extendhftf2.c
  458. extendsfdf2.c
  459. extendsftf2.c
  460. ffsdi2.c
  461. ffssi2.c
  462. ffsti2.c
  463. fixdfdi.c
  464. fixdfsi.c
  465. fixdfti.c
  466. fixsfdi.c
  467. fixsfsi.c
  468. fixsfti.c
  469. fixtfdi.c
  470. fixtfsi.c
  471. fixtfti.c
  472. fixunsdfdi.c
  473. fixunsdfsi.c
  474. fixunsdfti.c
  475. fixunssfdi.c
  476. fixunssfsi.c
  477. fixunssfti.c
  478. fixunstfdi.c
  479. fixunstfsi.c
  480. fixunstfti.c
  481. floatdidf.c
  482. floatdisf.c
  483. floatditf.c
  484. floatsidf.c
  485. floatsisf.c
  486. floatsitf.c
  487. floattidf.c
  488. floattisf.c
  489. floattitf.c
  490. floatundidf.c
  491. floatundisf.c
  492. floatunditf.c
  493. floatunsidf.c
  494. floatunsisf.c
  495. floatunsitf.c
  496. floatuntidf.c
  497. floatuntisf.c
  498. floatuntitf.c
  499. fp_mode.c
  500. gcc_personality_v0.c
  501. int_util.c
  502. lshrdi3.c
  503. lshrti3.c
  504. moddi3.c
  505. modsi3.c
  506. modti3.c
  507. muldc3.c
  508. muldf3.c
  509. muldi3.c
  510. mulodi4.c
  511. mulosi4.c
  512. muloti4.c
  513. mulsc3.c
  514. mulsf3.c
  515. multc3.c
  516. multf3.c
  517. multi3.c
  518. mulvdi3.c
  519. mulvsi3.c
  520. mulvti3.c
  521. negdf2.c
  522. negdi2.c
  523. negsf2.c
  524. negti2.c
  525. negvdi2.c
  526. negvsi2.c
  527. negvti2.c
  528. os_version_check.c
  529. paritydi2.c
  530. paritysi2.c
  531. parityti2.c
  532. popcountdi2.c
  533. popcountsi2.c
  534. popcountti2.c
  535. powidf2.c
  536. powisf2.c
  537. powitf2.c
  538. subdf3.c
  539. subsf3.c
  540. subtf3.c
  541. subvdi3.c
  542. subvsi3.c
  543. subvti3.c
  544. trampoline_setup.c
  545. truncdfhf2.c
  546. truncdfsf2.c
  547. truncsfhf2.c
  548. trunctfdf2.c
  549. trunctfhf2.c
  550. trunctfsf2.c
  551. ucmpdi2.c
  552. ucmpti2.c
  553. udivdi3.c
  554. udivmoddi4.c
  555. udivmodsi4.c
  556. udivmodti4.c
  557. udivsi3.c
  558. udivti3.c
  559. umoddi3.c
  560. umodsi3.c
  561. umodti3.c
  562. )
  563. IF (NOT OS_EMSCRIPTEN)
  564. SRCS(
  565. clear_cache.c
  566. emutls.c
  567. enable_execute_stack.c
  568. eprintf.c
  569. truncdfbf2.c
  570. truncsfbf2.c
  571. )
  572. ENDIF()
  573. ENDIF()
  574. IF (OS_LINUX AND NOT WITH_MAPKIT)
  575. SRCS(
  576. crtbegin.c
  577. crtend.c
  578. )
  579. ENDIF()
  580. END()