diff options
author | Victor "Nate" Graf <nategraf1@gmail.com> | 2017-12-20 18:07:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-20 18:07:52 -0800 |
commit | 7524d72d4f0f634fe5407280b83c25181dc8c556 (patch) | |
tree | 119c7edbbd7b3a0aec47d55334d52d1471e3a3da /src/dlls | |
parent | 9891c8ba8f84ff646455b4493447295c591665f4 (diff) | |
download | coreclr-7524d72d4f0f634fe5407280b83c25181dc8c556.tar.gz coreclr-7524d72d4f0f634fe5407280b83c25181dc8c556.tar.bz2 coreclr-7524d72d4f0f634fe5407280b83c25181dc8c556.zip |
Enable EventPipe across Unix and Windows (#14772)
* [squashed] most work complete to enable EventPipe on Windows
* Eventpipe now builds on Windows
* Ensure evevntpipe is intialized on Windows
* Resolve the location of python from build.cmd
* Ensure eventing files are generated when needed
* moving linkage declaration to cmake
* create new event from constructor
* enable FEATURE_EVENT_TRACE and FEATURE_PERF_TRACE everywhere
* [WIP] checkpoint in fixing contarct errors
* add another possible python location
* Fix double delete bug in EventPipeConfiguration destructor
* Fix typo in function name
* Revert changes to .gitgnore
* bump to netstandard1.6 in preperation for new version of TraceEvent
* Revert changes to groovy files
* revert changes to perf-prep scripts
* add common.h and use nothrow
* Fix issue which was causing double delete of configprovider
* Add new test utilizing TraceEvent
* Remove accidentally added local directory reference
* Add comment to explain the addition of misc/tracepointprovider.cpp
* Add back sys.exit(0) and refactor
* Change conditional to be more direct
* Better handle NULL config
* Initialize m_deleteDefered
* Eliminate obsolete field
* Fix spelling error
* Fix nits
* Make smaple progiler timing functions easier to read
* Move projects back to netstandard1.4
* Incomplete improvements to EventPipeTrace test
* Add event integrity checks to test
* Clean up some left over code
* Add EventSource based test
* Remove unused PAL tests on Windows
* Fix Linux build breaks
* Minor changes to CMake files
* Remove //HACK for hack that was previously removed
* Fix formatting and negate a #ifdef
* Add conditional to ensure PERFTRACING is not enabled without EVENT_TRACE
* Take lock on EventPipeProvider and EventPipeConfiguration destruction
* Load winmm.dll at runtime
* Change function name and compile conditions
* Move typedef into #ifndef
* Use the correct config in setup
* Change lifecycle managment of EventPipeConfiguration's configuration provider
* Enable EventPipe tests pri0 and disable broken tests
* Replace python3 only error with python2 compatable one
* Make common.csproj build pri0
* Change TraceEvent version to 2.0.2 to match published verison
* Address cross build failure
* Remove use of undefined variable
* Add crossgen fix to .cmd
* Use more specific types to avoid marshalling errors
* Use Assert-style statements and remove one check
* Fix cross arch build
* Fix flipped branch
* Bring build.cmd changes to build.sh
* Fix cmake writing
* Revert "Bring build.cmd changes to build.sh"
This reverts commit 893c6492548d8bc9859ebba5b1b810aa630fac63.
* remove stdlib.h
* Fix out of order null check
Diffstat (limited to 'src/dlls')
-rw-r--r-- | src/dlls/mscoree/coreclr/CMakeLists.txt | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt index 8796cc16a5..8043f7733a 100644 --- a/src/dlls/mscoree/coreclr/CMakeLists.txt +++ b/src/dlls/mscoree/coreclr/CMakeLists.txt @@ -4,8 +4,8 @@ if (WIN32) list(APPEND CLR_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /ENTRY:CoreDllMain") - - # Incremental linking results in the linker inserting extra padding and routing function calls via thunks that can break the + + # Incremental linking results in the linker inserting extra padding and routing function calls via thunks that can break the # invariants (e.g. size of region between Jit_PatchedCodeLast-Jit_PatchCodeStart needs to fit in a page). set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /INCREMENTAL:NO") @@ -14,7 +14,7 @@ if (WIN32) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DELAYLOAD:api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DELAYLOAD:api-ms-win-ro-typeresolution-l1-1-0.dll") - + # No library groups for Win32 set(START_LIBRARY_GROUP) set(END_LIBRARY_GROUP) @@ -30,14 +30,14 @@ else() # of the utilcode will be used instead of the standard library delete operator. set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic -Xlinker -Bsymbolic-functions") - # The following linked options can be inserted into the linker libraries list to + # The following linked options can be inserted into the linker libraries list to # ensure proper resolving of circular references between a subset of the libraries. set(START_LIBRARY_GROUP -Wl,--start-group) set(END_LIBRARY_GROUP -Wl,--end-group) # These options are used to force every object to be included even if it's unused. set(START_WHOLE_ARCHIVE -Wl,--whole-archive) - set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) + set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE}) endif(CMAKE_SYSTEM_NAME STREQUAL Linux OR CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR CMAKE_SYSTEM_NAME STREQUAL NetBSD) @@ -74,7 +74,7 @@ if(FEATURE_MERGE_JIT_AND_ENGINE) endif(FEATURE_MERGE_JIT_AND_ENGINE) # IMPORTANT! Please do not rearrange the order of the libraries. The linker on Linux is -# order dependent and changing the order can result in undefined symbols in the shared +# order dependent and changing the order can result in undefined symbols in the shared # library. set(CORECLR_LIBRARIES utilcode @@ -119,28 +119,34 @@ if(WIN32) ) else() list(APPEND CORECLR_LIBRARIES - ${START_WHOLE_ARCHIVE} # force all PAL objects to be included so all exports are available + ${START_WHOLE_ARCHIVE} # force all PAL objects to be included so all exports are available coreclrpal - tracepointprovider - ${END_WHOLE_ARCHIVE} + ${END_WHOLE_ARCHIVE} mscorrc_debug palrt ) endif(WIN32) -if(CLR_CMAKE_PLATFORM_UNIX AND FEATURE_EVENT_TRACE) - list(APPEND CORECLR_LIBRARIES - eventprovider - ) -endif(CLR_CMAKE_PLATFORM_UNIX AND FEATURE_EVENT_TRACE) - -if(CLR_CMAKE_PLATFORM_LINUX) +if(FEATURE_PERFTRACING) list(APPEND CORECLR_LIBRARIES eventpipe - ) -endif(CLR_CMAKE_PLATFORM_LINUX) - -target_link_libraries(coreclr ${CORECLR_LIBRARIES}) + ) +endif(FEATURE_PERFTRACING) + +if(FEATURE_EVENT_TRACE) + if(CLR_CMAKE_PLATFORM_UNIX) + list(APPEND CORECLR_LIBRARIES + eventprovider # On Windows this library contains only macros + ) + endif(CLR_CMAKE_PLATFORM_UNIX) + if(CLR_CMAKE_PLATFORM_LINUX) + list(APPEND CORECLR_LIBRARIES + tracepointprovider + ) + endif(CLR_CMAKE_PLATFORM_LINUX) +endif(FEATURE_EVENT_TRACE) + +target_link_libraries(coreclr ${CORECLR_LIBRARIES}) if(WIN32) # Add dac table & debug resource to coreclr |