diff --git a/eng/Configurations.props b/eng/Configurations.props
index 12fe0471490d0d..eedf6a04d99560 100644
--- a/eng/Configurations.props
+++ b/eng/Configurations.props
@@ -12,7 +12,7 @@
- <__TargetOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">OSX
+ <__TargetOS Condition="'$(__TargetOS)' == '' and $([MSBuild]::IsOSPlatform('OSX'))">OSX
<__TargetOS Condition="'$(__TargetOS)' == '' and $([MSBuild]::IsOSPlatform('FREEBSD'))">FreeBSD
<__TargetOS Condition="'$(__TargetOS)' == '' and $([MSBuild]::IsOSPlatform('NETBSD'))">NetBSD
<__TargetOS Condition="'$(__TargetOS)' == '' and $([MSBuild]::IsOSUnixLike())">Linux
diff --git a/eng/Subsets.props b/eng/Subsets.props
index 6939ee71af00b9..9218251bbae333 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -58,6 +58,7 @@
libraries-installer-coreclr-mono
+ libraries-mono
corehost-managed-depproj-pkgproj-bundle-installers-test
all
@@ -76,6 +77,12 @@
<_subset>-$(_subset)-
+
+ Mono
+ Mono
+ CoreCLR
+
+
diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh
index ede287978e2286..c65f99a936b6ae 100755
--- a/eng/native/build-commons.sh
+++ b/eng/native/build-commons.sh
@@ -168,8 +168,9 @@ usage()
echo ""
echo "Common Options:"
echo ""
- echo "BuildArch can be: -arm, -armel, -arm64, -armel, x64, x86, -wasm"
+ echo "BuildArch can be: -arm, -armel, -arm64, x64, x86, -wasm"
echo "BuildType can be: -debug, -checked, -release"
+ echo "-os: target OS (defaults to running OS)"
echo "-bindir: output directory (defaults to $__ProjectRoot/artifacts)"
echo "-ci: indicates if this is a CI build."
echo "-clang: optional argument to build using clang in PATH (default)."
@@ -355,6 +356,16 @@ while :; do
__BuildArch=wasm
;;
+ os|-os)
+ if [[ -n "$2" ]]; then
+ __TargetOS="$2"
+ shift
+ else
+ echo "ERROR: 'os' requires a non-empty option argument"
+ exit 1
+ fi
+ ;;
+
*)
handle_arguments "$1" "$2"
if [[ "$__ShiftArgs" == 1 ]]; then
diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake
index b1e82b1c3b0a2d..174cce725d557e 100644
--- a/eng/native/configureplatform.cmake
+++ b/eng/native/configureplatform.cmake
@@ -80,6 +80,20 @@ if(CLR_CMAKE_HOST_OS STREQUAL Darwin)
set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_C_COMPILER} -o
-
+
lib
.dylib
diff --git a/src/installer/corehost/CMakeLists.txt b/src/installer/corehost/CMakeLists.txt
index 1d8dd85afdee8b..49bcbcfe1815eb 100644
--- a/src/installer/corehost/CMakeLists.txt
+++ b/src/installer/corehost/CMakeLists.txt
@@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.14.2)
project(corehost)
-include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake)
+include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
include(../settings.cmake)
include(../functions.cmake)
add_subdirectory(cli)
diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props
index 4ff8a6be977978..51d5f29a7d2558 100644
--- a/src/libraries/Directory.Build.props
+++ b/src/libraries/Directory.Build.props
@@ -41,11 +41,13 @@
arm
arm64
wasm
+ x64
x64
-
+
$(TargetOS.ToLowerInvariant())
+ $(TargetOS.ToLowerInvariant())
Debug
@@ -79,6 +81,13 @@
osx
+
+
+ true
+ true
+ ios
+
+
true
@@ -155,6 +164,7 @@
<_portableOS Condition="'$(_runtimeOSFamily)' == 'osx'">osx
<_portableOS Condition="'$(_runtimeOSFamily)' == 'FreeBSD'">freebsd
<_portableOS Condition="'$(RuntimeOS)' == 'WebAssembly'">webassembly
+ <_portableOS Condition="'$(RuntimeOS)' == 'ios'">ios
<_runtimeOS>$(RuntimeOS)
<_runtimeOS Condition="'$(_runtimeOS)' == 'tizen.4.0.0'">linux
@@ -171,6 +181,9 @@
osx-x64
linux-x64
+
+ osx-x64
+
<_portableOS Condition="'$(TargetOS)' == 'Unix' and '$(_runtimeOSFamily)' != 'osx' and '$(_runtimeOSFamily)' != 'FreeBSD' and '$(_runtimeOS)' != 'linux-musl'">linux
diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt
index 6f067a29aa0c75..ef99465e3c77e6 100644
--- a/src/libraries/Native/Unix/CMakeLists.txt
+++ b/src/libraries/Native/Unix/CMakeLists.txt
@@ -5,6 +5,10 @@ project(CoreFX C)
include(${CLR_ENG_NATIVE_DIR}/configureplatform.cmake)
+if(CLR_CMAKE_TARGET_IOS)
+ cmake_minimum_required(VERSION 3.14.5)
+endif()
+
if(NOT CLR_CMAKE_TARGET_ARCH_WASM)
cmake_policy(SET CMP0083 NEW)
endif(NOT CLR_CMAKE_TARGET_ARCH_WASM)
@@ -118,7 +122,7 @@ else ()
endif ()
if(CLR_CMAKE_TARGET_ARCH_WASM)
-elseif (CLR_CMAKE_TARGET_DARWIN)
+elseif (CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_IOS)
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)
@@ -156,6 +160,8 @@ if(CLR_CMAKE_TARGET_UNIX)
if (STRIP STREQUAL "STRIP-NOTFOUND")
message(FATAL_ERROR "strip not found")
endif()
+ elseif (CLR_CMAKE_TARGET_IOS)
+ # No object stripping for iOS
elseif (CLR_CMAKE_TARGET_ARCH_WASM)
# No object stripping for WASM
else (CLR_CMAKE_TARGET_DARWIN)
@@ -194,8 +200,10 @@ include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
add_subdirectory(System.IO.Compression.Native)
if (NOT CLR_CMAKE_TARGET_ARCH_WASM)
+if (NOT CLR_CMAKE_TARGET_IOS) # TODO: reenable
add_subdirectory(System.IO.Ports.Native)
endif()
+endif()
if(CMAKE_C_COMPILER_ID STREQUAL Clang)
add_compile_options(-Weverything)
@@ -204,11 +212,17 @@ endif()
add_subdirectory(System.Native)
if (NOT CLR_CMAKE_TARGET_ARCH_WASM)
+if (NOT CLR_CMAKE_TARGET_IOS) # TODO: reenable
add_subdirectory(System.Globalization.Native)
add_subdirectory(System.Net.Security.Native)
+endif()
+if (NOT CLR_CMAKE_TARGET_IOS)
+ # disable System.Security.Cryptography.Native build on iOS,
+ # only used for interacting with OpenSSL which isn't useful there
add_subdirectory(System.Security.Cryptography.Native)
endif()
+endif()
-if(CLR_CMAKE_TARGET_DARWIN)
+if(CLR_CMAKE_TARGET_DARWIN OR CLR_CMAKE_TARGET_IOS)
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 701c2c5dc1a65c..08e9fe7fd9f3ef 100644
--- a/src/libraries/Native/Unix/Common/pal_config.h.in
+++ b/src/libraries/Native/Unix/Common/pal_config.h.in
@@ -61,7 +61,11 @@
#cmakedefine01 HAVE_TCSANOW
#cmakedefine01 HAVE_IN_PKTINFO
#cmakedefine01 HAVE_IP_MREQN
-#cmakedefine01 HAVE_TCP_VAR_H
+#cmakedefine01 HAVE_NETINET_TCP_VAR_H
+#cmakedefine01 HAVE_NETINET_UDP_VAR_H
+#cmakedefine01 HAVE_NETINET_IP_VAR_H
+#cmakedefine01 HAVE_NETINET_ICMP_VAR_H
+#cmakedefine01 HAVE_IOS_NET_ROUTE_H
#cmakedefine01 HAVE_RT_MSGHDR
#cmakedefine01 HAVE_RT_MSGHDR2
#cmakedefine01 HAVE_IF_MSGHDR2
diff --git a/src/libraries/Native/Unix/System.Native/ios/net/route.h b/src/libraries/Native/Unix/System.Native/ios/net/route.h
new file mode 100644
index 00000000000000..e51c5e55cf468b
--- /dev/null
+++ b/src/libraries/Native/Unix/System.Native/ios/net/route.h
@@ -0,0 +1,272 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * Copyright (c) 1980, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)route.h 8.3 (Berkeley) 4/19/94
+ * $FreeBSD: src/sys/net/route.h,v 1.36.2.1 2000/08/16 06:14:23 jayanth Exp $
+ */
+
+#ifndef _NET_ROUTE_H_
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#define _NET_ROUTE_H_
+#pragma clang diagnostic pop
+#include
+#include
+#include
+#include
+
+/*
+ * Kernel resident routing tables.
+ *
+ * The routing tables are initialized when interface addresses
+ * are set by making entries for all directly connected interfaces.
+ */
+
+/*
+ * A route consists of a destination address and a reference
+ * to a routing entry. These are often held by protocols
+ * in their control blocks, e.g. inpcb.
+ */
+struct route;
+
+/*
+ * These numbers are used by reliable protocols for determining
+ * retransmission behavior and are included in the routing structure.
+ */
+struct rt_metrics {
+ u_int32_t rmx_locks; /* Kernel must leave these values alone */
+ u_int32_t rmx_mtu; /* MTU for this path */
+ u_int32_t rmx_hopcount; /* max hops expected */
+ int32_t rmx_expire; /* lifetime for route, e.g. redirect */
+ u_int32_t rmx_recvpipe; /* inbound delay-bandwidth product */
+ u_int32_t rmx_sendpipe; /* outbound delay-bandwidth product */
+ u_int32_t rmx_ssthresh; /* outbound gateway buffer limit */
+ u_int32_t rmx_rtt; /* estimated round trip time */
+ u_int32_t rmx_rttvar; /* estimated rtt variance */
+ u_int32_t rmx_pksent; /* packets sent using this route */
+ u_int32_t rmx_filler[4]; /* will be used for T/TCP later */
+};
+
+/*
+ * rmx_rtt and rmx_rttvar are stored as microseconds;
+ */
+#define RTM_RTTUNIT 1000000 /* units for rtt, rttvar, as units per sec */
+
+/*
+ * We distinguish between routes to hosts and routes to networks,
+ * preferring the former if available. For each route we infer
+ * the interface to use from the gateway address supplied when
+ * the route was entered. Routes that forward packets through
+ * gateways are marked so that the output routines know to address the
+ * gateway rather than the ultimate destination.
+ */
+
+
+#define RTF_UP 0x1 /* route usable */
+#define RTF_GATEWAY 0x2 /* destination is a gateway */
+#define RTF_HOST 0x4 /* host entry (net otherwise) */
+#define RTF_REJECT 0x8 /* host or net unreachable */
+#define RTF_DYNAMIC 0x10 /* created dynamically (by redirect) */
+#define RTF_MODIFIED 0x20 /* modified dynamically (by redirect) */
+#define RTF_DONE 0x40 /* message confirmed */
+#define RTF_DELCLONE 0x80 /* delete cloned route */
+#define RTF_CLONING 0x100 /* generate new routes on use */
+#define RTF_XRESOLVE 0x200 /* external daemon resolves name */
+#define RTF_LLINFO 0x400 /* generated by link layer (e.g. ARP) */
+#define RTF_STATIC 0x800 /* manually added */
+#define RTF_BLACKHOLE 0x1000 /* just discard pkts (during updates) */
+#define RTF_PROTO2 0x4000 /* protocol specific routing flag */
+#define RTF_PROTO1 0x8000 /* protocol specific routing flag */
+
+#define RTF_PRCLONING 0x10000 /* protocol requires cloning */
+#define RTF_WASCLONED 0x20000 /* route generated through cloning */
+#define RTF_PROTO3 0x40000 /* protocol specific routing flag */
+/* 0x80000 unused */
+#define RTF_PINNED 0x100000 /* future use */
+#define RTF_LOCAL 0x200000 /* route represents a local address */
+#define RTF_BROADCAST 0x400000 /* route represents a bcast address */
+#define RTF_MULTICAST 0x800000 /* route represents a mcast address */
+#define RTF_IFSCOPE 0x1000000 /* has valid interface scope */
+#define RTF_CONDEMNED 0x2000000 /* defunct; no longer modifiable */
+/* 0x4000000 and up unassigned */
+
+/*
+ * Routing statistics.
+ */
+struct rtstat {
+ short rts_badredirect; /* bogus redirect calls */
+ short rts_dynamic; /* routes created by redirects */
+ short rts_newgateway; /* routes modified by redirects */
+ short rts_unreach; /* lookups which failed */
+ short rts_wildcard; /* lookups satisfied by a wildcard */
+};
+
+/*
+ * Structures for routing messages.
+ */
+struct rt_msghdr {
+ u_short rtm_msglen; /* to skip over non-understood messages */
+ u_char rtm_version; /* future binary compatibility */
+ u_char rtm_type; /* message type */
+ u_short rtm_index; /* index for associated ifp */
+ int rtm_flags; /* flags, incl. kern & message, e.g. DONE */
+ int rtm_addrs; /* bitmask identifying sockaddrs in msg */
+ pid_t rtm_pid; /* identify sender */
+ int rtm_seq; /* for sender to identify action */
+ int rtm_errno; /* why failed */
+ int rtm_use; /* from rtentry */
+ u_int32_t rtm_inits; /* which metrics we are initializing */
+ struct rt_metrics rtm_rmx; /* metrics themselves */
+};
+
+struct rt_msghdr2 {
+ u_short rtm_msglen; /* to skip over non-understood messages */
+ u_char rtm_version; /* future binary compatibility */
+ u_char rtm_type; /* message type */
+ u_short rtm_index; /* index for associated ifp */
+ int rtm_flags; /* flags, incl. kern & message, e.g. DONE */
+ int rtm_addrs; /* bitmask identifying sockaddrs in msg */
+ int32_t rtm_refcnt; /* reference count */
+ int rtm_parentflags; /* flags of the parent route */
+ int rtm_reserved; /* reserved field set to 0 */
+ int rtm_use; /* from rtentry */
+ u_int32_t rtm_inits; /* which metrics we are initializing */
+ struct rt_metrics rtm_rmx; /* metrics themselves */
+};
+
+
+#define RTM_VERSION 5 /* Up the ante and ignore older versions */
+
+/*
+ * Message types.
+ */
+#define RTM_ADD 0x1 /* Add Route */
+#define RTM_DELETE 0x2 /* Delete Route */
+#define RTM_CHANGE 0x3 /* Change Metrics or flags */
+#define RTM_GET 0x4 /* Report Metrics */
+#define RTM_LOSING 0x5 /* Kernel Suspects Partitioning */
+#define RTM_REDIRECT 0x6 /* Told to use different route */
+#define RTM_MISS 0x7 /* Lookup failed on this address */
+#define RTM_LOCK 0x8 /* fix specified metrics */
+#define RTM_OLDADD 0x9 /* caused by SIOCADDRT */
+#define RTM_OLDDEL 0xa /* caused by SIOCDELRT */
+#define RTM_RESOLVE 0xb /* req to resolve dst to LL addr */
+#define RTM_NEWADDR 0xc /* address being added to iface */
+#define RTM_DELADDR 0xd /* address being removed from iface */
+#define RTM_IFINFO 0xe /* iface going up/down etc. */
+#define RTM_NEWMADDR 0xf /* mcast group membership being added to if */
+#define RTM_DELMADDR 0x10 /* mcast group membership being deleted */
+#define RTM_IFINFO2 0x12 /* */
+#define RTM_NEWMADDR2 0x13 /* */
+#define RTM_GET2 0x14 /* */
+
+/*
+ * Bitmask values for rtm_inits and rmx_locks.
+ */
+#define RTV_MTU 0x1 /* init or lock _mtu */
+#define RTV_HOPCOUNT 0x2 /* init or lock _hopcount */
+#define RTV_EXPIRE 0x4 /* init or lock _expire */
+#define RTV_RPIPE 0x8 /* init or lock _recvpipe */
+#define RTV_SPIPE 0x10 /* init or lock _sendpipe */
+#define RTV_SSTHRESH 0x20 /* init or lock _ssthresh */
+#define RTV_RTT 0x40 /* init or lock _rtt */
+#define RTV_RTTVAR 0x80 /* init or lock _rttvar */
+
+/*
+ * Bitmask values for rtm_addrs.
+ */
+#define RTA_DST 0x1 /* destination sockaddr present */
+#define RTA_GATEWAY 0x2 /* gateway sockaddr present */
+#define RTA_NETMASK 0x4 /* netmask sockaddr present */
+#define RTA_GENMASK 0x8 /* cloning mask sockaddr present */
+#define RTA_IFP 0x10 /* interface name sockaddr present */
+#define RTA_IFA 0x20 /* interface addr sockaddr present */
+#define RTA_AUTHOR 0x40 /* sockaddr for author of redirect */
+#define RTA_BRD 0x80 /* for NEWADDR, broadcast or p-p dest addr */
+
+/*
+ * Index offsets for sockaddr array for alternate internal encoding.
+ */
+#define RTAX_DST 0 /* destination sockaddr present */
+#define RTAX_GATEWAY 1 /* gateway sockaddr present */
+#define RTAX_NETMASK 2 /* netmask sockaddr present */
+#define RTAX_GENMASK 3 /* cloning mask sockaddr present */
+#define RTAX_IFP 4 /* interface name sockaddr present */
+#define RTAX_IFA 5 /* interface addr sockaddr present */
+#define RTAX_AUTHOR 6 /* sockaddr for author of redirect */
+#define RTAX_BRD 7 /* for NEWADDR, broadcast or p-p dest addr */
+#define RTAX_MAX 8 /* size of array to allocate */
+
+struct rt_addrinfo {
+ int rti_addrs;
+ struct sockaddr *rti_info[RTAX_MAX];
+};
+
+struct route_cb {
+ int ip_count;
+ int ip6_count;
+ int ipx_count;
+ int ns_count;
+ int iso_count;
+ int any_count;
+};
+
+
+
+#endif
diff --git a/src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.c b/src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.c
index a656046577525a..1a6986845c8173 100644
--- a/src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.c
+++ b/src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.c
@@ -41,8 +41,12 @@
#endif
#if HAVE_RT_MSGHDR
+#if HAVE_IOS_NET_ROUTE_H
+#include "ios/net/route.h"
+#else
#include
#endif
+#endif
// Convert mask to prefix length e.g. 255.255.255.0 -> 24
// mask parameter is pointer to buffer where address starts and length is
diff --git a/src/libraries/Native/Unix/System.Native/pal_io.c b/src/libraries/Native/Unix/System.Native/pal_io.c
index dd491e5cf7e9a7..5a8ecbab53a1d6 100644
--- a/src/libraries/Native/Unix/System.Native/pal_io.c
+++ b/src/libraries/Native/Unix/System.Native/pal_io.c
@@ -1335,9 +1335,9 @@ int32_t SystemNative_CopyFile(intptr_t sourceFd, const char* srcPath, const char
#elif HAVE_FUTIMES
struct timeval origTimes[2];
origTimes[0].tv_sec = sourceStat.st_atime;
- origTimes[0].tv_usec = ST_ATIME_NSEC(&sourceStat) / 1000;
+ origTimes[0].tv_usec = (int32_t)(ST_ATIME_NSEC(&sourceStat) / 1000);
origTimes[1].tv_sec = sourceStat.st_mtime;
- origTimes[1].tv_usec = ST_MTIME_NSEC(&sourceStat) / 1000;
+ origTimes[1].tv_usec = (int32_t)(ST_MTIME_NSEC(&sourceStat) / 1000);
while ((ret = futimes(outFd, origTimes)) < 0 && errno == EINTR);
#endif
diff --git a/src/libraries/Native/Unix/System.Native/pal_networkstatistics.c b/src/libraries/Native/Unix/System.Native/pal_networkstatistics.c
index f71cf668a286dc..9e7a9ff8ae1e40 100644
--- a/src/libraries/Native/Unix/System.Native/pal_networkstatistics.c
+++ b/src/libraries/Native/Unix/System.Native/pal_networkstatistics.c
@@ -9,7 +9,7 @@
// Currently, this is all keyed off of whether the include tcp_var.h
// exists, but we may want to make this more granular for differnet platforms.
-#if HAVE_TCP_VAR_H
+#if HAVE_NETINET_TCP_VAR_H
#include "pal_utilities.h"
#include "pal_networkstatistics.h"
@@ -20,7 +20,11 @@
#include
#include
#include
+#if HAVE_IOS_NET_ROUTE_H
+#include "ios/net/route.h"
+#else
#include
+#endif
#include
#include
@@ -36,14 +40,22 @@
#include
#include
#include
+#if HAVE_NETINET_IP_VAR_H
#include
+#endif
#include
+#if HAVE_TCP_FSM_H
#include
+#endif
#include
#include
+#if HAVE_NETINET_UDP_VAR_H
#include
+#endif
#include
+#if HAVE_NETINET_ICMP_VAR_H
#include
+#endif
int32_t SystemNative_GetTcpGlobalStatistics(TcpGlobalStatistics* retStats)
{
@@ -80,6 +92,7 @@ int32_t SystemNative_GetTcpGlobalStatistics(TcpGlobalStatistics* retStats)
int32_t SystemNative_GetIPv4GlobalStatistics(IPv4GlobalStatistics* retStats)
{
+#if HAVE_NETINET_IP_VAR_H
size_t oldlenp;
assert(retStats != NULL);
@@ -120,10 +133,15 @@ int32_t SystemNative_GetIPv4GlobalStatistics(IPv4GlobalStatistics* retStats)
}
return 0;
+#else
+ memset(retStats, 0, sizeof(IPv4GlobalStatistics)); // out parameter must be initialized.
+ return -1;
+#endif
}
int32_t SystemNative_GetUdpGlobalStatistics(UdpGlobalStatistics* retStats)
{
+#if HAVE_NETINET_UDP_VAR_H
size_t oldlenp;
assert(retStats != NULL);
@@ -155,10 +173,15 @@ int32_t SystemNative_GetUdpGlobalStatistics(UdpGlobalStatistics* retStats)
#endif
return 0;
+#else
+ memset(retStats, 0, sizeof(UdpGlobalStatistics)); // out parameter must be initialized.
+ return -1;
+#endif
}
int32_t SystemNative_GetIcmpv4GlobalStatistics(Icmpv4GlobalStatistics* retStats)
{
+#if HAVE_NETINET_ICMP_VAR_H
size_t oldlenp;
assert(retStats != NULL);
@@ -198,6 +221,10 @@ int32_t SystemNative_GetIcmpv4GlobalStatistics(Icmpv4GlobalStatistics* retStats)
retStats->TimestampRequestsSent = outHist[ICMP_TSTAMP];
return 0;
+#else
+ memset(retStats, 0, sizeof(Icmpv4GlobalStatistics)); // out parameter must be initialized.
+ return -1;
+#endif
}
int32_t SystemNative_GetIcmpv6GlobalStatistics(Icmpv6GlobalStatistics* retStats)
@@ -627,4 +654,4 @@ int32_t SystemNative_GetNumRoutes()
#endif // HAVE_RT_MSGHDR2
return count;
}
-#endif // HAVE_TCP_VAR_H
+#endif // HAVE_NETINET_TCP_VAR_H
diff --git a/src/libraries/Native/Unix/System.Native/pal_tcpstate.c b/src/libraries/Native/Unix/System.Native/pal_tcpstate.c
index d5d216887933ca..59231804dbd3f2 100644
--- a/src/libraries/Native/Unix/System.Native/pal_tcpstate.c
+++ b/src/libraries/Native/Unix/System.Native/pal_tcpstate.c
@@ -10,8 +10,6 @@
#include
#elif HAVE_TCP_H_TCPSTATE_ENUM
#include
-#else
-#warning System does not have TCP states defined in either tcp.h or tcp_fsm.h; falling back to always returning unknown.
#endif
int32_t SystemNative_MapTcpState(int32_t tcpState)
@@ -64,6 +62,7 @@ int32_t SystemNative_MapTcpState(int32_t tcpState)
return TcpState_Closing;
#endif
default:
+ // System does not have TCP states defined in either tcp.h or tcp_fsm.h; falling back to always returning unknown.
return TcpState_Unknown;
}
}
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 e0e2f660f79299..2e578633a80612 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
@@ -5,22 +5,28 @@ find_library(SECURITY_LIBRARY Security)
set(NATIVECRYPTO_SOURCES
pal_digest.c
- pal_ecc.c
pal_hmac.c
- pal_keyagree.c
- pal_keychain.c
pal_random.c
- pal_rsa.c
- pal_sec.c
- pal_seckey.c
- pal_signverify.c
- pal_ssl.c
pal_symmetric.c
- pal_trust.c
- pal_x509.c
- pal_x509chain.c
)
+if (NOT CLR_CMAKE_TARGET_IOS) # TODO: reenable more sources
+ set(NATIVECRYPTO_SOURCES
+ ${NATIVECRYPTO_SOURCES}
+ pal_ecc.c
+ pal_keyagree.c
+ pal_keychain.c
+ pal_rsa.c
+ pal_sec.c
+ pal_seckey.c
+ pal_signverify.c
+ pal_ssl.c
+ pal_trust.c
+ pal_x509.c
+ pal_x509chain.c
+ )
+endif()
+
add_library(System.Security.Cryptography.Native.Apple
SHARED
${NATIVECRYPTO_SOURCES}
diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake
index bf323f6bae16b7..473157178a2c2c 100644
--- a/src/libraries/Native/Unix/configure.cmake
+++ b/src/libraries/Native/Unix/configure.cmake
@@ -15,6 +15,8 @@ elseif (CLR_CMAKE_TARGET_DARWIN)
# Xcode's clang does not include /usr/local/include by default, but brew's does.
# This ensures an even playing field.
include_directories(SYSTEM /usr/local/include)
+elseif (CLR_CMAKE_TARGET_IOS)
+ set(PAL_UNIX_NAME \"IOS\")
elseif (CLR_CMAKE_TARGET_FREEBSD)
set(PAL_UNIX_NAME \"FREEBSD\")
include_directories(SYSTEM /usr/local/include)
@@ -442,37 +444,69 @@ if (CLR_CMAKE_TARGET_LINUX)
set(HAVE_SUPPORT_FOR_DUAL_MODE_IPV4_PACKET_INFO 1)
endif ()
-check_c_source_runs(
- "
- #include
- #include
- #include
- int main(void)
- {
- int ret;
- struct timespec ts;
- ret = clock_gettime(CLOCK_MONOTONIC, &ts);
- exit(ret);
- return 0;
- }
- "
- HAVE_CLOCK_MONOTONIC)
-
-check_c_source_runs(
- "
- #include
- #include
- #include
- int main(void)
- {
- int ret;
- struct timespec ts;
- ret = clock_gettime(CLOCK_REALTIME, &ts);
- exit(ret);
- return 0;
- }
- "
- HAVE_CLOCK_REALTIME)
+if(CLR_CMAKE_TARGET_IOS)
+ # 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+
+else()
+ check_c_source_runs(
+ "
+ #include
+ #include
+ #include
+
+ int main(void)
+ {
+ int fd = shm_open(\"/corefx_configure_shm_open\", O_CREAT | O_RDWR, 0777);
+ if (fd == -1)
+ return -1;
+
+ shm_unlink(\"/corefx_configure_shm_open\");
+
+ // NOTE: PROT_EXEC and MAP_PRIVATE don't work well with shm_open
+ // on at least the current version of Mac OS X
+
+ if (mmap(NULL, 1, PROT_EXEC, MAP_PRIVATE, fd, 0) == MAP_FAILED)
+ return -1;
+
+ return 0;
+ }
+ "
+ HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP)
+
+ check_c_source_runs(
+ "
+ #include
+ #include
+ #include
+ int main(void)
+ {
+ int ret;
+ struct timespec ts;
+ ret = clock_gettime(CLOCK_MONOTONIC, &ts);
+ exit(ret);
+ return 0;
+ }
+ "
+ HAVE_CLOCK_MONOTONIC)
+
+ check_c_source_runs(
+ "
+ #include
+ #include
+ #include
+ int main(void)
+ {
+ int ret;
+ struct timespec ts;
+ ret = clock_gettime(CLOCK_REALTIME, &ts);
+ exit(ret);
+ return 0;
+ }
+ "
+ HAVE_CLOCK_REALTIME)
+endif()
check_symbol_exists(
mach_absolute_time
@@ -550,31 +584,6 @@ check_c_source_compiles(
set (CMAKE_REQUIRED_FLAGS ${PREVIOUS_CMAKE_REQUIRED_FLAGS})
-check_c_source_runs(
- "
- #include
- #include
- #include
-
- int main(void)
- {
- int fd = shm_open(\"/corefx_configure_shm_open\", O_CREAT | O_RDWR, 0777);
- if (fd == -1)
- return -1;
-
- shm_unlink(\"/corefx_configure_shm_open\");
-
- // NOTE: PROT_EXEC and MAP_PRIVATE don't work well with shm_open
- // on at least the current version of Mac OS X
-
- if (mmap(NULL, 1, PROT_EXEC, MAP_PRIVATE, fd, 0) == MAP_FAILED)
- return -1;
-
- return 0;
- }
- "
- HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP)
-
check_prototype_definition(
getpriority
"int getpriority(int which, int who)"
@@ -630,7 +639,49 @@ check_c_source_compiles(
#include
int main(void) { return 0; }
"
- HAVE_TCP_VAR_H
+ HAVE_NETINET_TCP_VAR_H
+)
+
+check_c_source_compiles(
+ "
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ int main(void) { return 0; }
+ "
+ HAVE_NETINET_UDP_VAR_H
+)
+
+check_c_source_compiles(
+ "
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ int main(void) { return 0; }
+ "
+ HAVE_NETINET_IP_VAR_H
+)
+
+check_c_source_compiles(
+ "
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ int main(void) { return 0; }
+ "
+ HAVE_NETINET_ICMP_VAR_H
)
check_include_files(
@@ -662,7 +713,14 @@ check_symbol_exists(
HAVE_TCP_FSM_H
)
-set(CMAKE_EXTRA_INCLUDE_FILES sys/types.h sys/socket.h net/route.h)
+if(CLR_CMAKE_TARGET_IOS)
+ set(HAVE_IOS_NET_ROUTE_H 1)
+ set(NET_ROUTE_H_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/System.Native/ios/net/route.h")
+else()
+ set(NET_ROUTE_H_INCLUDE net/route.h)
+endif()
+
+set(CMAKE_EXTRA_INCLUDE_FILES sys/types.h ${NET_ROUTE_H_INCLUDE})
check_type_size(
"struct rt_msghdr"
HAVE_RT_MSGHDR
@@ -672,6 +730,8 @@ check_type_size(
HAVE_RT_MSGHDR2
BUILTIN_TYPES_ONLY)
set(CMAKE_EXTRA_INCLUDE_FILES) # reset CMAKE_EXTRA_INCLUDE_FILES
+
+set(CMAKE_EXTRA_INCLUDE_FILES net/if.h)
check_type_size(
"struct if_msghdr2"
HAVE_IF_MSGHDR2
diff --git a/src/libraries/Native/build-native.proj b/src/libraries/Native/build-native.proj
index 9019802d793806..5421f09d43ecb7 100644
--- a/src/libraries/Native/build-native.proj
+++ b/src/libraries/Native/build-native.proj
@@ -8,7 +8,7 @@
$(ArtifactsObjDir)_version.h
$(ArtifactsObjDir)_version.c
- <_BuildNativeArgs>$(ArchGroup) $(Configuration) outconfig $(BuildTargetFramework)-$(TargetOS)-$(Configuration)-$(ArchGroup)
+ <_BuildNativeArgs>$(ArchGroup) $(Configuration) outconfig $(BuildTargetFramework)-$(TargetOS)-$(Configuration)-$(ArchGroup) -os $(TargetOS)
<_ProcessorCountArg> -numproc $(MSBuildNodeCount)
- <_StripSymbolsArg Condition="'$(BuildNativeStripSymbols)' == 'true' and '$(TargetOS)' != 'WebAssembly'"> -stripsymbols
+ <_StripSymbolsArg Condition="'$(BuildNativeStripSymbols)' == 'true' and '$(TargetOS)' != 'WebAssembly' and '$(TargetOS)' != 'iOS'"> -stripsymbols
<_PortableBuildArg Condition="'$(PortableBuild)' != 'true'"> -portablebuild=false
<_CrossBuildArg Condition="'$(CrossBuild)' == 'true'"> -cross
<_CMakeArgs Condition="'$(CMakeArgs)' != ''"> $(CMakeArgs)
diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh
index b7f51f501a066e..4c7d440b865b03 100755
--- a/src/libraries/Native/build-native.sh
+++ b/src/libraries/Native/build-native.sh
@@ -46,7 +46,17 @@ __VerboseBuild=false
source "$__RepoRootDir"/eng/native/build-commons.sh
# Set cross build
-if [[ "$__BuildArch" != wasm ]]; then
+
+if [[ "$__BuildArch" == wasm ]]; then
+ if [[ -z "$EMSDK_PATH" ]]; then
+ echo "Error: Should set EMSDK_PATH environment variable pointing to emsdk root."
+ exit 1
+ fi
+ source "$EMSDK_PATH"/emsdk_env.sh
+elif [[ "$__TargetOS" == iOS ]]; then
+ # nothing to do here
+ true
+else
__CMakeArgs="-DFEATURE_DISTRO_AGNOSTIC_SSL=$__PortableBuild $__CMakeArgs"
__CMakeArgs="-DCMAKE_STATIC_LIB_LINK=$__StaticLibLink $__CMakeArgs"
@@ -54,17 +64,29 @@ if [[ "$__BuildArch" != wasm ]]; then
__CrossBuild=1
echo "Set CrossBuild for $__BuildArch build"
fi
-else
- if [[ -z "$EMSDK_PATH" ]]; then
- echo "Error: Should set EMSDK_PATH environment variable pointing to emsdk root."
- exit 1
- fi
- source "$EMSDK_PATH"/emsdk_env.sh
fi
-# set default OSX deployment target
if [[ "$__TargetOS" == OSX ]]; then
+ # set default OSX deployment target
__CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 $__CMakeArgs"
+elif [[ "$__TargetOS" == iOS ]]; then
+ __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs"
+ if [[ "$__BuildArch" == x64 ]]; then
+ # set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11)
+ # keep in sync with src/mono/Directory.Build.props
+ __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
+ elif [[ "$__BuildArch" == arm64 ]]; then
+ # set default iOS device deployment target (7.0 is the minimum supported by Xcode 11)
+ # keep in sync with src/mono/Directory.Build.props
+ __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=7.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
+ elif [[ "$__BuildArch" == arm ]]; then
+ # set default iOS device deployment target (7.0 is the minimum supported by Xcode 11)
+ # keep in sync with src/mono/Directory.Build.props
+ __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=7.0 -DCMAKE_OSX_ARCHITECTURES=\"armv7;armv7s\" $__CMakeArgs"
+ else
+ echo "Error: Unknown iOS 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 3cf78d77ea0b54..7d8e9fca979d29 100644
--- a/src/libraries/OSGroups.json
+++ b/src/libraries/OSGroups.json
@@ -17,6 +17,11 @@
"Unix"
]
},
+ "iOS": {
+ "#import": [
+ "Unix"
+ ]
+ },
"FreeBSD": {
"#import": [
"Unix"
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 08dd86496591e8..5710bf4b865602 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)-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)-Windows_NT;$(NetFrameworkCurrent)-Windows_NT
true
true
@@ -128,7 +128,7 @@
Common\Interop\Linux\Interop.Libraries.cs
-
+
Common\Interop\OSX\Interop.Libraries.cs
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 1dfbca6d338c8e..20f39453569737 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;$(NetFrameworkCurrent)-Windows_NT
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(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 c0e27a2a322fab..ce8806c4e3f093 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)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
enable
@@ -402,7 +402,7 @@
Common\System\Text\ReusableTextReader.cs
-
+
diff --git a/src/libraries/System.Diagnostics.TraceSource/src/System.Diagnostics.TraceSource.csproj b/src/libraries/System.Diagnostics.TraceSource/src/System.Diagnostics.TraceSource.csproj
index 787adfc1e75049..ce6fa0f43970ab 100644
--- a/src/libraries/System.Diagnostics.TraceSource/src/System.Diagnostics.TraceSource.csproj
+++ b/src/libraries/System.Diagnostics.TraceSource/src/System.Diagnostics.TraceSource.csproj
@@ -3,7 +3,7 @@
System.Diagnostics.TraceSource
System.Diagnostics.TraceSource
$(DefineConstants);TRACE
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
enable
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 a005804e5df54c..8249c25a1789d9 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)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
enable
@@ -87,7 +87,7 @@
Common\Interop\Unix\Interop.Stat.cs
-
+
System.IO.FileSystem\src\System\IO\FileSystem.Exists.Unix.cs
@@ -142,7 +142,7 @@
-
+
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 7256fce6cb1c40..06920cf527ff80 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)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
@@ -33,7 +33,7 @@
Common\System\IO\TempDirectory.cs
-
+
Common\Interop\Unix\Interop.Libraries.cs
diff --git a/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj b/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj
index 5007df8f269eec..67de446f54719c 100644
--- a/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj
+++ b/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj
@@ -1,6 +1,6 @@
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkCurrent)
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkCurrent)
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 9f249635d66daa..98aa3953608d41 100644
--- a/src/libraries/System.Net.Http/src/System.Net.Http.csproj
+++ b/src/libraries/System.Net.Http/src/System.Net.Http.csproj
@@ -7,9 +7,9 @@
$(NoWarn);0436;CS1573
true
$(DefineConstants);HTTP_DLL
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
-
+
$(DefineConstants);SYSNETHTTP_NO_OPENSSL
@@ -439,11 +439,11 @@
Common\System\Net\Security\Unix\SafeDeleteNegoContext.cs
-
+
-
+
@@ -756,7 +756,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 fff618fc14b6f7..1de59a3b0249d4 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)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
@@ -329,10 +329,10 @@
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.cs
-
+
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.OSX.cs
-
+
ProductionCode\System\Net\Http\SocketsHttpHandler\SystemProxyInfo.Unix.cs
@@ -343,7 +343,7 @@
-
+
diff --git a/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj b/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj
index f765cec3d034d0..fb2211a5258098 100644
--- a/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj
+++ b/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj
@@ -2,7 +2,7 @@
true
../src/Resources/Strings.resx
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Unix
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Unix
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 3925af40f44db0..8bde618f1f0cfa 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)-FreeBSD
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-FreeBSD
enable
@@ -217,7 +217,7 @@
-
+
@@ -240,7 +240,7 @@
Common\Interop\BSD\System.Native\Interop.TcpConnectionInfo.cs
-
+
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 d25fabd0de46ab..06a744ad0f74ea 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)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
$(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.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj b/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj
index cf5eaa0d21c01b..31765b442b6b23 100644
--- a/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj
+++ b/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj
@@ -2,7 +2,7 @@
true
true
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
annotations
diff --git a/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj b/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj
index 036fba9049b936..d61c5a77775955 100644
--- a/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj
+++ b/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj
@@ -10,7 +10,7 @@
436
$(NoWarn);3021
- $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
annotations
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 3ee3d97192bf0d..c3290944c03c1c 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,8 +1724,8 @@
-
-
+
+
diff --git a/src/libraries/System.Private.CoreLib/src/System/Environment.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/Environment.Unix.cs
index 0d227417071a08..8e7982e9992bed 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Environment.Unix.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Environment.Unix.cs
@@ -96,7 +96,7 @@ private static string GetFolderPathCoreWithoutValidation(SpecialFolder folder)
{
case SpecialFolder.CommonApplicationData: return "/usr/share";
case SpecialFolder.CommonTemplates: return "/usr/share/templates";
-#if TARGET_OSX
+#if TARGET_OSX || TARGET_IOS
case SpecialFolder.ProgramFiles: return "/Applications";
case SpecialFolder.System: return "/System";
#endif
@@ -152,7 +152,7 @@ private static string GetFolderPathCoreWithoutValidation(SpecialFolder folder)
case SpecialFolder.MyVideos:
return ReadXdgDirectory(home, "XDG_VIDEOS_DIR", "Videos");
-#if TARGET_OSX
+#if TARGET_OSX || TARGET_IOS
case SpecialFolder.MyMusic:
return Path.Combine(home, "Music");
case SpecialFolder.MyPictures:
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 2b9b118b722e00..288cc12ec82376 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
@@ -137,7 +137,7 @@ internal static bool IsCaseSensitive
{
get
{
- #if TARGET_OSX
+ #if TARGET_OSX || TARGET_IOS
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 c63ff94ef03edf..d4009b73e98084 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
+#if TARGET_OSX || TARGET_IOS
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 13039094724720..61c8b31a0c8923 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)-OSX
+ $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
enable
@@ -483,7 +483,7 @@
Common\System\Security\Cryptography\RSACng.SignVerify.cs
-
+
Common\Interop\Unix\System.Security.Cryptography.Native\Interop.ASN1.cs
@@ -590,7 +590,7 @@
-
+
Common\Interop\OSX\Interop.CoreFoundation.cs
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 0c8b8432bdb104..0fa3db009eb3aa 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)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
enable
-
-
+
+
@@ -60,7 +60,7 @@
Common\Interop\Windows\Interop.Libraries.cs
-
+
@@ -98,7 +98,7 @@
Common\Microsoft\Win32\SafeHandles\X509ExtensionSafeHandles.Unix.cs
-
+
Common\System\Memory\PointerMemoryManager.cs
@@ -143,7 +143,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 f90a1b292ce23f..ea41dbc7c8b7be 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)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
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 @@
-
+
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 28505259eacee7..740546b3d24b73 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)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS
@@ -63,7 +63,7 @@
-
+
Common\Interop\Unix\Interop.Libraries.cs
@@ -94,7 +94,7 @@
-
+
Common\Interop\OSX\Interop.CoreFoundation.cs
diff --git a/src/libraries/restore/runtime/runtime.depproj b/src/libraries/restore/runtime/runtime.depproj
index cb868f40f86080..88b99520ba0119 100644
--- a/src/libraries/restore/runtime/runtime.depproj
+++ b/src/libraries/restore/runtime/runtime.depproj
@@ -1,8 +1,8 @@
$(PackageRID)
-
- $(ToolRuntimeRID)
+
+ $(ToolRuntimeRID)
$(NoWarn);NU1603;NU1605
true
$(TargetOS)
diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props
index 3e3efa5ac55a39..9833fc180c2065 100644
--- a/src/mono/Directory.Build.props
+++ b/src/mono/Directory.Build.props
@@ -39,8 +39,27 @@
true
true
true
+ true
+ true
true
- true
+ true
+
+
+
+
+ 7.0
+ 8.0
+ 9.0
+ 2.0
+ 5.1
+ 10.13
+
+
+
+
+
+
+
diff --git a/src/mono/configure.ac b/src/mono/configure.ac
index a79049843615b1..e684552200a849 100644
--- a/src/mono/configure.ac
+++ b/src/mono/configure.ac
@@ -1383,7 +1383,9 @@ if test x$with_runtime_preset = xnetcore; then
mono_feature_disable_gac='yes'
mono_feature_disable_perfcounters='yes'
mono_feature_disable_attach='yes'
- mono_feature_disable_dllmap='yes'
+ if test "x$enable_monodroid" = "x" -a "x$enable_monotouch" = "x"; then
+ mono_feature_disable_dllmap='yes' # FIXME: the mobile products use this
+ fi
disable_mono_native=yes
support_boehm=no
elif test x$with_runtime_preset = xnet_4_x; then
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 3d5b2b762595c0..04e6b0ac8678db 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -5,7 +5,9 @@
$(ArtifactsObjDir)mono/$(PlatformConfigPathPart)/
false
+ false
$(MonoObjDir)llvm
+ $(ROOTFS_DIR)
dotnet.exe
dotnet
$(RepoRoot).dotnet
@@ -14,75 +16,375 @@
$(LocalMonoDotnetDir)\$(DotNetExec)
.cmd
.sh
- <_CoreClrFileName Condition="'$(TargetsWindows)' == 'true'">coreclr.dll
- <_CoreClrFileName Condition="'$(TargetsOSX)' == 'true'">libcoreclr.dylib
- <_CoreClrFileName Condition="'$(_CoreClrFileName)' == ''">libcoreclr.so
+ coreclr.dll
+ libcoreclr.dylib
+ libcoreclr.so
+ libmono.dylib
+ libmono.a
+ $(CoreClrFileName)
$(Configuration)
$(Configuration)
$(ArtifactsDir)tests\coreclr\$(TargetOS).$(Platform).$(CoreClrTestConfig)\Tests\Core_Root
$(ArtifactsDir)bin\testhost\$(NetCoreAppCurrent)-$(TargetOS)-$(LibrariesTestConfig)-$(Platform)\
$(LibrariesTesthostRoot)shared\Microsoft.NETCore.App\$(ProductVersion)\
+ /Applications/Xcode.app/Contents/Developer
-
+
-
- <_MonoExtraCFLAGS>-O0 -ggdb3 -fno-omit-frame-pointer
- <_MonoExtraCXXFLAGS>-O0 -ggdb3 -fno-omit-frame-pointer -D_GLIBCXX_USE_CXX11_ABI=0
- <_MonoConfigureParams>--enable-checked-build=private_types
-
-
- <_MonoExtraCFLAGS>-O2 -g
- <_MonoExtraCXXFLAGS>-O2 -g -D_GLIBCXX_USE_CXX11_ABI=0
-
-
- <_MonoTuple>aarch64-linux-gnu
-
-
- <_MonoTuple>arm-linux-gnueabihf
-
-
- <_MonoCrossDir>$(ROOTFS_DIR)
- <_MonoExtraCFLAGS>$(_MonoExtraCFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)
- <_MonoExtraCXXFLAGS>$(_MonoExtraCXXFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)
- <_MonoExtraLDFLAGS>$(_MonoExtraLDFLAGS) --sysroot=$(_MonoCrossDir) --target=$(_MonoTuple)
- <_MonoExtraCCLDFLAGS>$(_MonoExtraCCLDFLAGS) -XCClinker --target=$(_MonoTuple)
- <_MonoConfigureParams>$(_MonoConfigureParams) --host=$(_MonoTuple) --target=$(_MonoTuple)
- <_MonoConfigureParams>$(_MonoConfigureParams) RANLIB=$(_MonoTuple)-ranlib
- <_MonoConfigureParams>$(_MonoConfigureParams) LD=$(_MonoTuple)-ld
- <_MonoConfigureParams>$(_MonoConfigureParams) AS=$(_MonoTuple)-as
- <_MonoConfigureParams>$(_MonoConfigureParams) AR=$(_MonoTuple)-ar
- <_MonoConfigureParams>$(_MonoConfigureParams) STRIP=$(_MonoTuple)-strip
+
+
+
+
+
+
+
+ <_MonoConfigureParams Include="--with-core=only" />
+ <_MonoConfigureParams Include="--enable-maintainer-mode" />
+ <_MonoConfigureParams Include="--enable-compile-warnings" />
+ <_MonoConfigureParams Include="--prefix=$(MonoObjDir)out" />
+ <_MonoConfigureParams Condition="'$(MonoEnableLLVM)' == 'true'" Include="--with-llvm=$(MonoLLVMDir)" />
+ <_MonoConfigureParams Condition="'$(MonoEnableCXX)' == 'true'" Include="--enable-cxx" />
+
+
+
+
+ <_MonoConfigureParams Include="--enable-checked-build=private_types" />
+
+ <_MonoCFLAGS Include="-O0" />
+ <_MonoCFLAGS Include="-ggdb3" />
+ <_MonoCFLAGS Include="-fno-omit-frame-pointer" />
+
+ <_MonoCXXFLAGS Include="-O0" />
+ <_MonoCXXFLAGS Include="-ggdb3" />
+ <_MonoCXXFLAGS Include="-fno-omit-frame-pointer" />
+ <_MonoCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=0" />
+
+
+
+
+ <_MonoCFLAGS Include="-O2" />
+ <_MonoCFLAGS Include="-g" />
+
+ <_MonoCXXFLAGS Include="-O2" />
+ <_MonoCXXFLAGS Include="-g" />
+ <_MonoCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=0" />
+
+
+
+
+ <_MonoConfigureParams Condition="'$(Platform)' == 'arm64'" Include="--host=aarch64-apple-darwin10" />
+ <_MonoConfigureParams Condition="'$(Platform)' == 'arm'" Include="--host=arm-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="--disable-crash-reporting" />
+
+ <_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" />
+
+ <_MonoCFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7" />
+ <_MonoCFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7s" />
+ <_MonoCFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).sdk" />
+ <_MonoCFLAGS Include="-miphoneos-version-min=$(iOSVersionMin)" />
+ <_MonoCFLAGS Include="-Wl,-application_extension" />
+ <_MonoCFLAGS Include="-fexceptions" />
+
+ <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7" />
+ <_MonoCXXFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7s" />
+ <_MonoCXXFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).sdk" />
+ <_MonoCXXFLAGS Include="-miphoneos-version-min=$(iOSVersionMin)" />
+ <_MonoCXXFLAGS Include="-Wl,-application_extension" />
+
+ <_MonoCPPFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoCPPFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7" />
+
+
+ <_MonoCPPFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).sdk" />
+ <_MonoCPPFLAGS Include="-miphoneos-version-min=$(iOSVersionMin)" />
+ <_MonoCPPFLAGS Include="-DMONOTOUCH=1" />
+ <_MonoCPPFLAGS Include="-DSMALL_CONFIG" />
+ <_MonoCPPFLAGS Include="-D_XOPEN_SOURCE" />
+ <_MonoCPPFLAGS Include="-DHOST_IOS" />
+ <_MonoCPPFLAGS Include="-DHAVE_LARGE_FILE_SUPPORT=1" />
+
+ <_MonoLDFLAGS Condition="'$(Platform)' == 'arm64'" Include="-arch arm64" />
+ <_MonoLDFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7" />
+ <_MonoLDFLAGS Condition="'$(Platform)' == 'arm'" Include="-arch armv7s" />
+ <_MonoLDFLAGS Include="-Wl,-no_weak_imports" />
+ <_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 Condition="'$(Platform)' == 'arm'" Include="--target=arm-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 Condition="'$(Platform)' == 'arm'" Include="--abi=arm-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/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(iOSVersion).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" />
+
+ <_MonoCFLAGS Include="-arch x86_64" />
+ <_MonoCFLAGS Include="-m64" />
+ <_MonoCFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(iOSVersion).sdk" />
+ <_MonoCFLAGS Include="-mios-simulator-version-min=$(iOSVersionMin)" />
+ <_MonoCFLAGS Include="-Wl,-application_extension" />
+
+ <_MonoCXXFLAGS Include="-arch x86_64" />
+ <_MonoCXXFLAGS Include="-m64" />
+ <_MonoCXXFLAGS Include="-isysroot $(XcodeDir)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(iOSVersion).sdk" />
+ <_MonoCXXFLAGS Include="-mios-simulator-version-min=$(iOSVersionMin)" />
+ <_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="-mios-simulator-version-min=$(iOSVersionMin)" />
+ <_MonoCPPFLAGS Include="-Wl,-application_extension" />
+ <_MonoCPPFLAGS Include="-DMONOTOUCH=1" />
+ <_MonoCPPFLAGS Include="-DHOST_IOS" />
+
+
+
+
+ <_MonoCCOption>CC="$(XcodeDir)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
+ <_MonoCXXOption>CXX="$(XcodeDir)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
+ <_MonoAROption>AR=""
+ <_MonoASOption>AS=""
+ <_MonoCPPOption>CPP=""
+ <_MonoCXXCPPOption>CXXCPP=""
+ <_MonoDLLTOOLOption>DLLTOOL=""
+ <_MonoLDOption>LD=""
+ <_MonoOBJDUMPOption>OBJDUMP=""
+ <_MonoRANLIBOption>RANLIB=""
+ <_MonoCMAKEOption>CMAKE=""
+ <_MonoSTRIPOption>STRIP=""
-
- <_MonoExtraCFLAGS>$(_MonoExtraCFLAGS) -Wl,--build-id
+
+
+
+ <_MonoTuple Condition="'$(TargetArchitecture)' == 'arm64'">aarch64-linux-gnu
+ <_MonoTuple Condition="'$(TargetArchitecture)' == 'arm'">arm-linux-gnueabihf
+
+ <_MonoRANLIBOption>RANLIB="$(_MonoTuple)-ranlib"
+ <_MonoAROption>AR="$(_MonoTuple)-ar"
+ <_MonoASOption>AS="$(_MonoTuple)-as"
+ <_MonoLDOption>LD="$(_MonoTuple)-ld"
+ <_MonoSTRIPOption>STRIP="$(_MonoTuple)-strip"
+
+
+
+ <_MonoCFLAGS Include="-Wl,--build-id" />
+ <_MonoCXXFLAGS Include="-Wl,--build-id" />
+
+
+
+ <_MonoConfigureParams Include="--host=$(_MonoTuple)" />
+ <_MonoConfigureParams Include="--target=$(_MonoTuple)" />
+
+ <_MonoCFLAGS Include="--sysroot=$(MonoCrossDir)" />
+ <_MonoCFLAGS Include="--target=$(_MonoTuple)" />
+
+ <_MonoCXXFLAGS Include="--sysroot=$(MonoCrossDir)" />
+ <_MonoCXXFLAGS Include="--target=$(_MonoTuple)" />
+
+ <_MonoLDFLAGS Include="--sysroot=$(MonoCrossDir)" />
+ <_MonoLDFLAGS Include="--target=$(_MonoTuple)" />
+
+ <_MonoCCLDFLAGS Include="-XCClinker" />
+ <_MonoCCLDFLAGS Include="--target=$(_MonoTuple)" />
+
+
+
- <_MonoConfigureParams Condition="'$(MonoEnableLLVM)' == 'true'">$(_MonoConfigureParams) --with-llvm=$(MonoLLVMDir)
- <_MonoConfigureParams>$(_MonoConfigureParams) --enable-maintainer-mode --enable-compile-warnings --with-core=only
- <_MonoConfigureParams>$(_MonoConfigureParams) CFLAGS="$(_MonoExtraCFLAGS)" CXXFLAGS="$(_MonoExtraCXXFLAGS)" LDFLAGS="$(_MonoExtraLDFLAGS)" CCLDFLAGS="$(_MonoExtraCCLDFLAGS)"
+ <_MonoCFLAGSOption Condition="@(_MonoCFLAGS->Count()) > 0">CFLAGS="@(_MonoCFLAGS, ' ')"
+ <_MonoCXXFLAGSOption Condition="@(_MonoCXXFLAGS->Count()) > 0">CXXFLAGS="@(_MonoCXXFLAGS, ' ')"
+ <_MonoCPPFLAGSOption Condition="@(_MonoCPPFLAGS->Count()) > 0">CPPFLAGS="@(_MonoCPPFLAGS, ' ')"
+ <_MonoCXXCPPFLAGSOption Condition="@(_MonoCXXCPPFLAGS->Count()) > 0">CXXCPPFLAGS="@(_MonoCXXCPPFLAGS, ' ')"
+ <_MonoLDFLAGSOption Condition="@(_MonoLDFLAGS->Count()) > 0">LDFLAGS="@(_MonoLDFLAGS, ' ')"
+ <_MonoCCLDFLAGSOption Condition="@(_MonoCCLDFLAGS->Count()) > 0">CCLDFLAGS="@(_MonoCCLDFLAGS, ' ')"
+
+ <_MonoConfigureCommand>@(_MonoConfigureParams, ' ') @(_MonoAC_VARS, ' ') $(_MonoCFLAGSOption) $(_MonoCXXFLAGSOption) $(_MonoCPPFLAGSOption) $(_MonoCXXCPPFLAGSOption) $(_MonoLDFLAGSOption) $(_MonoCCLDFLAGSOption) $(_MonoCCOption) $(_MonoCXXOption) $(_MonoAROption) $(_MonoASOption) $(_MonoCPPOption) $(_MonoCXXCPPOption) $(_MonoDLLTOOLOption) $(_MonoLDOption) $(_MonoOBJDUMPOption) $(_MonoRANLIBOption) $(_MonoCMAKEOption) $(_MonoSTRIPOption)
+ <_MonoConfigureCommand Condition="'$(_MonoCCOption)' == '' and '$(_MonoCXXOption)' == ''">bash -c 'source $(RepositoryEngineeringDir)native/init-compiler.sh $(Platform) clang && $(MonoProjectRoot)configure $(_MonoConfigureCommand)'
+ <_MonoConfigureCommand Condition="'$(_MonoCCOption)' != '' and '$(_MonoCXXOption)' != ''">$(MonoProjectRoot)configure $(_MonoConfigureCommand)
+
+
+
+
+ <_MonoAotCrossCFLAGSOption Condition="@(_MonoAotCrossCFLAGS->Count()) > 0">CFLAGS="@(_MonoAotCrossCFLAGS, ' ')"
+ <_MonoAotCrossCXXFLAGSOption Condition="@(_MonoAotCrossCXXFLAGS->Count()) > 0">CXXFLAGS="@(_MonoAotCrossCXXFLAGS, ' ')"
+ <_MonoAotCrossCPPFLAGSOption Condition="@(_MonoAotCrossCPPFLAGS->Count()) > 0">CPPFLAGS="@(_MonoAotCrossCPPFLAGS, ' ')"
+ <_MonoAotCrossCXXCPPFLAGSOption Condition="@(_MonoAotCrossCXXCPPFLAGS->Count()) > 0">CXXCPPFLAGS="@(_MonoAotCrossCXXCPPFLAGS, ' ')"
+ <_MonoAotCrossLDFLAGSOption Condition="@(_MonoAotCrossLDFLAGS->Count()) > 0">LDFLAGS="@(_MonoAotCrossLDFLAGS, ' ')"
+ <_MonoAotCrossCCLDFLAGSOption Condition="@(_MonoAotCrossCCLDFLAGS->Count()) > 0">CCLDFLAGS="@(_MonoAotCrossCCLDFLAGS, ' ')"
+
+ <_MonoAotCrossConfigureCommand>$(MonoProjectRoot)configure @(_MonoAotCrossConfigureParams, ' ') @(_MonoAotCrossAC_VARS, ' ') $(_MonoAotCrossCFLAGSOption) $(_MonoAotCrossCXXFLAGSOption) $(_MonoAotCrossCPPFLAGSOption) $(_MonoAotCrossCXXCPPFLAGSOption) $(_MonoAotCrossLDFLAGSOption) $(_MonoAotCrossCCLDFLAGSOption) $(_MonoCCOption) $(_MonoCXXOption) $(_MonoAROption) $(_MonoASOption) $(_MonoCPPOption) $(_MonoCXXCPPOption) $(_MonoDLLTOOLOption) $(_MonoLDOption) $(_MonoOBJDUMPOption) $(_MonoRANLIBOption) $(_MonoCMAKEOption) $(_MonoSTRIPOption)
+ <_MonoAotCrossOffsetsCommand>python3 $(MonoProjectRoot)mono/tools/offsets-tool/offsets-tool.py @(_MonoAotCrossOffsetsToolParams, ' ')
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MonoBuildParams Include="/p:MONO_BUILD_DIR_PREFIX=""$(MonoObjDir)""" />
+ <_MonoBuildParams Include="/p:MONO_ENABLE_NETCORE=true" />
+ <_MonoBuildParams Include="/p:CL_MPCount=$([System.Environment]::ProcessorCount)" />
+ <_MonoBuildParams Include="/v:minimal" />
+ <_MonoBuildParams Condition="$(MonoEnableLLVM) == true" Include="/p:MONO_ENABLE_LLVM=true" />
+ <_MonoBuildParams Condition="$(MonoEnableLLVM) == true" Include="/p:MONO_EXTERNAL_LLVM_CONFIG=""$(MonoLLVMDir)\bin\llvm-config.exe""" />
+
- <_MonoBuildParams>/p:MONO_BUILD_DIR_PREFIX=""$(MonoObjDir)"" /p:MONO_ENABLE_NETCORE=true /p:CL_MPCount=8 /v:minimal
- <_MonoBuildParams Condition="$(MonoEnableLLVM) == true">/p:MONO_ENABLE_LLVM=true /p:MONO_EXTERNAL_LLVM_CONFIG=""$(MonoLLVMDir)\bin\llvm-config.exe"" $(_MonoBuildParams)
- <_MonoBuildPlatform Condition="'$(Platform)' == 'x64'">x64
- <_MonoBuildPlatform Condition="'$(Platform)' == 'x86'">win32
+ <_MonoBuildPlatform Condition="'$(Platform)' == 'x64'">x64
+ <_MonoBuildPlatform Condition="'$(Platform)' == 'x86'">win32
+
+ <_MonoBuildCommand>msvc\run-msbuild.bat build $(_MonoBuildPlatform) $(Configuration) sgen "@(_MonoBuildParams, ' ')" msvc\mono-netcore.sln
-
+
+
+
@@ -97,21 +399,37 @@
<_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true' and '$(Platform)' == 'x64'">$(MonoObjDir)x64\Bin\$(Configuration)\mono-2.0-sgen.dll
<_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="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.so
+ <_MonoRuntimeStaticFilePath Condition="'$(TargetsiOS)' == '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
<_MonoRuntimeArtifacts Include="$(_MonoRuntimeFilePath)">
- $(BinDir)$(_CoreClrFileName)
+ $(BinDir)$(MonoFileName)
+
+ <_MonoRuntimeArtifacts Include="$(_MonoRuntimeStaticFilePath)">
+ $(BinDir)$(MonoStaticFileName)
+ <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)">
+ $(BinDir)cross\mono-aot-cross
+
+ <_MonoIncludeArtifacts Include="$(MonoObjDir)out\include\**" />
-
+
+
+
@@ -219,8 +537,8 @@
-
+
diff --git a/src/mono/mono/metadata/native-library.c b/src/mono/mono/metadata/native-library.c
index 178b5f1f5ce06a..3cd38087724025 100644
--- a/src/mono/mono/metadata/native-library.c
+++ b/src/mono/mono/metadata/native-library.c
@@ -275,6 +275,8 @@ mono_dllmap_insert (MonoImage *assembly, const char *dll, const char *func, cons
{
#ifndef DISABLE_DLLMAP
mono_dllmap_insert_internal (assembly, dll, func, tdll, tfunc);
+#else
+ g_assert_not_reached ();
#endif
}
diff --git a/src/mono/mono/metadata/support.c b/src/mono/mono/metadata/support.c
index 36b250e3789018..104ef642a970dc 100644
--- a/src/mono/mono/metadata/support.c
+++ b/src/mono/mono/metadata/support.c
@@ -1,9 +1,9 @@
#include "utils/mono-compiler.h"
-#if ENABLE_MONOTOUCH
+#if defined(ENABLE_MONOTOUCH) && !defined(ENABLE_NETCORE)
#include "../../support/zlib-helper.c"
-#elif ENABLE_MONODROID
+#elif defined(ENABLE_MONODROID) && !defined(ENABLE_NETCORE)
#include "../../support/nl.c"
#include "../../support/zlib-helper.c"
#else
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 ee83e30099b8fe..af3f6c06134043 100644
--- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
+++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
@@ -99,6 +99,9 @@
TARGET_OSX;$(DefineConstants)
+
+ TARGET_IOS;$(DefineConstants)
+
diff --git a/src/mono/netcore/nuget/Directory.Build.props b/src/mono/netcore/nuget/Directory.Build.props
index 4f5aca6a153526..94c047563c0a2b 100644
--- a/src/mono/netcore/nuget/Directory.Build.props
+++ b/src/mono/netcore/nuget/Directory.Build.props
@@ -23,7 +23,7 @@
$(OSRid)
- Windows_NT;OSX;Android;Linux;FreeBSD
+ Windows_NT;OSX;iOS;Android;Linux;FreeBSD
;$(SupportedPackageOSGroups);
<_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'osx'">OSX
+ <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'ios'">iOS
<_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'android'">Android
<_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(_runtimeOSFamily)' == 'win'">Windows_NT
<_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(TargetOS)' != ''">$(TargetOS)
@@ -85,6 +86,11 @@
osx-$(ArchGroup)
+
+
+ ios.$(iOSVersionMin.TrimEnd('.0'))-$(ArchGroup)
+
+
freebsd.11-$(ArchGroup)
@@ -140,6 +146,15 @@
+
+
+
+ arm
+
+
+ arm64
+
+
diff --git a/src/mono/netcore/nuget/Microsoft.NETCore.Runtime.Mono/runtime.iOS.Microsoft.NETCore.Runtime.Mono.props b/src/mono/netcore/nuget/Microsoft.NETCore.Runtime.Mono/runtime.iOS.Microsoft.NETCore.Runtime.Mono.props
new file mode 100644
index 00000000000000..00dddd2be9a70f
--- /dev/null
+++ b/src/mono/netcore/nuget/Microsoft.NETCore.Runtime.Mono/runtime.iOS.Microsoft.NETCore.Runtime.Mono.props
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ true
+ tools\include\%(RecursiveDir)%(Filename)%(Extension)
+
+
+
diff --git a/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Directory.Build.props b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Directory.Build.props
new file mode 100644
index 00000000000000..e4d014b960af11
--- /dev/null
+++ b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Directory.Build.props
@@ -0,0 +1,10 @@
+
+
+
+
+
+ ref/netstandard1.0
+
+
+
+
diff --git a/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.builds b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.builds
new file mode 100644
index 00000000000000..85918b379eadaf
--- /dev/null
+++ b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.builds
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.pkgproj b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.pkgproj
new file mode 100644
index 00000000000000..a574caec29e4f6
--- /dev/null
+++ b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/Microsoft.NETCore.Tool.MonoAOT.pkgproj
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/runtime.iOS.Microsoft.NETCore.Tool.MonoAOT.props b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/runtime.iOS.Microsoft.NETCore.Tool.MonoAOT.props
new file mode 100644
index 00000000000000..d2f68d1972a023
--- /dev/null
+++ b/src/mono/netcore/nuget/Microsoft.NETCore.Tool.MonoAOT/runtime.iOS.Microsoft.NETCore.Tool.MonoAOT.props
@@ -0,0 +1,9 @@
+
+
+
+
+ true
+ tools
+
+
+
diff --git a/src/mono/netcore/nuget/descriptions.json b/src/mono/netcore/nuget/descriptions.json
index 06d3785de112c6..898e6a490a389e 100644
--- a/src/mono/netcore/nuget/descriptions.json
+++ b/src/mono/netcore/nuget/descriptions.json
@@ -13,5 +13,10 @@
"Name": "Microsoft.NETCore.Runtime.Mono",
"Description": "The Mono .NET Core runtime and the base library, called System.Private.CoreLib. It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes.",
"CommonTypes": [ ]
+ },
+ {
+ "Name": "Microsoft.NETCore.Tool.MonoAOT",
+ "Description": "The Mono .NET Core AOT compiler for compiling IL into native code targetting a specific platform and architecture.",
+ "CommonTypes": [ ]
}
]
diff --git a/src/mono/netcore/nuget/packages.builds b/src/mono/netcore/nuget/packages.builds
index 67351acb4a8ae5..99c6d0ac95c8e6 100644
--- a/src/mono/netcore/nuget/packages.builds
+++ b/src/mono/netcore/nuget/packages.builds
@@ -1,5 +1,6 @@
-
+
+