[Tizen] Add tizen arm64 toolchain file
authorGleb Balykov <g.balykov@samsung.com>
Fri, 19 Jun 2020 10:15:14 +0000 (13:15 +0300)
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>
Sun, 21 Jun 2020 23:54:03 +0000 (08:54 +0900)
compileoptions.cmake
eng/common/cross/toolchain.cmake
eng/cross/toolchain.cmake

index 188ceb49e0836856968b4330a66f013e0c0e964d..82a61df6b4fb071638479adcca2f44294767de1a 100644 (file)
@@ -78,6 +78,12 @@ if(CLR_CMAKE_PLATFORM_UNIX_ARM)
    endif(ARM_SOFTFP)
 endif(CLR_CMAKE_PLATFORM_UNIX_ARM)
 
+if(CLR_CMAKE_PLATFORM_UNIX_ARM64)
+  if("$ENV{__DistroRid}" MATCHES "tizen.*")
+    add_compile_options(-target aarch64-tizen-linux-gnu)
+  endif()
+endif(CLR_CMAKE_PLATFORM_UNIX_ARM64)
+
 if (WIN32)
   # Compile options for targeting windows
 
index 534f1d19de6f96e384008bf221248bd7857c808e..1b94abe85cac9ce2da3dc49acf9b2c7d3696c1dc 100644 (file)
@@ -28,6 +28,9 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
   else()
     set(TOOLCHAIN "aarch64-linux-gnu")
   endif()
+  if("$ENV{__DistroRid}" MATCHES "tizen.*")
+    set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   set(CMAKE_SYSTEM_PROCESSOR i686)
   set(TOOLCHAIN "i686-linux-gnu")
@@ -43,11 +46,15 @@ if(DEFINED ENV{TOOLCHAIN})
 endif()
 
 # Specify include paths
-if(TARGET_ARCH_NAME STREQUAL "armel")
-  if(DEFINED TIZEN_TOOLCHAIN)
+if(DEFINED TIZEN_TOOLCHAIN)
+  if(TARGET_ARCH_NAME STREQUAL "armel")
     include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
     include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
   endif()
+  if(TARGET_ARCH_NAME STREQUAL "arm64")
+    include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
+    include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
+  endif()
 endif()
 
 if("$ENV{__DistroRid}" MATCHES "android.*")
@@ -90,6 +97,17 @@ if(TARGET_ARCH_NAME STREQUAL "armel")
     add_link_options("-L${CROSS_ROOTFS}/usr/lib")
     add_link_options("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
   endif()
+elseif(TARGET_ARCH_NAME STREQUAL "arm64")
+  if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
+    add_link_options("-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+    add_link_options("-L${CROSS_ROOTFS}/lib64")
+    add_link_options("-L${CROSS_ROOTFS}/usr/lib64")
+    add_link_options("-L${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+
+    add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/lib64")
+    add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64")
+    add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   add_link_options(-m32)
 endif()
@@ -117,16 +135,19 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
 
   if(TARGET_ARCH_NAME STREQUAL "armel")
     add_compile_options(-mfloat-abi=softfp)
-    if(DEFINED TIZEN_TOOLCHAIN)
-      add_compile_options(-Wno-deprecated-declarations) # compile-time option
-      add_compile_options(-D__extern_always_inline=inline) # compile-time option
-    endif()
   endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   add_compile_options(-m32)
   add_compile_options(-Wno-error=unused-command-line-argument)
 endif()
 
+if(DEFINED TIZEN_TOOLCHAIN)
+  if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
+    add_compile_options(-Wno-deprecated-declarations) # compile-time option
+    add_compile_options(-D__extern_always_inline=inline) # compile-time option
+  endif()
+endif()
+
 # Set LLDB include and library paths for builds that need lldb.
 if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
   if(TARGET_ARCH_NAME STREQUAL "x86")
index 75c2e27cdcd690578df34d0e3bb35c2a83168a31..6e5a869237386b41a9d44142921f8b1374ad2c1b 100644 (file)
@@ -24,6 +24,9 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
   else()
     set(TOOLCHAIN "aarch64-linux-gnu")
   endif()
+  if("$ENV{__DistroRid}" MATCHES "tizen.*")
+    set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   set(CMAKE_SYSTEM_PROCESSOR i686)
   set(TOOLCHAIN "i686-linux-gnu")
@@ -45,11 +48,15 @@ else()
 endif()
 
 # Specify include paths
-if(TARGET_ARCH_NAME STREQUAL "armel")
-  if(DEFINED TIZEN_TOOLCHAIN)
+if(DEFINED TIZEN_TOOLCHAIN)
+  if(TARGET_ARCH_NAME STREQUAL "armel")
     include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
     include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
   endif()
+  if(TARGET_ARCH_NAME STREQUAL "arm64")
+    include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
+    include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
+  endif()
 endif()
 
 # add_compile_param - adds only new options without duplicates.
@@ -83,6 +90,17 @@ if(TARGET_ARCH_NAME STREQUAL "armel")
     add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib")
     add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
   endif()
+elseif(TARGET_ARCH_NAME STREQUAL "arm64")
+  if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
+    add_compile_param(CROSS_LINK_FLAGS "-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+    add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/lib64")
+    add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib64")
+    add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+
+    add_compile_param(CROSS_LINK_FLAGS "-Wl,--rpath-link=${CROSS_ROOTFS}/lib64")
+    add_compile_param(CROSS_LINK_FLAGS "-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64")
+    add_compile_param(CROSS_LINK_FLAGS "-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   add_compile_param(CROSS_LINK_FLAGS "-m32")
 endif()
@@ -109,16 +127,19 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
   add_compile_options(-mfpu=vfpv3)
   if(TARGET_ARCH_NAME STREQUAL "armel")
     add_compile_options(-mfloat-abi=softfp)
-    if(DEFINED TIZEN_TOOLCHAIN)
-      add_compile_options(-Wno-deprecated-declarations) # compile-time option
-      add_compile_options(-D__extern_always_inline=inline) # compile-time option
-    endif()
   endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   add_compile_options(-m32)
   add_compile_options(-Wno-error=unused-command-line-argument)
 endif()
 
+if(DEFINED TIZEN_TOOLCHAIN)
+  if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
+    add_compile_options(-Wno-deprecated-declarations) # compile-time option
+    add_compile_options(-D__extern_always_inline=inline) # compile-time option
+  endif()
+endif()
+
 # Set LLDB include and library paths
 if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
   if(TARGET_ARCH_NAME STREQUAL "x86")