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 @@ - +