From f1ee4fdc8de09ec8ff5a58f3f43abb792363d182 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 16 2020 22:14:02 +0000 Subject: import dotnet5.0-5.0.100-0.6.preview8.el8 --- diff --git a/.dotnet5.0.metadata b/.dotnet5.0.metadata index 4dcc60b..b15c761 100644 --- a/.dotnet5.0.metadata +++ b/.dotnet5.0.metadata @@ -1 +1 @@ -8818892e9db5ed3f2bfb3c29b702a01e065b116b SOURCES/dotnet-v5.0.100-preview4-SDK.tar.gz +bf5d159d88cb9740d856caf5cd4b283fef318133 SOURCES/dotnet-v5.0.100-preview.8.20417.9-SDK.tar.xz diff --git a/.gitignore b/.gitignore index ed21976..8033f2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dotnet-v5.0.100-preview4-SDK.tar.gz +SOURCES/dotnet-v5.0.100-preview.8.20417.9-SDK.tar.xz diff --git a/SOURCES/runtime-39044-cmake-downgrade.patch b/SOURCES/runtime-39044-cmake-downgrade.patch deleted file mode 100644 index 85a61ae..0000000 --- a/SOURCES/runtime-39044-cmake-downgrade.patch +++ /dev/null @@ -1,1131 +0,0 @@ -diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake -index 534f1d19de6..50d81842274 100644 ---- a/eng/common/cross/toolchain.cmake -+++ b/eng/common/cross/toolchain.cmake -@@ -83,15 +83,26 @@ endif() - - # Specify link flags - -+function(add_toolchain_linker_flag Flag) -+ set(Config "${ARGV1}") -+ set(CONFIG_SUFFIX "") -+ if (NOT Config STREQUAL "") -+ set(CONFIG_SUFFIX "_${Config}") -+ endif() -+ set("CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE) -+ set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE) -+endfunction() -+ -+ - if(TARGET_ARCH_NAME STREQUAL "armel") - if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only -- add_link_options("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") -- add_link_options("-L${CROSS_ROOTFS}/lib") -- add_link_options("-L${CROSS_ROOTFS}/usr/lib") -- add_link_options("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") -+ add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") -+ add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib") -+ add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib") -+ add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") - endif() - elseif(TARGET_ARCH_NAME STREQUAL "x86") -- add_link_options(-m32) -+ add_toolchain_linker_flag(-m32) - endif() - - # Specify compile options -diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh -index a1a975ce177..9a0c296ff66 100755 ---- a/eng/native/build-commons.sh -+++ b/eng/native/build-commons.sh -@@ -51,12 +51,9 @@ check_prereqs() - # Check presence of CMake on the path - command -v cmake 2>/dev/null || { echo >&2 "Please install cmake before running this script"; exit 1; } - -- function version { echo "$@" | awk -F. '{ printf("%d%02d%02d\n", $1,$2,$3); }'; } -- -- local cmake_version="$(cmake --version | awk '/^cmake version [0-9]+\.[0-9]+\.[0-9]+$/ {print $3}')" -- -- if [[ "$(version "$cmake_version")" -lt "$(version 3.14.2)" ]]; then -- echo "Please install CMake 3.14.2 or newer from http://www.cmake.org/download/ or https://apt.kitware.com and ensure it is on your path."; exit 1; -+ if [[ "$__HostOS" == "OSX" ]]; then -+ # Check presence of pkg-config on the path -+ command -v pkg-config 2>/dev/null || { echo >&2 "Please install pkg-config before running this script, see https://github.com/dotnet/runtime/blob/master/docs/workflow/requirements/macos-requirements.md"; exit 1; } - fi - - if [[ "$__UseNinja" == 1 ]]; then -@@ -156,8 +153,8 @@ build_native() - cmake_command="emcmake $cmake_command" - fi - -- echo "Executing $cmake_command --build \"$intermediatesDir\" --target install -j $__NumProc" -- $cmake_command --build "$intermediatesDir" --target install -j "$__NumProc" -+ echo "Executing $cmake_command --build \"$intermediatesDir\" --target install -- -j $__NumProc" -+ $cmake_command --build "$intermediatesDir" --target install -- -j "$__NumProc" - fi - - local exit_code="$?" -diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake -index 2937916ced9..07fd6f75f6f 100644 ---- a/eng/native/configurecompiler.cmake -+++ b/eng/native/configurecompiler.cmake -@@ -8,8 +8,6 @@ set(CMAKE_C_STANDARD_REQUIRED ON) - set(CMAKE_CXX_STANDARD 11) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - --cmake_policy(SET CMP0083 NEW) -- - include(CheckCXXCompilerFlag) - - # "configureoptimization.cmake" must be included after CLR_CMAKE_HOST_UNIX has been set. -@@ -40,11 +38,18 @@ set(CMAKE_CXX_FLAGS_CHECKED "") - set(CMAKE_EXE_LINKER_FLAGS_CHECKED "") - set(CMAKE_SHARED_LINKER_FLAGS_CHECKED "") - -+set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "") -+set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "") -+set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "") -+set(CMAKE_EXE_LINKER_FLAGS_DEBUG "") -+set(CMAKE_EXE_LINKER_FLAGS_DEBUG "") -+set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "") -+ - add_compile_definitions("$<$,$>:DEBUG;_DEBUG;_DBG;URTBLDENV_FRIENDLY=Checked;BUILDENV_CHECKED=1>") - add_compile_definitions("$<$,$>:NDEBUG;URTBLDENV_FRIENDLY=Retail>") - - if (MSVC) -- add_link_options(/GUARD:CF) -+ add_linker_flag(/GUARD:CF) - - # Linker flags - # -@@ -57,48 +62,51 @@ if (MSVC) - endif () - - #Do not create Side-by-Side Assembly Manifest -- add_link_options($<$,SHARED_LIBRARY>:/MANIFEST:NO>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO") - # can handle addresses larger than 2 gigabytes -- add_link_options($<$,SHARED_LIBRARY>:/LARGEADDRESSAWARE>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LARGEADDRESSAWARE") - #Compatible with Data Execution Prevention -- add_link_options($<$,SHARED_LIBRARY>:/NXCOMPAT>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NXCOMPAT") - #Use address space layout randomization -- add_link_options($<$,SHARED_LIBRARY>:/DYNAMICBASE>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DYNAMICBASE") - #shrink pdb size -- add_link_options($<$,SHARED_LIBRARY>:/PDBCOMPRESS>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /PDBCOMPRESS") - -- add_link_options($<$,SHARED_LIBRARY>:/DEBUG>) -- add_link_options($<$,SHARED_LIBRARY>:/IGNORE:4197,4013,4254,4070,4221>) -- add_link_options($<$,SHARED_LIBRARY>:/SUBSYSTEM:WINDOWS,${WINDOWS_SUBSYSTEM_VERSION}>) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG") -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4197,4013,4254,4070,4221") -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,${WINDOWS_SUBSYSTEM_VERSION}") - - set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /IGNORE:4221") - -- add_link_options($<$,EXECUTABLE>:/DEBUG>) -- add_link_options($<$,EXECUTABLE>:/PDBCOMPRESS>) -- add_link_options($<$,EXECUTABLE>:/STACK:1572864>) -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG") -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /PDBCOMPRESS") -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1572864") - - # Debug build specific flags -- add_link_options($<$,$>,$,SHARED_LIBRARY>>:/NOVCFEATURE>) -+ set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NOVCFEATURE") -+ set(CMAKE_SHARED_LINKER_FLAGS_CHECKED "${CMAKE_SHARED_LINKER_FLAGS_CHECKED} /NOVCFEATURE") - - # Checked build specific flags -- add_link_options($<$:/INCREMENTAL:NO>) # prevent "warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:REF' specification" -- add_link_options($<$:/OPT:REF>) -- add_link_options($<$:/OPT:NOICF>) -+ add_linker_flag(/INCREMENTAL:NO CHECKED) # prevent "warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:REF' specification" -+ add_linker_flag(/OPT:REF CHECKED) -+ add_linker_flag(/OPT:NOICF CHECKED) - - # Release build specific flags -- add_link_options($<$:/LTCG>) -- add_link_options($<$:/OPT:REF>) -- add_link_options($<$:/OPT:ICF>) -+ add_linker_flag(/LTCG RELEASE) -+ add_linker_flag(/OPT:REF RELEASE) -+ add_linker_flag(/OPT:ICF RELEASE) -+ add_linker_flag(/INCREMENTAL:NO RELEASE) - set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG") - - # ReleaseWithDebugInfo build specific flags -- add_link_options($<$:/LTCG>) -- add_link_options($<$:/OPT:REF>) -- add_link_options($<$:/OPT:ICF>) -+ add_linker_flag(/LTCG RELWITHDEBINFO) -+ add_linker_flag(/OPT:REF RELWITHDEBINFO) -+ add_linker_flag(/OPT:ICF RELWITHDEBINFO) - set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /LTCG") - - # Force uCRT to be dynamically linked for Release build -- add_link_options("$<$:/NODEFAULTLIB:libucrt.lib;/DEFAULTLIB:ucrt.lib>") -+ add_linker_flag(/NODEFAULTLIB:libucrt.lib RELEASE) -+ add_linker_flag(/DEFAULTLIB:ucrt.lib RELEASE) - - elseif (CLR_CMAKE_HOST_UNIX) - # Set the values to display when interactively configuring CMAKE_BUILD_TYPE -@@ -157,11 +165,10 @@ elseif (CLR_CMAKE_HOST_UNIX) - - # -fdata-sections -ffunction-sections: each function has own section instead of one per .o file (needed for --gc-sections) - # -O1: optimization level used instead of -O0 to avoid compile error "invalid operand for inline asm constraint" -- add_compile_definitions("$<$,$>:${CLR_SANITIZE_CXX_OPTIONS};-fdata-sections;--ffunction-sections;-O1>") -- add_link_options($<$,$>,$,EXECUTABLE>>:${CLR_SANITIZE_LINK_OPTIONS}>) -- -+ add_compile_options("$<$,$>:${CLR_SANITIZE_CXX_OPTIONS};-fdata-sections;--ffunction-sections;-O1>") -+ add_linker_flag("${CLR_SANITIZE_LINK_OPTIONS}" DEBUG CHECKED) - # -Wl and --gc-sections: drop unused sections\functions (similar to Windows /Gy function-level-linking) -- add_link_options("$<$,$>,$,SHARED_LIBRARY>>:${CLR_SANITIZE_LINK_OPTIONS};-Wl,--gc-sections>") -+ add_linker_flag("-Wl,--gc-sections" DEBUG CHECKED) - endif () - endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED) - endif(MSVC) -@@ -173,15 +180,18 @@ endif(MSVC) - # ./build-native.sh cmakeargs "-DCLR_ADDITIONAL_COMPILER_OPTIONS=<...>" cmakeargs "-DCLR_ADDITIONAL_LINKER_FLAGS=<...>" - # - if(CLR_CMAKE_HOST_UNIX) -- add_link_options(${CLR_ADDITIONAL_LINKER_FLAGS}) -+ foreach(ADDTL_LINKER_FLAG ${CLR_ADDITIONAL_LINKER_FLAGS}) -+ add_linker_flag(${ADDTL_LINKER_FLAG}) -+ endforeach() - endif(CLR_CMAKE_HOST_UNIX) - - if(CLR_CMAKE_HOST_LINUX) - add_compile_options($<$:-Wa,--noexecstack>) -- add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now) -+ add_linker_flag(-Wl,--build-id=sha1) -+ add_linker_flag(-Wl,-z,relro,-z,now) - elseif(CLR_CMAKE_HOST_FREEBSD) - add_compile_options($<$:-Wa,--noexecstack>) -- add_link_options(LINKER:--build-id=sha1) -+ add_linker_flag("-Wl,--build-id=sha1") - elseif(CLR_CMAKE_HOST_SUNOS) - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /opt/local/include) - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib) -@@ -357,7 +367,7 @@ if (CLR_CMAKE_HOST_UNIX) - if(CLR_CMAKE_HOST_OSX) - set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=10.12) - add_compile_options(${MACOS_VERSION_MIN_FLAGS}) -- add_link_options(${MACOS_VERSION_MIN_FLAGS}) -+ add_linker_flag(${MACOS_VERSION_MIN_FLAGS}) - endif(CLR_CMAKE_HOST_OSX) - endif(CLR_CMAKE_HOST_UNIX) - -@@ -514,7 +524,7 @@ if(CLR_CMAKE_ENABLE_CODE_COVERAGE) - - add_compile_options(-fprofile-arcs) - add_compile_options(-ftest-coverage) -- add_link_options(--coverage) -+ add_linker_flag(--coverage) - else() - message(FATAL_ERROR "Code coverage builds not supported on current platform") - endif(CLR_CMAKE_HOST_UNIX) -diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake -index 1c5254d8496..4a4131cb05d 100644 ---- a/eng/native/configureplatform.cmake -+++ b/eng/native/configureplatform.cmake -@@ -1,4 +1,3 @@ --include(CheckPIESupported) - include(${CMAKE_CURRENT_LIST_DIR}/functions.cmake) - - # If set, indicates that this is not an officially supported release -@@ -363,19 +362,10 @@ if(NOT CLR_CMAKE_TARGET_EMSCRIPTEN) - # but since we know that PIE is supported, we can safely skip this redundant check). - # - # The default linker on Solaris also does not support PIE. -- if(NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_SUNOS) -- # All code we build should be compiled as position independent -- get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) -- if("CXX" IN_LIST languages) -- set(CLR_PIE_LANGUAGE CXX) -- else() -- set(CLR_PIE_LANGUAGE C) -- endif() -- check_pie_supported(OUTPUT_VARIABLE PIE_SUPPORT_OUTPUT LANGUAGES ${CLR_PIE_LANGUAGE}) -- if(NOT MSVC AND NOT CMAKE_${CLR_PIE_LANGUAGE}_LINK_PIE_SUPPORTED) -- message(WARNING "PIE is not supported at link time: ${PIE_SUPPORT_OUTPUT}.\n" -- "PIE link options will not be passed to linker.") -- endif() -+ if(NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_SUNOS AND NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_HOST_TVOS AND NOT CLR_CMAKE_HOST_IOS AND NOT MSVC) -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") -+ add_compile_options($<$,EXECUTABLE>:-fPIE>) -+ add_compile_options($<$,SHARED_LIBRARY>:-fPIC>) - endif() - - set(CMAKE_POSITION_INDEPENDENT_CODE ON) -diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake -index b7f8f463804..f4a96cbe35e 100644 ---- a/eng/native/functions.cmake -+++ b/eng/native/functions.cmake -@@ -123,7 +123,7 @@ function(preprocess_compile_asm) - set(options "") - set(oneValueArgs OUTPUT_OBJECTS) - set(multiValueArgs ASM_FILES) -- cmake_parse_arguments(PARSE_ARGV 0 COMPILE_ASM "${options}" "${oneValueArgs}" "${multiValueArgs}") -+ cmake_parse_arguments(COMPILE_ASM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) - - get_include_directories_asm(ASM_INCLUDE_DIRECTORIES) - -@@ -209,7 +209,7 @@ function(target_precompile_header) - set(options "") - set(oneValueArgs TARGET HEADER) - set(multiValueArgs ADDITIONAL_INCLUDE_DIRECTORIES) -- cmake_parse_arguments(PARSE_ARGV 0 PRECOMPILE_HEADERS "${options}" "${oneValueArgs}" "${multiValueArgs}") -+ cmake_parse_arguments(PRECOMPILE_HEADERS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) - - if ("${PRECOMPILE_HEADERS_TARGET}" STREQUAL "") - message(SEND_ERROR "No target supplied to target_precompile_header.") -@@ -321,7 +321,7 @@ endfunction() - function(install_clr) - set(oneValueArgs ADDITIONAL_DESTINATION) - set(multiValueArgs TARGETS) -- cmake_parse_arguments(PARSE_ARGV 0 INSTALL_CLR "${options}" "${oneValueArgs}" "${multiValueArgs}") -+ cmake_parse_arguments(INSTALL_CLR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) - - if ("${INSTALL_CLR_TARGETS}" STREQUAL "") - message(FATAL_ERROR "At least one target must be passed to install_clr(TARGETS )") -@@ -377,6 +377,15 @@ function(disable_pax_mprotect targetName) - endif() - endfunction() - -+if (CMAKE_VERSION VERSION_LESS "3.12") -+ # Polyfill add_compile_definitions when it is unavailable -+ function(add_compile_definitions) -+ get_directory_property(DIR_COMPILE_DEFINITIONS COMPILE_DEFINITIONS) -+ list(APPEND DIR_COMPILE_DEFINITIONS ${ARGV}) -+ set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "${DIR_COMPILE_DEFINITIONS}") -+ endfunction() -+endif() -+ - function(_add_executable) - if(NOT WIN32) - add_executable(${ARGV} ${VERSION_FILE_PATH}) -@@ -415,3 +424,16 @@ endfunction() - function(add_executable_clr) - _add_executable(${ARGV}) - endfunction() -+ -+# add_linker_flag(Flag [Config1 Config2 ...]) -+function(add_linker_flag Flag) -+ if (ARGN STREQUAL "") -+ set("CMAKE_EXE_LINKER_FLAGS" "${CMAKE_EXE_LINKER_FLAGS} ${Flag}" PARENT_SCOPE) -+ set("CMAKE_SHARED_LINKER_FLAGS" "${CMAKE_SHARED_LINKER_FLAGS} ${Flag}" PARENT_SCOPE) -+ else() -+ foreach(Config ${ARGN}) -+ set("CMAKE_EXE_LINKER_FLAGS_${Config}" "${CMAKE_EXE_LINKER_FLAGS_${Config}} ${Flag}" PARENT_SCOPE) -+ set("CMAKE_SHARED_LINKER_FLAGS_${Config}" "${CMAKE_SHARED_LINKER_FLAGS_${Config}} ${Flag}" PARENT_SCOPE) -+ endforeach() -+ endif() -+endfunction() -diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh -index f27bb33e357..1b4c2e02c59 100755 ---- a/eng/native/gen-buildsys.sh -+++ b/eng/native/gen-buildsys.sh -@@ -91,6 +91,9 @@ if [[ "$build_arch" == "wasm" ]]; then - cmake_command="emcmake $cmake_command" - fi - -+# We have to be able to build with CMake 3.6.2, so we can't use the -S or -B options -+pushd "$3" -+ - # Include CMAKE_USER_MAKE_RULES_OVERRIDE as uninitialized since it will hold its value in the CMake cache otherwise can cause issues when branch switching - $cmake_command \ - -G "$generator" \ -@@ -98,5 +101,6 @@ $cmake_command \ - "-DCMAKE_INSTALL_PREFIX=$__CMakeBinDir" \ - $cmake_extra_defines \ - $__UnprocessedCMakeArgs \ -- -S "$1" \ -- -B "$3" -+ "$1" -+ -+popd -diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt -index 5fa572c4fcd..071ac2cf5fa 100644 ---- a/src/coreclr/CMakeLists.txt -+++ b/src/coreclr/CMakeLists.txt -@@ -1,4 +1,4 @@ --cmake_minimum_required(VERSION 3.14.2) -+cmake_minimum_required(VERSION 3.6.2) - - cmake_policy(SET CMP0042 NEW) - -diff --git a/src/coreclr/pgosupport.cmake b/src/coreclr/pgosupport.cmake -index 4b119809017..04bde2bc20b 100644 ---- a/src/coreclr/pgosupport.cmake -+++ b/src/coreclr/pgosupport.cmake -@@ -1,5 +1,18 @@ --include(CheckIPOSupported) --check_ipo_supported(RESULT HAVE_LTO) -+include(CheckCXXSourceCompiles) -+include(CheckCXXCompilerFlag) -+ -+# VC++ guarantees support for LTCG (LTO's equivalent) -+if(NOT WIN32) -+ # Function required to give CMAKE_REQUIRED_* local scope -+ function(check_have_lto) -+ set(CMAKE_REQUIRED_FLAGS -flto) -+ set(CMAKE_REQUIRED_LIBRARIES -flto -fuse-ld=gold) -+ check_cxx_source_compiles("int main() { return 0; }" HAVE_LTO) -+ endfunction(check_have_lto) -+ check_have_lto() -+ -+ check_cxx_compiler_flag(-faligned-new COMPILER_SUPPORTS_F_ALIGNED_NEW) -+endif(NOT WIN32) - - # Adds Profile Guided Optimization (PGO) flags to the current target - function(add_pgo TargetName) -diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/CMakeLists.txt b/src/coreclr/src/ToolBox/SOS/DacTableGen/CMakeLists.txt -index dcd39e346c9..7b471d53726 100644 ---- a/src/coreclr/src/ToolBox/SOS/DacTableGen/CMakeLists.txt -+++ b/src/coreclr/src/ToolBox/SOS/DacTableGen/CMakeLists.txt -@@ -1,3 +1,4 @@ -+cmake_minimum_required(VERSION 3.8) - # Quick note: The CMake C# support is using the CSC bundled with the MSBuild that the native build runs on, not the one supplied by the local .NET SDK. - - project(DacTableGen LANGUAGES CSharp) -diff --git a/src/coreclr/src/binder/CMakeLists.txt b/src/coreclr/src/binder/CMakeLists.txt -index 3a66c81e10e..208f1214dd0 100644 ---- a/src/coreclr/src/binder/CMakeLists.txt -+++ b/src/coreclr/src/binder/CMakeLists.txt -@@ -82,11 +82,13 @@ endif(CLR_CMAKE_TARGET_WIN32) - convert_to_absolute_path(BINDER_SOURCES ${BINDER_SOURCES}) - convert_to_absolute_path(BINDER_CROSSGEN_SOURCES ${BINDER_CROSSGEN_SOURCES}) - --add_library_clr(v3binder -- STATIC -+add_library_clr(v3binder_obj -+ OBJECT - ${BINDER_SOURCES} - ) --add_dependencies(v3binder eventing_headers) -+add_dependencies(v3binder_obj eventing_headers) -+add_library(v3binder INTERFACE) -+target_sources(v3binder INTERFACE $) - - add_library_clr(v3binder_crossgen - STATIC -diff --git a/src/coreclr/src/classlibnative/bcltype/CMakeLists.txt b/src/coreclr/src/classlibnative/bcltype/CMakeLists.txt -index 391f70eff43..fdcf344c16a 100644 ---- a/src/coreclr/src/classlibnative/bcltype/CMakeLists.txt -+++ b/src/coreclr/src/classlibnative/bcltype/CMakeLists.txt -@@ -10,9 +10,11 @@ set(BCLTYPE_SOURCES - variant.cpp - ) - --add_library_clr(bcltype -- STATIC -+add_library_clr(bcltype_obj -+ OBJECT - ${BCLTYPE_SOURCES} - ) - --add_dependencies(bcltype eventing_headers) -+add_dependencies(bcltype_obj eventing_headers) -+add_library(bcltype INTERFACE) -+target_sources(bcltype INTERFACE $) -diff --git a/src/coreclr/src/classlibnative/float/CMakeLists.txt b/src/coreclr/src/classlibnative/float/CMakeLists.txt -index 44d40c92592..3c066620f76 100644 ---- a/src/coreclr/src/classlibnative/float/CMakeLists.txt -+++ b/src/coreclr/src/classlibnative/float/CMakeLists.txt -@@ -7,9 +7,12 @@ set(FLOAT_SOURCES - floatsingle.cpp - ) - --add_library_clr(comfloat_wks -- STATIC -+add_library_clr(comfloat_wks_obj -+ OBJECT - ${FLOAT_SOURCES} - ) - --add_dependencies(comfloat_wks eventing_headers) -+add_dependencies(comfloat_wks_obj eventing_headers) -+ -+add_library(comfloat_wks INTERFACE) -+target_sources(comfloat_wks INTERFACE $) -diff --git a/src/coreclr/src/debug/debug-pal/CMakeLists.txt b/src/coreclr/src/debug/debug-pal/CMakeLists.txt -index ac1e48fb5fb..213fa59e784 100644 ---- a/src/coreclr/src/debug/debug-pal/CMakeLists.txt -+++ b/src/coreclr/src/debug/debug-pal/CMakeLists.txt -@@ -34,4 +34,6 @@ if(CLR_CMAKE_HOST_UNIX) - - endif(CLR_CMAKE_HOST_UNIX) - --_add_library(debug-pal STATIC ${TWO_WAY_PIPE_SOURCES}) -+_add_library(debug-pal_obj OBJECT ${TWO_WAY_PIPE_SOURCES}) -+add_library(debug-pal INTERFACE) -+target_sources(debug-pal INTERFACE $) -diff --git a/src/coreclr/src/debug/ee/wks/CMakeLists.txt b/src/coreclr/src/debug/ee/wks/CMakeLists.txt -index ee6c482ce76..3dd5e3612df 100644 ---- a/src/coreclr/src/debug/ee/wks/CMakeLists.txt -+++ b/src/coreclr/src/debug/ee/wks/CMakeLists.txt -@@ -9,9 +9,9 @@ if (CLR_CMAKE_TARGET_WIN32) - - if(CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64) - -- preprocess_compile_asm(ASM_FILES ${ASM_FILE} OUTPUT_OBJECTS ASM_OBJECTS) -+ preprocess_compile_asm(TARGET cordbee_wks_obj ASM_FILES ${ASM_FILE} OUTPUT_OBJECTS ASM_OBJECTS) - -- add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ${ASM_OBJECTS}) -+ add_library_clr(cordbee_wks_obj OBJECT ${CORDBEE_SOURCES_WKS} ${ASM_FILE} ${ASM_OBJECTS}) - - else () - -@@ -23,19 +23,21 @@ if (CLR_CMAKE_TARGET_WIN32) - - set_source_files_properties(${ASM_FILE} PROPERTIES COMPILE_OPTIONS "${ASM_OPTIONS}") - -- add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ${ASM_FILE}) -+ add_library_clr(cordbee_wks_obj OBJECT ${CORDBEE_SOURCES_WKS} ${ASM_FILE}) - - endif() - - else () - - if(CLR_CMAKE_HOST_ARCH_AMD64 OR CLR_CMAKE_HOST_ARCH_ARM OR CLR_CMAKE_HOST_ARCH_ARM64 OR CLR_CMAKE_HOST_ARCH_I386) -- add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ../${ARCH_SOURCES_DIR}/dbghelpers.S) -+ add_library_clr(cordbee_wks_obj OBJECT ${CORDBEE_SOURCES_WKS} ../${ARCH_SOURCES_DIR}/dbghelpers.S) - else() - message(FATAL_ERROR "Unknown platform") - endif() - - endif (CLR_CMAKE_TARGET_WIN32) - --target_precompile_header(TARGET cordbee_wks HEADER stdafx.h) --add_dependencies(cordbee_wks eventing_headers) -+target_precompile_header(TARGET cordbee_wks_obj HEADER stdafx.h) -+add_dependencies(cordbee_wks_obj eventing_headers) -+add_library(cordbee_wks INTERFACE) -+target_sources(cordbee_wks INTERFACE $) -diff --git a/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt b/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt -index 88364658f11..362da1f6483 100644 ---- a/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt -+++ b/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt -@@ -10,5 +10,6 @@ set( ILDBSYMLIB_SOURCES - symwrite.cpp - ) - --add_library_clr(ildbsymlib ${ILDBSYMLIB_SOURCES}) -- -+add_library_clr(ildbsymlib_obj OBJECT ${ILDBSYMLIB_SOURCES}) -+add_library(ildbsymlib INTERFACE) -+target_sources(ildbsymlib INTERFACE $) -diff --git a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt -index 777a2869e4f..066b75ab01f 100644 ---- a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt -+++ b/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt -@@ -9,20 +9,20 @@ if (CLR_CMAKE_HOST_WIN32) - - list(APPEND CLR_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/coreclr.def) - -- add_link_options(/ENTRY:CoreDllMain) -+ add_linker_flag("/ENTRY:CoreDllMain") - - # 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). -- add_link_options(/INCREMENTAL:NO) -+ add_linker_flag("/INCREMENTAL:NO") - - # Delay load libraries required for WinRT as that is not supported on all platforms -- add_link_options("/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll") -- add_link_options("/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll") -- add_link_options("/DELAYLOAD:api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll") -- add_link_options("/DELAYLOAD:api-ms-win-ro-typeresolution-l1-1-0.dll") -+ add_linker_flag("/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll") -+ add_linker_flag("/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll") -+ add_linker_flag("/DELAYLOAD:api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll") -+ add_linker_flag("/DELAYLOAD:api-ms-win-ro-typeresolution-l1-1-0.dll") - - # Delay load version.dll so that we can specify how to search when loading it as it is not part of Windows' known DLLs -- add_link_options("/DELAYLOAD:version.dll") -+ add_linker_flag("/DELAYLOAD:version.dll") - - # No library groups for Win32 - set(START_LIBRARY_GROUP) -@@ -35,7 +35,7 @@ else(CLR_CMAKE_HOST_WIN32) - if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD) - # This option is necessary to ensure that the overloaded delete operator defined inside - # of the utilcode will be used instead of the standard library delete operator. -- add_link_options("LINKER:-Bsymbolic") -+ add_linker_flag("-Wl,-Bsymbolic") - - # 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. -@@ -110,7 +110,7 @@ set(CORECLR_LIBRARIES - utilcode - v3binder - libraries-native -- System.Globalization.Native-Static -+ System.Globalization.Native-static - interop - ) - -@@ -162,7 +162,12 @@ if(FEATURE_EVENT_TRACE) - endif(CLR_CMAKE_HOST_UNIX) - endif(FEATURE_EVENT_TRACE) - --target_link_libraries(coreclr ${CORECLR_LIBRARIES}) -+if(FEATURE_MERGE_JIT_AND_ENGINE) -+ set(CLRJIT_STATIC clrjit_static) -+endif(FEATURE_MERGE_JIT_AND_ENGINE) -+ -+target_sources(coreclr PUBLIC $) -+target_link_libraries(coreclr PUBLIC ${CORECLR_LIBRARIES} ${CLRJIT_STATIC} cee_wks) - - # Create the runtime module index header file containing the coreclr build id - # for xplat and the timestamp/size on Windows. -diff --git a/src/coreclr/src/dlls/mscorrc/CMakeLists.txt b/src/coreclr/src/dlls/mscorrc/CMakeLists.txt -index 08cf27aaf80..e114ec19cea 100644 ---- a/src/coreclr/src/dlls/mscorrc/CMakeLists.txt -+++ b/src/coreclr/src/dlls/mscorrc/CMakeLists.txt -@@ -19,7 +19,9 @@ if(CLR_CMAKE_HOST_WIN32) - else() - build_resources(${CMAKE_CURRENT_SOURCE_DIR}/include.rc mscorrc TARGET_CPP_FILE) - -- add_library_clr(mscorrc STATIC -+ add_library_clr(mscorrc_obj OBJECT - ${TARGET_CPP_FILE} - ) -+ add_library(mscorrc INTERFACE) -+ target_sources(mscorrc INTERFACE $) - endif(CLR_CMAKE_HOST_WIN32) -diff --git a/src/coreclr/src/gcinfo/CMakeLists.txt b/src/coreclr/src/gcinfo/CMakeLists.txt -index b0b67462562..50a1722a8ea 100644 ---- a/src/coreclr/src/gcinfo/CMakeLists.txt -+++ b/src/coreclr/src/gcinfo/CMakeLists.txt -@@ -16,11 +16,14 @@ endif(CLR_CMAKE_TARGET_ARCH_I386) - - convert_to_absolute_path(GCINFO_SOURCES ${GCINFO_SOURCES}) - --add_library_clr(gcinfo -- STATIC -+add_library_clr(gcinfo_obj -+ OBJECT - ${GCINFO_SOURCES} - ) - -+add_library(gcinfo INTERFACE) -+target_sources(gcinfo INTERFACE $) -+ - add_library_clr(gcinfo_crossgen - STATIC - ${GCINFO_SOURCES} -diff --git a/src/coreclr/src/inc/CMakeLists.txt b/src/coreclr/src/inc/CMakeLists.txt -index 60fad88e77d..4f75d3a882d 100644 ---- a/src/coreclr/src/inc/CMakeLists.txt -+++ b/src/coreclr/src/inc/CMakeLists.txt -@@ -58,7 +58,9 @@ if(FEATURE_JIT_PITCHING) - endif(FEATURE_JIT_PITCHING) - - # Compile *_i.cpp to lib --_add_library(corguids ${CORGUIDS_SOURCES}) -+_add_library(corguids_obj OBJECT ${CORGUIDS_SOURCES}) -+add_library(corguids INTERFACE) -+target_sources(corguids INTERFACE $) - - # Binplace the inc files for packaging later. - -@@ -75,4 +77,3 @@ _install (FILES cfi.h - gcinfoencoder.h - gcinfotypes.h - DESTINATION inc) --_install (TARGETS corguids DESTINATION lib) -diff --git a/src/coreclr/src/interop/CMakeLists.txt b/src/coreclr/src/interop/CMakeLists.txt -index d7eaa1b04ae..3924b4fdbb4 100644 ---- a/src/coreclr/src/interop/CMakeLists.txt -+++ b/src/coreclr/src/interop/CMakeLists.txt -@@ -30,7 +30,10 @@ endif(WIN32) - - convert_to_absolute_path(INTEROP_SOURCES ${INTEROP_SOURCES}) - --add_library_clr(interop -- STATIC -+add_library_clr(interop_obj -+ OBJECT - ${INTEROP_SOURCES} - ) -+ -+add_library(interop INTERFACE) -+target_sources(interop INTERFACE $) -diff --git a/src/coreclr/src/jit/dll/CMakeLists.txt b/src/coreclr/src/jit/dll/CMakeLists.txt -index ec7cddc78ed..01bdbf5a731 100644 ---- a/src/coreclr/src/jit/dll/CMakeLists.txt -+++ b/src/coreclr/src/jit/dll/CMakeLists.txt -@@ -2,17 +2,17 @@ project(ClrJit) - - set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE) - -+add_library_clr(clrjit_obj -+ OBJECT -+ ${JIT_CORE_SOURCES} -+ ${JIT_ARCH_SOURCES} -+) -+ - if(CLR_CMAKE_HOST_UNIX) -- add_library_clr(clrjit_static -- STATIC -- ${SHARED_LIB_SOURCES} -- ${JIT_ARCH_SOURCES} -- ) -- add_dependencies(clrjit_static coreclrpal gcinfo) --else() -- add_library_clr(clrjit_static -- ${SHARED_LIB_SOURCES} -- ${JIT_ARCH_SOURCES} -- ) -+ add_dependencies(clrjit_obj coreclrpal gcinfo) - endif(CLR_CMAKE_HOST_UNIX) --target_precompile_header(TARGET clrjit_static HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR}) -+ -+target_precompile_header(TARGET clrjit_obj HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR}) -+ -+add_library(clrjit_static INTERFACE) -+target_sources(clrjit_static INTERFACE $) -diff --git a/src/coreclr/src/md/ceefilegen/CMakeLists.txt b/src/coreclr/src/md/ceefilegen/CMakeLists.txt -index 90749c806b2..fd0f8424d97 100644 ---- a/src/coreclr/src/md/ceefilegen/CMakeLists.txt -+++ b/src/coreclr/src/md/ceefilegen/CMakeLists.txt -@@ -25,8 +25,11 @@ if (CLR_CMAKE_TARGET_WIN32) - list(APPEND CEEFILEGEN_SOURCES ${CEEFILEGEN_HEADERS}) - endif (CLR_CMAKE_TARGET_WIN32) - --add_library_clr(ceefgen -- STATIC -+add_library_clr(ceefgen_obj -+ OBJECT - ${CEEFILEGEN_SOURCES} - ) --target_precompile_header(TARGET ceefgen HEADER stdafx.h) -+target_precompile_header(TARGET ceefgen_obj HEADER stdafx.h) -+ -+add_library(ceefgen INTERFACE) -+target_sources(ceefgen INTERFACE $) -diff --git a/src/coreclr/src/md/compiler/CMakeLists.txt b/src/coreclr/src/md/compiler/CMakeLists.txt -index 3b916cdc9fe..f9f80db2500 100644 ---- a/src/coreclr/src/md/compiler/CMakeLists.txt -+++ b/src/coreclr/src/md/compiler/CMakeLists.txt -@@ -58,9 +58,11 @@ add_library_clr(mdcompiler_dac ${MDCOMPILER_SOURCES}) - set_target_properties(mdcompiler_dac PROPERTIES DAC_COMPONENT TRUE) - target_precompile_header(TARGET mdcompiler_dac HEADER stdafx.h) - --add_library_clr(mdcompiler_wks ${MDCOMPILER_SOURCES}) --target_compile_definitions(mdcompiler_wks PRIVATE FEATURE_METADATA_EMIT_ALL) --target_precompile_header(TARGET mdcompiler_wks HEADER stdafx.h) -+add_library_clr(mdcompiler_wks_obj OBJECT ${MDCOMPILER_SOURCES}) -+target_compile_definitions(mdcompiler_wks_obj PRIVATE FEATURE_METADATA_EMIT_ALL) -+target_precompile_header(TARGET mdcompiler_wks_obj HEADER stdafx.h) -+add_library(mdcompiler_wks INTERFACE) -+target_sources(mdcompiler_wks INTERFACE $) - - add_library_clr(mdcompiler-dbi ${MDCOMPILER_SOURCES}) - set_target_properties(mdcompiler-dbi PROPERTIES DBI_COMPONENT TRUE) -diff --git a/src/coreclr/src/md/enc/CMakeLists.txt b/src/coreclr/src/md/enc/CMakeLists.txt -index 7220736b9ca..82af8434296 100644 ---- a/src/coreclr/src/md/enc/CMakeLists.txt -+++ b/src/coreclr/src/md/enc/CMakeLists.txt -@@ -48,9 +48,11 @@ add_library_clr(mdruntimerw_dac ${MDRUNTIMERW_SOURCES}) - set_target_properties(mdruntimerw_dac PROPERTIES DAC_COMPONENT TRUE) - target_precompile_header(TARGET mdruntimerw_dac HEADER stdafx.h) - --add_library_clr(mdruntimerw_wks ${MDRUNTIMERW_SOURCES}) --target_compile_definitions(mdruntimerw_wks PRIVATE FEATURE_METADATA_EMIT_ALL) --target_precompile_header(TARGET mdruntimerw_wks HEADER stdafx.h) -+add_library_clr(mdruntimerw_wks_obj OBJECT ${MDRUNTIMERW_SOURCES}) -+target_compile_definitions(mdruntimerw_wks_obj PRIVATE FEATURE_METADATA_EMIT_ALL) -+target_precompile_header(TARGET mdruntimerw_wks_obj HEADER stdafx.h) -+add_library(mdruntimerw_wks INTERFACE) -+target_sources(mdruntimerw_wks INTERFACE $) - - add_library_clr(mdruntimerw-dbi ${MDRUNTIMERW_SOURCES}) - set_target_properties(mdruntimerw-dbi PROPERTIES DBI_COMPONENT TRUE) -diff --git a/src/coreclr/src/md/hotdata/CMakeLists.txt b/src/coreclr/src/md/hotdata/CMakeLists.txt -index c6168d2a4b0..88475cb72f4 100644 ---- a/src/coreclr/src/md/hotdata/CMakeLists.txt -+++ b/src/coreclr/src/md/hotdata/CMakeLists.txt -@@ -33,8 +33,10 @@ add_library_clr(mdhotdata_dac ${MDHOTDATA_SOURCES}) - set_target_properties(mdhotdata_dac PROPERTIES DAC_COMPONENT TRUE) - target_precompile_header(TARGET mdhotdata_dac HEADER external.h) - --add_library_clr(mdhotdata_full ${MDHOTDATA_SOURCES}) --target_precompile_header(TARGET mdhotdata_full HEADER external.h) -+add_library_clr(mdhotdata_full_obj OBJECT ${MDHOTDATA_SOURCES}) -+target_precompile_header(TARGET mdhotdata_full_obj HEADER external.h) -+add_library(mdhotdata_full INTERFACE) -+target_sources(mdhotdata_full INTERFACE $) - - add_library_clr(mdhotdata_crossgen ${MDHOTDATA_SOURCES}) - set_target_properties(mdhotdata_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) -diff --git a/src/coreclr/src/md/runtime/CMakeLists.txt b/src/coreclr/src/md/runtime/CMakeLists.txt -index 6dc193e14a7..7e0e83f1114 100644 ---- a/src/coreclr/src/md/runtime/CMakeLists.txt -+++ b/src/coreclr/src/md/runtime/CMakeLists.txt -@@ -47,9 +47,11 @@ add_library_clr(mdruntime_dac ${MDRUNTIME_SOURCES}) - set_target_properties(mdruntime_dac PROPERTIES DAC_COMPONENT TRUE) - target_precompile_header(TARGET mdruntime_dac HEADER stdafx.h) - --add_library_clr(mdruntime_wks ${MDRUNTIME_SOURCES}) --target_compile_definitions(mdruntime_wks PRIVATE FEATURE_METADATA_EMIT_ALL) --target_precompile_header(TARGET mdruntime_wks HEADER stdafx.h) -+add_library_clr(mdruntime_wks_obj OBJECT ${MDRUNTIME_SOURCES}) -+target_compile_definitions(mdruntime_wks_obj PRIVATE FEATURE_METADATA_EMIT_ALL) -+target_precompile_header(TARGET mdruntime_wks_obj HEADER stdafx.h) -+add_library(mdruntime_wks INTERFACE) -+target_sources(mdruntime_wks INTERFACE $) - - add_library_clr(mdruntime-dbi ${MDRUNTIME_SOURCES}) - set_target_properties(mdruntime-dbi PROPERTIES DBI_COMPONENT TRUE) -diff --git a/src/coreclr/src/pal/src/CMakeLists.txt b/src/coreclr/src/pal/src/CMakeLists.txt -index e7c1629d5b2..7818deef050 100644 ---- a/src/coreclr/src/pal/src/CMakeLists.txt -+++ b/src/coreclr/src/pal/src/CMakeLists.txt -@@ -256,10 +256,12 @@ add_library(coreclrpal - # > warning for library: libtracepointprovider.a the table of contents is empty (no object file members in the library define global symbols) - # - if(CLR_CMAKE_TARGET_LINUX) -- add_library(tracepointprovider -- STATIC -+ add_library(tracepointprovider_obj -+ OBJECT - misc/tracepointprovider.cpp - ) -+ add_library(tracepointprovider INTERFACE) -+ target_sources(tracepointprovider INTERFACE $) - endif(CLR_CMAKE_TARGET_LINUX) - - if(CLR_CMAKE_TARGET_OSX) -diff --git a/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt b/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt -index 39b9826d1ab..8e6968cf783 100644 ---- a/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt -+++ b/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt -@@ -1,8 +1,8 @@ --include(FindPython) -+include(FindPythonInterp) - - set (GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genDummyProvider.py) - --set(GENERATE_COMMAND ${Python_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) -+set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) - - execute_process( - COMMAND ${GENERATE_COMMAND} --dry-run -diff --git a/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt b/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt -index 234dea19b75..d55dab3557f 100644 ---- a/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt -+++ b/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt -@@ -1,7 +1,7 @@ --include(FindPython) -+include(FindPythonInterp) - set (GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genLttngProvider.py) - --set(GENERATE_COMMAND ${Python_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) -+set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) - - execute_process( - COMMAND ${GENERATE_COMMAND} --dry-run -diff --git a/src/coreclr/src/unwinder/CMakeLists.txt b/src/coreclr/src/unwinder/CMakeLists.txt -index 4421ea9f6f6..41a0219bbf7 100644 ---- a/src/coreclr/src/unwinder/CMakeLists.txt -+++ b/src/coreclr/src/unwinder/CMakeLists.txt -@@ -20,8 +20,10 @@ list(APPEND UNWINDER_SOURCES - convert_to_absolute_path(UNWINDER_SOURCES ${UNWINDER_SOURCES}) - - if(CLR_CMAKE_HOST_UNIX) -- add_library_clr(unwinder_wks ${UNWINDER_SOURCES}) -- add_dependencies(unwinder_wks eventing_headers) -+ add_library_clr(unwinder_wks_obj OBJECT ${UNWINDER_SOURCES}) -+ add_dependencies(unwinder_wks_obj eventing_headers) -+ add_library(unwinder_wks INTERFACE) -+ target_sources(unwinder_wks INTERFACE $) - endif(CLR_CMAKE_HOST_UNIX) - - add_library_clr(unwinder_dac ${UNWINDER_SOURCES}) -diff --git a/src/coreclr/src/utilcode/CMakeLists.txt b/src/coreclr/src/utilcode/CMakeLists.txt -index aa28b2db603..f8082fc9076 100644 ---- a/src/coreclr/src/utilcode/CMakeLists.txt -+++ b/src/coreclr/src/utilcode/CMakeLists.txt -@@ -98,7 +98,9 @@ convert_to_absolute_path(UTILCODE_CROSSGEN_SOURCES ${UTILCODE_CROSSGEN_SOURCES}) - convert_to_absolute_path(UTILCODE_STATICNOHOST_SOURCES ${UTILCODE_STATICNOHOST_SOURCES}) - - add_library_clr(utilcode_dac STATIC ${UTILCODE_DAC_SOURCES}) --add_library_clr(utilcode STATIC ${UTILCODE_SOURCES}) -+add_library_clr(utilcode_obj OBJECT ${UTILCODE_SOURCES}) -+add_library(utilcode INTERFACE) -+target_sources(utilcode INTERFACE $) - add_library_clr(utilcodestaticnohost STATIC ${UTILCODE_STATICNOHOST_SOURCES}) - add_library_clr(utilcode_crossgen STATIC ${UTILCODE_CROSSGEN_SOURCES}) - -@@ -106,9 +108,9 @@ if(CLR_CMAKE_HOST_UNIX) - target_link_libraries(utilcodestaticnohost nativeresourcestring) - target_link_libraries(utilcode_crossgen nativeresourcestring) - target_link_libraries(utilcode_dac nativeresourcestring) -- target_link_libraries(utilcode nativeresourcestring) -+ target_link_libraries(utilcode INTERFACE nativeresourcestring) - add_dependencies(utilcode_dac coreclrpal) -- add_dependencies(utilcode coreclrpal) -+ add_dependencies(utilcode_obj coreclrpal) - endif(CLR_CMAKE_HOST_UNIX) - - -@@ -121,10 +123,10 @@ set_target_properties(utilcode_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE) - target_compile_definitions(utilcode_dac PRIVATE SELF_NO_HOST) - target_compile_definitions(utilcodestaticnohost PRIVATE SELF_NO_HOST) - add_dependencies(utilcode_dac ${UTILCODE_DEPENDENCIES}) --add_dependencies(utilcode ${UTILCODE_DEPENDENCIES}) -+add_dependencies(utilcode_obj ${UTILCODE_DEPENDENCIES}) - add_dependencies(utilcode_crossgen ${UTILCODE_DEPENDENCIES}) - add_dependencies(utilcodestaticnohost ${UTILCODE_DEPENDENCIES}) - target_precompile_header(TARGET utilcode_dac HEADER stdafx.h) --target_precompile_header(TARGET utilcode HEADER stdafx.h) -+target_precompile_header(TARGET utilcode_obj HEADER stdafx.h) - target_precompile_header(TARGET utilcode_crossgen HEADER stdafx.h) - target_precompile_header(TARGET utilcodestaticnohost HEADER stdafx.h) -diff --git a/src/coreclr/src/vm/CMakeLists.txt b/src/coreclr/src/vm/CMakeLists.txt -index 3e37cebdc10..2b20d7d910a 100644 ---- a/src/coreclr/src/vm/CMakeLists.txt -+++ b/src/coreclr/src/vm/CMakeLists.txt -@@ -923,7 +923,7 @@ list(APPEND VM_HEADERS_DAC - - if (CLR_CMAKE_TARGET_WIN32) - list(APPEND VM_SOURCES_WKS ${VM_HEADERS_WKS}) -- list(APPEND VM_SOURCES_WKS_ARCH_ASM ${VM_HEADERS_WKS_ARCH_ASM}) -+ list(APPEND VM_SOURCES_WKS ${VM_HEADERS_WKS_ARCH_ASM}) - list(APPEND VM_SOURCES_DAC ${VM_HEADERS_DAC}) - endif(CLR_CMAKE_TARGET_WIN32) - -diff --git a/src/coreclr/src/vm/eventing/CMakeLists.txt b/src/coreclr/src/vm/eventing/CMakeLists.txt -index 98dd158df54..e2bf024fc59 100644 ---- a/src/coreclr/src/vm/eventing/CMakeLists.txt -+++ b/src/coreclr/src/vm/eventing/CMakeLists.txt -@@ -8,12 +8,13 @@ else() - set(NEED_XPLAT_HEADER ON) - endif() - --include(FindPython) -+include(FindPythonInterp) - - set (EventingHeaders - ${GENERATED_INCLUDE_DIR}/etmdummy.h - ${GENERATED_INCLUDE_DIR}/clretwallmain.h - ${GENERATED_INCLUDE_DIR}/clreventpipewriteevents.h -+ ${GENERATED_INCLUDE_DIR}/clrproviders.h - ) - - if (NEED_XPLAT_HEADER) -@@ -24,7 +25,7 @@ endif() - set(GENEVENTING_SCRIPT ${CLR_DIR}/src/scripts/genEventing.py) - - add_custom_target(eventing_headers -- ${Python_EXECUTABLE} ${GENEVENTING_SCRIPT} --man ${EVENT_MANIFEST} --inc ${GENERATED_INCLUDE_DIR} --dummy ${GENERATED_INCLUDE_DIR}/etmdummy.h ${NONEXTERN_ARG} ${NOXPLATHEADER_ARG} -+ ${PYTHON_EXECUTABLE} ${GENEVENTING_SCRIPT} --man ${EVENT_MANIFEST} --inc ${GENERATED_INCLUDE_DIR} --dummy ${GENERATED_INCLUDE_DIR}/etmdummy.h ${NONEXTERN_ARG} ${NOXPLATHEADER_ARG} - DEPENDS ${EVENT_MANIFEST} ${GENEVENTING_SCRIPT} - VERBATIM - ) -diff --git a/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt b/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt -index 34a067e1ec5..4c7df2fbb3c 100644 ---- a/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt -+++ b/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt -@@ -1,4 +1,4 @@ --include(FindPython) -+include(FindPythonInterp) - - set(ETW_PROVIDER_SCRIPT ${CLR_DIR}/src/scripts/genEtwProvider.py) - -@@ -14,5 +14,5 @@ set (ETW_PROVIDER_OUTPUTS - set_source_files_properties(${ETW_PROVIDER_OUTPUTS} PROPERTIES GENERATED TRUE) - - add_custom_target(eventprovider -- ${Python_EXECUTABLE} ${ETW_PROVIDER_SCRIPT} --man ${EVENT_MANIFEST} --exc ${EVENT_EXCLUSIONS} --intermediate ${GENERATED_INCLUDE_DIR} -+ ${PYTHON_EXECUTABLE} ${ETW_PROVIDER_SCRIPT} --man ${EVENT_MANIFEST} --exc ${EVENT_EXCLUSIONS} --intermediate ${GENERATED_INCLUDE_DIR} - DEPENDS ${EVENT_MANIFEST} ${EVENT_EXCLUSIONS} ${ETW_PROVIDER_SCRIPT}) -diff --git a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt b/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt -index 00b3f6f386f..00d79737e54 100644 ---- a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt -+++ b/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt -@@ -1,9 +1,9 @@ --include(FindPython) -+include(FindPythonInterp) - - set(CMAKE_INCLUDE_CURRENT_DIR ON) - - set(GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genEventPipe.py) --set(GENERATE_COMMAND ${Python_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --exc ${EVENT_EXCLUSIONS} --intermediate ${CMAKE_CURRENT_BINARY_DIR} ${NONEXTERN_ARG}) -+set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --exc ${EVENT_EXCLUSIONS} --intermediate ${CMAKE_CURRENT_BINARY_DIR} ${NONEXTERN_ARG}) - - execute_process( - COMMAND ${GENERATE_COMMAND} --dry-run -@@ -28,10 +28,8 @@ add_custom_command(OUTPUT ${EVENTPIPE_SOURCES} - COMMAND ${GENERATE_COMMAND} - DEPENDS ${GENERATE_SCRIPT} ${EVENT_MANIFEST} ${EVENT_EXCLUSIONS}) - --add_library_clr(eventpipe STATIC ${EVENTPIPE_SOURCES}) --set_target_properties(eventpipe PROPERTIES LINKER_LANGUAGE CXX) --add_dependencies(eventpipe eventing_headers) -- --if (NOT CLR_CMAKE_TARGET_WIN32) -- _install(TARGETS eventpipe DESTINATION lib) --endif() -+add_library_clr(eventpipe_obj OBJECT ${EVENTPIPE_SOURCES}) -+set_target_properties(eventpipe_obj PROPERTIES LINKER_LANGUAGE CXX) -+add_dependencies(eventpipe_obj eventing_headers) -+add_library(eventpipe INTERFACE) -+target_sources(eventpipe INTERFACE $) -diff --git a/src/coreclr/src/vm/wks/CMakeLists.txt b/src/coreclr/src/vm/wks/CMakeLists.txt -index 1e94b575fd6..5d355f6adcb 100644 ---- a/src/coreclr/src/vm/wks/CMakeLists.txt -+++ b/src/coreclr/src/vm/wks/CMakeLists.txt -@@ -7,13 +7,19 @@ if (CLR_CMAKE_TARGET_WIN32) - - endif (CLR_CMAKE_TARGET_WIN32) - --add_library_clr(cee_wks ${VM_SOURCES_WKS} ${VM_SOURCES_WKS_ARCH_ASM}) --target_precompile_header(TARGET cee_wks HEADER common.h) -+add_library_clr(cee_wks_core OBJECT ${VM_SOURCES_WKS} ${VM_SOURCES_WKS_ARCH_ASM}) -+add_library_clr(cee_wks_obj OBJECT ${VM_SOURCES_WKS_SPECIAL}) -+ -+target_precompile_header(TARGET cee_wks_core HEADER common.h) -+target_precompile_header(TARGET cee_wks_obj HEADER common.h) -+ - if (MSVC) - # mscorlib.cpp does not compile with precompiled header file - set_source_files_properties(../mscorlib.cpp PROPERTIES COMPILE_FLAGS "/Y-") - endif() --add_dependencies(cee_wks eventing_headers) -+ -+add_dependencies(cee_wks_core eventing_headers) -+add_dependencies(cee_wks_obj eventing_headers) - - if (CLR_CMAKE_TARGET_WIN32) - -@@ -45,8 +51,16 @@ if (CLR_CMAKE_TARGET_WIN32) - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/AsmConstants.inc - ) - -- add_dependencies(cee_wks asmconstants_inc) -+ add_dependencies(cee_wks_core asmconstants_inc) -+ add_dependencies(cee_wks_obj asmconstants_inc) - - endif(NOT CLR_CMAKE_HOST_ARCH_ARM AND NOT CLR_CMAKE_HOST_ARCH_ARM64) - - endif (CLR_CMAKE_TARGET_WIN32) -+ -+add_custom_target(preprocessd_asm DEPENDS ${VM_WKS_ARCH_ASM_OBJECTS}) -+add_dependencies(cee_wks_core preprocessd_asm) -+add_dependencies(cee_wks_obj preprocessd_asm) -+ -+add_library(cee_wks INTERFACE) -+target_sources(cee_wks INTERFACE $ ${VM_WKS_ARCH_ASM_OBJECTS}) -diff --git a/src/installer/corehost/CMakeLists.txt b/src/installer/corehost/CMakeLists.txt -index 43a59a1a695..dff0496cdd8 100644 ---- a/src/installer/corehost/CMakeLists.txt -+++ b/src/installer/corehost/CMakeLists.txt -@@ -1,4 +1,4 @@ --cmake_minimum_required(VERSION 3.14.2) -+cmake_minimum_required(VERSION 3.6.2) - - project(corehost) - -diff --git a/src/installer/corehost/cli/exe.cmake b/src/installer/corehost/cli/exe.cmake -index de8cd49396b..732faf97ff9 100644 ---- a/src/installer/corehost/cli/exe.cmake -+++ b/src/installer/corehost/cli/exe.cmake -@@ -5,7 +5,6 @@ - project (${DOTNET_PROJECT_NAME}) - - cmake_policy(SET CMP0011 NEW) --cmake_policy(SET CMP0083 NEW) - - include(${CMAKE_CURRENT_LIST_DIR}/common.cmake) - -diff --git a/src/installer/corehost/cli/test/mockhostfxr/CMakeLists.txt b/src/installer/corehost/cli/test/mockhostfxr/CMakeLists.txt -index bcf6a051229..8572a6318ec 100644 ---- a/src/installer/corehost/cli/test/mockhostfxr/CMakeLists.txt -+++ b/src/installer/corehost/cli/test/mockhostfxr/CMakeLists.txt -@@ -2,7 +2,6 @@ - # The .NET Foundation licenses this file to you under the MIT license. - # See the LICENSE file in the project root for more information. - --cmake_minimum_required (VERSION 2.6) - project(mockhostfxr_2_2) - - set(DOTNET_PROJECT_NAME "mockhostfxr_2_2") -diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt -index f14ada69fee..cb174fe5013 100644 ---- a/src/libraries/Native/Unix/CMakeLists.txt -+++ b/src/libraries/Native/Unix/CMakeLists.txt -@@ -1,19 +1,14 @@ --cmake_minimum_required(VERSION 3.14.2) -+cmake_minimum_required(VERSION 3.6.2) -+if(CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) -+ # CMake 3.14.5 contains bug fixes for iOS -+ cmake_minimum_required(VERSION 3.14.5) -+ endif() - cmake_policy(SET CMP0042 NEW) - - project(CoreFX C) - - include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake) - --if(CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) -- # CMake 3.14.5 contains bug fixes for iOS -- cmake_minimum_required(VERSION 3.14.5) --endif() -- --if(NOT CLR_CMAKE_TARGET_ARCH_WASM) -- cmake_policy(SET CMP0083 NEW) --endif(NOT CLR_CMAKE_TARGET_ARCH_WASM) -- - set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_INSTALL_PREFIX $ENV{__CMakeBinDir}) - set(CMAKE_INCLUDE_CURRENT_DIR ON) -@@ -167,7 +162,8 @@ if(CLR_CMAKE_TARGET_UNIX) - if(NOT CLR_CMAKE_TARGET_ARCH_WASM AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS) - if(CLR_CMAKE_TARGET_OSX) - add_definitions(-DTARGET_OSX) -- add_link_options(-Wl,-bind_at_load) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-bind_at_load") -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-bind_at_load" ) - else() - add_compile_options($<$:-Wa,--noexecstack>) - if(CLR_CMAKE_TARGET_SUNOS) -@@ -175,7 +171,8 @@ if(CLR_CMAKE_TARGET_UNIX) - else() - # -z,now is required for full relro. - # see https://www.redhat.com/en/blog/hardening-elf-binaries-using-relocation-read-only-relro -- add_link_options(-Wl,--build-id=sha1 -Wl,-z,relro,-z,now) -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id=sha1 -Wl,-z,relro,-z,now") -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id=sha1 -Wl,-z,relro,-z,now" ) - endif() - endif() - endif() -diff --git a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt -index bcfc5dd106a..ebcb5a02b3f 100644 ---- a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt -+++ b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt -@@ -79,14 +79,15 @@ if (GEN_SHARED_LIB) - install_with_stripped_symbols (System.Globalization.Native PROGRAMS .) - endif() - --add_library(System.Globalization.Native-Static -- STATIC -+add_library(System.Globalization.Native-obj -+ OBJECT - ${NATIVEGLOBALIZATION_SOURCES} - ) - --set_target_properties(System.Globalization.Native-Static PROPERTIES OUTPUT_NAME System.Globalization.Native CLEAN_DIRECT_OUTPUT 1) -+set_target_properties(System.Globalization.Native-obj PROPERTIES OUTPUT_NAME System.Globalization.Native CLEAN_DIRECT_OUTPUT 1) - --install (TARGETS System.Globalization.Native-Static DESTINATION .) -+add_library(System.Globalization.Native-static INTERFACE) -+target_sources(System.Globalization.Native-static INTERFACE $) - - if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND NOT CLR_CMAKE_TARGET_ANDROID) - if (GEN_SHARED_LIB) diff --git a/SOURCES/runtime-linker-order.patch b/SOURCES/runtime-linker-order.patch new file mode 100644 index 0000000..6ca413f --- /dev/null +++ b/SOURCES/runtime-linker-order.patch @@ -0,0 +1,20 @@ +diff --git a/src/installer/corehost/cli/apphost/static/CMakeLists.txt b/src/installer/corehost/cli/apphost/static/CMakeLists.txt +index 85ea6ffe642..e6369f6b9ad 100644 +--- a/src/installer/corehost/cli/apphost/static/CMakeLists.txt ++++ b/src/installer/corehost/cli/apphost/static/CMakeLists.txt +@@ -204,11 +204,12 @@ target_link_libraries(singlefilehost + libhostcommon + ${CORECLR_LIBRARIES} + ++ ${START_WHOLE_ARCHIVE} ++ ${NATIVE_LIBS} ++ ${END_WHOLE_ARCHIVE} ++ + ${ZLIB_LIBRARIES} + ${LIBGSS} + ${NATIVE_LIBS_EXTRA} + +- ${START_WHOLE_ARCHIVE} +- ${NATIVE_LIBS} +- ${END_WHOLE_ARCHIVE} + ) diff --git a/SOURCES/source-build-1750-runtime-pack.patch b/SOURCES/source-build-1750-runtime-pack.patch new file mode 100644 index 0000000..0500f81 --- /dev/null +++ b/SOURCES/source-build-1750-runtime-pack.patch @@ -0,0 +1,71 @@ +From d25bfc2a634230f1cbb73dcffc67439721f3b412 Mon Sep 17 00:00:00 2001 +From: Davis Goodin +Date: Mon, 14 Sep 2020 18:46:20 -0500 +Subject: [PATCH] Fix runtime pack RID list: omit source-built RID + +--- + ...get-rid-to-AppHostRuntimeIdentifiers.patch | 47 +++++++++++-------- + 1 file changed, 27 insertions(+), 20 deletions(-) + +diff --git a/patches/installer/0002-Add-target-rid-to-AppHostRuntimeIdentifiers.patch b/patches/installer/0002-Add-target-rid-to-AppHostRuntimeIdentifiers.patch +index 8eba95a4ce..43ed58ed95 100644 +--- a/patches/installer/0002-Add-target-rid-to-AppHostRuntimeIdentifiers.patch ++++ b/patches/installer/0002-Add-target-rid-to-AppHostRuntimeIdentifiers.patch +@@ -1,30 +1,37 @@ +-From 66d0c4da113bb6456eb442a9fee458768e421e67 Mon Sep 17 00:00:00 2001 +-From: dseefeld +-Date: Mon, 29 Jun 2020 18:07:47 -0400 +-Subject: [PATCH 2/3] Add target rid to AppHostRuntimeIdentifiers ++From e09da5670bfc8df488b65aee94de992a1c75a6a4 Mon Sep 17 00:00:00 2001 ++From: Davis Goodin ++Date: Mon, 14 Sep 2020 18:43:27 -0500 ++Subject: [PATCH] Add target rid to NetCoreAppHostRids + +-Updated from 3.1 patch at +-https://github.com/dotnet/source-build/blob/2d5b506b13a06adf36f0feb4982ceebb7fa27123/patches/core-sdk/0008-Add-target-rid-to-AppHostRuntimeIdentifiers.patch + --- +- src/redist/targets/GenerateBundledVersions.targets | 5 +++++ +- 1 file changed, 5 insertions(+) ++ src/redist/targets/GenerateBundledVersions.targets | 14 ++++++++++++++ ++ 1 file changed, 14 insertions(+) + + diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets +-index 7c6f72967..098960015 100644 ++index 7c6f72967..3ee0284e1 100644 + --- a/src/redist/targets/GenerateBundledVersions.targets + +++ b/src/redist/targets/GenerateBundledVersions.targets +-@@ -71,6 +71,11 @@ +- win-x86; +- " /> ++@@ -93,6 +93,20 @@ ++ ++ + +-+ +++ +++ +++ ++ = %{sdk_rpm_version}-%{release} %description -n dotnet -.NET Core is a fast, lightweight and modular platform for creating +.NET is a fast, lightweight and modular platform for creating cross platform applications that work on Linux, macOS and Windows. It particularly focuses on creating console applications, web applications and micro-services. -.NET Core contains a runtime conforming to .NET Standards a set of +.NET contains a runtime conforming to .NET Standards a set of framework libraries, an SDK containing compilers and a 'dotnet' application to drive everything. @@ -159,10 +161,10 @@ Version: %{host_rpm_version} Summary: .NET command line launcher %description -n dotnet-host -The .NET Core host is a command line program that runs a standalone -.NET core application or launches the SDK. +The .NET host is a command line program that runs a standalone +.NET application or launches the SDK. -.NET Core is a fast, lightweight and modular platform for creating +.NET is a fast, lightweight and modular platform for creating cross platform applications that work on Linux, Mac and Windows. It particularly focuses on creating console applications, web @@ -172,17 +174,17 @@ applications and micro-services. %package -n dotnet-hostfxr-5.0 Version: %{host_rpm_version} -Summary: .NET Core command line host resolver +Summary: .NET command line host resolver # Theoretically any version of the host should work. But lets aim for the one -# provided by this package, or from a newer version of .NET Core +# provided by this package, or from a newer version of .NET Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release} %description -n dotnet-hostfxr-5.0 -The .NET Core host resolver contains the logic to resolve and select -the right version of the .NET Core SDK or runtime to use. +The .NET host resolver contains the logic to resolve and select +the right version of the .NET SDK or runtime to use. -.NET Core is a fast, lightweight and modular platform for creating +.NET is a fast, lightweight and modular platform for creating cross platform applications that work on Linux, Mac and Windows. It particularly focuses on creating console applications, web @@ -192,7 +194,7 @@ applications and micro-services. %package -n dotnet-runtime-5.0 Version: %{runtime_rpm_version} -Summary: NET Core 5.0 runtime +Summary: NET 5.0 runtime Requires: dotnet-hostfxr-5.0%{?_isa} >= %{host_rpm_version}-%{release} @@ -204,11 +206,11 @@ Provides: bundled(libunwind) = 1.3 %endif %description -n dotnet-runtime-5.0 -The .NET Core runtime contains everything needed to run .NET Core applications. +The .NET runtime contains everything needed to run .NET applications. It includes a high performance Virtual Machine as well as the framework -libraries used by .NET Core applications. +libraries used by .NET applications. -.NET Core is a fast, lightweight and modular platform for creating +.NET is a fast, lightweight and modular platform for creating cross platform applications that work on Linux, Mac and Windows. It particularly focuses on creating console applications, web @@ -223,9 +225,9 @@ Summary: ASP.NET Core 5.0 runtime Requires: dotnet-runtime-5.0%{?_isa} >= %{runtime_rpm_version}-%{release} %description -n aspnetcore-runtime-5.0 -The ASP.NET Core runtime contains everything needed to run .NET Core +The ASP.NET Core runtime contains everything needed to run .NET web applications. It includes a high performance Virtual Machine as -well as the framework libraries used by .NET Core applications. +well as the framework libraries used by .NET applications. ASP.NET Core is a fast, lightweight and modular platform for creating cross platform web applications that work on Linux, Mac and Windows. @@ -237,17 +239,17 @@ applications and micro-services. %package -n dotnet-templates-5.0 Version: %{sdk_rpm_version} -Summary: .NET Core 5.0 templates +Summary: .NET 5.0 templates # Theoretically any version of the host should work. But lets aim for the one -# provided by this package, or from a newer version of .NET Core +# provided by this package, or from a newer version of .NET Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release} %description -n dotnet-templates-5.0 -This package contains templates used by the .NET Core SDK. +This package contains templates used by the .NET SDK. -ASP.NET Core is a fast, lightweight and modular platform for creating -cross platform web applications that work on Linux, Mac and Windows. +.NET is a fast, lightweight and modular platform for creating +cross platform applications that work on Linux, Mac and Windows. It particularly focuses on creating console applications, web applications and micro-services. @@ -256,7 +258,7 @@ applications and micro-services. %package -n dotnet-sdk-5.0 Version: %{sdk_rpm_version} -Summary: .NET Core 5.0 Software Development Kit +Summary: .NET 5.0 Software Development Kit Provides: bundled(js-jquery) Provides: bundled(npm) @@ -272,10 +274,10 @@ Requires: netstandard-targeting-pack-2.1%{?_isa} >= %{sdk_rpm_version}-%{r Requires: dotnet-templates-5.0%{?_isa} >= %{sdk_rpm_version}-%{release} %description -n dotnet-sdk-5.0 -The .NET Core SDK is a collection of command line applications to -create, build, publish and run .NET Core applications. +The .NET SDK is a collection of command line applications to +create, build, publish and run .NET applications. -.NET Core is a fast, lightweight and modular platform for creating +.NET is a fast, lightweight and modular platform for creating cross platform applications that work on Linux, Mac and Windows. It particularly focuses on creating console applications, web @@ -293,7 +295,7 @@ Requires: dotnet-host%{?_isa} %description -n %{1} This package provides a targeting pack for %{3} %{4} that allows developers to compile against and target %{3} %{4} -applications using the .NET Core SDK. +applications using the .NET SDK. %files -n %{1} %dir %{_libdir}/dotnet/packs @@ -309,17 +311,17 @@ applications using the .NET Core SDK. %package -n dotnet-sdk-5.0-source-built-artifacts Version: %{sdk_rpm_version} -Summary: Internal package for building .NET Core 5.0 Software Development Kit +Summary: Internal package for building .NET 5.0 Software Development Kit %description -n dotnet-sdk-5.0-source-built-artifacts -The .NET Core source-built archive is a collection of packages needed -to build the .NET Core SDK itself. +The .NET source-built archive is a collection of packages needed +to build the .NET SDK itself. These are not meant for general use. %prep -%setup -q -n dotnet-v%{src_version}-preview4-SDK +%setup -q -n dotnet-v%{src_version}-SDK %if %{without bootstrap} # Remove all prebuilts @@ -345,6 +347,8 @@ sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime.*/src/installer/core # Disable warnings sed -i 's|skiptests|skiptests ignorewarnings|' repos/runtime.common.props +%patch1 -p1 + pushd src/runtime.* %patch100 -p1 %patch101 -p1 @@ -383,7 +387,7 @@ cp -a %{_libdir}/dotnet previously-built-dotnet export EXTRA_CFLAGS="%{dotnet_cflags}" export EXTRA_CXXFLAGS="%{dotnet_cflags}" -export EXTRA_LDFLAGS="%%{dotnet_ldflags}" +export EXTRA_LDFLAGS="%{dotnet_ldflags}" #%%if %%{without bootstrap} # --with-ref-packages %%{_libdir}/dotnet/reference-packages/ \ @@ -409,7 +413,7 @@ sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE2} > dotnet.sh %install install -dm 0755 %{buildroot}%{_libdir}/dotnet ls artifacts/%{runtime_arch}/Release -tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_rpm_version}-preview.4.20161.13-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/ +tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/ # Install managed symbols tar xf artifacts/%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%{runtime_version}-%{runtime_id}.tar.gz \ @@ -421,10 +425,12 @@ find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pdb' -exec chmod -x {} \; find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.props' -exec chmod -x {} \; find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pubxml' -exec chmod -x {} \; find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.targets' -exec chmod -x {} \; +find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.a' -exec chmod -x {} \; chmod 0755 %{buildroot}/%{_libdir}/dotnet/sdk/%{sdk_version}/AppHostTemplate/apphost -chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/libnethost.so chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/apphost +chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/libnethost.so chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/nethost.h +chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/singlefilehost install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/ install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/ @@ -508,6 +514,21 @@ echo "Testing build results for debug symbols..." %changelog +* Tue Sep 15 2020 Omair Majid - 5.0.100-0.6.preview8 +- Switch to a smaller tarball +- Fix restore-with-rid +- Resolves: RHBZ#1835019 + +* Mon Sep 14 2020 Omair Majid - 5.0.100-0.5.preview8 +- Fix package descriptions +- Fix permissions in installed files +- Resolves: RHBZ#1835019 + +* Fri Sep 11 2020 Omair Majid - 5.0.100-0.4.preview8 +- Update to .NET SDK 5.0 Preview 8 +- Remove "Core" from descriptions +- Resolves: RHBZ#1835019 + * Fri Aug 21 2020 Omair Majid - 5.0.100-0.3.preview4 - Generate new source tarball with test files removed. - Resolves: RHBZ#1835019