Imported Upstream version 6.8.0.73

Former-commit-id: d18deab1b47cfd3ad8cba82b3f37d00eec2170af
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-12-10 18:00:56 +00:00
parent bceda29824
commit 73ee7591e8
1043 changed files with 16271 additions and 22080 deletions

View File

@@ -693,8 +693,6 @@ compiler so that csc can be used.
Always use `/r:foo.dll`, not `/r:foo`. Windows requires the former.
Use `/r:$(corlib)`, not `/r:corlib`.
If you're writing shell script code as part of a make rule, remember
that Windows has command-line length limits. So something like

View File

@@ -11,14 +11,6 @@ PLATFORM_RUNTIME
The system runtime for executing CLR programs. Blank on Win32,
probably $(RUNTIME) (the Mono runtime) on everything else.
PLATFORM_CORLIB
The name of the system's corlib. 'mscorlib.dll'
PLATFORM_MAKE_CORLIB_CMP
Define it to something nonempty if corlib_cmp.dll should be built
on this platform. Only should be done if the platform provides its
own non-Mono runtime that we can compare corlibs with.
PLATFORM_TWEAK_CORLIB_SOURCES
A command to futz around with the sources to mscorlib.dll. See linux.make
and win32.make for examples. Should be 'cat' unless you know what you're

View File

@@ -30,7 +30,7 @@
static partial class Consts
{
public const string MonoCorlibVersion = "A144A63D-652C-4CCF-A9EE-8E5A091547F1";
public const string MonoCorlibVersion = "ABB721D6-116A-4555-B4FD-9248146D2051";
}
#if !NETCORE
@@ -41,7 +41,7 @@ static partial class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "6.6.0.161";
public const string MonoVersion = "6.8.0.73";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@@ -21,7 +21,6 @@ TEST_HARNESS = $(topdir)/class/lib/$(PROFILE_DIRECTORY)/$(PARENT_PROFILE)nunit-l
PLATFORM_DEBUG_FLAGS = /debug:portable
# Workaround for https://bugzilla.xamarin.com/show_bug.cgi?id=59967
MCS_FLAGS = /features:peverify-compat /langversion:latest
MBAS_FLAGS = -debug
LIBRARY_FLAGS =
ifndef CFLAGS
CFLAGS = -g -O2
@@ -41,7 +40,6 @@ TEST_RUNTIME = MONO_PATH="$(TEST_MONO_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH
# keep track of the default value
DEFAULT_MCS_FLAGS := $(MCS_FLAGS)
DEFAULT_MBAS_FLAGS := $(MBAS_FLAGS)
DEFAULT_PROFILE := net_4_x
# You shouldn't need to set these but might on a

View File

@@ -1,4 +1,5 @@
Test/Mono.Unix.Android/TestHelper.cs
Test/Mono.Unix.Native/OFDLockTest.cs
Test/Mono.Unix.Native/RealTimeSignumTests.cs
Test/Mono.Unix.Native/SocketTest.cs
Test/Mono.Unix.Native/StdlibTest.cs

View File

@@ -5,20 +5,12 @@
PLATFORM_MCS_FLAGS =
PLATFORM_RUNTIME = $(RUNTIME)
PLATFORM_CORLIB = mscorlib.dll
PLATFORM_TEST_HARNESS_EXCLUDES =
EXTERNAL_MCS = mcs
EXTERNAL_MBAS = mbas
EXTERNAL_RUNTIME = mono
#ILDISASM = monodis
ILDISASM = false
PLATFORM_PATH_SEPARATOR = :
# Define this if this ever will work on Linux
# PLATFORM_MAKE_CORLIB_CMP = yes
# This is for changing / to \ on windows
PLATFORM_CHANGE_SEPARATOR_CMD = cat
@@ -27,12 +19,3 @@ hidden_suffix =
platform-check:
@:
# I tried this but apparently Make's version strings aren't that
# ... consistent between releases. Whatever.
#
# @if ! $(MAKE) --version |grep '^GNU Make version 3' 1>/dev/null 2>&1 ; then \
# echo "*** You need to build MCS with GNU make. Try \`gmake'" ; \
# exit 1 ; \
# fi
PLATFORM_LINUX=1

View File

@@ -5,20 +5,12 @@
PLATFORM_MCS_FLAGS =
PLATFORM_RUNTIME = $(RUNTIME)
PLATFORM_CORLIB = mscorlib.dll
PLATFORM_TEST_HARNESS_EXCLUDES = NotOnMac
EXTERNAL_MCS = mcs
EXTERNAL_MBAS = mbas
EXTERNAL_RUNTIME = mono
#ILDISASM = monodis
ILDISASM = false
PLATFORM_PATH_SEPARATOR = :
# Define this if this ever will work on Linux
# PLATFORM_MAKE_CORLIB_CMP = yes
# This is for changing / to \ on windows
PLATFORM_CHANGE_SEPARATOR_CMD = cat
@@ -27,12 +19,3 @@ hidden_suffix =
platform-check:
@:
# I tried this but apparently Make's version strings aren't that
# ... consistent between releases. Whatever.
#
# @if ! $(MAKE) --version |grep '^GNU Make version 3' 1>/dev/null 2>&1 ; then \
# echo "*** You need to build MCS with GNU make. Try \`gmake'" ; \
# exit 1 ; \
# fi
PLATFORM_MACOS=1

View File

@@ -5,20 +5,12 @@
PLATFORM_MCS_FLAGS =
PLATFORM_RUNTIME = $(RUNTIME)
PLATFORM_CORLIB = mscorlib.dll
PLATFORM_TEST_HARNESS_EXCLUDES =
EXTERNAL_MCS = mcs
EXTERNAL_MBAS = mbas
EXTERNAL_RUNTIME = mono
#ILDISASM = monodis
ILDISASM = false
PLATFORM_PATH_SEPARATOR = :
# Define this if this ever will work on Unix
# PLATFORM_MAKE_CORLIB_CMP = yes
# This is for changing / to \ on windows
PLATFORM_CHANGE_SEPARATOR_CMD = cat
@@ -27,13 +19,3 @@ hidden_suffix =
platform-check:
@:
# I tried this but apparently Make's version strings aren't that
# ... consistent between releases. Whatever.
#
# @if ! $(MAKE) --version |grep '^GNU Make version 3' 1>/dev/null 2>&1 ; then \
# echo "*** You need to build MCS with GNU make. Try \`gmake'" ; \
# exit 1 ; \
# fi
PLATFORM_UNIX=1

View File

@@ -5,21 +5,10 @@
PLATFORM_MCS_FLAGS =
PLATFORM_RUNTIME =
PLATFORM_CORLIB = mscorlib.dll
PLATFORM_TEST_HARNESS_EXCLUDES = NotOnWindows
EXTERNAL_MCS = mcs
EXTERNAL_MBAS = vbc.exe
EXTERNAL_RUNTIME = mono
# Disabled since it needs the SDK
#ILDISASM = ildasm.exe /test
#ILDISASM = monodis.bat
## Gross hack
ILDISASM = $(topdir)/../mono/mono/dis/monodis
PLATFORM_MAKE_CORLIB_CMP = yes
PLATFORM_CHANGE_SEPARATOR_CMD=tr '/' '\\\\'
PLATFORM_PATH_SEPARATOR = ;
@@ -31,4 +20,3 @@ hidden_suffix = .tmp
platform-check:
@:
PLATFORM_WIN32=1

View File

@@ -7,8 +7,6 @@ MCS = $(BOOTSTRAP_MCS)
PLATFORMS = macos linux win32 unix
# nuttzing!
profile-check:
@:
@@ -21,7 +19,7 @@ XBUILD_VERSION = 4.0
ENFORCE_LIBRARY_WARN_AS_ERROR = yes
ifdef PLATFORM_MACOS
ifeq ($(HOST_PLATFORM),macos)
MONO_FEATURE_APPLETLS=1
ENABLE_GSS=1
endif

View File

@@ -42,11 +42,9 @@ COMPILER_SERVER_ARGS = $(if $(findstring 1,$(ENABLE_COMPILER_SERVER)),$(COMPILER
CSC_LOCATION = $(if $(findstring 1,$(ENABLE_COMPILER_SERVER)),$(SERVER_CSC_LOCATION),$(STANDALONE_CSC_LOCATION))
USE_MCS_FLAGS = $(COMPILER_SERVER_ARGS) /codepage:$(CODEPAGE) /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
USE_MBAS_FLAGS = $(COMPILER_SERVER_ARGS) /codepage:$(CODEPAGE) $(LOCAL_MBAS_FLAGS) $(PLATFORM_MBAS_FLAGS) $(PROFILE_MBAS_FLAGS) $(MBAS_FLAGS)
USE_CFLAGS = $(LOCAL_CFLAGS) $(CFLAGS) $(CPPFLAGS)
CSCOMPILE = $(Q_MCS) $(MCS) $(USE_MCS_FLAGS)
CSC_RUNTIME_FLAGS = --aot-path=$(abspath $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)) --gc-params=nursery-size=64m --clr-memory-model
BASCOMPILE = $(MBAS) $(USE_MBAS_FLAGS)
CSC_RUNTIME_FLAGS = --aot-path=$(abspath $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)) --gc-params=nursery-size=64m
CCOMPILE = $(CC) $(USE_CFLAGS)
BOOT_COMPILE = $(Q_MCS) $(BOOTSTRAP_MCS) $(USE_MCS_FLAGS)
INSTALL = $(SHELL) $(topdir)/../mono/install-sh
@@ -54,7 +52,6 @@ INSTALL_DATA = $(INSTALL) -c -m 644
INSTALL_BIN = $(INSTALL) -c -m 755
INSTALL_LIB = $(INSTALL_BIN)
MKINSTALLDIRS = $(SHELL) $(topdir)/mkinstalldirs
INTERNAL_MBAS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/mbas/mbas.exe
INTERNAL_CSC_LOCATION = $(CSC_LOCATION)
# Using CSC_SDK_PATH_DISABLED for sanity check that all references have path specified
@@ -100,9 +97,6 @@ include $(topdir)/build/platforms/$(BUILD_PLATFORM).make
PROFILE_PLATFORM = $(if $(PLATFORMS),$(if $(filter $(PLATFORMS),$(HOST_PLATFORM)),$(HOST_PLATFORM),$(error Unknown platform "$(HOST_PLATFORM)" for profile "$(PROFILE)")))
PROFILE_DIRECTORY = $(PROFILE)$(if $(PROFILE_PLATFORM),-$(PROFILE_PLATFORM))
ifdef PLATFORM_CORLIB
corlib = $(PLATFORM_CORLIB)
endif
# Useful
ifeq ($(PLATFORM_RUNTIME),$(RUNTIME))

View File

@@ -6,7 +6,7 @@ set -u
set -e
if [ -s "$VBCS_LOCATION" ]; then
CMD="RoslynCommandLineLogFile=$2 $VBCS_RUNTIME --clr-memory-model --gc-params=nursery-size=64m \"$VBCS_LOCATION\" -pipename:$3 &"
CMD="RoslynCommandLineLogFile=$2 $VBCS_RUNTIME --gc-params=nursery-size=64m \"$VBCS_LOCATION\" -pipename:$3 &"
echo "Log location set to $2"
touch "$2"
echo "cd $1; bash -c \"$CMD\""

View File

@@ -604,6 +604,7 @@ public class Tests : TestsBase, ITest2
if_property_stepping();
fixed_size_array();
test_new_exception_filter();
test_async_debug_generics();
return 3;
}
@@ -903,6 +904,17 @@ public class Tests : TestsBase, ITest2
}
}
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static void test_async_debug_generics () {
ExecuteAsync_Broken<object>().Wait ();
}
async static Task<T> ExecuteAsync_Broken<T>()
{
await Task.Delay(2);
return default;
}
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static void inspect_enumerator_in_generic_struct() {
TestEnumeratorInsideGenericStruct<String, String> generic_struct = new TestEnumeratorInsideGenericStruct<String, String>(new KeyValuePair<string, string>("0", "f1"));

View File

@@ -1 +1 @@
2bccbb137b170a01de42625d65883e868c508913
52da50a45dbfc7510ab393f4a443ee0caae46b7b

View File

@@ -139,6 +139,7 @@ namespace Mono.Attach
else {
writer.Write ((sbyte)PrimitiveType.PRIM_TYPE_STRING);
writer.Write (s);
writer.Write ((byte)0);
}
}

View File

@@ -43,33 +43,16 @@ namespace Mono.Messaging.RabbitMQ {
public class RabbitMQMessagingProvider : IMessagingProvider {
private int txCounter = 0;
private readonly uint localIp;
private readonly Guid localId;
private readonly MessagingContextPool contextPool;
public RabbitMQMessagingProvider ()
{
localIp = GetLocalIP ();
localId = Guid.NewGuid ();
contextPool = new MessagingContextPool (new MessageFactory (this),
CreateConnection);
}
private static uint GetLocalIP ()
{
String strHostName = Dns.GetHostName ();
IPHostEntry ipEntry = Dns.GetHostByName (strHostName);
foreach (IPAddress ip in ipEntry.AddressList) {
if (AddressFamily.InterNetwork == ip.AddressFamily) {
byte[] addr = ip.GetAddressBytes ();
uint localIP = 0;
for (int i = 0; i < 4 && i < addr.Length; i++) {
localIP += (uint) (addr[i] << 8 * (3 - i));
}
return localIP;
}
}
return 0;
}
public IMessage CreateMessage ()
{
return new MessageBase ();
@@ -78,7 +61,7 @@ namespace Mono.Messaging.RabbitMQ {
public IMessageQueueTransaction CreateMessageQueueTransaction ()
{
Interlocked.Increment (ref txCounter);
string txId = localIp.ToString () + txCounter.ToString ();
string txId = localId.ToString () + "_" + txCounter.ToString ();
return new RabbitMQMessageQueueTransaction (txId, contextPool);
}

View File

@@ -9,6 +9,7 @@ Mono.Unix/UnixPathTest.cs
Mono.Unix/UnixSignalTest.cs
Mono.Unix/UnixUserTest.cs
Mono.Unix.Android/TestHelper.cs
Mono.Unix.Native/OFDLockTest.cs
Mono.Unix.Native/RealTimeSignumTests.cs
Mono.Unix.Native/SocketTest.cs
Mono.Unix.Native/StdlibTest.cs

View File

@@ -1 +1 @@
6cc67dda4b894bb3ef0dffdc49ae8e816665c012
c9eb750d22227382cc4989053d328c0e7fc0bc79

View File

@@ -0,0 +1,133 @@
//
// Tests for FcntlCommand.F_OFD_{GETLK,SETLK,SETLKW}
//
// Authors:
// Steffen Kiess (kiess@ki4.de)
//
// Copyright (C) 2019 Steffen Kiess
//
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using Mono.Unix;
using Mono.Unix.Native;
using NUnit.Framework;
namespace MonoTests.Mono.Unix.Native
{
[TestFixture, Category ("NotDotNet"), Category ("NotOnWindows"), Category ("NotOnMac")]
public class OFDLockTest {
string TempFolder;
[SetUp]
public void SetUp ()
{
TempFolder = Path.Combine (Path.GetTempPath (), this.GetType ().FullName);
if (Directory.Exists (TempFolder))
Directory.Delete (TempFolder, true);
Directory.CreateDirectory (TempFolder);
}
[TearDown]
public void TearDown()
{
if (Directory.Exists (TempFolder))
Directory.Delete (TempFolder, true);
}
[Test]
public void TestOFDLock ()
{
int fd1 = Syscall.open (TempFolder + "/testfile", OpenFlags.O_RDWR | OpenFlags.O_CREAT | OpenFlags.O_EXCL, FilePermissions.DEFFILEMODE);
if (fd1 < 0)
UnixMarshal.ThrowExceptionForLastError ();
int fd2 = Syscall.open (TempFolder + "/testfile", OpenFlags.O_RDWR);
if (fd2 < 0)
UnixMarshal.ThrowExceptionForLastError ();
int fd3 = Syscall.open (TempFolder + "/testfile", OpenFlags.O_RDWR);
if (fd3 < 0)
UnixMarshal.ThrowExceptionForLastError ();
// Get read lock for first 100 bytes on fd1
var flock1 = new Flock {
l_type = LockType.F_RDLCK,
l_whence = SeekFlags.SEEK_SET,
l_start = 0,
l_len = 100,
};
if (Syscall.fcntl (fd1, FcntlCommand.F_OFD_SETLKW, ref flock1) < 0) {
// Old kernels and non-linux systems should return EINVAL
if (Stdlib.GetLastError () == Errno.EINVAL)
Assert.Ignore ("F_OFD_SETLKW does not seem to be supported.");
UnixMarshal.ThrowExceptionForLastError ();
}
// Get read lock for first 100 bytes on fd2
var flock2 = new Flock {
l_type = LockType.F_RDLCK,
l_whence = SeekFlags.SEEK_SET,
l_start = 0,
l_len = 100,
};
if (Syscall.fcntl (fd2, FcntlCommand.F_OFD_SETLK, ref flock2) < 0)
UnixMarshal.ThrowExceptionForLastError ();
// Get write lock for remaining bytes on fd1
var flock3 = new Flock {
l_type = LockType.F_WRLCK,
l_whence = SeekFlags.SEEK_SET,
l_start = 100,
l_len = 0,
};
if (Syscall.fcntl (fd1, FcntlCommand.F_OFD_SETLK, ref flock3) < 0)
UnixMarshal.ThrowExceptionForLastError ();
// Close fd3, should not release lock
if (Syscall.close (fd3) < 0)
UnixMarshal.ThrowExceptionForLastError ();
// Get lock status for byte 150 from fd2
var flock4 = new Flock {
l_type = LockType.F_RDLCK,
l_whence = SeekFlags.SEEK_SET,
l_start = 150,
l_len = 1,
};
if (Syscall.fcntl (fd2, FcntlCommand.F_OFD_GETLK, ref flock4) < 0)
UnixMarshal.ThrowExceptionForLastError ();
// There should be a conflicting write lock
Assert.AreEqual (LockType.F_WRLCK, flock4.l_type);
// Get write byte 0 on fd1, should fail with EAGAIN
var flock5 = new Flock {
l_type = LockType.F_WRLCK,
l_whence = SeekFlags.SEEK_SET,
l_start = 0,
l_len = 1,
};
var res = Syscall.fcntl (fd1, FcntlCommand.F_OFD_SETLK, ref flock5);
Assert.AreEqual (-1, res);
Assert.AreEqual (Errno.EAGAIN, Stdlib.GetLastError ());
if (Syscall.close (fd1) < 0)
UnixMarshal.ThrowExceptionForLastError ();
if (Syscall.close (fd2) < 0)
UnixMarshal.ThrowExceptionForLastError ();
}
}
}
// vim: noexpandtab
// Local Variables:
// tab-width: 4
// c-basic-offset: 4
// indent-tabs-mode: t
// End:

View File

@@ -172,6 +172,7 @@ namespace Mono.Profiler.Log {
Debugger = 13,
Handle = 14,
Ephemeron = 15,
Toggleref = 16,
}
// mono/profiler/log.h : MonoProfilerMonitorEvent

Some files were not shown because too many files have changed in this diff Show More