diff options
author | Hyeongseok Oh <hseok82.oh@samsung.com> | 2016-12-23 22:18:32 +0900 |
---|---|---|
committer | Jan Vorlicek <janvorli@microsoft.com> | 2016-12-23 14:18:32 +0100 |
commit | 5ef3df8ffe059d5f91c6bae09d8f95a0332f1363 (patch) | |
tree | ca1984151b6f044658d0302f48b6cfecb3521edf /src/pal/src/CMakeLists.txt | |
parent | 55ea631f84ba1e9084f12b95a43135b526169cd9 (diff) | |
download | coreclr-5ef3df8ffe059d5f91c6bae09d8f95a0332f1363.tar.gz coreclr-5ef3df8ffe059d5f91c6bae09d8f95a0332f1363.tar.bz2 coreclr-5ef3df8ffe059d5f91c6bae09d8f95a0332f1363.zip |
[Linux] Fix cross-architecture component build configuration for ARM32-target (#8687)
* fix CMakeLists.txt for palrt
* Modify CMakeLists.txt for cross-architecture component configuaration
Add coreclrpal project to fix a dependency issue when CMake configuration
* Allow only x64-host/arm-target for linux
allow x64-host/arm-target only, because pal is not stable for x86 now
* Update build.sh
delete NumProc=1 (inserted for debugging)
* Change x64-host to x86-host for arm-target
JIT correctness problem,
and fix CMake configuration for x86 in pal
* Fix type
* Update CMakeLists.txt
* fix style
* Set x86 when arm-target/x64-host
* fix typo
Diffstat (limited to 'src/pal/src/CMakeLists.txt')
-rw-r--r-- | src/pal/src/CMakeLists.txt | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/src/pal/src/CMakeLists.txt b/src/pal/src/CMakeLists.txt index 28ee83a77c..f5f3d40c97 100644 --- a/src/pal/src/CMakeLists.txt +++ b/src/pal/src/CMakeLists.txt @@ -23,20 +23,37 @@ include_directories(include) # Compile options -if(CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64) - set(PAL_CMAKE_PLATFORM_ARCH_AMD64 1) - add_definitions(-D_AMD64_) -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l) - set(PAL_CMAKE_PLATFORM_ARCH_ARM 1) - add_definitions(-D_ARM_) -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) - set(PAL_CMAKE_PLATFORM_ARCH_ARM64 1) - add_definitions(-D_ARM64_) -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL i686) - set(CLR_CMAKE_PLATFORM_ARCH_I386 1) - add_definitions(-D_X86_) +if(CLR_CROSS_COMPONENTS_BUILD) + if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL amd64) + if(CLR_CMAKE_TARGET_ARCH STREQUAL "arm") + set(PAL_CMAKE_PLATFORM_ARCH_I386 1) + add_definitions(-D_X86_) + else() + set(PAL_CMAKE_PLATFORM_ARCH_AMD64 1) + add_definitions(-D_AMD64_) + endif() + elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL i686) + set(PAL_CMAKE_PLATFORM_ARCH_I386 1) + add_definitions(-D_X86_) + else() + message(FATAL_ERROR "Only AMD64, I386 host for cross-architecture component is supported") + endif() else() - message(FATAL_ERROR "Only ARM and AMD64 is supported") + if(CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64) + set(PAL_CMAKE_PLATFORM_ARCH_AMD64 1) + add_definitions(-D_AMD64_) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l) + set(PAL_CMAKE_PLATFORM_ARCH_ARM 1) + add_definitions(-D_ARM_) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) + set(PAL_CMAKE_PLATFORM_ARCH_ARM64 1) + add_definitions(-D_ARM64_) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL i686) + set(PAL_CMAKE_PLATFORM_ARCH_I386 1) + add_definitions(-D_X86_) + else() + message(FATAL_ERROR "Only ARM, AMD64, ARM64 and I386 is supported") + endif() endif() if(CMAKE_SYSTEM_NAME STREQUAL Darwin) @@ -65,7 +82,7 @@ elseif(PAL_CMAKE_PLATFORM_ARCH_ARM) elseif(PAL_CMAKE_PLATFORM_ARCH_ARM64) add_definitions(-DBIT64=1) add_definitions(-D_WIN64=1) -elseif(CLR_CMAKE_PLATFORM_ARCH_I386) +elseif(PAL_CMAKE_PLATFORM_ARCH_I386) add_definitions(-DBIT32=1) endif() @@ -105,7 +122,7 @@ elseif(PAL_CMAKE_PLATFORM_ARCH_ARM64) arch/arm64/exceptionhelper.S arch/arm64/processor.cpp ) -elseif(CLR_CMAKE_PLATFORM_ARCH_I386) +elseif(PAL_CMAKE_PLATFORM_ARCH_I386) set(ARCH_SOURCES arch/i386/context2.S arch/i386/debugbreak.S |