[compiler-rt] r357821 - [gn] Support for building compiler-rt builtins

Petr Hosek via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 5 14:30:41 PDT 2019


Author: phosek
Date: Fri Apr  5 14:30:40 2019
New Revision: 357821

URL: http://llvm.org/viewvc/llvm-project?rev=357821&view=rev
Log:
[gn] Support for building compiler-rt builtins

This is support for building compiler-rt builtins, The library build
should be complete for a subset of supported platforms, but not all
CMake options have been replicated in GN.

We always use the just built compiler to build all the runtimes, which
is equivalent to the CMake runtimes build. This simplifies the build
configuration because we don't need to support arbitrary host compiler
and can always assume the latest Clang. With GN's toolchain support,
this is significantly more efficient than the CMake runtimes build.

Differential Revision: https://reviews.llvm.org/D60331

Modified:
    compiler-rt/trunk/lib/builtins/CMakeLists.txt

Modified: compiler-rt/trunk/lib/builtins/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/CMakeLists.txt?rev=357821&r1=357820&r2=357821&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/builtins/CMakeLists.txt Fri Apr  5 14:30:40 2019
@@ -150,7 +150,8 @@ set(GENERIC_SOURCES
   udivti3.c
   umoddi3.c
   umodsi3.c
-  umodti3.c)
+  umodti3.c
+)
 
 set(GENERIC_TF_SOURCES
   comparetf2.c
@@ -170,7 +171,8 @@ set(GENERIC_TF_SOURCES
   floatuntitf.c
   multc3.c
   trunctfdf2.c
-  trunctfsf2.c)
+  trunctfsf2.c
+)
 
 option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN
   "Skip the atomic builtin (these should normally be provided by a shared library)"
@@ -179,15 +181,17 @@ option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTI
 if(NOT FUCHSIA AND NOT COMPILER_RT_BAREMETAL_BUILD)
   set(GENERIC_SOURCES
     ${GENERIC_SOURCES}
-    emutls.c 
+    emutls.c
     enable_execute_stack.c
-    eprintf.c)
+    eprintf.c
+  )
 endif()
 
 if(COMPILER_RT_HAS_ATOMIC_KEYWORD AND NOT COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN)
   set(GENERIC_SOURCES
     ${GENERIC_SOURCES}
-    atomic.c)
+    atomic.c
+  )
 endif()
 
 if(APPLE)
@@ -198,19 +202,22 @@ if(APPLE)
     atomic_flag_test_and_set.c
     atomic_flag_test_and_set_explicit.c
     atomic_signal_fence.c
-    atomic_thread_fence.c)
+    atomic_thread_fence.c
+  )
 endif()
 
 if (HAVE_UNWIND_H)
   set(GENERIC_SOURCES
-      ${GENERIC_SOURCES}
-      gcc_personality_v0.c)
+    ${GENERIC_SOURCES}
+    gcc_personality_v0.c
+  )
 endif ()
 
 if (NOT FUCHSIA)
   set(GENERIC_SOURCES
     ${GENERIC_SOURCES}
-    clear_cache.c)
+    clear_cache.c
+  )
 endif()
 
 # These sources work on all x86 variants, but only x86 variants.
@@ -232,54 +239,59 @@ set(x86_ARCH_SOURCES
 
 if (NOT MSVC)
   set(x86_64_SOURCES
-      x86_64/floatdidf.c
-      x86_64/floatdisf.c
-      x86_64/floatdixf.c
-      x86_64/floatundidf.S
-      x86_64/floatundisf.S
-      x86_64/floatundixf.S)
+    x86_64/floatdidf.c
+    x86_64/floatdisf.c
+    x86_64/floatdixf.c
+    x86_64/floatundidf.S
+    x86_64/floatundisf.S
+    x86_64/floatundixf.S
+  )
   filter_builtin_sources(x86_64_SOURCES EXCLUDE x86_64_SOURCES "${x86_64_SOURCES};${GENERIC_SOURCES}")
   set(x86_64h_SOURCES ${x86_64_SOURCES})
 
   if (WIN32)
     set(x86_64_SOURCES
-        ${x86_64_SOURCES}
-        x86_64/chkstk.S
-        x86_64/chkstk2.S)
+      ${x86_64_SOURCES}
+      x86_64/chkstk.S
+      x86_64/chkstk2.S
+    )
   endif()
 
   set(i386_SOURCES
-      i386/ashldi3.S
-      i386/ashrdi3.S
-      i386/divdi3.S
-      i386/floatdidf.S
-      i386/floatdisf.S
-      i386/floatdixf.S
-      i386/floatundidf.S
-      i386/floatundisf.S
-      i386/floatundixf.S
-      i386/lshrdi3.S
-      i386/moddi3.S
-      i386/muldi3.S
-      i386/udivdi3.S
-      i386/umoddi3.S)
+    i386/ashldi3.S
+    i386/ashrdi3.S
+    i386/divdi3.S
+    i386/floatdidf.S
+    i386/floatdisf.S
+    i386/floatdixf.S
+    i386/floatundidf.S
+    i386/floatundisf.S
+    i386/floatundixf.S
+    i386/lshrdi3.S
+    i386/moddi3.S
+    i386/muldi3.S
+    i386/udivdi3.S
+    i386/umoddi3.S
+  )
   filter_builtin_sources(i386_SOURCES EXCLUDE i386_SOURCES "${i386_SOURCES};${GENERIC_SOURCES}")
 
   if (WIN32)
     set(i386_SOURCES
-        ${i386_SOURCES}
-        i386/chkstk.S
-        i386/chkstk2.S)
+      ${i386_SOURCES}
+      i386/chkstk.S
+      i386/chkstk2.S
+    )
   endif()
 else () # MSVC
   # Use C versions of functions when building on MSVC
   # MSVC's assembler takes Intel syntax, not AT&T syntax.
   # Also use only MSVC compilable builtin implementations.
   set(x86_64_SOURCES
-      x86_64/floatdidf.c
-      x86_64/floatdisf.c
-      x86_64/floatdixf.c
-      ${GENERIC_SOURCES})
+    x86_64/floatdidf.c
+    x86_64/floatdisf.c
+    x86_64/floatdixf.c
+    ${GENERIC_SOURCES}
+  )
   set(x86_64h_SOURCES ${x86_64_SOURCES})
   set(i386_SOURCES ${GENERIC_SOURCES})
 endif () # if (NOT MSVC)
@@ -320,7 +332,8 @@ set(arm_SOURCES
   arm/sync_fetch_and_xor_8.S
   arm/udivmodsi4.S
   arm/udivsi3.S
-  arm/umodsi3.S)
+  arm/umodsi3.S
+)
 filter_builtin_sources(arm_SOURCES EXCLUDE arm_SOURCES "${arm_SOURCES};${GENERIC_SOURCES}")
 
 set(thumb1_SOURCES
@@ -328,7 +341,8 @@ set(thumb1_SOURCES
   arm/udivsi3.S
   arm/comparesf2.S
   arm/addsf3.S
-  ${GENERIC_SOURCES})
+  ${GENERIC_SOURCES}
+)
 
 set(arm_EABI_SOURCES
   arm/aeabi_cdcmp.S
@@ -347,16 +361,19 @@ set(arm_EABI_SOURCES
   arm/aeabi_memmove.S
   arm/aeabi_memset.S
   arm/aeabi_uidivmod.S
-  arm/aeabi_uldivmod.S)
+  arm/aeabi_uldivmod.S
+)
 
 set(arm_Thumb1_JT_SOURCES
   arm/switch16.S
   arm/switch32.S
   arm/switch8.S
-  arm/switchu8.S)
+  arm/switchu8.S
+)
 set(arm_Thumb1_SjLj_EH_SOURCES
   arm/restore_vfp_d8_d15_regs.S
-  arm/save_vfp_d8_d15_regs.S)
+  arm/save_vfp_d8_d15_regs.S
+)
 set(arm_Thumb1_VFPv2_SOURCES
   arm/adddf3vfp.S
   arm/addsf3vfp.S
@@ -391,62 +408,70 @@ set(arm_Thumb1_VFPv2_SOURCES
   arm/subsf3vfp.S
   arm/truncdfsf2vfp.S
   arm/unorddf2vfp.S
-  arm/unordsf2vfp.S)
+  arm/unordsf2vfp.S
+)
 set(arm_Thumb1_icache_SOURCES
-  arm/sync_synchronize.S)
+  arm/sync_synchronize.S
+)
 set(arm_Thumb1_SOURCES
   ${arm_Thumb1_JT_SOURCES}
   ${arm_Thumb1_SjLj_EH_SOURCES}
   ${arm_Thumb1_VFPv2_SOURCES}
-  ${arm_Thumb1_icache_SOURCES})
+  ${arm_Thumb1_icache_SOURCES}
+)
 
 if(MINGW)
   set(arm_SOURCES
-      arm/aeabi_idivmod.S
-      arm/aeabi_ldivmod.S
-      arm/aeabi_uidivmod.S
-      arm/aeabi_uldivmod.S
-      arm/chkstk.S
-      divmoddi4.c
-      divmodsi4.c
-      divdi3.c
-      divsi3.c
-      fixdfdi.c
-      fixsfdi.c
-      fixunsdfdi.c
-      fixunssfdi.c
-      floatdidf.c
-      floatdisf.c
-      floatundidf.c
-      floatundisf.c
-      mingw_fixfloat.c
-      moddi3.c
-      udivmoddi4.c
-      udivmodsi4.c
-      udivsi3.c
-      umoddi3.c
-      emutls.c)
+    arm/aeabi_idivmod.S
+    arm/aeabi_ldivmod.S
+    arm/aeabi_uidivmod.S
+    arm/aeabi_uldivmod.S
+    arm/chkstk.S
+    divmoddi4.c
+    divmodsi4.c
+    divdi3.c
+    divsi3.c
+    fixdfdi.c
+    fixsfdi.c
+    fixunsdfdi.c
+    fixunssfdi.c
+    floatdidf.c
+    floatdisf.c
+    floatundidf.c
+    floatundisf.c
+    mingw_fixfloat.c
+    moddi3.c
+    udivmoddi4.c
+    udivmodsi4.c
+    udivsi3.c
+    umoddi3.c
+    emutls.c
+  )
   filter_builtin_sources(arm_SOURCES EXCLUDE arm_SOURCES "${arm_SOURCES};${GENERIC_SOURCES}")
 elseif(NOT WIN32)
   # TODO the EABI sources should only be added to EABI targets
   set(arm_SOURCES
     ${arm_SOURCES}
     ${arm_EABI_SOURCES}
-    ${arm_Thumb1_SOURCES})
+    ${arm_Thumb1_SOURCES}
+  )
 
   set(thumb1_SOURCES
     ${thumb1_SOURCES}
-    ${arm_EABI_SOURCES})
+    ${arm_EABI_SOURCES}
+  )
 endif()
 
 set(aarch64_SOURCES
   ${GENERIC_TF_SOURCES}
-  ${GENERIC_SOURCES})
+  ${GENERIC_SOURCES}
+)
 
 if (MINGW)
   set(aarch64_SOURCES
-      ${aarch64_SOURCES}
-      aarch64/chkstk.S)
+    ${aarch64_SOURCES}
+    aarch64/chkstk.S
+  )
 endif()
 
 set(armhf_SOURCES ${arm_SOURCES})
@@ -492,7 +517,8 @@ set(hexagon_SOURCES
   hexagon/udivmodsi4.S
   hexagon/udivsi3.S
   hexagon/umoddi3.S
-  hexagon/umodsi3.S)
+  hexagon/umodsi3.S
+)
 
 
 set(mips_SOURCES ${GENERIC_SOURCES})
@@ -515,21 +541,25 @@ set(powerpc64_SOURCES
   ppc/gcc_qmul.c
   ppc/gcc_qsub.c
   ppc/multc3.c
-  ${GENERIC_SOURCES})
+  ${GENERIC_SOURCES}
+)
 set(powerpc64le_SOURCES ${powerpc64_SOURCES})
 
 set(riscv_SOURCES ${GENERIC_SOURCES} ${GENERIC_TF_SOURCES})
 set(riscv32_SOURCES
   riscv/mulsi3.S
-  ${riscv_SOURCES})
+  ${riscv_SOURCES}
+)
 set(riscv64_SOURCES ${riscv_SOURCES})
 
 set(wasm32_SOURCES
   ${GENERIC_TF_SOURCES}
-  ${GENERIC_SOURCES})
+  ${GENERIC_SOURCES}
+)
 set(wasm64_SOURCES
   ${GENERIC_TF_SOURCES}
-  ${GENERIC_SOURCES})
+  ${GENERIC_SOURCES}
+)
 
 add_custom_target(builtins)
 set_target_properties(builtins PROPERTIES FOLDER "Compiler-RT Misc")




More information about the llvm-commits mailing list