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 -c ") endif(CLR_CMAKE_HOST_OS STREQUAL Darwin) +if(CLR_CMAKE_HOST_OS STREQUAL iOS) + set(CLR_CMAKE_HOST_UNIX 1) + set(CLR_CMAKE_HOST_IOS 1) + if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") + set(CLR_CMAKE_HOST_UNIX_AMD64 1) + elseif(CMAKE_OSX_ARCHITECTURES MATCHES "armv7") + set(CLR_CMAKE_HOST_UNIX_ARM 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 iOS) + if(CLR_CMAKE_HOST_OS STREQUAL FreeBSD) set(CLR_CMAKE_HOST_UNIX 1) set(CLR_CMAKE_HOST_UNIX_AMD64 1) @@ -230,6 +244,11 @@ if(CLR_CMAKE_TARGET_OS STREQUAL Darwin) set(CLR_CMAKE_TARGET_DARWIN 1) endif(CLR_CMAKE_TARGET_OS STREQUAL Darwin) +if(CLR_CMAKE_TARGET_OS STREQUAL iOS) + set(CLR_CMAKE_TARGET_UNIX 1) + set(CLR_CMAKE_TARGET_IOS 1) +endif(CLR_CMAKE_TARGET_OS STREQUAL iOS) + if(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD) set(CLR_CMAKE_TARGET_UNIX 1) set(CLR_CMAKE_TARGET_FREEBSD 1) @@ -302,3 +321,5 @@ if(NOT CLR_CMAKE_HOST_ARCH_WASM) endif() set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif(NOT CLR_CMAKE_HOST_ARCH_WASM) + +set(CLR_CMAKE_CONFIGURE_PLATFORM_INCLUDED 1) diff --git a/eng/native/configuretools.cmake b/eng/native/configuretools.cmake index 0a2f797dbdf69e..b59504a10e7616 100644 --- a/eng/native/configuretools.cmake +++ b/eng/native/configuretools.cmake @@ -1,3 +1,7 @@ +if(NOT CLR_CMAKE_CONFIGURE_PLATFORM_INCLUDED) + message(FATAL_ERROR "configuretools.cmake needs to be included after configureplatform.cmake") +endif() + # Get the version of the compiler that is in the file name for tool location. set (CLR_CMAKE_COMPILER_FILE_NAME_VERSION "") if (CMAKE_C_COMPILER MATCHES "-?[0-9]+(\.[0-9]+)?$") @@ -45,7 +49,7 @@ if(NOT WIN32) locate_toolchain_exec(ranlib CMAKE_RANLIB) endif() - if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin) + if(NOT CLR_CMAKE_TARGET_DARWIN AND NOT CLR_CMAKE_TARGET_IOS) locate_toolchain_exec(objdump CMAKE_OBJDUMP) if(CMAKE_CROSSCOMPILING AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD AND (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l OR diff --git a/eng/native/init-distro-rid.sh b/eng/native/init-distro-rid.sh index c517478b16d980..3c7f475823511a 100644 --- a/eng/native/init-distro-rid.sh +++ b/eng/native/init-distro-rid.sh @@ -161,6 +161,8 @@ initDistroRidGlobal() distroRid="linux-$buildArch" elif [ "$targetOs" = "OSX" ]; then distroRid="osx-$buildArch" + elif [ "$targetOs" = "iOS" ]; then + distroRid="ios-$buildArch" elif [ "$targetOs" = "FreeBSD" ]; then distroRid="freebsd-$buildArch" fi diff --git a/eng/native/naming.props b/eng/native/naming.props index 541aaaa1bcbfda..ab5462b0d7bc59 100644 --- a/eng/native/naming.props +++ b/eng/native/naming.props @@ -9,7 +9,7 @@ .pdb - + 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 @@ - + +