diff --git a/eng/Subsets.props b/eng/Subsets.props
index 96790e12b84f2..1a3afb83abdf5 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -49,7 +49,7 @@
libraries-installer-coreclr-mono
- libraries-installer-mono
+ libraries-installer-mono
@@ -62,7 +62,7 @@
$(DefaultLibrariesSubsets)-libtests
corehost-managed-depproj-pkgproj-bundle-installers-test
- depproj-pkgproj
+ depproj-pkgproj
@@ -79,7 +79,7 @@
- Mono
+ Mono
Mono
CoreCLR
diff --git a/eng/build.sh b/eng/build.sh
index 36970ae5e45e8..56a095edb829e 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -19,7 +19,7 @@ usage()
echo "Common settings:"
echo " --subset Build a subset, print available subsets with -subset help"
echo " --subsetCategory Build a subsetCategory, print available subsetCategories with -subset help"
- echo " --os Build operating system: Windows_NT, Linux, FreeBSD, OSX, iOS or Android"
+ echo " --os Build operating system: Windows_NT, Linux, FreeBSD, OSX, tvOS, iOS or Android"
echo " --arch Build platform: x86, x64, arm, armel or arm64"
echo " --configuration Build configuration: Debug, Release or [CoreCLR]Checked (short: -c)"
echo " --runtimeConfiguration Runtime build configuration: Debug, Release or [CoreCLR]Checked"
diff --git a/eng/codeOptimization.targets b/eng/codeOptimization.targets
index 922c21047a593..3687c865c9004 100644
--- a/eng/codeOptimization.targets
+++ b/eng/codeOptimization.targets
@@ -9,7 +9,7 @@
IBCMerge optimizations on Mac for now to unblock the offical build.
See issue https://github.com/dotnet/runtime/issues/33303
-->
- false
+ false
true
-
-
diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake
index 4e25a3df255eb..8bbe3f50abb6f 100644
--- a/eng/native/configureplatform.cmake
+++ b/eng/native/configureplatform.cmake
@@ -97,6 +97,18 @@ if(CLR_CMAKE_HOST_OS STREQUAL iOS)
endif()
endif(CLR_CMAKE_HOST_OS STREQUAL iOS)
+if(CLR_CMAKE_HOST_OS STREQUAL tvOS)
+ set(CLR_CMAKE_HOST_UNIX 1)
+ set(CLR_CMAKE_HOST_TVOS 1)
+ if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
+ set(CLR_CMAKE_HOST_UNIX_AMD64 1)
+ elseif(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
+ set(CLR_CMAKE_HOST_UNIX_ARM64 1)
+ else()
+ clr_unknown_arch()
+ endif()
+endif(CLR_CMAKE_HOST_OS STREQUAL tvOS)
+
if(CLR_CMAKE_HOST_OS STREQUAL Android)
set(CLR_CMAKE_HOST_UNIX 1)
set(CLR_CMAKE_HOST_LINUX 1)
@@ -269,6 +281,11 @@ if(CLR_CMAKE_TARGET_OS STREQUAL iOS)
set(CLR_CMAKE_TARGET_IOS 1)
endif(CLR_CMAKE_TARGET_OS STREQUAL iOS)
+if(CLR_CMAKE_TARGET_OS STREQUAL tvOS)
+ set(CLR_CMAKE_TARGET_UNIX 1)
+ set(CLR_CMAKE_TARGET_TVOS 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL tvOS)
+
if(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD)
set(CLR_CMAKE_TARGET_UNIX 1)
set(CLR_CMAKE_TARGET_FREEBSD 1)
diff --git a/eng/native/configuretools.cmake b/eng/native/configuretools.cmake
index 72c67de642716..653c3152a3406 100644
--- a/eng/native/configuretools.cmake
+++ b/eng/native/configuretools.cmake
@@ -47,7 +47,7 @@ if(NOT WIN32)
locate_toolchain_exec(ranlib CMAKE_RANLIB)
endif()
- if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
+ if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
locate_toolchain_exec(objdump CMAKE_OBJDUMP)
if(CLR_CMAKE_TARGET_ANDROID)
diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake
index 7824fb6a757ae..9a5014917ec61 100644
--- a/eng/native/functions.cmake
+++ b/eng/native/functions.cmake
@@ -254,7 +254,7 @@ function(strip_symbols targetName outputFilename)
if (CLR_CMAKE_HOST_UNIX)
set(strip_source_file $)
- if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
+ if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(strip_destination_file ${strip_source_file}.dwarf)
# Ensure that dsymutil and strip are present
@@ -276,7 +276,7 @@ function(strip_symbols targetName outputFilename)
COMMAND ${STRIP} -S ${strip_source_file}
COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
)
- else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
+ else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(strip_destination_file ${strip_source_file}.dbg)
add_custom_command(
@@ -288,7 +288,7 @@ function(strip_symbols targetName outputFilename)
COMMAND ${CMAKE_OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file}
COMMENT Stripping symbols from ${strip_source_file} into file ${strip_destination_file}
)
- endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
+ endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(${outputFilename} ${strip_destination_file} PARENT_SCOPE)
else(CLR_CMAKE_HOST_UNIX)
diff --git a/eng/native/init-distro-rid.sh b/eng/native/init-distro-rid.sh
index fdb332afc6e42..7a00378cce70c 100644
--- a/eng/native/init-distro-rid.sh
+++ b/eng/native/init-distro-rid.sh
@@ -159,6 +159,8 @@ initDistroRidGlobal()
distroRid="linux-$buildArch"
elif [ "$targetOs" = "OSX" ]; then
distroRid="osx-$buildArch"
+ elif [ "$targetOs" = "tvOS" ]; then
+ distroRid="tvos-$buildArch"
elif [ "$targetOs" = "iOS" ]; then
distroRid="ios-$buildArch"
elif [ "$targetOs" = "Android" ]; then
diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml
index b0753c0c69ef2..206151178b5fa 100644
--- a/eng/pipelines/common/platform-matrix.yml
+++ b/eng/pipelines/common/platform-matrix.yml
@@ -286,6 +286,46 @@ jobs:
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
+# tvOS x64
+
+- ${{ if containsValue(parameters.platforms, 'tvOS_x64') }}:
+ - template: xplat-setup.yml
+ parameters:
+ jobTemplate: ${{ parameters.jobTemplate }}
+ helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
+ osGroup: tvOS
+ archType: x64
+ platform: tvOS_x64
+ jobParameters:
+ runtimeFlavor: mono
+ stagedBuild: ${{ parameters.stagedBuild }}
+ buildConfig: ${{ parameters.buildConfig }}
+ ${{ if eq(parameters.passPlatforms, true) }}:
+ platforms: ${{ parameters.platforms }}
+ helixQueueGroup: ${{ parameters.helixQueueGroup }}
+ managedTestBuildOsGroup: OSX
+ ${{ insert }}: ${{ parameters.jobParameters }}
+
+# tvOS arm64
+
+- ${{ if containsValue(parameters.platforms, 'tvOS_arm64') }}:
+ - template: xplat-setup.yml
+ parameters:
+ jobTemplate: ${{ parameters.jobTemplate }}
+ helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
+ osGroup: tvOS
+ archType: arm64
+ platform: tvOS_arm64
+ jobParameters:
+ runtimeFlavor: mono
+ stagedBuild: ${{ parameters.stagedBuild }}
+ buildConfig: ${{ parameters.buildConfig }}
+ ${{ if eq(parameters.passPlatforms, true) }}:
+ platforms: ${{ parameters.platforms }}
+ helixQueueGroup: ${{ parameters.helixQueueGroup }}
+ managedTestBuildOsGroup: OSX
+ ${{ insert }}: ${{ parameters.jobParameters }}
+
# iOS x64
- ${{ if containsValue(parameters.platforms, 'iOS_x64') }}:
diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml
index 326d96638c731..4467951602b7e 100644
--- a/eng/pipelines/common/xplat-setup.yml
+++ b/eng/pipelines/common/xplat-setup.yml
@@ -109,6 +109,10 @@ jobs:
${{ if eq(parameters.osGroup, 'iOS') }}:
vmImage: 'macOS-10.14'
+ # Public OSX Build Pool
+ ${{ if eq(parameters.osGroup, 'tvOS') }}:
+ vmImage: 'macOS-10.14'
+
# Official Build Windows Pool
${{ if and(eq(parameters.osGroup, 'Windows_NT'), ne(variables['System.TeamProject'], 'public')) }}:
name: NetCoreInternal-Pool
diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml
index 15f513720b986..ca4f9536f9a2e 100644
--- a/eng/pipelines/installer/jobs/base-job.yml
+++ b/eng/pipelines/installer/jobs/base-job.yml
@@ -127,7 +127,7 @@ jobs:
$(CommonMSBuildArgs)
$(OfficialBuildArg)
- - ${{ if in(parameters.osGroup, 'iOS', 'Android') }}:
+ - ${{ if in(parameters.osGroup, 'iOS', 'tvOS', 'Android') }}:
- name: CommonMSBuildArgs
value: >-
diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml
index af50bb8f2ba45..915708ce7822e 100644
--- a/eng/pipelines/libraries/base-job.yml
+++ b/eng/pipelines/libraries/base-job.yml
@@ -66,6 +66,10 @@ jobs:
- ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
- _runtimeOSArg: -os ${{ parameters.osGroup }}
+ # force a value for OS when cross-building tvOS on OSX
+ - ${{ if eq(parameters.osGroup, 'tvOS') }}:
+ - _runtimeOSArg: -os ${{ parameters.osGroup }}
+
# force a value for OS when cross-building iOS on OSX
- ${{ if eq(parameters.osGroup, 'iOS') }}:
- _runtimeOSArg: -os ${{ parameters.osGroup }}
diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml
index 9beb7e42f0028..b26aec83e3062 100644
--- a/eng/pipelines/mono/templates/build-job.yml
+++ b/eng/pipelines/mono/templates/build-job.yml
@@ -65,6 +65,9 @@ jobs:
value: /p:OutputRid=linux-musl-${{ parameters.archType }}
- name: _PortableBuild
value: true
+ - ${{ if eq(parameters.osGroup, 'tvOS') }}:
+ - name: osOverride
+ value: -os tvOS
- ${{ if eq(parameters.osGroup, 'iOS') }}:
- name: osOverride
value: -os iOS
@@ -79,7 +82,7 @@ jobs:
# Linux builds use docker images with dependencies preinstalled,
# and FreeBSD builds use a build agent with dependencies
# preinstalled, so we only need this step for OSX and Windows.
- - ${{ if in(parameters.osGroup, 'OSX', 'iOS') }}:
+ - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}:
- script: sh $(Build.SourcesDirectory)/eng/install-native-dependencies.sh $(osGroup)
displayName: Install native dependencies
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml
index 7dcde6a23c3fe..b524c2d098f2f 100644
--- a/eng/pipelines/runtime-official.yml
+++ b/eng/pipelines/runtime-official.yml
@@ -94,6 +94,8 @@ stages:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
- iOS_x64
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
@@ -145,6 +147,8 @@ stages:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
- iOS_x64
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
@@ -203,6 +207,9 @@ stages:
buildFullPlatformManifest: false
runtimeFlavor: mono
platforms:
+ - tvOS_x64
+ - tvOS_arm64
+ - iOS_arm
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
- iOS_x64
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index 2bf8140c146e8..cded9f4807e80 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -256,6 +256,8 @@ jobs:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
- iOS_x64
- iOS_arm
- iOS_arm64
@@ -290,6 +292,8 @@ jobs:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
- iOS_x64
- iOS_arm
- iOS_arm64
@@ -411,6 +415,8 @@ jobs:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
- iOS_x64
@@ -427,6 +433,8 @@ jobs:
- Android_x86
- Android_arm
- Android_arm64
+ - tvOS_x64
+ - tvOS_arm64
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
- iOS_x64
@@ -523,6 +531,8 @@ jobs:
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
runtimeFlavor: mono
platforms:
+ - tvOS_x64
+ - tvOS_arm64
- iOS_x64
# - iOS_arm # https://github.com/dotnet/runtime/issues/34465
- iOS_arm64
diff --git a/src/installer/Directory.Build.props b/src/installer/Directory.Build.props
index 22afa2a91a80a..2a99c0661a485 100644
--- a/src/installer/Directory.Build.props
+++ b/src/installer/Directory.Build.props
@@ -95,6 +95,7 @@
linux-$(TargetArchitecture)
freebsd-$(TargetArchitecture)
ios-$(TargetArchitecture)
+ tvos-$(TargetArchitecture)
android-$(TargetArchitecture)
@@ -166,6 +167,7 @@
false
false
false
+ false
false
false
false
@@ -197,6 +199,12 @@
true
+
+
+ true
+ true
+
+
true
@@ -337,7 +345,7 @@
lib
.so
.dll
- .dylib
+ .dylib
lib
.a
.lib
@@ -347,7 +355,7 @@
.map
.ni.pdb
-
+
diff --git a/src/installer/pkg/packaging/osx/package.targets b/src/installer/pkg/packaging/osx/package.targets
index 1256a20d89bc8..722676fffc197 100644
--- a/src/installer/pkg/packaging/osx/package.targets
+++ b/src/installer/pkg/packaging/osx/package.targets
@@ -5,13 +5,13 @@
+ Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS'">
diff --git a/src/installer/pkg/projects/Directory.Build.targets b/src/installer/pkg/projects/Directory.Build.targets
index 1dba66750cb87..55c28ef3d5deb 100644
--- a/src/installer/pkg/projects/Directory.Build.targets
+++ b/src/installer/pkg/projects/Directory.Build.targets
@@ -19,7 +19,7 @@
out and skip building.
-->
true
diff --git a/src/installer/pkg/projects/netcoreapp/Directory.Build.props b/src/installer/pkg/projects/netcoreapp/Directory.Build.props
index 2aa9f80e46fcf..859b4a53acf80 100644
--- a/src/installer/pkg/projects/netcoreapp/Directory.Build.props
+++ b/src/installer/pkg/projects/netcoreapp/Directory.Build.props
@@ -10,6 +10,7 @@
Linux
OSX
iOS
+ tvOS
Android
FreeBSD
$(CoreCLRTargetOS)
diff --git a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
index b026723623a5b..849156bc8a3e9 100644
--- a/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
+++ b/src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
@@ -6,6 +6,7 @@
-->
true
+ true
true
$(TargetOS.ToLowerInvariant())
$(TargetOS.ToLowerInvariant())
+ $(TargetOS.ToLowerInvariant())
$(TargetOS.ToLowerInvariant())
@@ -98,6 +100,7 @@
<_portableOS Condition="'$(_runtimeOSFamily)' == 'FreeBSD'">freebsd
<_portableOS Condition="'$(RuntimeOS)' == 'WebAssembly'">webassembly
<_portableOS Condition="'$(RuntimeOS)' == 'ios'">ios
+ <_portableOS Condition="'$(RuntimeOS)' == 'tvos'">tvos
<_portableOS Condition="'$(RuntimeOS)' == 'android'">android
<_runtimeOS>$(RuntimeOS)
@@ -120,8 +123,8 @@
osx-x64
linux-x64
-
- osx-x64
+
+ osx-x64
$(ToolRuntimeRID)
diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt
index b3c9613a0e10b..d79ddc92efd74 100644
--- a/src/libraries/Native/Unix/CMakeLists.txt
+++ b/src/libraries/Native/Unix/CMakeLists.txt
@@ -5,7 +5,7 @@ project(CoreFX C)
include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
-if(CLR_CMAKE_TARGET_IOS)
+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()
@@ -134,7 +134,7 @@ else ()
endif ()
if(CLR_CMAKE_TARGET_ARCH_WASM)
-elseif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
+elseif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
add_definitions(-D__APPLE_USE_RFC_3542)
# We cannot enable "stack-protector-strong" on OS X due to a bug in clang compiler (current version 7.0.2)
@@ -158,7 +158,7 @@ endif(CLR_CMAKE_TARGET_FREEBSD)
# ./build-native.sh cmakeargs -DCLR_ADDITIONAL_COMPILER_OPTIONS=<...> cmakeargs -DCLR_ADDITIONAL_LINKER_FLAGS=<...>
#
if(CLR_CMAKE_TARGET_UNIX)
- if(NOT CLR_CMAKE_TARGET_ARCH_WASM AND NOT CLR_CMAKE_TARGET_IOS)
+ 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)
@@ -179,7 +179,7 @@ include(configure.cmake)
add_subdirectory(System.IO.Compression.Native)
if (NOT CLR_CMAKE_TARGET_ARCH_WASM)
-if (NOT CLR_CMAKE_TARGET_IOS) # TODO: reenable
+if (NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS) # TODO: reenable
add_subdirectory(System.IO.Ports.Native)
endif()
endif()
@@ -197,6 +197,11 @@ elseif(CLR_CMAKE_TARGET_IOS)
#add_subdirectory(System.Globalization.Native) # TODO: reenable
# System.Security.Cryptography.Native is intentionally disabled on iOS
# it is only used for interacting with OpenSSL which isn't useful there
+elseif(CLR_CMAKE_TARGET_TVOS)
+ #add_subdirectory(System.Net.Security.Native) # no gssapi on tvOS, see https://developer.apple.com/documentation/gss
+ #add_subdirectory(System.Globalization.Native) # TODO: reenable
+ # System.Security.Cryptography.Native is intentionally disabled on tvOS
+ # it is only used for interacting with OpenSSL which isn't useful there
elseif(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS)
add_subdirectory(System.Globalization.Native)
#add_subdirectory(System.Net.Security.Native) # TODO: reenable
@@ -207,6 +212,6 @@ else()
add_subdirectory(System.Security.Cryptography.Native)
endif()
-if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS)
+if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
add_subdirectory(System.Security.Cryptography.Native.Apple)
endif()
diff --git a/src/libraries/Native/Unix/Common/pal_config.h.in b/src/libraries/Native/Unix/Common/pal_config.h.in
index d177e6606767f..c74c4c9759304 100644
--- a/src/libraries/Native/Unix/Common/pal_config.h.in
+++ b/src/libraries/Native/Unix/Common/pal_config.h.in
@@ -11,6 +11,7 @@
#cmakedefine01 HAVE_GETIFADDRS
#cmakedefine01 HAVE_UTSNAME_DOMAINNAME
#cmakedefine01 HAVE_STAT64
+#cmakedefine01 HAVE_FORK
#cmakedefine01 HAVE_VFORK
#cmakedefine01 HAVE_PIPE2
#cmakedefine01 HAVE_STAT_BIRTHTIME
diff --git a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
index 3c4762c90f0eb..bcfc5dd106a47 100644
--- a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
+++ b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
@@ -88,7 +88,7 @@ set_target_properties(System.Globalization.Native-Static PROPERTIES OUTPUT_NAME
install (TARGETS System.Globalization.Native-Static DESTINATION .)
-if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_ANDROID)
+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)
add_custom_command(TARGET System.Globalization.Native POST_BUILD
COMMENT "Verifying System.Globalization.Native.so dependencies"
diff --git a/src/libraries/Native/Unix/System.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Native/CMakeLists.txt
index 11d3456ec7c3f..698cf37a51e17 100644
--- a/src/libraries/Native/Unix/System.Native/CMakeLists.txt
+++ b/src/libraries/Native/Unix/System.Native/CMakeLists.txt
@@ -22,7 +22,7 @@ set(NATIVE_SOURCES
pal_sysctl.c
)
-if (CLR_CMAKE_TARGET_IOS)
+if (CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(NATIVE_SOURCES ${NATIVE_SOURCES}
pal_log.m
pal_searchpath.m)
@@ -69,7 +69,7 @@ add_library(System.Native-Static
${NATIVE_SOURCES}
)
-if (CLR_CMAKE_TARGET_IOS)
+if (CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
target_link_libraries(System.Native "-framework Foundation")
endif ()
diff --git a/src/libraries/Native/Unix/System.Native/pal_process.c b/src/libraries/Native/Unix/System.Native/pal_process.c
index d05eb9335691a..93d41880092b0 100644
--- a/src/libraries/Native/Unix/System.Native/pal_process.c
+++ b/src/libraries/Native/Unix/System.Native/pal_process.c
@@ -220,6 +220,7 @@ int32_t SystemNative_ForkAndExecProcess(const char* filename,
int32_t* stdoutFd,
int32_t* stderrFd)
{
+#if HAVE_FORK
#if !HAVE_PIPE2
bool haveProcessCreateLock = false;
#endif
@@ -509,6 +510,9 @@ done:;
free(getGroupsBuffer);
return success ? 0 : -1;
+#else
+ return -1;
+#endif
}
FILE* SystemNative_POpen(const char* command, const char* type)
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt
index 1cdfbfe99be83..5a424ab6eaf70 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt
@@ -25,6 +25,10 @@ if (CLR_CMAKE_TARGET_IOS)
add_definitions(-DTARGET_IOS)
endif()
+if (CLR_CMAKE_TARGET_TVOS)
+ add_definitions(-DTARGET_TVOS)
+endif()
+
add_library(System.Security.Cryptography.Native.Apple
SHARED
${NATIVECRYPTO_SOURCES}
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.c
index a7ff6ae370111..86743f186b369 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.c
@@ -4,7 +4,7 @@
#include "pal_ecc.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
int32_t AppleCryptoNative_EccGenerateKey(
int32_t keySizeBits, SecKeychainRef tempKeychain, SecKeyRef* pPublicKey, SecKeyRef* pPrivateKey, int32_t* pOSStatus)
{
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.h
index 859f0b8c11c43..0df9cdd4c28d1 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.h
@@ -9,7 +9,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Generate an ECC keypair of the specified size.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.c
index 7cc506fd6e2f1..287b73e5d9e97 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.c
@@ -5,7 +5,7 @@
#include "pal_keychain.h"
#include "pal_utilities.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
int32_t AppleCryptoNative_SecKeychainItemCopyKeychain(SecKeychainItemRef item, SecKeychainRef* pKeychainOut)
{
if (pKeychainOut != NULL)
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.h
index dab2e9bcc0e4a..d55ac09111915 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.h
@@ -9,7 +9,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Get a CFRetain()ed SecKeychainRef value for the keychain to which the keychain item belongs.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.c
index 0f53b4cca644c..2e2568a2a3ab8 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.c
@@ -4,7 +4,7 @@
#include "pal_rsa.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
static int32_t ExecuteCFDataTransform(
SecTransformRef xform, uint8_t* pbData, int32_t cbData, CFDataRef* pDataOut, CFErrorRef* pErrorOut);
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.h
index 14df62a70b4aa..14ce54534d87b 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.h
@@ -10,7 +10,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Generate a new RSA keypair with the specified key size, in bits.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.c
index 58d6ab46ec457..c7a5c726ca364 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.c
@@ -4,7 +4,7 @@
#include "pal_sec.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
CFStringRef AppleCryptoNative_SecCopyErrorMessageString(int32_t osStatus)
{
return SecCopyErrorMessageString(osStatus, NULL);
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.h
index 966621875931b..b6f10f714ff44 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.h
@@ -10,7 +10,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Get an error message for an OSStatus error from the security library.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.c
index e7fc650bbacc0..84c3bc09b6755 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.c
@@ -5,7 +5,7 @@
#include "pal_seckey.h"
#include "pal_utilities.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
int32_t AppleCryptoNative_SecKeyExport(
SecKeyRef pKey, int32_t exportPrivate, CFStringRef cfExportPassphrase, CFDataRef* ppDataOut, int32_t* pOSStatus)
{
@@ -141,7 +141,7 @@ uint64_t AppleCryptoNative_SecKeyGetSimpleKeySizeInBytes(SecKeyRef publicKey)
return SecKeyGetBlockSize(publicKey);
}
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
OSStatus ExportImportKey(SecKeyRef* key, SecExternalItemType type)
{
SecExternalFormat dataFormat = kSecFormatOpenSSL;
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.h
index d4dd95ab81fc0..34d3714ede425 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.h
@@ -17,7 +17,7 @@ static const int32_t kErrorSeeError = -2;
static const int32_t kErrorUnknownAlgorithm = -3;
static const int32_t kErrorUnknownState = -4;
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Export a key object.
@@ -61,7 +61,7 @@ For ECC the value should not be used.
*/
PALEXPORT uint64_t AppleCryptoNative_SecKeyGetSimpleKeySizeInBytes(SecKeyRef publicKey);
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Export a key and re-import it to the NULL keychain.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.c
index 792ffeb455004..033eee632f050 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.c
@@ -4,7 +4,7 @@
#include "pal_signverify.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
static int32_t ExecuteSignTransform(SecTransformRef signer, CFDataRef* pSignatureOut, CFErrorRef* pErrorOut);
static int32_t ExecuteVerifyTransform(SecTransformRef verifier, CFErrorRef* pErrorOut);
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.h
index a8ff06660460b..0a46821ef7006 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.h
@@ -10,7 +10,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Generate a signature for algorithms which require only the data hash blob, like DSA and ECDSA.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ssl.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ssl.c
index c77218e51204a..9cdd6ddcb5fbb 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ssl.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ssl.c
@@ -585,7 +585,7 @@ int32_t AppleCryptoNative_SslSetEnabledCipherSuites(SSLContextRef sslContext, co
// Max numCipherSuites is 2^16 (all possible cipher suites)
assert(numCipherSuites < (1 << 16));
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
if (sizeof(SSLCipherSuite) == sizeof(uint32_t))
{
#pragma clang diagnostic push
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.c
index 7167ecf9b04c5..86cb60831788f 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.c
@@ -5,7 +5,7 @@
#include "pal_trust.h"
#include "pal_utilities.h"
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
static bool CheckTrustMatch(SecCertificateRef cert,
SecTrustSettingsDomain domain,
SecTrustSettingsResult result,
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.h
index 6776fc35e3b7e..50e0a95ca6701 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.h
@@ -9,7 +9,7 @@
#include
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Enumerate the certificates which are root trusted by the user.
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.c b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.c
index 08d7974c16e79..dfe6277fbf60a 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.c
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.c
@@ -108,7 +108,7 @@ PAL_X509ContentType AppleCryptoNative_X509GetContentType(uint8_t* pbData, int32_
return PAL_Certificate;
}
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
SecExternalFormat dataFormat = kSecFormatPKCS7;
SecExternalFormat actualFormat = dataFormat;
SecExternalItemType itemType = kSecItemTypeAggregate;
@@ -258,7 +258,7 @@ int32_t AppleCryptoNative_X509CopyPrivateKeyFromIdentity(SecIdentityRef identity
return SecIdentityCopyPrivateKey(identity, pPrivateKeyOut);
}
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
static int32_t ReadX509(uint8_t* pbData,
int32_t cbData,
PAL_X509ContentType contentType,
diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.h b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.h
index 5b712e0c2ea8d..17270ae6e662b 100644
--- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.h
+++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.h
@@ -74,7 +74,7 @@ pPrivateKeyOut: Receives a SecKeyRef for the private key associated with the ide
*/
PALEXPORT int32_t AppleCryptoNative_X509CopyPrivateKeyFromIdentity(SecIdentityRef identity, SecKeyRef* pPrivateKeyOut);
-#ifndef TARGET_IOS
+#if !defined(TARGET_IOS) && !defined(TARGET_TVOS)
/*
Read cbData bytes of data from pbData and interpret it to a collection of certificates (or identities).
diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake
index c97d318fee90a..5538a6d98f1fa 100644
--- a/src/libraries/Native/Unix/configure.cmake
+++ b/src/libraries/Native/Unix/configure.cmake
@@ -20,6 +20,8 @@ elseif (CLR_CMAKE_TARGET_OSX)
include_directories(SYSTEM /usr/local/include)
elseif (CLR_CMAKE_TARGET_IOS)
set(PAL_UNIX_NAME \"IOS\")
+elseif (CLR_CMAKE_TARGET_TVOS)
+ set(PAL_UNIX_NAME \"TVOS\")
elseif (CLR_CMAKE_TARGET_FREEBSD)
set(PAL_UNIX_NAME \"FREEBSD\")
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/local/include)
@@ -110,6 +112,11 @@ check_symbol_exists(
ifaddrs.h
HAVE_GETIFADDRS)
+check_symbol_exists(
+ fork
+ unistd.h
+ HAVE_FORK)
+
check_symbol_exists(
lseek64
unistd.h
@@ -457,6 +464,13 @@ if(CLR_CMAKE_TARGET_IOS)
unset(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP)
unset(HAVE_CLOCK_MONOTONIC) # only exists on iOS 10+
unset(HAVE_CLOCK_REALTIME) # only exists on iOS 10+
+ unset(HAVE_FORK) # exists but blocked by kernel
+elseif(CLR_CMAKE_TARGET_TVOS)
+ # Manually set results from check_c_source_runs() since it's not possible to actually run it during CMake configure checking
+ unset(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP)
+ unset(HAVE_CLOCK_MONOTONIC) # only exists on iOS 10+
+ unset(HAVE_CLOCK_REALTIME) # only exists on iOS 10+
+ unset(HAVE_FORK) # exists but blocked by kernel
elseif(CLR_CMAKE_TARGET_ANDROID)
# Manually set results from check_c_source_runs() since it's not possible to actually run it during CMake configure checking
unset(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP)
@@ -726,7 +740,7 @@ check_symbol_exists(
HAVE_TCP_FSM_H
)
-if(CLR_CMAKE_TARGET_IOS)
+if(CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(HAVE_IOS_NET_ROUTE_H 1)
set(CMAKE_EXTRA_INCLUDE_FILES sys/types.h "${CMAKE_CURRENT_SOURCE_DIR}/System.Native/ios/net/route.h")
else()
diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh
index 1cf9339629960..0bc559acc3729 100755
--- a/src/libraries/Native/build-native.sh
+++ b/src/libraries/Native/build-native.sh
@@ -56,6 +56,9 @@ if [[ "$__BuildArch" == wasm ]]; then
elif [[ "$__TargetOS" == iOS ]]; then
# nothing to do here
true
+elif [[ "$__TargetOS" == tvOS ]]; then
+ # nothing to do here
+ true
elif [[ "$__TargetOS" == Android && -z "$ROOTFS_DIR" ]]; then
# nothing to do here
true
@@ -115,6 +118,19 @@ elif [[ "$__TargetOS" == iOS ]]; then
echo "Error: Unknown iOS architecture $__BuildArch."
exit 1
fi
+elif [[ "$__TargetOS" == tvOS ]]; then
+ __CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS $__CMakeArgs"
+ # set default tvOS device deployment target
+ # keep in sync with tvOSVersionMin in src/mono/Directory.Build.props
+ __CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 $__CMakeArgs"
+ if [[ "$__BuildArch" == x64 ]]; then
+ __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
+ elif [[ "$__BuildArch" == arm64 ]]; then
+ __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
+ else
+ echo "Error: Unknown tvOS architecture $__BuildArch."
+ exit 1
+ fi
fi
# Set the remaining variables based upon the determined build configuration
diff --git a/src/libraries/OSGroups.json b/src/libraries/OSGroups.json
index 31cccf1cfbf9b..062533affcfd7 100644
--- a/src/libraries/OSGroups.json
+++ b/src/libraries/OSGroups.json
@@ -22,6 +22,11 @@
"Unix"
]
},
+ "tvOS": {
+ "#import": [
+ "Unix"
+ ]
+ },
"Android": {
"#import": [
"Linux"
@@ -38,4 +43,4 @@
]
}
}
-}
\ No newline at end of file
+}
diff --git a/src/libraries/System.Console/src/System.Console.csproj b/src/libraries/System.Console/src/System.Console.csproj
index 39c094f262172..1415fce320a6a 100644
--- a/src/libraries/System.Console/src/System.Console.csproj
+++ b/src/libraries/System.Console/src/System.Console.csproj
@@ -3,7 +3,7 @@
System.Console
System.Console
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
@@ -21,8 +21,8 @@
Common\System\Text\ConsoleEncoding.cs
-
-
+
+
Common\Interop\OSX\Interop.Log.cs
@@ -174,7 +174,7 @@
-
+
@@ -292,4 +292,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj
index 5710bf4b86560..0712bcb677115 100644
--- a/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj
+++ b/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj
@@ -4,7 +4,7 @@
true
true
SR.Odbc_PlatformNotSupported
- netcoreapp2.0-FreeBSD;netcoreapp2.0-Linux;netcoreapp2.0-OSX;netcoreapp2.0-Windows_NT;net461-Windows_NT;netstandard2.0;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Windows_NT;$(NetFrameworkCurrent)-Windows_NT
+ netcoreapp2.0-FreeBSD;netcoreapp2.0-Linux;netcoreapp2.0-OSX;netcoreapp2.0-Windows_NT;net461-Windows_NT;netstandard2.0;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Windows_NT;$(NetFrameworkCurrent)-Windows_NT
true
true
@@ -128,7 +128,7 @@
Common\Interop\Linux\Interop.Libraries.cs
-
+
Common\Interop\OSX\Interop.Libraries.cs
@@ -186,4 +186,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj b/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj
index 20f3945356973..7136986e7836c 100644
--- a/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj
+++ b/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj
@@ -1,7 +1,7 @@
$(DefineConstants);TargetsWindows
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetFrameworkCurrent)-Windows_NT
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetFrameworkCurrent)-Windows_NT
@@ -25,7 +25,7 @@
Common\Interop\Linux\Interop.Libraries.cs
-
+
Common\Interop\OSX\Interop.Libraries.cs
diff --git a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj
index ce8806c4e3f09..f6e156df51638 100644
--- a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj
+++ b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj
@@ -5,7 +5,7 @@
$(DefineConstants);FEATURE_REGISTRY
true
$(NoWarn);CS1573
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
@@ -402,7 +402,7 @@
Common\System\Text\ReusableTextReader.cs
-
+
@@ -468,4 +468,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj b/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj
index 8249c25a1789d..6476f8cff3335 100644
--- a/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj
+++ b/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj
@@ -1,7 +1,7 @@
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD
enable
@@ -87,7 +87,7 @@
Common\Interop\Unix\Interop.Stat.cs
-
+
System.IO.FileSystem\src\System\IO\FileSystem.Exists.Unix.cs
@@ -142,10 +142,10 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj b/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj
index 06920cf527ff8..589fb29ae2101 100644
--- a/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj
+++ b/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj
@@ -1,7 +1,7 @@
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD
@@ -33,7 +33,7 @@
Common\System\IO\TempDirectory.cs
-
+
Common\Interop\Unix\Interop.Libraries.cs
diff --git a/src/libraries/System.Net.Http/src/System.Net.Http.csproj b/src/libraries/System.Net.Http/src/System.Net.Http.csproj
index 669571d8e63fb..cebece24f4e13 100644
--- a/src/libraries/System.Net.Http/src/System.Net.Http.csproj
+++ b/src/libraries/System.Net.Http/src/System.Net.Http.csproj
@@ -7,10 +7,10 @@
$(NoWarn);0436;CS1573
true
$(DefineConstants);HTTP_DLL
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
-
+
$(DefineConstants);SYSNETHTTP_NO_OPENSSL
@@ -440,11 +440,11 @@
Common\System\Net\Security\Unix\SafeDeleteNegoContext.cs
-
+
-
+
@@ -757,7 +757,7 @@
Common\System\Threading\Tasks\TaskToApm.cs
-
+
Common\Interop\Unix\System.Security.Cryptography.Native\Interop.ASN1.cs
diff --git a/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj b/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj
index 6350fbf6cd779..33d33d6ad9e8f 100644
--- a/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj
+++ b/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj
@@ -3,7 +3,7 @@
../../src/Resources/Strings.resx
true
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
annotations
@@ -330,10 +330,10 @@
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.cs
-
+
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.OSX.cs
-
+
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.Unix.cs
@@ -344,7 +344,7 @@
-
+
diff --git a/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj b/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj
index 8bde618f1f0cf..1dafbcc8a6694 100644
--- a/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj
+++ b/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj
@@ -4,7 +4,7 @@
Library
true
$(NoWarn);CA1823
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD
enable
@@ -217,7 +217,7 @@
-
+
@@ -240,7 +240,7 @@
Common\Interop\BSD\System.Native\Interop.TcpConnectionInfo.cs
-
+
@@ -299,4 +299,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.Net.Security/src/System.Net.Security.csproj b/src/libraries/System.Net.Security/src/System.Net.Security.csproj
index 06a744ad0f74e..dbf541c0f4a3d 100644
--- a/src/libraries/System.Net.Security/src/System.Net.Security.csproj
+++ b/src/libraries/System.Net.Security/src/System.Net.Security.csproj
@@ -2,12 +2,12 @@
System.Net.Security
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
$(DefineConstants);PRODUCT
enable
-
+
$(DefineConstants);SYSNETSECURITY_NO_OPENSSL
@@ -321,7 +321,7 @@
-
+
@@ -403,7 +403,7 @@
Common\System\Net\Security\Unix\SafeFreeSslCredentials.cs
-
+
Common\Interop\OSX\Interop.CoreFoundation.cs
diff --git a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
index 4e8a39bf297b8..5eec6b93d2ba5 100644
--- a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
+++ b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
@@ -1724,7 +1724,7 @@
-
+
@@ -1737,8 +1737,8 @@
-
-
+
+
diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Path.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Path.Unix.cs
index 23c35de1d521f..25cec9463f3f2 100644
--- a/src/libraries/System.Private.CoreLib/src/System/IO/Path.Unix.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/IO/Path.Unix.cs
@@ -136,7 +136,7 @@ internal static bool IsCaseSensitive
{
get
{
- #if TARGET_OSX || TARGET_IOS
+ #if TARGET_OSX || TARGET_IOS || TARGET_TVOS
return false;
#else
return true;
diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/LibraryNameVariation.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/LibraryNameVariation.Unix.cs
index d4009b73e9808..5521481f97052 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/LibraryNameVariation.Unix.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/LibraryNameVariation.Unix.cs
@@ -10,7 +10,7 @@ namespace System.Runtime.Loader
internal partial struct LibraryNameVariation
{
private const string LibraryNamePrefix = "lib";
-#if TARGET_OSX || TARGET_IOS
+#if TARGET_OSX || TARGET_IOS || TARGET_TVOS
private const string LibraryNameSuffix = ".dylib";
#else
private const string LibraryNameSuffix = ".so";
diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj
index 680eedda4281d..2ad70ec82da00 100644
--- a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj
+++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj
@@ -3,7 +3,7 @@
true
$(DefineConstants);INTERNAL_ASYMMETRIC_IMPLEMENTATIONS
CS1573;CS3016;CA5350;CA5351;CA5379;CA5384;CA5385;$(NoWarn)
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
@@ -487,7 +487,7 @@
Common\System\Security\Cryptography\RSACng.SignVerify.cs
-
+
Common\Interop\Unix\System.Security.Cryptography.Native\Interop.ASN1.cs
@@ -595,7 +595,7 @@
-
+
Common\Interop\OSX\Interop.CoreFoundation.cs
@@ -731,4 +731,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj
index 233e12628355f..19f6ae909d28f 100644
--- a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj
+++ b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj
@@ -2,11 +2,11 @@
System.Security.Cryptography.Encoding
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
-
-
+
+
@@ -62,7 +62,7 @@
Common\Interop\Windows\Interop.Libraries.cs
-
+
@@ -100,7 +100,7 @@
Common\Microsoft\Win32\SafeHandles\X509ExtensionSafeHandles.Unix.cs
-
+
Common\System\Memory\PointerMemoryManager.cs
@@ -145,7 +145,7 @@
-
+
diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj
index ea41dbc7c8b7b..1d0586c53367d 100644
--- a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj
+++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj
@@ -4,7 +4,7 @@
System.Security.Cryptography.X509Certificates
true
$(NoWarn);CS3016;CA5379;CA5384;CA5385
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
enable
@@ -299,7 +299,7 @@
Common\Microsoft\Win32\SafeHandles\SafeBCryptKeyHandle.cs
-
+
System\Security\Cryptography\X509Certificates\Asn1\DistributionPointAsn.xml
@@ -453,7 +453,7 @@
Common\System\IO\PersistedFiles.Names.Unix.cs
-
+
Common\Internal\Cryptography\AsymmetricAlgorithmHelpers.Hash.cs
@@ -770,7 +770,7 @@
-
+
@@ -780,4 +780,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj b/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj
index 740546b3d24b7..3f129ff6efe9a 100644
--- a/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj
+++ b/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj
@@ -4,7 +4,7 @@
$(DefineConstants);HAVE_THUMBPRINT_OVERLOADS
$(DefineConstants);Unix
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS
@@ -63,7 +63,7 @@
-
+
Common\Interop\Unix\Interop.Libraries.cs
@@ -94,7 +94,7 @@
-
+
Common\Interop\OSX\Interop.CoreFoundation.cs
@@ -136,4 +136,4 @@
-
\ No newline at end of file
+
diff --git a/src/libraries/targetframework.props b/src/libraries/targetframework.props
index 8086c3ed63dbe..6f55f1411fd08 100644
--- a/src/libraries/targetframework.props
+++ b/src/libraries/targetframework.props
@@ -34,6 +34,13 @@
osx
+
+
+ true
+ true
+ tvos
+
+
true
diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props
index 3492d62674742..ec3d5f6dbf35e 100644
--- a/src/mono/Directory.Build.props
+++ b/src/mono/Directory.Build.props
@@ -38,10 +38,12 @@
true
true
true
+ true
true
+ true
true
true
- true
+ true
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 55c4e17fba999..f4f43c2c0a99f 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -15,8 +15,10 @@
libcoreclr.dylib
libcoreclr.so
libmono.dylib
+ libmono.dylib
libmonosgen-2.0.so
libmono.a
+ libmono.a
libmonosgen-2.0.a
$(CoreClrFileName)
$(Configuration)
@@ -25,14 +27,17 @@
$(ArtifactsDir)bin\testhost\$(NetCoreAppCurrent)-$(TargetOS)-$(LibrariesTestConfig)-$(Platform)\
$(LibrariesTesthostRoot)shared\Microsoft.NETCore.App\$(ProductVersion)\
/Applications/Xcode.app/Contents/Developer
+ true
+ true
-
+
+
-
+
@@ -73,6 +78,206 @@
<_MonoCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=0" />
+
+
+ <_MonoConfigureParams Condition="'$(Platform)' == 'arm64'" Include="--host=aarch64-apple-darwin10" />
+ <_MonoConfigureParams Include="--disable-boehm" />
+ <_MonoConfigureParams Include="--disable-btls" />
+ <_MonoConfigureParams Include="--disable-executables" />
+ <_MonoConfigureParams Include="--disable-icall-tables" />
+ <_MonoConfigureParams Include="--disable-iconv" />
+ <_MonoConfigureParams Include="--disable-mcs-build" />
+ <_MonoConfigureParams Include="--disable-nls" />
+ <_MonoConfigureParams Include="--disable-visibility-hidden" />
+ <_MonoConfigureParams Include="--enable-dtrace=no" />
+ <_MonoConfigureParams Include="--enable-icall-export" />
+ <_MonoConfigureParams Include="--enable-maintainer-mode" />
+ <_MonoConfigureParams Include="--enable-minimal=ssa,com,interpreter,jit,portability,assembly_remapping,attach,verifier,full_messages,appdomains,security,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,remoting,shared_perfcounters,gac" />
+ <_MonoConfigureParams Include="--enable-monotouch" />
+ <_MonoConfigureParams Include="--with-lazy-gc-thread-creation=yes" />
+ <_MonoConfigureParams Include="--with-tls=pthread" />
+ <_MonoConfigureParams Include="--without-ikvm-native" />
+ <_MonoConfigureParams Include="--without-sigaltstack" />
+ <_MonoConfigureParams Include="--disable-cooperative-suspend" />
+ <_MonoConfigureParams Include="--disable-hybrid-suspend" />
+ <_MonoConfigureParams Include="--enable-llvm-runtime" />
+ <_MonoConfigureParams Include="--with-bitcode=yes" />
+
+ <_MonoAC_VARS Include="ac_cv_c_bigendian=no" />
+ <_MonoAC_VARS Include="ac_cv_func_fstatat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_readlinkat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_getpwuid_r=no" />
+ <_MonoAC_VARS Include="ac_cv_func_posix_getpwuid_r=yes" />
+ <_MonoAC_VARS Include="ac_cv_header_curses_h=no" />
+ <_MonoAC_VARS Include="ac_cv_header_localcharset_h=no" />
+ <_MonoAC_VARS Include="ac_cv_header_sys_user_h=no" />
+ <_MonoAC_VARS Include="ac_cv_func_getentropy=no" />
+ <_MonoAC_VARS Include="ac_cv_func_futimens=no" />
+ <_MonoAC_VARS Include="ac_cv_func_utimensat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_shm_open_working_with_mmap=no" />
+ <_MonoAC_VARS Include="mono_cv_sizeof_sunpath=104" />
+ <_MonoAC_VARS Include="mono_cv_uscore=yes" />
+ <_MonoAC_VARS Include="ac_cv_func_system=no" />
+ <_MonoAC_VARS Include="ac_cv_func_pthread_kill=no" />
+ <_MonoAC_VARS Include="ac_cv_func_kill=no" />
+ <_MonoAC_VARS Include="ac_cv_func_sigaction=no" />
+ <_MonoAC_VARS Include="ac_cv_func_fork=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execv=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execve=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execvp=no" />
+ <_MonoAC_VARS Include="ac_cv_func_signal=no" />
+
+ <_MonoCFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCFLAGS Include="-isysroot $(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk" />
+ <_MonoCFLAGS Include="-mtvos-version-min=$(tvOSVersionMin)" />
+ <_MonoCFLAGS Include="-Wl,-application_extension" />
+ <_MonoCFLAGS Include="-fexceptions" />
+ <_MonoCFLAGS Include="-fembed-bitcode" />
+ <_MonoCFLAGS Include="-fno-gnu-inline-asm" />
+
+ <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCXXFLAGS Include="-isysroot $(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk" />
+ <_MonoCXXFLAGS Include="-mtvos-version-min=$(tvOSVersionMin)" />
+ <_MonoCXXFLAGS Include="-Wl,-application_extension" />
+ <_MonoCXXFLAGS Include="-fexceptions" />
+ <_MonoCXXFLAGS Include="-fembed-bitcode" />
+ <_MonoCXXFLAGS Include="-fno-gnu-inline-asm" />
+
+ <_MonoCPPFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCPPFLAGS Include="-isysroot $(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk" />
+ <_MonoCPPFLAGS Include="-mtvos-version-min=$(tvOSVersionMin)" />
+ <_MonoCPPFLAGS Include="-DMONOTOUCH=1" />
+ <_MonoCPPFLAGS Include="-DSMALL_CONFIG" />
+ <_MonoCPPFLAGS Include="-D_XOPEN_SOURCE" />
+ <_MonoCPPFLAGS Include="-DHOST_IOS" />
+ <_MonoCPPFLAGS Include="-DHOST_TVOS" />
+ <_MonoCPPFLAGS Include="-DHAVE_LARGE_FILE_SUPPORT=1" />
+
+ <_MonoLDFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoLDFLAGS Include="-Wl,-no_weak_imports" />
+ <_MonoLDFLAGS Include="-Wl,-bitcode_bundle" />
+ <_MonoLDFLAGS Include="-framework CoreFoundation" />
+ <_MonoLDFLAGS Include="-lobjc" />
+ <_MonoLDFLAGS Include="-lc++" />
+
+
+
+ <_MonoAotCrossConfigureParams Include="--host=x86_64-apple-darwin10" />
+ <_MonoAotCrossConfigureParams Condition="'$(Platform)' == 'arm64'" Include="--target=aarch64-darwin" />
+ <_MonoAotCrossConfigureParams Include="--with-cross-offsets=$(MonoObjDir)cross/offsets-$(Platform)-darwin.h" />
+ <_MonoAotCrossConfigureParams Include="--with-core=only" />
+ <_MonoAotCrossConfigureParams Include="--enable-maintainer-mode" />
+ <_MonoAotCrossConfigureParams Include="--enable-compile-warnings" />
+ <_MonoAotCrossConfigureParams Include="--prefix=$(MonoObjDir)cross/out" />
+ <_MonoAotCrossConfigureParams Include="--disable-boehm" />
+ <_MonoAotCrossConfigureParams Include="--disable-btls" />
+ <_MonoAotCrossConfigureParams Include="--disable-iconv" />
+ <_MonoAotCrossConfigureParams Include="--disable-libraries" />
+ <_MonoAotCrossConfigureParams Include="--disable-mcs-build" />
+ <_MonoAotCrossConfigureParams Include="--disable-nls" />
+ <_MonoAotCrossConfigureParams Include="--enable-dtrace=no" />
+ <_MonoAotCrossConfigureParams Include="--enable-icall-symbol-map" />
+ <_MonoAotCrossConfigureParams Include="--enable-minimal=com,remoting" />
+ <_MonoAotCrossConfigureParams Include="--enable-monotouch" />
+ <_MonoAotCrossConfigureParams Include="--disable-crash-reporting" />
+
+
+ <_MonoAotCrossAC_VARS Include="ac_cv_func_shm_open_working_with_mmap=no" />
+
+ <_MonoAotCrossCFLAGS Include="-O2" />
+ <_MonoAotCrossCFLAGS Include="-g" />
+ <_MonoAotCrossCFLAGS Include="-isysroot $(XcodeDir)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(macOSVersion).sdk" />
+ <_MonoAotCrossCFLAGS Include="-mmacosx-version-min=$(macOSVersionMin)" />
+ <_MonoAotCrossCFLAGS Include="-Qunused-arguments" />
+ <_MonoAotCrossCFLAGS Include="-m64" />
+
+ <_MonoAotCrossCXXFLAGS Include="-O2" />
+ <_MonoAotCrossCXXFLAGS Include="-g" />
+ <_MonoAotCrossCXXFLAGS Include="-isysroot $(XcodeDir)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(macOSVersion).sdk" />
+ <_MonoAotCrossCXXFLAGS Include="-mmacosx-version-min=$(macOSVersionMin)" />
+ <_MonoAotCrossCXXFLAGS Include="-Qunused-arguments" />
+ <_MonoAotCrossCXXFLAGS Include="-stdlib=libc++" />
+ <_MonoAotCrossCXXFLAGS Include="-m64" />
+
+ <_MonoAotCrossCPPFLAGS Include="-O2" />
+ <_MonoAotCrossCPPFLAGS Include="-g" />
+ <_MonoAotCrossCPPFLAGS Include="-DMONOTOUCH=1" />
+ <_MonoAotCrossCPPFLAGS Include="-m64" />
+
+ <_MonoAotCrossCXXPPFLAGS Include="-O2" />
+ <_MonoAotCrossCXXPPFLAGS Include="-g" />
+ <_MonoAotCrossCXXPPFLAGS Include="-m64" />
+
+ <_MonoAotCrossLDFLAGS Include="-stdlib=libc++" />
+
+ <_MonoAotCrossOffsetsToolParams Condition="'$(Platform)' == 'arm64'" Include="--abi=aarch64-apple-darwin10" />
+ <_MonoAotCrossOffsetsToolParams Include="--netcore" />
+ <_MonoAotCrossOffsetsToolParams Include="--targetdir="$(MonoObjDir)"" />
+ <_MonoAotCrossOffsetsToolParams Include="--monodir="$(MonoProjectRoot)"" />
+ <_MonoAotCrossOffsetsToolParams Include="--outfile="$(MonoObjDir)cross/offsets-$(Platform)-darwin.h"" />
+ <_MonoAotCrossOffsetsToolParams Include="--libclang="$(XcodeDir)/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib"" />
+ <_MonoAotCrossOffsetsToolParams Include="--sysroot="$(XcodeDir)/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS$(tvOSVersion).sdk"" />
+
+
+
+
+ <_MonoConfigureParams Include="--host=x86_64-apple-darwin10" />
+ <_MonoConfigureParams Include="--disable-boehm" />
+ <_MonoConfigureParams Include="--disable-btls" />
+ <_MonoConfigureParams Include="--disable-executables" />
+ <_MonoConfigureParams Include="--disable-iconv" />
+ <_MonoConfigureParams Include="--disable-mcs-build" />
+ <_MonoConfigureParams Include="--disable-nls" />
+ <_MonoConfigureParams Include="--disable-visibility-hidden" />
+ <_MonoConfigureParams Include="--enable-maintainer-mode" />
+ <_MonoConfigureParams Include="--enable-minimal=com,remoting,shared_perfcounters,gac" />
+ <_MonoConfigureParams Include="--enable-monotouch" />
+ <_MonoConfigureParams Include="--with-tls=pthread" />
+ <_MonoConfigureParams Include="--without-ikvm-native" />
+ <_MonoConfigureParams Include="--disable-cooperative-suspend" />
+ <_MonoConfigureParams Include="--disable-hybrid-suspend" />
+ <_MonoConfigureParams Include="--disable-crash-reporting" />
+
+ <_MonoAC_VARS Include="ac_cv_func_clock_nanosleep=no" />
+ <_MonoAC_VARS Include="ac_cv_func_fstatat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_readlinkat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_system=no" />
+ <_MonoAC_VARS Include="ac_cv_func_getentropy=no" />
+ <_MonoAC_VARS Include="ac_cv_func_futimens=no" />
+ <_MonoAC_VARS Include="ac_cv_func_utimensat=no" />
+ <_MonoAC_VARS Include="ac_cv_func_shm_open_working_with_mmap=no" />
+ <_MonoAC_VARS Include="mono_cv_uscore=yes" />
+ <_MonoAC_VARS Include="ac_cv_func_pthread_kill=no" />
+ <_MonoAC_VARS Include="ac_cv_func_kill=no" />
+ <_MonoAC_VARS Include="ac_cv_func_sigaction=no" />
+ <_MonoAC_VARS Include="ac_cv_func_fork=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execv=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execve=no" />
+ <_MonoAC_VARS Include="ac_cv_func_execvp=no" />
+ <_MonoAC_VARS Include="ac_cv_func_signal=no" />
+
+ <_MonoCFLAGS Include="-arch x86_64" />
+ <_MonoCFLAGS Include="-m64" />
+ <_MonoCFLAGS Include="-isysroot $(XcodeDir)/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator$(tvOSVersion).sdk" />
+ <_MonoCFLAGS Include="-mtvos-simulator-version-min=$(tvOSVersionMin)" />
+ <_MonoCFLAGS Include="-Wl,-application_extension" />
+
+ <_MonoCXXFLAGS Include="-arch x86_64" />
+ <_MonoCXXFLAGS Include="-m64" />
+ <_MonoCXXFLAGS Include="-isysroot $(XcodeDir)/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator$(tvOSVersion).sdk" />
+ <_MonoCXXFLAGS Include="-mtvos-simulator-version-min=$(tvOSVersionMin)" />
+ <_MonoCXXFLAGS Include="-Wl,-application_extension" />
+
+ <_MonoCPPFLAGS Include="-arch x86_64" />
+ <_MonoCPPFLAGS Include="-m64" />
+ <_MonoCPPFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(iOSVersion).sdk" />
+ <_MonoCPPFLAGS Include="-mtvos-simulator-version-min=$(tvOSVersionMin)" />
+ <_MonoCPPFLAGS Include="-Wl,-application_extension" />
+ <_MonoCPPFLAGS Include="-DMONOTOUCH=1" />
+ <_MonoCPPFLAGS Include="-DHOST_IOS" />
+ <_MonoCPPFLAGS Include="-DHOST_TVOS" />
+
+
<_MonoConfigureParams Condition="'$(Platform)' == 'arm64'" Include="--host=aarch64-apple-darwin10" />
@@ -449,7 +654,7 @@
-
+
<_MonoAotCrossCFLAGSOption Condition="@(_MonoAotCrossCFLAGS->Count()) > 0">CFLAGS="@(_MonoAotCrossCFLAGS, ' ')"
<_MonoAotCrossCXXFLAGSOption Condition="@(_MonoAotCrossCXXFLAGS->Count()) > 0">CXXFLAGS="@(_MonoAotCrossCXXFLAGS, ' ')"
<_MonoAotCrossCPPFLAGSOption Condition="@(_MonoAotCrossCPPFLAGS->Count()) > 0">CPPFLAGS="@(_MonoAotCrossCPPFLAGS, ' ')"
@@ -481,18 +686,18 @@
-
+
-
-
-
+
+
+
-
+
<_MonoBuildParams Include="/p:MONO_BUILD_DIR_PREFIX=""$(MonoObjDir)""" />
@@ -663,11 +868,13 @@
<_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x86'">$(MonoObjDir)Win32\Bin\$(Configuration)\mono-2.0-sgen.dll
<_MonoRuntimeFilePath Condition="'$(TargetsOSX)' == 'true'">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.dylib
<_MonoRuntimeFilePath Condition="'$(TargetsiOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib
+ <_MonoRuntimeFilePath Condition="'$(TargetstvOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib
<_MonoRuntimeFilePath Condition="'$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.so
<_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.so
- <_MonoRuntimeStaticFilePath Condition="'$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.a
+ <_MonoRuntimeStaticFilePath Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.a
<_MonoAotCrossFilePath Condition="'$(TargetsiOS)' == 'true' and '$(Platform)' == 'arm64'">$(MonoObjDir)cross\out\bin\aarch64-darwin-mono-sgen
<_MonoAotCrossFilePath Condition="'$(TargetsiOS)' == 'true' and '$(Platform)' == 'arm'">$(MonoObjDir)cross\out\bin\arm-darwin-mono-sgen
+ <_MonoAotCrossFilePath Condition="'$(TargetstvOS)' == 'true' and '$(Platform)' == 'arm64'">$(MonoObjDir)cross\out\bin\aarch64-darwin-mono-sgen
@@ -691,9 +898,9 @@
+ Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or'$(TargetsAndroid)' == 'true'"/>
-
+
diff --git a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
index cd45f2dc12df4..20ccd6ca77fc8 100644
--- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
+++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
@@ -142,6 +142,7 @@
$(DefineConstants);TARGET_WINDOWS
$(DefineConstants);TARGET_OSX
$(DefineConstants);TARGET_IOS
+ $(DefineConstants);TARGET_TVOS
@@ -289,7 +290,7 @@
-
+
Common\Interop\OSX\Interop.SearchPath.cs
diff --git a/src/mono/netcore/nuget/mono-packages.proj b/src/mono/netcore/nuget/mono-packages.proj
index 3beffcfd9959d..e6ca45736cd62 100644
--- a/src/mono/netcore/nuget/mono-packages.proj
+++ b/src/mono/netcore/nuget/mono-packages.proj
@@ -2,7 +2,7 @@
-
+