summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2016-04-11 12:23:33 -0700
committerBruce Forstall <brucefo@microsoft.com>2016-04-11 12:23:33 -0700
commitfc2f411a11709ffd3db9134a2e49c7ab1239c1c5 (patch)
tree5ecfc0b6a4e412077de4c45892233192437bfce8
parent46ee199e23ef8d7bae3c3a29e98383734877ef3f (diff)
parentd096d92f5fcf7c9b359ef026bdf912843ee0cbd2 (diff)
downloadcoreclr-fc2f411a11709ffd3db9134a2e49c7ab1239c1c5.tar.gz
coreclr-fc2f411a11709ffd3db9134a2e49c7ab1239c1c5.tar.bz2
coreclr-fc2f411a11709ffd3db9134a2e49c7ab1239c1c5.zip
Merge pull request #4206 from BruceForstall/RyujitX86
Clean up JIT build rules
-rw-r--r--src/jit/CMakeLists.txt50
-rw-r--r--src/jit/protojit/CMakeLists.txt14
2 files changed, 46 insertions, 18 deletions
diff --git a/src/jit/CMakeLists.txt b/src/jit/CMakeLists.txt
index 79351e0861..73ecac3b03 100644
--- a/src/jit/CMakeLists.txt
+++ b/src/jit/CMakeLists.txt
@@ -72,32 +72,30 @@ set( JIT_SOURCES
if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
set( ARCH_SOURCES
- targetamd64.cpp
- unwindamd64.cpp
+ codegenxarch.cpp
emitxarch.cpp
lowerxarch.cpp
- codegenxarch.cpp
- simdcodegenxarch.cpp
simd.cpp
+ simdcodegenxarch.cpp
+ targetamd64.cpp
+ unwindamd64.cpp
)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
set( ARCH_SOURCES
+ codegenarm.cpp
emitarm.cpp
- targetarm.cpp
lowerarm.cpp
- codegenarm.cpp
+ targetarm.cpp
unwindarm.cpp
- codegenlegacy.cpp
- registerfp.cpp
)
elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
set( ARCH_SOURCES
+ codegenxarch.cpp
emitxarch.cpp
- targetx86.cpp
lowerxarch.cpp
- codegenxarch.cpp
- codegenlegacy.cpp
- stackfp.cpp
+ simd.cpp
+ simdcodegenxarch.cpp
+ targetx86.cpp
)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
set( ARCH_SOURCES
@@ -112,10 +110,36 @@ else()
clr_unknown_arch()
endif()
+# The following defines all the source files used by the "legacy" back-end (#ifdef LEGACY_BACKEND).
+# It is always safe to include both legacy and non-legacy files in the build, as everything is properly
+# #ifdef'ed, though it makes the build slightly slower to do so. Note there is only a legacy backend for
+# x86 and ARM.
+
+if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
+ set( ARCH_LEGACY_SOURCES
+ )
+elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
+ set( ARCH_LEGACY_SOURCES
+ codegenlegacy.cpp
+ registerfp.cpp
+ )
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ set( ARCH_LEGACY_SOURCES
+ codegenlegacy.cpp
+ stackfp.cpp
+ )
+elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
+ set( ARCH_LEGACY_SOURCES
+ )
+else()
+ clr_unknown_arch()
+endif()
+
set( SOURCES
${JIT_SOURCES}
${ARCH_SOURCES}
- )
+ ${ARCH_LEGACY_SOURCES}
+)
convert_to_absolute_path(SOURCES ${SOURCES})
diff --git a/src/jit/protojit/CMakeLists.txt b/src/jit/protojit/CMakeLists.txt
index 10da90a01e..f5b55ab7e9 100644
--- a/src/jit/protojit/CMakeLists.txt
+++ b/src/jit/protojit/CMakeLists.txt
@@ -1,7 +1,14 @@
project(protojit)
-remove_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
add_definitions(-DALT_JIT)
+add_definitions(-DFEATURE_NO_HOST)
+add_definitions(-DSELF_NO_HOST)
+remove_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE)
+
+if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD)
+ # This is required to force using our own PAL, not one that we are loaded with.
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Bsymbolic-functions")
+endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_NETBSD)
add_library_clr(protojit
SHARED
@@ -41,7 +48,4 @@ target_link_libraries(protojit
)
# add the install targets
-install (TARGETS protojit DESTINATION .)
-if(WIN32)
- install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/protojit.pdb DESTINATION PDB)
-endif(WIN32)
+install_clr(protojit)