/mono/metadata/threads* @luhenry @kumpera
/mono/metadata/threadpool* @luhenry
/mono/metadata/w32* @luhenry
+/mono/metadata/*-win* @lateralusX @luhenry
/mono/mini @vargaz @kumpera
/mono/mini/*cfgdump* @lewurm
/mono/utils/mono-hwcap* @alexrp
/mono/utils/mono-mem* @alexrp
/mono/utils/mono-threads* @luhenry @kumpera
+/mono/utils/*-win* @lateralusX @kumpera
-/msvc @ntherning
+/msvc @lateralusX
/msvc/*profiler* @alexrp
/msvc/scripts @akoeplinger
update-solution-files:
make update-csproj
make package-inputs
- (cd msvc/scripts; make genproj.exe; mono genproj.exe)
+ (cd msvc/scripts; make genproj.exe; mono genproj.exe $(GENPROJ_ARGS))
+
+update-solution-files-with-tests:
+ make "GENPROJ_ARGS=2012 true true" update-solution-files
{
"name": "ms-test-suite",
"url": "git@github.com:xamarin/ms-test-suite.git",
- "rev": "73c155f76b55839f26ba707d6d40091060e4f5d8",
+ "rev": "25f495326e141163d59e52ef499227a2f38fe036",
"remote-branch": "origin/master",
"branch": "master",
"directory": "ms-test-suite"
check-ms-test-suite: $(CLASS)/nunitlite.dll
@if $(MAKE) validate-ms-test-suite RESET_VERSIONS=1; then \
$(MAKE) -C $(MSTESTSUITE_PATH)/conformance build MCS="$(MCS) -debug:portable -t:library -warn:1 -r:$(CLASS)/nunitlite.dll" && \
+ $(MAKE) -C $(MSTESTSUITE_PATH)/systemruntimebringup build MCS="$(MCS) -debug:portable -t:library -warn:1 -r:$(CLASS)/nunitlite.dll" && \
+ $(MAKE) -C $(MSTESTSUITE_PATH)/System.Linq.Expressions build MCS="$(MCS) -debug:portable -t:library -warn:1 -r:$(CLASS)/nunitlite.dll" && \
$(MAKE) -C $(MSTESTSUITE_PATH)/conformance run NUNIT-CONSOLE="$(RUNTIME) $(CLASS)/nunit-lite-console.exe -exclude=MonoBug,BadTest -format:nunit2" NUNIT_XML_RESULT="-result:$(abs_top_builddir)/acceptance-tests/TestResult-ms-test-suite-conformance.xml" || EXIT_CODE=1; \
- $(MAKE) -C $(MSTESTSUITE_PATH)/systemruntimebringup build MCS="$(MCS) -debug:portable -warn:1" && \
- $(MAKE) -C $(MSTESTSUITE_PATH)/systemruntimebringup run MONO="$(RUNTIME)" || EXIT_CODE=1; \
+ $(MAKE) -C $(MSTESTSUITE_PATH)/systemruntimebringup run NUNIT-CONSOLE="$(RUNTIME) $(CLASS)/nunit-lite-console.exe -exclude=MonoBug,BadTest -format:nunit2" NUNIT_XML_RESULT="-result:$(abs_top_builddir)/acceptance-tests/TestResult-ms-test-suite-systemruntimebringup.xml" || EXIT_CODE=1; \
+ $(MAKE) -C $(MSTESTSUITE_PATH)/System.Linq.Expressions run NUNIT-CONSOLE="$(RUNTIME) $(CLASS)/nunit-lite-console.exe -exclude=MonoBug,BadTest -format:nunit2" NUNIT_XML_RESULT="-result:$(abs_top_builddir)/acceptance-tests/TestResult-ms-test-suite-systemlinqexpressions.xml" || EXIT_CODE=1; \
exit $$EXIT_CODE; \
else \
echo "*** [ms-test-suite] Getting the repository failed, you probably don't have access to this Xamarin-internal resource. Skipping."; \
-Subproject commit 090c95d755f8112db5cf6c30df92a9941d9124a4
+Subproject commit 627333cae84f02a36ee9ca605c96dac4557d9f35
-Subproject commit f2c8f2e7fb17e8a55b6679c7d13e3634ec45c639
+Subproject commit 29022af5d8a94651b2eece93f910559b254ec3f0
-Subproject commit 9e04cc7f41899c880807d1d055a24c768670784a
+Subproject commit b58ba4282377bcefd48abdc2d62ce6330e079abe
For a sample of how to write your own custom profiler look in the
Mono source tree for in the samples/profiler.c.
.SH CODE COVERAGE
-Mono ships with a code coverage module in the \f[I]log\f[] profiler.
-Check the `coverage' option on the mprof-report(1) page for more details.
+Mono ships with a code coverage module in the \f[I]coverage\f[] profiler.
+To enable it, pass \fB--profile=coverage\fR to your mono invocation. It
+will by default output a coverage.xml in the current directory. Use
+\fBmono --profile=coverage:help sample.exe\fR for more information on the
+different options.
.SH AOT PROFILING
You can improve startup performance by using the AOT profiler.
.PP
.IP \[bu] 2
\f[I]nocounters\f[]: disables sampling of runtime and performance
counters, which is normally done every 1 second.
-.IP \[bu] 2
-\f[I]coverage\f[]: collect code coverage data. This implies enabling
-the \f[I]calls\f[] option.
.RE
.SS Analyzing the profile data
.PP
.IP \[bu] 2
\f[I]counters\f[]: counters samples
.IP \[bu] 2
-\f[I]coverage\f[]: code coverage data
-.IP \[bu] 2
\f[I]stats\f[]: event statistics
.PP
It is possible to limit some of the data displayed to a timeframe
To print it to a file, instead, use the option:
.PP
\f[B]--out=FILENAME\f[]
-.SS Processing code coverage data
-.PP
-If you ran the profiler with the \f[I]coverage\f[] option, you can
-process the collected coverage data into an XML file by running
-mprof-report like this:
-.PP
-\f[B]mprof-report --coverage-out=coverage.xml output.mlpd\f[]
.SS Dealing with profiler slowness
.PP
If the profiler needs to collect lots of data, the execution of the
public static IntPtr StringToHeap (string s, Encoding encoding)
{
+ if (s == null)
+ return IntPtr.Zero;
+
return StringToHeap (s, 0, s.Length, encoding);
}
}
#endif
+ [Test]
+ public void BXC10074 ()
+ {
+ var result = UnixMarshal.StringToHeap (null, Encoding.ASCII);
+ Assert.AreEqual (IntPtr.Zero, result, "This used to crash due to a NullReferenceException");
+ }
+
[Test]
public void TestStringToHeap ()
{
PreStartWorld = 8,
PostStartWorld = 9,
PostStartWorldUnlocked = 11,
+ // Following are v13 and older only
+ [Obsolete ("This event is no longer produced.")]
+ MarkBegin = 1,
+ [Obsolete ("This event is no longer produced.")]
+ MarkEnd = 2,
+ [Obsolete ("This event is no longer produced.")]
+ ReclaimBegin = 3,
+ [Obsolete ("This event is no longer produced.")]
+ ReclaimEnd = 4
}
// mono/metadata/mono-gc.h : MonoGCHandleType
public sealed class LogProcessor {
- public LogReader Reader { get; }
+ public LogStream Stream { get; }
public LogEventVisitor ImmediateVisitor { get; }
public LogStreamHeader StreamHeader { get; private set; }
+ LogReader _reader;
+
LogBufferHeader _bufferHeader;
ulong _time;
bool _used;
- public LogProcessor (LogReader reader, LogEventVisitor immediateVisitor, LogEventVisitor sortedVisitor)
+ public LogProcessor (LogStream stream, LogEventVisitor immediateVisitor, LogEventVisitor sortedVisitor)
{
- if (reader == null)
- throw new ArgumentNullException (nameof (reader));
+ if (stream == null)
+ throw new ArgumentNullException (nameof (stream));
- Reader = reader;
+ Stream = stream;
ImmediateVisitor = immediateVisitor;
SortedVisitor = sortedVisitor;
}
throw new InvalidOperationException ("This log processor cannot be reused.");
_used = true;
- StreamHeader = new LogStreamHeader (Reader);
+ _reader = new LogReader (Stream, true);
+
+ StreamHeader = new LogStreamHeader (_reader);
var events = new List<LogEvent> (Environment.ProcessorCount * 1000);
- while (!Reader.BaseStream.EndOfStream) {
+ while (!Stream.EndOfStream) {
token.ThrowIfCancellationRequested ();
- _bufferHeader = new LogBufferHeader (StreamHeader, Reader);
+ _bufferHeader = new LogBufferHeader (StreamHeader, _reader);
+
+ // Read the entire buffer into a MemoryStream ahead of time to
+ // reduce the amount of I/O system calls we do. This should be
+ // fine since the profiler tries to keep buffers small and
+ // flushes them every second at minimum. This also has the
+ // advantage that we can use the Position and Length properties
+ // even if the stream we read the buffer from is actually
+ // non-seekable.
+ var stream = new MemoryStream (_reader.ReadBytes (_bufferHeader.Length), false);
+
+ using (var reader = new LogReader (stream, false)) {
+ var oldReader = _reader;
- // Use the manual position tracking in LogReader so we're
- // compatible with non-seekable streams.
- var goal = Reader.Position + _bufferHeader.Length;
+ _reader = reader;
- while (Reader.Position < goal) {
- token.ThrowIfCancellationRequested ();
+ while (stream.Position < stream.Length) {
+ token.ThrowIfCancellationRequested ();
- var ev = ReadEvent ();
+ var ev = ReadEvent ();
- ProcessEvent (ImmediateVisitor, ev);
- events.Add (ev);
+ ProcessEvent (ImmediateVisitor, ev);
+ events.Add (ev);
- if (ev is SynchronizationPointEvent)
- ProcessEvents (events, token);
+ if (ev is SynchronizationPointEvent)
+ ProcessEvents (events, token);
+ }
+
+ _reader = oldReader;
}
}
LogEvent ReadEvent ()
{
- var type = Reader.ReadByte ();
+ var type = _reader.ReadByte ();
var basicType = (LogEventType) (type & 0xf);
var extType = (LogEventType) (type & 0xf0);
ev = new AllocationEvent {
ClassPointer = ReadPointer (),
ObjectPointer = ReadObject (),
- ObjectSize = (long) Reader.ReadULeb128 (),
+ ObjectSize = (long) _reader.ReadULeb128 (),
Backtrace = ReadBacktrace (extType == LogEventType.AllocationBacktrace),
};
break;
switch (extType) {
case LogEventType.GCEvent:
ev = new GCEvent {
- Type = (LogGCEvent) Reader.ReadByte (),
- Generation = Reader.ReadByte (),
+ Type = (LogGCEvent) _reader.ReadByte (),
+ Generation = _reader.ReadByte (),
};
break;
case LogEventType.GCResize:
ev = new GCResizeEvent {
- NewSize = (long) Reader.ReadULeb128 (),
+ NewSize = (long) _reader.ReadULeb128 (),
};
break;
case LogEventType.GCMove: {
- var list = new long [(int) Reader.ReadULeb128 ()];
+ var list = new long [(int) _reader.ReadULeb128 ()];
for (var i = 0; i < list.Length; i++)
list [i] = ReadObject ();
case LogEventType.GCHandleCreationNoBacktrace:
case LogEventType.GCHandleCreationBacktrace:
ev = new GCHandleCreationEvent {
- Type = (LogGCHandleType) Reader.ReadULeb128 (),
- Handle = (long) Reader.ReadULeb128 (),
+ Type = (LogGCHandleType) _reader.ReadULeb128 (),
+ Handle = (long) _reader.ReadULeb128 (),
ObjectPointer = ReadObject (),
Backtrace = ReadBacktrace (extType == LogEventType.GCHandleCreationBacktrace),
};
case LogEventType.GCHandleDeletionNoBacktrace:
case LogEventType.GCHandleDeletionBacktrace:
ev = new GCHandleDeletionEvent {
- Type = (LogGCHandleType) Reader.ReadULeb128 (),
- Handle = (long) Reader.ReadULeb128 (),
+ Type = (LogGCHandleType) _reader.ReadULeb128 (),
+ Handle = (long) _reader.ReadULeb128 (),
Backtrace = ReadBacktrace (extType == LogEventType.GCHandleDeletionBacktrace),
};
break;
throw new LogException ($"Invalid extended event type ({extType}).");
}
- var metadataType = (LogMetadataType) Reader.ReadByte ();
+ var metadataType = (LogMetadataType) _reader.ReadByte ();
switch (metadataType) {
case LogMetadataType.Class:
ev = new ClassLoadEvent {
ClassPointer = ReadPointer (),
ImagePointer = ReadPointer (),
- Name = Reader.ReadCString (),
+ Name = _reader.ReadCString (),
};
} else
throw new LogException ("Invalid class metadata event.");
if (load) {
ev = new ImageLoadEvent {
ImagePointer = ReadPointer (),
- Name = Reader.ReadCString (),
+ Name = _reader.ReadCString (),
};
} else if (unload) {
ev = new ImageUnloadEvent {
ImagePointer = ReadPointer (),
- Name = Reader.ReadCString (),
+ Name = _reader.ReadCString (),
};
} else
throw new LogException ("Invalid image metadata event.");
if (load) {
ev = new AssemblyLoadEvent {
AssemblyPointer = ReadPointer (),
- ImagePointer = ReadPointer (),
- Name = Reader.ReadCString (),
+ ImagePointer = StreamHeader.FormatVersion >= 14 ? ReadPointer () : 0,
+ Name = _reader.ReadCString (),
};
} else if (unload) {
ev = new AssemblyUnloadEvent {
AssemblyPointer = ReadPointer (),
- ImagePointer = ReadPointer (),
- Name = Reader.ReadCString (),
+ ImagePointer = StreamHeader.FormatVersion >= 14 ? ReadPointer () : 0,
+ Name = _reader.ReadCString (),
};
} else
throw new LogException ("Invalid assembly metadata event.");
} else {
ev = new AppDomainNameEvent {
AppDomainId = ReadPointer (),
- Name = Reader.ReadCString (),
+ Name = _reader.ReadCString (),
};
}
break;
} else {
ev = new ThreadNameEvent {
ThreadId = ReadPointer (),
- Name = Reader.ReadCString (),
+ Name = _reader.ReadCString (),
};
}
break;
ev = new JitEvent {
MethodPointer = ReadMethod (),
CodePointer = ReadPointer (),
- CodeSize = (long) Reader.ReadULeb128 (),
- Name = Reader.ReadCString (),
+ CodeSize = (long) _reader.ReadULeb128 (),
+ Name = _reader.ReadCString (),
};
break;
default:
break;
case LogEventType.ExceptionClause:
ev = new ExceptionClauseEvent {
- Type = (LogExceptionClause) Reader.ReadByte (),
- Index = (long) Reader.ReadULeb128 (),
+ Type = (LogExceptionClause) _reader.ReadByte (),
+ Index = (long) _reader.ReadULeb128 (),
MethodPointer = ReadMethod (),
- ObjectPointer = ReadObject (),
+ ObjectPointer = StreamHeader.FormatVersion >= 14 ? ReadObject () : 0,
};
break;
default:
}
break;
case LogEventType.Monitor:
+ if (StreamHeader.FormatVersion < 14) {
+ if (extType.HasFlag (LogEventType.MonitorBacktrace)) {
+ extType = LogEventType.MonitorBacktrace;
+ } else {
+ extType = LogEventType.MonitorNoBacktrace;
+ }
+ }
switch (extType) {
case LogEventType.MonitorNoBacktrace:
case LogEventType.MonitorBacktrace:
ev = new MonitorEvent {
- Event = (LogMonitorEvent) Reader.ReadByte (),
+ Event = StreamHeader.FormatVersion >= 14 ?
+ (LogMonitorEvent) _reader.ReadByte () :
+ (LogMonitorEvent) ((((byte) type & 0xf0) >> 4) & 0x3),
ObjectPointer = ReadObject (),
Backtrace = ReadBacktrace (extType == LogEventType.MonitorBacktrace),
};
HeapObjectEvent hoe = new HeapObjectEvent {
ObjectPointer = ReadObject (),
ClassPointer = ReadPointer (),
- ObjectSize = (long) Reader.ReadULeb128 (),
+ ObjectSize = (long) _reader.ReadULeb128 (),
};
- var list = new HeapObjectEvent.HeapObjectReference [(int) Reader.ReadULeb128 ()];
+ var list = new HeapObjectEvent.HeapObjectReference [(int) _reader.ReadULeb128 ()];
for (var i = 0; i < list.Length; i++) {
list [i] = new HeapObjectEvent.HeapObjectReference {
- Offset = (long) Reader.ReadULeb128 (),
+ Offset = (long) _reader.ReadULeb128 (),
ObjectPointer = ReadObject (),
};
}
case LogEventType.HeapRoots: {
// TODO: This entire event makes no sense.
var hre = new HeapRootsEvent ();
- var list = new HeapRootsEvent.HeapRoot [(int) Reader.ReadULeb128 ()];
+ var list = new HeapRootsEvent.HeapRoot [(int) _reader.ReadULeb128 ()];
- hre.MaxGenerationCollectionCount = (long) Reader.ReadULeb128 ();
+ hre.MaxGenerationCollectionCount = (long) _reader.ReadULeb128 ();
for (var i = 0; i < list.Length; i++) {
list [i] = new HeapRootsEvent.HeapRoot {
ObjectPointer = ReadObject (),
- Attributes = (LogHeapRootAttributes) Reader.ReadULeb128 (),
- ExtraInfo = (long) Reader.ReadULeb128 (),
+ Attributes = StreamHeader.FormatVersion == 13 ? (LogHeapRootAttributes) _reader.ReadByte () : (LogHeapRootAttributes) _reader.ReadULeb128 (),
+ ExtraInfo = (long) _reader.ReadULeb128 (),
};
}
case LogEventType.Sample:
switch (extType) {
case LogEventType.SampleHit:
+ if (StreamHeader.FormatVersion < 14) {
+ // Read SampleType (always set to .Cycles) for versions < 14
+ _reader.ReadByte ();
+ }
ev = new SampleHitEvent {
ThreadId = ReadPointer (),
UnmanagedBacktrace = ReadBacktrace (true, false),
- ManagedBacktrace = ReadBacktrace (true),
+ ManagedBacktrace = ReadBacktrace (true).Reverse ().ToArray (),
};
break;
case LogEventType.SampleUnmanagedSymbol:
ev = new UnmanagedSymbolEvent {
CodePointer = ReadPointer (),
- CodeSize = (long) Reader.ReadULeb128 (),
- Name = Reader.ReadCString (),
+ CodeSize = (long) _reader.ReadULeb128 (),
+ Name = _reader.ReadCString (),
};
break;
case LogEventType.SampleUnmanagedBinary:
ev = new UnmanagedBinaryEvent {
- SegmentPointer = ReadPointer (),
- SegmentOffset = (long) Reader.ReadULeb128 (),
- SegmentSize = (long) Reader.ReadULeb128 (),
- FileName = Reader.ReadCString (),
+ SegmentPointer = StreamHeader.FormatVersion >= 14 ? ReadPointer () : _reader.ReadSLeb128 (),
+ SegmentOffset = (long) _reader.ReadULeb128 (),
+ SegmentSize = (long) _reader.ReadULeb128 (),
+ FileName = _reader.ReadCString (),
};
break;
case LogEventType.SampleCounterDescriptions: {
var cde = new CounterDescriptionsEvent ();
- var list = new CounterDescriptionsEvent.CounterDescription [(int) Reader.ReadULeb128 ()];
+ var list = new CounterDescriptionsEvent.CounterDescription [(int) _reader.ReadULeb128 ()];
for (var i = 0; i < list.Length; i++) {
- var section = (LogCounterSection) Reader.ReadULeb128 ();
+ var section = (LogCounterSection) _reader.ReadULeb128 ();
list [i] = new CounterDescriptionsEvent.CounterDescription {
Section = section,
- SectionName = section == LogCounterSection.User ? Reader.ReadCString () : string.Empty,
- CounterName = Reader.ReadCString (),
- Type = (LogCounterType) Reader.ReadByte (),
- Unit = (LogCounterUnit) Reader.ReadByte (),
- Variance = (LogCounterVariance) Reader.ReadByte (),
- Index = (long) Reader.ReadULeb128 (),
+ SectionName = section == LogCounterSection.User ? _reader.ReadCString () : null,
+ CounterName = _reader.ReadCString (),
+ Type = (LogCounterType) _reader.ReadByte (),
+ Unit = (LogCounterUnit) _reader.ReadByte (),
+ Variance = (LogCounterVariance) _reader.ReadByte (),
+ Index = (long) _reader.ReadULeb128 (),
};
}
var list = new List<CounterSamplesEvent.CounterSample> ();
while (true) {
- var index = (long) Reader.ReadULeb128 ();
+ var index = (long) _reader.ReadULeb128 ();
if (index == 0)
break;
- var counterType = (LogCounterType) Reader.ReadByte ();
+ var counterType = (LogCounterType) _reader.ReadByte ();
object value = null;
switch (counterType) {
case LogCounterType.String:
- value = Reader.ReadByte () == 1 ? Reader.ReadCString () : null;
+ value = _reader.ReadByte () == 1 ? _reader.ReadCString () : null;
break;
case LogCounterType.Int32:
case LogCounterType.Word:
case LogCounterType.Int64:
case LogCounterType.Interval:
- value = Reader.ReadSLeb128 ();
+ value = _reader.ReadSLeb128 ();
break;
case LogCounterType.UInt32:
case LogCounterType.UInt64:
- value = Reader.ReadULeb128 ();
+ value = _reader.ReadULeb128 ();
break;
case LogCounterType.Double:
- value = Reader.ReadDouble ();
+ value = _reader.ReadDouble ();
break;
default:
throw new LogException ($"Invalid counter type ({counterType}).");
case LogEventType.Runtime:
switch (extType) {
case LogEventType.RuntimeJitHelper: {
- var helperType = (LogJitHelper) Reader.ReadByte ();
+ var helperType = (LogJitHelper) _reader.ReadByte ();
ev = new JitHelperEvent {
Type = helperType,
BufferPointer = ReadPointer (),
- BufferSize = (long) Reader.ReadULeb128 (),
- Name = helperType == LogJitHelper.SpecificTrampoline ? Reader.ReadCString () : string.Empty,
+ BufferSize = (long) _reader.ReadULeb128 (),
+ Name = helperType == LogJitHelper.SpecificTrampoline ? _reader.ReadCString () : null,
};
break;
}
switch (extType) {
case LogEventType.MetaSynchronizationPoint:
ev = new SynchronizationPointEvent {
- Type = (LogSynchronizationPoint) Reader.ReadByte (),
+ Type = (LogSynchronizationPoint) _reader.ReadByte (),
};
break;
default:
long ReadPointer ()
{
- var ptr = Reader.ReadSLeb128 () + _bufferHeader.PointerBase;
+ var ptr = _reader.ReadSLeb128 () + _bufferHeader.PointerBase;
return StreamHeader.PointerSize == sizeof (long) ? ptr : ptr & 0xffffffffL;
}
long ReadObject ()
{
- return Reader.ReadSLeb128 () + _bufferHeader.ObjectBase << 3;
+ return _reader.ReadSLeb128 () + _bufferHeader.ObjectBase << 3;
}
long ReadMethod ()
{
- return _bufferHeader.CurrentMethod += Reader.ReadSLeb128 ();
+ return _bufferHeader.CurrentMethod += _reader.ReadSLeb128 ();
}
ulong ReadTime ()
{
- return _bufferHeader.CurrentTime += Reader.ReadULeb128 ();
+ return _bufferHeader.CurrentTime += _reader.ReadULeb128 ();
}
IReadOnlyList<long> ReadBacktrace (bool actuallyRead, bool managed = true)
if (!actuallyRead)
return Array.Empty<long> ();
- var list = new long [(int) Reader.ReadULeb128 ()];
+ var list = new long [(int) _reader.ReadULeb128 ()];
for (var i = 0; i < list.Length; i++)
list [i] = managed ? ReadMethod () : ReadPointer ();
// See the LICENSE file in the project root for more information.
using System;
-using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Mono.Profiler.Log {
- public sealed class LogReader : IDisposable {
+ sealed class LogReader : IDisposable {
- public static Encoding Encoding { get; } = Encoding.UTF8;
-
- public LogStream BaseStream => (LogStream) _reader.BaseStream;
-
- public long Position { get; private set; }
+ static readonly Encoding _encoding = Encoding.UTF8;
readonly BinaryReader _reader;
byte[] _stringBuffer = new byte [1024];
- public LogReader (LogStream stream, bool leaveOpen)
+ public LogReader (Stream stream, bool leaveOpen)
{
- _reader = new BinaryReader (stream, Encoding, leaveOpen);
+ _reader = new BinaryReader (stream, _encoding, leaveOpen);
}
public void Dispose ()
_reader.Dispose ();
}
- internal byte ReadByte ()
+ public byte[] ReadBytes (int count)
{
- var b = _reader.ReadByte ();
+ var bytes = new byte [count];
- Position += sizeof (byte);
+ // BinaryReader.ReadBytes doesn't necessarily read the specified
+ // amount of bytes, so just do it this way.
+ for (var i = 0; i < bytes.Length; i++)
+ bytes [i] = ReadByte ();
- return b;
+ return bytes;
}
- internal ushort ReadUInt16 ()
+ public byte ReadByte ()
{
- var i = _reader.ReadUInt16 ();
-
- Position += sizeof (ushort);
-
- return i;
+ return _reader.ReadByte ();
}
- internal int ReadInt32 ()
+ public ushort ReadUInt16 ()
{
- var i = _reader.ReadInt32 ();
-
- Position += sizeof (int);
-
- return i;
+ return _reader.ReadUInt16 ();
}
- internal long ReadInt64 ()
+ public int ReadInt32 ()
{
- var i = _reader.ReadInt64 ();
-
- Position += sizeof (long);
-
- return i;
+ return _reader.ReadInt32 ();
}
- internal ulong ReadUInt64 ()
+ public long ReadInt64 ()
{
- var i = _reader.ReadUInt64 ();
-
- Position += sizeof (ulong);
-
- return i;
+ return _reader.ReadInt64 ();
}
- internal double ReadDouble ()
+ public ulong ReadUInt64 ()
{
- var d = _reader.ReadDouble ();
-
- Position += sizeof (double);
-
- return d;
+ return _reader.ReadUInt64 ();
}
- internal string ReadHeaderString ()
+ public double ReadDouble ()
{
- var bytes = new byte [ReadInt32 ()];
-
- // ReadBytes doesn't necessarily read the specified amount of
- // bytes, so just do it this way.
- for (var i = 0; i < bytes.Length; i++)
- bytes [i] = ReadByte ();
+ return _reader.ReadDouble ();
+ }
- return Encoding.GetString (bytes);
+ public string ReadHeaderString ()
+ {
+ return _encoding.GetString (ReadBytes (ReadInt32 ()));
}
- internal string ReadCString ()
+ public string ReadCString ()
{
var pos = 0;
_stringBuffer [pos++] = val;
}
- return Encoding.GetString (_stringBuffer, 0, pos);
+ return _encoding.GetString (_stringBuffer, 0, pos);
}
- internal long ReadSLeb128 ()
+ public long ReadSLeb128 ()
{
long result = 0;
var shift = 0;
return result;
}
- internal ulong ReadULeb128 ()
+ public ulong ReadULeb128 ()
{
ulong result = 0;
var shift = 0;
set => throw new NotSupportedException ();
}
+ readonly byte[] _byteBuffer = new byte [1];
+
public LogStream (Stream baseStream)
{
if (baseStream == null)
throw new NotSupportedException ();
}
+ public override int ReadByte ()
+ {
+ // The base method on Stream is extremely inefficient in that it
+ // allocates a 1-byte array for every call. Simply use a private
+ // buffer instead.
+ return Read (_byteBuffer, 0, sizeof (byte)) == 0 ? -1 : _byteBuffer [0];
+ }
+
public override int Read (byte[] buffer, int offset, int count)
{
return BaseStream.Read (buffer, offset, count);
namespace Mono.Profiler.Log {
public sealed class LogStreamHeader {
+
+ const int MinVersion = 13;
+ const int MaxVersion = 14;
const int Id = 0x4d505a01;
Version = new Version (reader.ReadByte (), reader.ReadByte ());
FormatVersion = reader.ReadByte ();
+
+ if (FormatVersion < MinVersion || FormatVersion > MaxVersion)
+ throw new LogException ($"Unsupported MLPD version {FormatVersion}. Should be >= {MinVersion} and <= {MaxVersion}.");
+
PointerSize = reader.ReadByte ();
StartupTime = reader.ReadUInt64 ();
TimerOverhead = reader.ReadInt32 ();
public LinearGradientBrush (Rectangle rect, Color color1, Color color2, LinearGradientMode linearGradientMode)
{
+ if (linearGradientMode < LinearGradientMode.Horizontal || linearGradientMode > LinearGradientMode.BackwardDiagonal) {
+ throw new InvalidEnumArgumentException (nameof (linearGradientMode), unchecked ((int)linearGradientMode), typeof (LinearGradientMode));
+ }
+
+ if (rect.Width == 0 || rect.Height == 0) {
+ throw new ArgumentException( string.Format ("Rectangle '{0}' cannot have a width or height equal to 0.", rect.ToString ()));
+ }
+
IntPtr nativeObject;
Status status = GDIPlus.GdipCreateLineBrushFromRectI (ref rect, color1.ToArgb (), color2.ToArgb (), linearGradientMode, WrapMode.Tile, out nativeObject);
GDIPlus.CheckStatus (status);
public LinearGradientBrush (RectangleF rect, Color color1, Color color2, LinearGradientMode linearGradientMode)
{
+ if (linearGradientMode < LinearGradientMode.Horizontal || linearGradientMode > LinearGradientMode.BackwardDiagonal) {
+ throw new InvalidEnumArgumentException (nameof (linearGradientMode), unchecked ((int)linearGradientMode), typeof (LinearGradientMode));
+ }
+
+ if (rect.Width == 0.0 || rect.Height == 0.0) {
+ throw new ArgumentException (string.Format ("Rectangle '{0}' cannot have a width or height equal to 0.", rect.ToString ()));
+ }
+
IntPtr nativeObject;
Status status = GDIPlus.GdipCreateLineBrushFromRect (ref rect, color1.ToArgb (), color2.ToArgb (), linearGradientMode, WrapMode.Tile, out nativeObject);
GDIPlus.CheckStatus (status);
public LinearGradientBrush (Rectangle rect, Color color1, Color color2, float angle, bool isAngleScaleable)
{
+ if (rect.Width == 0 || rect.Height == 0) {
+ throw new ArgumentException (string.Format ("Rectangle '{0}' cannot have a width or height equal to 0.", rect.ToString ()));
+ }
+
IntPtr nativeObject;
Status status = GDIPlus.GdipCreateLineBrushFromRectWithAngleI (ref rect, color1.ToArgb (), color2.ToArgb (), angle, isAngleScaleable, WrapMode.Tile, out nativeObject);
GDIPlus.CheckStatus (status);
public LinearGradientBrush (RectangleF rect, Color color1, Color color2, float angle, bool isAngleScaleable)
{
+ if (rect.Width == 0 || rect.Height == 0) {
+ throw new ArgumentException (string.Format ("Rectangle '{0}' cannot have a width or height equal to 0.", rect.ToString ()));
+ }
+
IntPtr nativeObject;
Status status = GDIPlus.GdipCreateLineBrushFromRectWithAngle (ref rect, color1.ToArgb (), color2.ToArgb (), angle, isAngleScaleable, WrapMode.Tile, out nativeObject);
GDIPlus.CheckStatus (status);
Assert.AreEqual (32, elements[5], 0.0001, "matrix.5");
}
+ [Test]
+ public void Constructor_Rectangle_InvalidWidthHeight ()
+ {
+ var emptyWidth = new Rectangle (0, 0, 0, 1);
+ var emptyHeight = new Rectangle (0, 0, 0, 1);
+
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyWidth, Color.Empty, Color.Empty, 1));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyHeight, Color.Empty, Color.Empty, 1));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyWidth, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyHeight, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal));
+ }
+
+ [Test]
+ public void Constructor_RectangleF_InvalidWidthHeight ()
+ {
+ var emptyWidth = new RectangleF (0, 0, 0, 1);
+ var emptyHeight = new RectangleF (0, 0, 0, 1);
+
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyWidth, Color.Empty, Color.Empty, 1));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyHeight, Color.Empty, Color.Empty, 1));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyWidth, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal));
+ Assert.Throws<ArgumentException>(() => new LinearGradientBrush (emptyHeight, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal));
+ }
+
+ [Test]
+ public void Constructor_LinearGradientMode_InvalidMode ()
+ {
+ var rect = new Rectangle (0, 0, 1, 1);
+ var rectf = new RectangleF (0, 0, 1, 1);
+
+ Assert.Throws<InvalidEnumArgumentException>(() => new LinearGradientBrush (rect, Color.Empty, Color.Empty, LinearGradientMode.Horizontal - 1));
+ Assert.Throws<InvalidEnumArgumentException>(() => new LinearGradientBrush (rectf, Color.Empty, Color.Empty, LinearGradientMode.Horizontal - 1));
+ Assert.Throws<InvalidEnumArgumentException>(() => new LinearGradientBrush (rect, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal + 1));
+ Assert.Throws<InvalidEnumArgumentException>(() => new LinearGradientBrush (rectf, Color.Empty, Color.Empty, LinearGradientMode.BackwardDiagonal + 1));
+ }
+
[Test]
public void InterpolationColors_Colors_InvalidBlend ()
{
Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImagePalette (IntPtr.Zero, palette), "GdipSetImagePalette(null,palette)");
Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImagePalette (bitmap, IntPtr.Zero), "GdipSetImagePalette(bitmap,null)");
Assert.AreEqual (Status.Ok, GDIPlus.GdipSetImagePalette (bitmap, palette), "GdipSetImagePalette");
-
- // change palette to 0 entries
- int flags = Marshal.ReadInt32 (palette);
- Marshal.WriteInt64 (palette, flags << 32);
- Assert.AreEqual (Status.Ok, GDIPlus.GdipSetImagePalette (bitmap, palette), "GdipSetImagePalette/Empty");
-
- Assert.AreEqual (Status.Ok, GDIPlus.GdipGetImagePaletteSize (bitmap, out size), "GdipGetImagePaletteSize/Empty");
- Assert.AreEqual (8, size, "size");
}
finally {
Marshal.FreeHGlobal (palette);
public void Add (JsonValue item)
{
- if (item == null)
- throw new ArgumentNullException ("item");
-
list.Add (item);
}
Assert.AreEqual (JsonType.Array, j.JsonType, "type");
var str = j.ToString ();
Assert.AreEqual (str, "[1, 2, 3, null]");
+ ((JsonArray) j).Add (null);
+ str = j.ToString ();
+ Assert.AreEqual (str, "[1, 2, 3, null, null]");
}
// Test that we correctly serialize JsonObject with null elements.
return timeout;
}
set {
- if (value != System.Threading.Timeout.InfiniteTimeSpan && value < TimeSpan.Zero)
+ if (value != System.Threading.Timeout.InfiniteTimeSpan && (value <= TimeSpan.Zero || value.Ticks > int.MaxValue))
throw new ArgumentOutOfRangeException ();
timeout = value;
Assert.Fail ("#2");
} catch (ArgumentOutOfRangeException) {
}
+
+ try {
+ client.Timeout = TimeSpan.Zero;
+ Assert.Fail ("#3");
+ } catch (ArgumentOutOfRangeException) {
+ }
+
+ try {
+ client.Timeout = new TimeSpan(int.MaxValue + 1L);
+ Assert.Fail ("#3");
+ } catch (ArgumentOutOfRangeException) {
+ }
}
[Test]
endif
TEST_MCS_FLAGS = -nowarn:618
-TEST_LIB_REFS = System System.Xml
+TEST_LIB_REFS = System System.Xml System.Core
TEST_MONO_PATH = .
if (current != null) {
cookies.Add (current);
}
- current = new Cookie ();
- int idx = str.IndexOf ('=');
- if (idx > 0) {
- current.Name = str.Substring (0, idx).Trim ();
- current.Value = str.Substring (idx + 1).Trim ();
- } else {
- current.Name = str.Trim ();
- current.Value = String.Empty;
+ try {
+ current = new Cookie ();
+ int idx = str.IndexOf ('=');
+ if (idx > 0) {
+ current.Name = str.Substring (0, idx).Trim ();
+ current.Value = str.Substring (idx + 1).Trim ();
+ } else {
+ current.Name = str.Trim ();
+ current.Value = String.Empty;
+ }
+ current.Version = version;
+ } catch (CookieException) {
+ current = null;
}
- current.Version = version;
}
}
if (current != null) {
var request = (HttpWebRequest)WebRequest.Create (prefix);
var rsp = request.GetResponseAsync ();
Assert.IsFalse (rsp.Wait (1000), "Don't send on empty write");
+ }
+ [Test]
+ public void HttpRequestIgnoreBadCookies ()
+ {
+ var port = NetworkHelpers.FindFreePort ();
+ HttpListener listener = HttpListener2Test.CreateAndStartListener (
+ "http://127.0.0.1:" + port + "/HttpRequestIgnoreBadCookiesTest/");
+ NetworkStream ns = HttpListener2Test.CreateNS (port);
+ HttpListener2Test.Send (ns, "GET /HttpRequestIgnoreBadCookiesTest/?a=b HTTP/1.1\r\nHost: 127.0.0.1\r\nCookie: ELOQUA=GUID=5ca2346347357f4-f877-4eff-96aa-70fe0b677650; ELQSTATUS=OK; WRUID=609099666.123259461695; CommunityServer-UserCookie2101=lv=Thu, 26 Jul 2012 15:25:11 GMT&mra=Mon, 01 Oct 2012 17:40:05 GMT; PHPSESSID=1234dg3opfjb4qafp0oo645; __utma=9761706.1153317537.1357240270.1357240270.1357317902.2; __utmb=9761706.6.10.1357317902; __utmc=9761706; __utmz=9761706.1357240270.1.1.utmcsr=test.testdomain.com|utmccn=(referral)|utmcmd=referral|utmcct=/test/1234\r\n\r\n");
+ HttpListenerContext ctx = listener.GetContext ();
+ HttpListenerRequest request = ctx.Request;
+ Assert.AreEqual ("/HttpRequestIgnoreBadCookiesTest/?a=b", request.Url.PathAndQuery);
listener.Close ();
}
}
// Chris Toshok (toshok@ximian.com)
//
-using System;
+using System.Globalization;
using System.Windows.Markup;
namespace System.Windows.Converters {
{
public override bool CanConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return true;
}
public override bool CanConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return value is Int32Rect;
}
public override object ConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value == null)
+ throw new NotSupportedException ("value != null");
+ return Int32Rect.Parse (value);
}
public override string ConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value is Int32Rect int32Rect)
+ return int32Rect.ToString (CultureInfo.InvariantCulture);
+ return base.ConvertToString (value, context);
}
}
// Chris Toshok (toshok@ximian.com)
//
-using System;
+using System.Globalization;
using System.Windows.Markup;
namespace System.Windows.Converters {
{
public override bool CanConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return true;
}
public override bool CanConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return value is Point;
}
public override object ConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value == null)
+ throw new NotSupportedException ("value != null");
+ return Point.Parse (value);
}
public override string ConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value is Point point)
+ return point.ToString (CultureInfo.InvariantCulture);
+ return base.ConvertToString (value, context);
}
}
// Authors:
// Chris Toshok (toshok@ximian.com)
//
-
-using System;
+using System.Globalization;
using System.Windows.Markup;
namespace System.Windows.Converters {
{
public override bool CanConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return true;
}
public override bool CanConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return value is Rect;
}
public override object ConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value == null)
+ throw new NotSupportedException ("value != null");
+ return Rect.Parse (value);
}
public override string ConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value is Rect rect)
+ return rect.ToString (CultureInfo.InvariantCulture);
+ return base.ConvertToString (value, context);
}
}
public override object ConvertFromString (string value, IValueSerializerContext context)
{
if (value == null)
- throw new ArgumentNullException ("value");
+ throw new NotSupportedException ("value != null");
return Size.Parse (value);
}
// Chris Toshok (toshok@ximian.com)
//
-using System;
+using System.Globalization;
using System.Windows.Markup;
namespace System.Windows.Converters {
{
public override bool CanConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return true;
}
public override bool CanConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ return value is Vector;
}
public override object ConvertFromString (string value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value == null)
+ throw new NotSupportedException ("value != null");
+ return Vector.Parse (value);
}
public override string ConvertToString (object value, IValueSerializerContext context)
{
- throw new NotImplementedException ();
+ if (value is Vector vector)
+ return vector.ToString (CultureInfo.InvariantCulture);
+ return base.ConvertToString (value, context);
}
}
}
else
{
- var parts = source.Split (',');
- if (parts.Length != 6)
- throw new FormatException (string.Format ("Invalid Matrix format: {0}", source));
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
double m11;
double m12;
double m21;
double m22;
double offsetX;
double offsetY;
- if (double.TryParse (parts[0], NumberStyles.Float, CultureInfo.InvariantCulture, out m11)
- && double.TryParse (parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out m12)
- && double.TryParse (parts[2], NumberStyles.Float, CultureInfo.InvariantCulture, out m21)
- && double.TryParse (parts[3], NumberStyles.Float, CultureInfo.InvariantCulture, out m22)
- && double.TryParse (parts[4], NumberStyles.Float, CultureInfo.InvariantCulture, out offsetX)
- && double.TryParse (parts[5], NumberStyles.Float, CultureInfo.InvariantCulture, out offsetY))
+ if (double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out m11)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out m12)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out m21)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out m22)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out offsetX)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out offsetY))
{
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException ("Invalid Matrix format: " + source);
+ }
value = new Matrix (m11, m12, m21, m22, offsetX, offsetY);
}
else
Prepend (m);
}
- string IFormattable.ToString (string format,
- IFormatProvider provider)
- {
- return ToString (provider);
- }
-
public override string ToString ()
{
return ToString (null);
public string ToString (IFormatProvider provider)
{
- return IsIdentity
- ? "Identity"
- : string.Concat (_m11, ",", _m12, ",", _m21, ",", _m22, ",", _offsetX, ",", _offsetY);
+ return ToString (null, provider);
+ }
+
+ string IFormattable.ToString (string format,
+ IFormatProvider provider)
+ {
+ return ToString (provider);
+ }
+
+ private string ToString (string format, IFormatProvider provider)
+ {
+ if (IsIdentity)
+ return "Identity";
+
+ if (provider == null)
+ provider = CultureInfo.CurrentCulture;
+
+ if (format == null)
+ format = string.Empty;
+
+ var separator = NumericListTokenizer.GetSeparator (provider);
+
+ var matrixFormat = string.Format (
+ "{{0:{0}}}{1}{{1:{0}}}{1}{{2:{0}}}{1}{{3:{0}}}{1}{{4:{0}}}{1}{{5:{0}}}",
+ format, separator);
+ return string.Format (provider, matrixFormat,
+ _m11, _m12, _m21, _m22, _offsetX, _offsetY);
}
public Point Transform (Point point)
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
using System.ComponentModel;
+using System.Globalization;
using System.Windows.Converters;
using System.Windows.Markup;
public override int GetHashCode ()
{
- throw new NotImplementedException ();
+ unchecked
+ {
+ var hashCode = _x;
+ hashCode = (hashCode * 397) ^ _y;
+ hashCode = (hashCode * 397) ^ _width;
+ hashCode = (hashCode * 397) ^ _height;
+ return hashCode;
+ }
}
public static Int32Rect Parse (string source)
{
- throw new NotImplementedException ();
+ if (source == null)
+ throw new ArgumentNullException ("source");
+ Int32Rect value;
+ if (source.Trim () == "Empty")
+ {
+ value = Empty;
+ }
+ else
+ {
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
+ int x;
+ int y;
+ int width;
+ int height;
+ if (int.TryParse (tokenizer.GetNextToken (), NumberStyles.Integer, CultureInfo.InvariantCulture, out x)
+ && int.TryParse (tokenizer.GetNextToken (), NumberStyles.Integer, CultureInfo.InvariantCulture, out y)
+ && int.TryParse (tokenizer.GetNextToken (), NumberStyles.Integer, CultureInfo.InvariantCulture, out width)
+ && int.TryParse (tokenizer.GetNextToken (), NumberStyles.Integer, CultureInfo.InvariantCulture, out height))
+ {
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException ("Invalid Int32Rect format: " + source);
+ }
+ value = new Int32Rect (x, y, width, height);
+ }
+ else
+ {
+ throw new FormatException (string.Format ("Invalid Int32Rect format: {0}", source));
+ }
+ }
+ return value;
}
public override string ToString ()
{
- if (IsEmpty)
- return "Empty";
- return String.Format ("{0},{1},{2},{3}", _x, _y, _width, _height);
+ return ToString (null);
}
public string ToString (IFormatProvider provider)
{
- throw new NotImplementedException ();
+ return ToString (null, provider);
}
string IFormattable.ToString (string format, IFormatProvider provider)
{
- throw new NotImplementedException ();
+ return ToString (provider);
+ }
+
+ private string ToString (string format, IFormatProvider provider)
+ {
+ if (IsEmpty)
+ return "Empty";
+
+ if (provider == null)
+ provider = CultureInfo.CurrentCulture;
+
+ if (format == null)
+ format = string.Empty;
+
+ var separator = NumericListTokenizer.GetSeparator (provider);
+
+ var rectFormat = string.Format (
+ "{{0:{0}}}{1}{{1:{0}}}{1}{{2:{0}}}{1}{{3:{0}}}",
+ format, separator);
+ return string.Format (provider, rectFormat,
+ _x, _y, _width, _height);
}
}
}
--- /dev/null
+using System.Globalization;
+
+namespace System.Windows
+{
+ /// <summary>
+ /// Helper class for parsing serialized data structures from the System.Windows namespace.
+ /// </summary>
+ internal class NumericListTokenizer
+ {
+ private readonly string _str;
+ private readonly char _separator;
+ private int _position;
+
+ private enum Symbol
+ {
+ Token,
+ Separator,
+ Whitspace,
+ EndOfLine
+ }
+
+ public NumericListTokenizer (string str, IFormatProvider formatProvider)
+ {
+ _str = str ?? throw new ArgumentNullException (nameof(str));
+ _separator = GetSeparator (formatProvider ?? throw new ArgumentNullException (nameof(formatProvider)));
+ }
+
+ public static char GetSeparator (IFormatProvider formatProvider)
+ {
+ // By convention, string representations of target classes always use ';' as a separator
+ // if the decimal number separator is ','. Otherwise, the separator is ','.
+ return NumberFormatInfo.GetInstance (formatProvider).NumberDecimalSeparator != "," ? ',' : ';';
+ }
+
+ private Symbol GetCurrentSymbol ()
+ {
+ if (_position >= _str.Length)
+ return Symbol.EndOfLine;
+ if (_str[_position] == _separator)
+ return Symbol.Separator;
+ if (char.IsWhiteSpace (_str, _position))
+ return Symbol.Whitspace;
+ return Symbol.Token;
+ }
+
+ private void SkipAllWhitespaces ()
+ {
+ while (GetCurrentSymbol () == Symbol.Whitspace)
+ {
+ _position++;
+ }
+ }
+
+ private void SkipNextDelimeter ()
+ {
+ SkipAllWhitespaces ();
+ switch (GetCurrentSymbol ())
+ {
+ case Symbol.Token:
+ return;
+ case Symbol.Separator:
+ _position++;
+ SkipAllWhitespaces ();
+ return;
+ default:
+ throw new InvalidOperationException ("Separator not found");
+ }
+ }
+
+ public bool HasNoMoreTokens ()
+ {
+ SkipAllWhitespaces ();
+ return GetCurrentSymbol () == Symbol.EndOfLine;
+ }
+
+ public string GetNextToken ()
+ {
+ var length = 0;
+ if (_position == 0)
+ {
+ SkipAllWhitespaces ();
+ }
+ else
+ {
+ SkipNextDelimeter ();
+ }
+
+ while (GetCurrentSymbol () == Symbol.Token)
+ {
+ _position++;
+ length++;
+ }
+
+ if (length == 0)
+ {
+ throw new InvalidOperationException ("Next token not found");
+ }
+
+ return _str.Substring (_position - length, length);
+ }
+ }
+}
\ No newline at end of file
public static Point Parse (string source)
{
- string[] points = source.Split(',');
-
- if (points.Length<2)
- throw new InvalidOperationException ("source does not contain two numbers");
- if (points.Length > 2)
- throw new InvalidOperationException ("source contains too many delimiters");
-
- CultureInfo ci = CultureInfo.InvariantCulture;
- return new Point (Convert.ToDouble(points[0],ci), Convert.ToDouble(points[1],ci));
+ if (source == null)
+ throw new ArgumentNullException ("source");
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
+ double x;
+ double y;
+ if (!double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out x) ||
+ !double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out y))
+ {
+ throw new FormatException (string.Format ("Invalid Point format: {0}", source));
+ }
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException ("Invalid Point format: " + source);
+ }
+ return new Point(x, y);
}
public override string ToString ()
private string ToString(string format,IFormatProvider formatProvider)
{
- CultureInfo ci = (CultureInfo)formatProvider;
-
- if (ci == null)
- ci = CultureInfo.CurrentCulture;
- string seperator = ci.NumberFormat.NumberDecimalSeparator;
- if (seperator.Equals(","))
- seperator = ";";
- else
- seperator = ",";
- object[] ob = { this._x, seperator, this._y };
-
- return string.Format(formatProvider, "{0:" + format + "}{1}{2:" + format + "}", ob);
+ if (formatProvider == null)
+ formatProvider = CultureInfo.CurrentCulture;
+ if (format == null)
+ format = string.Empty;
+ var separator = NumericListTokenizer.GetSeparator (formatProvider);
+ var pointFormat = string.Format ("{{0:{0}}}{1}{{1:{0}}}", format, separator);
+ return string.Format (formatProvider, pointFormat, _x, _y);
}
string IFormattable.ToString (string format, IFormatProvider formatProvider)
// Sebastien Pouliot <sebastien@ximian.com>
//
-using System;
using System.ComponentModel;
using System.Globalization;
-using System.Text;
using System.Windows.Converters;
using System.Windows.Markup;
using System.Windows.Media;
public override int GetHashCode ()
{
- throw new NotImplementedException ();
+ unchecked
+ {
+ var hashCode = _x.GetHashCode ();
+ hashCode = (hashCode * 397) ^ _y.GetHashCode ();
+ hashCode = (hashCode * 397) ^ _width.GetHashCode ();
+ hashCode = (hashCode * 397) ^ _height.GetHashCode ();
+ return hashCode;
+ }
}
public bool Contains (Rect rect)
public static Rect Parse (string source)
{
- throw new NotImplementedException ();
+ if (source == null)
+ throw new ArgumentNullException ("source");
+ Rect value;
+ if (source.Trim () == "Empty")
+ {
+ value = Empty;
+ }
+ else
+ {
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
+ double x;
+ double y;
+ double width;
+ double height;
+ if (double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out x)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out y)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out width)
+ && double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out height))
+ {
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException ("Invalid Rect format: " + source);
+ }
+ value = new Rect (x, y, width, height);
+ }
+ else
+ {
+ throw new FormatException (string.Format ("Invalid Rect format: {0}", source));
+ }
+ }
+ return value;
}
public override string ToString ()
if (format == null)
format = string.Empty;
- string separator = ",";
- NumberFormatInfo numberFormat =
- provider.GetFormat (typeof (NumberFormatInfo)) as NumberFormatInfo;
- if (numberFormat != null &&
- numberFormat.NumberDecimalSeparator == separator)
- separator = ";";
+ var separator = NumericListTokenizer.GetSeparator (provider);
- string rectFormat = String.Format (
+ var rectFormat = string.Format (
"{{0:{0}}}{1}{{1:{0}}}{1}{{2:{0}}}{1}{{3:{0}}}",
format, separator);
- return String.Format (provider, rectFormat,
+ return string.Format (provider, rectFormat,
_x, _y, _width, _height);
}
Size value;
if (source.Trim () == "Empty")
{
- value = Empty;
+ return Empty;
}
- else
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
+ double width;
+ double height;
+ if (!double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out width) ||
+ !double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out height))
{
- var parts = source.Split (',');
- if (parts.Length != 2)
- throw new FormatException (string.Format ("Invalid Size format: {0}", source));
- double width;
- double height;
- if (double.TryParse (parts[0], NumberStyles.Float, CultureInfo.InvariantCulture, out width)
- && double.TryParse (parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out height))
- {
- value = new Size (width, height);
- }
- else
- {
- throw new FormatException (string.Format ("Invalid Size format: {0}", source));
- }
+ throw new FormatException (string.Format ("Invalid Size format: {0}", source));
}
- return value;
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException ("Invalid Size format: " + source);
+ }
+ return new Size(width, height);
}
public override string ToString ()
{
- return ConvertToString (null);
+ return ConvertToString (null, null);
}
public string ToString (IFormatProvider provider)
{
- return ConvertToString (provider);
+ return ConvertToString (null, provider);
}
string IFormattable.ToString (string format, IFormatProvider provider)
{
- return ConvertToString (provider);
+ return ConvertToString (format, provider);
}
- private string ConvertToString (IFormatProvider provider)
+ private string ConvertToString (string format, IFormatProvider provider)
{
- return IsEmpty ? "Empty" : string.Concat (_width, ",", _height);
+ if (IsEmpty)
+ return "Empty";
+
+ if (provider == null)
+ provider = CultureInfo.CurrentCulture;
+ if (format == null)
+ format = string.Empty;
+ var separator = NumericListTokenizer.GetSeparator (provider);
+ var vectorFormat = string.Format ("{{0:{0}}}{1}{{1:{0}}}", format, separator);
+ return string.Format (provider, vectorFormat, _width, _height);
}
public bool IsEmpty {
// Chris Toshok (toshok@novell.com)
//
-using System;
using System.ComponentModel;
+using System.Globalization;
using System.Windows.Converters;
using System.Windows.Markup;
using System.Windows.Media;
public override int GetHashCode ()
{
- throw new NotImplementedException ();
- }
-
- string IFormattable.ToString (string format, IFormatProvider provider)
- {
- return string.Format (provider, "{0:" + format + "},{1:" + format + "}", _x, _y);
+ unchecked
+ {
+ return (_x.GetHashCode () * 397) ^ _y.GetHashCode ();
+ }
}
public static bool Equals (Vector vector1, Vector vector2)
public static Vector Parse (string source)
{
- throw new NotImplementedException ();
+ if (source == null)
+ throw new ArgumentNullException ("source");
+ var tokenizer = new NumericListTokenizer (source, CultureInfo.InvariantCulture);
+ double x;
+ double y;
+ if (!double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out x) ||
+ !double.TryParse (tokenizer.GetNextToken (), NumberStyles.Float, CultureInfo.InvariantCulture, out y))
+ {
+ throw new FormatException (string.Format ("Invalid Vector format: {0}", source));
+ }
+ if (!tokenizer.HasNoMoreTokens ())
+ {
+ throw new InvalidOperationException("Invalid Vector format: " + source);
+ }
+ return new Vector(x, y);
}
public override string ToString ()
{
- return String.Format ("{0},{1}", _x, _y);
+ return ToString(null);
}
public string ToString (IFormatProvider provider)
{
- throw new NotImplementedException ();
+ return ToString (null, provider);
+ }
+
+ string IFormattable.ToString (string format, IFormatProvider provider)
+ {
+ return ToString (format, provider);
+ }
+
+ private string ToString(string format,IFormatProvider formatProvider)
+ {
+ if (formatProvider == null)
+ formatProvider = CultureInfo.CurrentCulture;
+ if (format == null)
+ format = string.Empty;
+ var separator = NumericListTokenizer.GetSeparator (formatProvider);
+ var vectorFormat = string.Format ("{{0:{0}}}{1}{{1:{0}}}", format, separator);
+ return string.Format (formatProvider, vectorFormat, _x, _y);
}
public double Length {
using NUnit.Framework;
using System;
+using System.Globalization;
using System.Windows.Media;
namespace MonoTests.System.Windows.Media {
{
var conv = new MatrixConverter ();
var matrix = new Matrix (1, 2, 3, 4, 5, 6);
- object obj = conv.ConvertTo (matrix, typeof (string));
+ object obj = conv.ConvertTo (null, CultureInfo.InvariantCulture, matrix, typeof (string));
Assert.AreEqual (typeof (string), obj.GetType ());
Assert.AreEqual ("1,2,3,4,5,6", (string)obj);
}
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
public void ToStringTest ()
{
Matrix m = new Matrix (1, 2, 3, 4, 5, 6);
- Assert.AreEqual ("1,2,3,4,5,6", m.ToString());
+ Assert.AreEqual ("1,2,3,4,5,6", m.ToString(CultureInfo.InvariantCulture));
m = Matrix.Identity;
Assert.AreEqual ("Identity", m.ToString());
}
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
}
[Test]
- [Category ("NotWorking")]
public void ConvertFrom ()
{
Int32RectConverter r = new Int32RectConverter ();
}
[Test]
- [Category ("NotWorking")]
public void ConvertFrom_negative ()
{
Int32RectConverter r = new Int32RectConverter ();
}
[Test]
- [Category ("NotWorking")]
public void ConvertTo ()
{
Int32RectConverter r = new Int32RectConverter ();
Int32Rect rect = new Int32Rect (0, 0, 1, 2);
- object o = r.ConvertTo (rect, typeof (string));
+ object o = r.ConvertTo (null, CultureInfo.InvariantCulture, rect, typeof (string));
Assert.AreEqual (typeof (string), o.GetType());
Assert.AreEqual ("0,0,1,2", (string)o);
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
public void ToStringTest ()
{
Int32Rect r = new Int32Rect (1, 2, 3, 4);
- Assert.AreEqual ("1,2,3,4", r.ToString());
+ Assert.AreEqual ("1,2,3,4", r.ToString(CultureInfo.InvariantCulture));
Assert.AreEqual ("Empty", Int32Rect.Empty.ToString());
}
[Test]
- [Category ("NotWorking")]
public void Parse ()
{
Int32Rect r = Int32Rect.Parse ("1, 2, 3, 4");
}
[Test]
- [Category ("NotWorking")]
public void ParseNegative ()
{
Int32Rect.Parse ("1, 2, -3, -4");
--- /dev/null
+using System;
+using System.Windows;
+using System.Windows.Converters;
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows {
+
+ [TestFixture]
+ public class Int32RectValueSerializerTest
+ {
+ [Test]
+ public void CanConvertFromString ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertFromString ("", null));
+ }
+
+ [Test]
+ public void CanConvertToString ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertToString (new Int32Rect (0, 0, 0, 0), null));
+ Assert.IsFalse (serializer.CanConvertToString ("", null));
+ }
+
+ [Test]
+ public void ConvertFromString ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ object obj = serializer.ConvertFromString ("3,4,5,6", null);
+ Assert.AreEqual (typeof (Int32Rect), obj.GetType ());
+ Assert.AreEqual (new Int32Rect (3, 4, 5, 6), obj);
+ }
+
+ [Test]
+ public void RoundTripConvert()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ var size = new Int32Rect (7, 8, 9, 10);
+ var obj = serializer.ConvertFromString (serializer.ConvertToString (size, null), null);
+ Assert.AreEqual (size, obj);
+ }
+
+ [Test]
+ [ExpectedException (typeof (FormatException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringHasInvalidFormat ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ serializer.ConvertFromString ("a,b,c,d", null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringIsNull ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ serializer.ConvertFromString (null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertToStringShouldThrowExceptionWhenInvalidType ()
+ {
+ var serializer = new Int32RectValueSerializer ();
+ serializer.ConvertToString (10, null);
+ }
+ }
+
+}
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
}
[Test]
- [Category ("NotWorking")]
public void ConvertFrom ()
{
PointConverter r = new PointConverter ();
}
[Test]
- [Category ("NotWorking")]
public void ConvertTo ()
{
PointConverter r = new PointConverter ();
Point rect = new Point (1, 2);
- object o = r.ConvertTo (rect, typeof (string));
+ object o = r.ConvertTo (null, CultureInfo.InvariantCulture, rect, typeof (string));
Assert.AreEqual (typeof (string), o.GetType());
Assert.AreEqual ("1,2", (string)o);
Assert.IsFalse (p.Equals (new object()));
}
- [Test]
- [Category ("NotWorking")]
- public void getHashCodeTest()
- {
- Point p1 = new Point(-5, -4);
- Point p2 = new Point(5, 4);
- Point p3 = new Point(5, 4);
-
- Assert.AreEqual(p2.GetHashCode(), p3.GetHashCode());
- Assert.AreEqual(p1.GetHashCode(),p2.GetHashCode());
- }
+ [Test]
+ public void GetHashCodeTest()
+ {
+ Point p1 = new Point(-5, -4);
+ Point p2 = new Point(5, 4);
+ Point p3 = new Point(5, 4);
+
+ Assert.AreEqual (p2.GetHashCode (), p3.GetHashCode ());
+ Assert.AreEqual (p1.GetHashCode (),p2.GetHashCode ());
+ }
[Test]
- [Category ("NotWorking")]
public void ToStringTest ()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-us");
}
[Test]
- [Category ("NotWorking")]
public void Parse ()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fr-fr");
--- /dev/null
+using System;
+using System.Windows;
+using System.Windows.Converters;
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows {
+
+ [TestFixture]
+ public class PointValueSerializerTest
+ {
+ [Test]
+ public void CanConvertFromString ()
+ {
+ var serializer = new PointValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertFromString ("", null));
+ }
+
+ [Test]
+ public void CanConvertToString ()
+ {
+ var serializer = new PointValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertToString (new Point (0, 0), null));
+ Assert.IsFalse (serializer.CanConvertToString ("", null));
+ }
+
+ [Test]
+ public void ConvertFromString ()
+ {
+ var serializer = new PointValueSerializer ();
+ object obj = serializer.ConvertFromString ("3.14,4.15", null);
+ Assert.AreEqual (typeof (Point), obj.GetType ());
+ Assert.AreEqual (new Point (3.14, 4.15), obj);
+ }
+
+ [Test]
+ public void RoundTripConvert()
+ {
+ var serializer = new PointValueSerializer ();
+ var Point = new Point (1.234, 2.678);
+ var obj = serializer.ConvertFromString (serializer.ConvertToString (Point, null), null);
+ Assert.AreEqual (Point, obj);
+ }
+
+ [Test]
+ [ExpectedException (typeof (FormatException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringHasInvalidFormat ()
+ {
+ var serializer = new PointValueSerializer ();
+ serializer.ConvertFromString ("a,b", null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringIsNull ()
+ {
+ var serializer = new PointValueSerializer ();
+ serializer.ConvertFromString (null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertToStringShouldThrowExceptionWhenInvalidType ()
+ {
+ var serializer = new PointValueSerializer ();
+ serializer.ConvertToString (10, null);
+ }
+ }
+
+}
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
}
[Test]
- [Category ("NotWorking")]
public void ConvertFrom ()
{
RectConverter r = new RectConverter ();
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (ArgumentException))]
public void ConvertFrom_negative ()
{
}
[Test]
- [Category ("NotWorking")]
public void ConvertTo ()
{
RectConverter r = new RectConverter ();
Rect rect = new Rect (0, 0, 1, 2);
- object o = r.ConvertTo (rect, typeof (string));
+ object o = r.ConvertTo (null, CultureInfo.InvariantCulture, rect, typeof (string));
Assert.AreEqual (typeof (string), o.GetType());
Assert.AreEqual ("0,0,1,2", (string)o);
}
[Test]
- [Category ("NotWorking")]
public void ToString_FormatException ()
{
// This test does not currently work because
}
[Test]
- [Category ("NotWorking")]
public void Parse ()
{
Rect r = Rect.Parse ("1 , 2, 3, 4");
}
[Test]
- [Category ("NotWorking")]
public void Parse2 ()
{
Rect r = Rect.Parse ("1 2 3 4");
}
[Test]
- [Category ("NotWorking")]
public void Parse3 ()
{
Rect r = Rect.Parse (" 1 2 3 4 ");
}
[Test]
- [Category ("NotWorking")]
public void ParseWithBothSeparators ()
{
Rect.Parse ("1.0, 3 2.0, 5.0");
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (ArgumentException))]
public void ParseNegative ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (InvalidOperationException))] // "Premature string termination encountered."
public void Parse3Doubles ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (FormatException))]
public void ParseInvalidString1 ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (InvalidOperationException))]
public void ParseInvalidString3 ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (FormatException))]
public void ParseInvalidString4 ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (InvalidOperationException))]
public void ParseInvalidString5 ()
{
}
[Test]
- [Category ("NotWorking")]
public void ParseInvalidString6 ()
{
Rect.Parse ("\n1.0, 2.0, 5.0, 2");
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (InvalidOperationException))]
public void ParseInvalidString7 ()
{
--- /dev/null
+using System;
+using System.Windows;
+using System.Windows.Converters;
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows {
+
+ [TestFixture]
+ public class RectValueSerializerTest
+ {
+ [Test]
+ public void CanConvertFromString ()
+ {
+ var serializer = new RectValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertFromString ("", null));
+ }
+
+ [Test]
+ public void CanConvertToString ()
+ {
+ var serializer = new RectValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertToString (new Rect (0, 0, 0, 0), null));
+ Assert.IsFalse (serializer.CanConvertToString ("", null));
+ }
+
+ [Test]
+ public void ConvertFromString ()
+ {
+ var serializer = new RectValueSerializer ();
+ object obj = serializer.ConvertFromString ("3.14,4.15,5.16,6.17", null);
+ Assert.AreEqual (typeof (Rect), obj.GetType ());
+ Assert.AreEqual (new Rect (3.14, 4.15, 5.16, 6.17), obj);
+ }
+
+ [Test]
+ public void RoundTripConvert()
+ {
+ var serializer = new RectValueSerializer ();
+ var rect = new Rect (1.234, 2.678, 3.123, 4.567);
+ var obj = serializer.ConvertFromString (serializer.ConvertToString (rect, null), null);
+ Assert.AreEqual (rect, obj);
+ }
+
+ [Test]
+ [ExpectedException (typeof (FormatException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringHasInvalidFormat ()
+ {
+ var serializer = new RectValueSerializer ();
+ serializer.ConvertFromString ("a,b,c,d", null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringIsNull ()
+ {
+ var serializer = new RectValueSerializer ();
+ serializer.ConvertFromString (null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertToStringShouldThrowExceptionWhenInvalidType ()
+ {
+ var serializer = new RectValueSerializer ();
+ serializer.ConvertToString (10, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void ConvertToStringShouldThrowExceptionWhenHeightOrWidthIsNegative ()
+ {
+ var serializer = new RectValueSerializer ();
+ var result = serializer.ConvertFromString ("1,2,-1,-2", null);
+ }
+ }
+
+}
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
Size rect = new Size (1, 2);
- object o = r.ConvertTo (rect, typeof (string));
+ object o = r.ConvertTo (null, CultureInfo.InvariantCulture, rect, typeof (string));
Assert.AreEqual (typeof (string), o.GetType());
Assert.AreEqual ("1,2", (string)o);
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
[Test]
public void ToStringTest ()
{
- Assert.AreEqual ("1,2", (new Size (1, 2)).ToString ());
+ Assert.AreEqual ("1,2", (new Size (1, 2)).ToString (CultureInfo.InvariantCulture));
}
[Test]
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
+ [ExpectedException (typeof (NotSupportedException))]
public void ConvertFromStringShouldThrowExceptionWhenStringIsNull ()
{
var serializer = new SizeValueSerializer ();
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
}
[Test]
- [Category ("NotWorking")]
public void ConvertFrom ()
{
VectorConverter r = new VectorConverter ();
}
[Test]
- [Category ("NotWorking")]
public void ConvertTo ()
{
VectorConverter r = new VectorConverter ();
Vector rect = new Vector (1, 2);
- object o = r.ConvertTo (rect, typeof (string));
+ object o = r.ConvertTo (null, CultureInfo.InvariantCulture, rect, typeof (string));
Assert.AreEqual (typeof (string), o.GetType());
Assert.AreEqual ("1,2", (string)o);
//
using System;
+using System.Globalization;
using System.Windows;
using System.Windows.Media;
using NUnit.Framework;
public void ToStringTest ()
{
Vector v = new Vector (4, 5);
- Assert.AreEqual ("4,5", v.ToString());
+ Assert.AreEqual ("4,5", v.ToString(CultureInfo.InvariantCulture));
}
[Test]
--- /dev/null
+using System;
+using System.Windows;
+using System.Windows.Converters;
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows {
+
+ [TestFixture]
+ public class VectorValueSerializerTest
+ {
+ [Test]
+ public void CanConvertFromString ()
+ {
+ var serializer = new VectorValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertFromString ("", null));
+ }
+
+ [Test]
+ public void CanConvertToString ()
+ {
+ var serializer = new VectorValueSerializer ();
+ Assert.IsTrue (serializer.CanConvertToString (new Vector (0, 0), null));
+ Assert.IsFalse (serializer.CanConvertToString ("", null));
+ }
+
+ [Test]
+ public void ConvertFromString ()
+ {
+ var serializer = new VectorValueSerializer ();
+ object obj = serializer.ConvertFromString ("3.14,4.15", null);
+ Assert.AreEqual (typeof (Vector), obj.GetType ());
+ Assert.AreEqual (new Vector (3.14, 4.15), obj);
+ }
+
+ [Test]
+ public void RoundTripConvert()
+ {
+ var serializer = new VectorValueSerializer ();
+ var Vector = new Vector (1.234, 2.678);
+ var obj = serializer.ConvertFromString (serializer.ConvertToString (Vector, null), null);
+ Assert.AreEqual (Vector, obj);
+ }
+
+ [Test]
+ [ExpectedException (typeof (FormatException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringHasInvalidFormat ()
+ {
+ var serializer = new VectorValueSerializer ();
+ serializer.ConvertFromString ("a,b", null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertFromStringShouldThrowExceptionWhenStringIsNull ()
+ {
+ var serializer = new VectorValueSerializer ();
+ serializer.ConvertFromString (null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ public void ConvertToStringShouldThrowExceptionWhenInvalidType ()
+ {
+ var serializer = new VectorValueSerializer ();
+ serializer.ConvertToString (10, null);
+ }
+ }
+
+}
<Compile Include="System.Windows\IWeakEventListener.cs" />\r
<Compile Include="System.Windows\LocalValueEntry.cs" />\r
<Compile Include="System.Windows\LocalValueEnumerator.cs" />\r
+ <Compile Include="System.Windows\NumericListTokenizer.cs" />\r
<Compile Include="System.Windows\Point.cs" />\r
<Compile Include="System.Windows\PointConverter.cs" />\r
<Compile Include="System.Windows\PropertyChangedCallback.cs" />\r
System.Windows/Size.cs
System.Windows/SizeConverter.cs
System.Windows/SplashScreen.cs
+System.Windows/NumericListTokenizer.cs
System.Windows/ValidateValueCallback.cs
System.Windows/Vector.cs
System.Windows/VectorConverter.cs
System.Windows/DependencyPropertyTest.cs
System.Windows/Int32RectTest.cs
System.Windows/Int32RectConverterTest.cs
+System.Windows/Int32RectValueSerializerTest.cs
System.Windows/PointTest.cs
System.Windows/PointConverterTest.cs
+System.Windows/PointValueSerializerTest.cs
System.Windows/PropertyMetadataTest.cs
System.Windows/RectTest.cs
System.Windows/RectConverterTest.cs
+System.Windows/RectValueSerializerTest.cs
System.Windows/SizeTest.cs
System.Windows/SizeConverterTest.cs
System.Windows/SizeValueSerializerTest.cs
System.Windows/VectorTest.cs
System.Windows/VectorConverterTest.cs
+System.Windows/VectorValueSerializerTest.cs
System.Windows.Markup/ConstructorArgumentAttributeTest.cs
System.Windows.Markup/ContentPropertyAttributeTest.cs
System.Windows.Markup/ContentWrapperAttributeTest.cs
using System.Text;
using System.Security.AccessControl;
+using Microsoft.Win32.SafeHandles;
+
namespace System.IO {
[Serializable]
return EnumerateFileSystemInfos (FullPath, searchPattern, searchOption);
}
- static internal IEnumerable<FileSystemInfo> EnumerateFileSystemInfos (string full, string searchPattern, SearchOption searchOption)
+ static internal IEnumerable<FileSystemInfo> EnumerateFileSystemInfos (string basePath, string searchPattern, SearchOption searchOption)
{
- string path_with_pattern = Path.Combine (full, searchPattern);
- IntPtr handle = IntPtr.Zero;
- MonoIOError error;
- FileAttributes rattr;
- bool subdirs = searchOption == SearchOption.AllDirectories;
+ Path.Validate (basePath);
+
+ SafeFindHandle findHandle = null;
- Path.Validate (full);
-
try {
- string s = MonoIO.FindFirst (full, path_with_pattern, out rattr, out error, out handle);
- if (s == null)
+ string filePath;
+ int nativeAttrs;
+
+ string basePathWithPattern = Path.Combine (basePath, searchPattern);
+
+ int nativeError;
+ try {} finally {
+ findHandle = new SafeFindHandle (MonoIO.FindFirstFile (basePathWithPattern, out filePath, out nativeAttrs, out nativeError));
+ }
+
+ if (findHandle.IsInvalid) {
+ MonoIOError error = (MonoIOError) nativeError;
+ if (error != MonoIOError.ERROR_FILE_NOT_FOUND)
+ throw MonoIO.GetException (Path.GetDirectoryName (basePathWithPattern), error);
+
yield break;
- if (error != 0)
- throw MonoIO.GetException (Path.GetDirectoryName (path_with_pattern), (MonoIOError) error);
+ }
do {
- if (((rattr & FileAttributes.ReparsePoint) == 0)){
- if ((rattr & FileAttributes.Directory) != 0)
- yield return new DirectoryInfo (s);
+ if (filePath == null)
+ yield break;
+
+ if (filePath == "." || filePath == "..")
+ continue;
+
+ FileAttributes attrs = (FileAttributes) nativeAttrs;
+
+ string fullPath = Path.Combine (basePath, filePath);
+
+ if ((attrs & FileAttributes.ReparsePoint) == 0) {
+ if ((attrs & FileAttributes.Directory) != 0)
+ yield return new DirectoryInfo (fullPath);
else
- yield return new FileInfo (s);
+ yield return new FileInfo (fullPath);
}
- if (((rattr & FileAttributes.Directory) != 0) && subdirs)
- foreach (FileSystemInfo child in EnumerateFileSystemInfos (s, searchPattern, searchOption))
+ if ((attrs & FileAttributes.Directory) != 0 && searchOption == SearchOption.AllDirectories) {
+ foreach (FileSystemInfo child in EnumerateFileSystemInfos (fullPath, searchPattern, searchOption))
yield return child;
-
- } while ((s = MonoIO.FindNext (handle, out rattr, out error)) != null);
+ }
+ } while (MonoIO.FindNextFile (findHandle.DangerousGetHandle (), out filePath, out nativeAttrs, out int _));
} finally {
- if (handle != IntPtr.Zero)
- MonoIO.FindClose (handle);
+ if (findHandle != null)
+ findHandle.Dispose ();
}
}
[MethodImplAttribute (MethodImplOptions.InternalCall)]
public extern static bool RemoveDirectory (string path, out MonoIOError error);
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
- public extern static string [] GetFileSystemEntries (string path, string path_with_pattern, int attrs, int mask, out MonoIOError error);
-
[MethodImplAttribute (MethodImplOptions.InternalCall)]
public extern static string GetCurrentDirectory (out MonoIOError error);
//
// Find file methods
//
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
- public extern static string FindFirst (string path, string pattern, out FileAttributes result_attr, out MonoIOError error, out IntPtr handle);
-
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
- public extern static string FindNext (IntPtr handle, out FileAttributes result_attr, out MonoIOError error);
-
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
- public extern static int FindClose (IntPtr handle);
[MethodImplAttribute (MethodImplOptions.InternalCall)]
public extern static IntPtr FindFirstFile (string path_with_pattern, out string fileName, out int fileAttr, out int error);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void basic_init (AssemblyBuilder ab);
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ static extern void UpdateNativeCustomAttributes (AssemblyBuilder ab);
+
/* Keep this in sync with codegen.cs in mcs */
private const AssemblyBuilderAccess COMPILER_ACCESS = (AssemblyBuilderAccess) 0x800;
cattrs = new CustomAttributeBuilder [1];
cattrs [0] = customBuilder;
}
+
+ /*
+ Only update the native list of custom attributes if we're adding one that is known to change dynamic execution behavior.
+ */
+ if (customBuilder.Ctor != null && customBuilder.Ctor.DeclaringType == typeof (System.Runtime.CompilerServices.RuntimeCompatibilityAttribute))
+ UpdateNativeCustomAttributes (this);
}
[ComVisible (true)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- public extern static IntPtr BufferToBSTR (Array ptr, int slen);
+ extern static IntPtr BufferToBSTR (Array ptr, int slen);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static IntPtr UnsafeAddrOfPinnedArrayElement (Array arr, int index);
persisted = true;
this.FromXmlString (store.KeyValue);
}
+ privateKeyExportable = (parameters.Flags & CspProviderFlags.UseNonExportableKey) == 0;
}
~DSACryptoServiceProvider ()
store = new KeyPairPersistence (p);
bool exists = store.Load ();
bool required = (p.Flags & CspProviderFlags.UseExistingKey) != 0;
+ privateKeyExportable = (p.Flags & CspProviderFlags.UseNonExportableKey) == 0;
if (required && !exists)
throw new CryptographicException ("Keyset does not exist");
var displayName = DeserializeString (ref input);
var standardName = DeserializeString (ref input);
var daylightName = DeserializeString (ref input);
- var rules = new List<TimeZoneInfo.AdjustmentRule> ();
+ List<TimeZoneInfo.AdjustmentRule> rules = null;
while (input [0] != ';') {
+ if (rules == null)
+ rules = new List<TimeZoneInfo.AdjustmentRule> ();
rules.Add (DeserializeAdjustmentRule (ref input));
}
var offsetSpan = TimeSpan.FromMinutes (offset);
- return TimeZoneInfo.CreateCustomTimeZone (tzId, offsetSpan, displayName, standardName, daylightName, rules.ToArray ());
+ return TimeZoneInfo.CreateCustomTimeZone (tzId, offsetSpan, displayName, standardName, daylightName, rules?.ToArray ());
}
public string ToSerializedString ()
else
ParseRegTzi(adjustmentRules, 1, 9999, reg_tzi);
- return CreateCustomTimeZone (id, baseUtcOffset, display_name, standard_name, daylight_name, ValidateRules (adjustmentRules).ToArray ());
+ return CreateCustomTimeZone (id, baseUtcOffset, display_name, standard_name, daylight_name, ValidateRules (adjustmentRules));
}
private static void ParseRegTzi (List<AdjustmentRule> adjustmentRules, int start_year, int end_year, byte [] buffer)
return new DateTime (year, transition.Month, day) + transition.TimeOfDay.TimeOfDay;
}
- static List<AdjustmentRule> ValidateRules (List<AdjustmentRule> adjustmentRules)
+ static AdjustmentRule[] ValidateRules (List<AdjustmentRule> adjustmentRules)
{
+ if (adjustmentRules == null || adjustmentRules.Count == 0)
+ return null;
+
AdjustmentRule prev = null;
foreach (AdjustmentRule current in adjustmentRules.ToArray ()) {
if (prev != null && prev.DateEnd > current.DateStart) {
}
prev = current;
}
- return adjustmentRules;
+ return adjustmentRules.ToArray ();
}
#if LIBC || MONOTOUCH
}
tz = CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName);
} else {
- tz = CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName, daylightDisplayName, ValidateRules (adjustmentRules).ToArray ());
+ tz = CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName, daylightDisplayName, ValidateRules (adjustmentRules));
}
if (storeTransition && transitions.Count > 0) {
tz.transitions = transitions;
- tz.supportsDaylightSavingTime = true;
}
+ tz.supportsDaylightSavingTime = adjustmentRules.Count > 0;
return tz;
}
File.Delete (path2);
try {
- symlink (path1, path2);
- symlink (path2, path1);
+ if (symlink (path1, path2) != 0)
+ Assert.Fail ("symlink #1 failed with errno={0}", Marshal.GetLastWin32Error ());
+ if (symlink (path2, path1) != 0)
+ Assert.Fail ("symlink #2 failed with errno={0}", Marshal.GetLastWin32Error ());
Assert.IsTrue (File.Exists (path1), "File.Exists must return true for path1 symlink loop");
Assert.IsTrue (File.Exists (path2), "File.Exists must return true for path2 symlink loop");
invoke (444);
}
+ static Func<int> EmitDelegate (DynamicMethod dm) {
+ ILGenerator il = dm.GetILGenerator ();
+ var ret_val = il.DeclareLocal (typeof (int));
+ var leave_label = il.DefineLabel ();
+
+ //ret = 1;
+ il.Emit (OpCodes.Ldc_I4, 1);
+ il.Emit (OpCodes.Stloc, ret_val);
+
+ // try {
+ il.BeginExceptionBlock ();
+ // throw "hello";
+ il.Emit (OpCodes.Ldstr, "hello");
+ il.Emit (OpCodes.Throw, typeof (string));
+ // ret = 2
+ il.Emit (OpCodes.Ldc_I4, 2);
+ il.Emit (OpCodes.Stloc, ret_val);
+ // }
+ il.Emit (OpCodes.Leave, leave_label);
+ //catch (string)
+ il.BeginCatchBlock (typeof (string));
+ il.Emit (OpCodes.Pop);
+ // ret = 3
+ il.Emit (OpCodes.Ldc_I4, 3);
+ il.Emit (OpCodes.Stloc, ret_val);
+ //}
+ il.Emit (OpCodes.Leave, leave_label);
+ il.EndExceptionBlock ();
+
+ il.MarkLabel (leave_label);
+ //return ret;
+ il.Emit (OpCodes.Ldloc, ret_val);
+ il.Emit (OpCodes.Ret);
+
+ var dele = (Func<int>)dm.CreateDelegate (typeof (Func<int>));
+ return dele;
+ }
+
+ [Test] //see bxc #59334
+ public void ExceptionWrapping ()
+ {
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (new AssemblyName ("ehatevfheiw"), AssemblyBuilderAccess.Run);
+ AssemblyBuilder ab2 = AppDomain.CurrentDomain.DefineDynamicAssembly (new AssemblyName ("ddf4234"), AssemblyBuilderAccess.Run);
+ CustomAttributeBuilder cab = new CustomAttributeBuilder (
+ typeof (RuntimeCompatibilityAttribute).GetConstructor (new Type [0]),
+ new object [0],
+ new PropertyInfo[] { typeof (RuntimeCompatibilityAttribute).GetProperty ("WrapNonExceptionThrows") },
+ new object[] { true });
+ ab2.SetCustomAttribute (cab);
+
+ AssemblyBuilder ab3 = AppDomain.CurrentDomain.DefineDynamicAssembly (new AssemblyName ("frfhfher"), AssemblyBuilderAccess.Run);
+ //1 NamedArg. Property name: WrapNonExceptionThrows value: true (0x01)
+ byte[] blob = new byte[] { 0x01, 0x00, 0x01, 0x00, 0x54, 0x02, 0x16, 0x57, 0x72, 0x61, 0x70, 0x4E, 0x6F, 0x6E, 0x45, 0x78,
+ 0x63, 0x65, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x54, 0x68, 0x72, 0x6F, 0x77, 0x73, 0x01 };
+ ab3.SetCustomAttribute (typeof (RuntimeCompatibilityAttribute).GetConstructor (new Type [0]), blob);
+
+ DynamicMethod invoke_no_module = new DynamicMethod("throw_1", typeof (int), new Type [0]);
+ DynamicMethod invoke_with_module = new DynamicMethod("throw_2", typeof (int), new Type [0], typeof (DynamicMethodTest).Module);
+ DynamicMethod invoke_with_ab = new DynamicMethod("throw_3", typeof (int), new Type [0], ab.ManifestModule);
+ DynamicMethod invoke_with_ab2 = new DynamicMethod("throw_4", typeof (int), new Type [0], ab2.ManifestModule);
+ DynamicMethod invoke_with_ab3 = new DynamicMethod("throw_5", typeof (int), new Type [0], ab3.ManifestModule);
+
+ int result = 0;
+ try {
+ int res = EmitDelegate (invoke_no_module)();
+ Assert.AreEqual (3, res, "invoke_no_module bad return value");
+ } catch (RuntimeWrappedException e) {
+ Assert.Fail ("invoke_no_module threw RWE");
+ }
+
+ try {
+ int res = EmitDelegate (invoke_with_module)();
+ Assert.Fail ("invoke_with_module did not throw RWE");
+ } catch (RuntimeWrappedException e) {
+ }
+
+ try {
+ int res = EmitDelegate (invoke_with_ab)();
+ Assert.AreEqual (3, res, "invoke_with_ab bad return value");
+ } catch (RuntimeWrappedException e) {
+ Assert.Fail ("invoke_with_ab threw RWE");
+ }
+
+ try {
+ int res = EmitDelegate (invoke_with_ab2)();
+ Assert.Fail ("invoke_with_ab2 did not throw RWE");
+ } catch (RuntimeWrappedException e) {
+ }
+
+ try {
+ int res = EmitDelegate (invoke_with_ab3)();
+ Assert.Fail ("invoke_with_a3 did not throw RWE");
+ } catch (RuntimeWrappedException e) {
+ }
+ }
+
#if !MONODROID
// RUNTIME: crash
[Test]
Assert.AreEqual (0x02, il [14]); //typedef
Assert.AreEqual (0x01, il [19]); //typeref
}
+
+ [Test]
+ public void MethodRefTokenSame () {
+ // Get the same non-virtual method from a base and a derived type so
+ // that the MemberInfo:DeclaredType differs but the tokens are the same.
+ //
+ // Regression test for bugzilla #59364
+
+ DefineBasicMethod ();
+
+ var m1 = typeof (object).GetMethod ("GetType");
+ var m2 = typeof (string).GetMethod ("GetType");
+
+ var value_getter = typeof (RuntimeMethodHandle).GetProperty ("Value").GetMethod;
+
+ var il = il_gen;
+
+ var loc = il.DeclareLocal (typeof (RuntimeMethodHandle));
+
+ // return ((int)(RuntimeMethodHandle (m1).Value == RuntimeMethodHandle (m2).Value)).ToString ()
+ il.Emit (OpCodes.Ldtoken, m1);
+ il.Emit (OpCodes.Stloc, loc);
+ il.Emit (OpCodes.Ldloca, loc);
+ il.Emit (OpCodes.Call, value_getter);
+ il.Emit (OpCodes.Ldtoken, m2);
+ il.Emit (OpCodes.Stloc, loc);
+ il.Emit (OpCodes.Ldloca, loc);
+ il.Emit (OpCodes.Call, value_getter);
+ il.Emit (OpCodes.Ceq);
+ il.Emit (OpCodes.Box, typeof (Int32));
+ il.Emit (OpCodes.Callvirt, typeof (object).GetMethod ("ToString"));
+ il.Emit (OpCodes.Ret);
+
+ var baked = tb.CreateType ();
+
+ var x = Activator.CreateInstance (baked);
+ var m = baked.GetMethod ("F");
+
+ var s = m.Invoke (x, null);
+
+ Assert.AreEqual ("1", s);
+
+ }
+
+ public class Base {
+ public int x;
+ }
+
+ public class Derived : Base {
+ }
+
+ [Test]
+ public void FieldRefTokenSame () {
+ DefineBasicMethod ();
+
+ // Get the same field from a base and a derived type so hat
+ // the MemberInfo:DeclaredType differs but the tokens are the same.
+ //
+ // Regression test for bugzilla #59364
+
+ var f1 = typeof (Base).GetField ("x");
+ var f2 = typeof (Derived).GetField ("x");
+
+ var value_getter = typeof (RuntimeFieldHandle).GetProperty("Value").GetMethod;
+
+ var il = il_gen;
+
+ var loc = il.DeclareLocal (typeof (RuntimeFieldHandle));
+
+ il.Emit (OpCodes.Ldtoken, f1);
+ il.Emit (OpCodes.Stloc, loc);
+ il.Emit (OpCodes.Ldloca, loc);
+ il.Emit (OpCodes.Call, value_getter);
+ il.Emit (OpCodes.Ldtoken, f2);
+ il.Emit (OpCodes.Stloc, loc);
+ il.Emit (OpCodes.Ldloca, loc);
+ il.Emit (OpCodes.Call, value_getter);
+ il.Emit (OpCodes.Ceq);
+ il.Emit (OpCodes.Box, typeof (Int32));
+ il.Emit (OpCodes.Callvirt, typeof (object).GetMethod ("ToString"));
+ il.Emit (OpCodes.Ret);
+
+ var baked = tb.CreateType ();
+
+ var x = Activator.CreateInstance (baked);
+ var m = baked.GetMethod ("F");
+
+ var s = m.Invoke (x, null);
+
+ Assert.AreEqual ("1", s);
+ }
+
}
}
dsa = new DSACryptoServiceProvider (minKeySize);
dsa.ImportCspBlob (blob);
}
+
+ [Test] //bug 38054
+ public void NonExportableKeysAreNonExportable ()
+ {
+ var cspParams = new CspParameters (13, null, "Mono1024");
+ cspParams.KeyContainerName = "TestDSAKey";
+ cspParams.Flags = CspProviderFlags.UseNonExportableKey;
+ var rsa = new DSACryptoServiceProvider(cspParams);
+ Assert.Throws<CryptographicException>(() => rsa.ExportParameters(true));
+ }
}
}
rsa = new RSACryptoServiceProvider (minKeySize);
rsa.ImportCspBlob (blob);
}
+
+ [Test] //bug 38054
+ public void NonExportableKeysAreNonExportable ()
+ {
+ var cspParams = new CspParameters();
+ cspParams.KeyContainerName = "TestRSAKey";
+ cspParams.Flags = CspProviderFlags.UseNonExportableKey;
+ var rsa = new RSACryptoServiceProvider(cspParams);
+ Assert.Throws<CryptographicException>(() => rsa.ExportParameters(true));
+ }
}
}
using System;
using System.IO;
+using System.Linq;
using NUnit.Framework;
namespace MonoTests.System
Assert.AreEqual (0, utc.GetAdjustmentRules ().Length);
}
+ [Test] // Bug-44255
+ public void SystemTimeZoneSerializationTests ()
+ {
+ foreach (var tmz in TimeZoneInfo.GetSystemTimeZones ())
+ {
+ var tmzClone = TimeZoneInfo.FromSerializedString (tmz.ToSerializedString ());
+ Assert.AreEqual (tmz, tmzClone);
+ Assert.AreEqual (tmz.DisplayName, tmzClone.DisplayName);
+ Assert.AreEqual (tmz.StandardName, tmzClone.StandardName);
+ Assert.AreEqual (tmz.SupportsDaylightSavingTime, tmzClone.SupportsDaylightSavingTime);
+ Assert.AreEqual (tmz.DaylightName, tmzClone.DaylightName);
+ }
+ }
+
[Test]
public void SerializeCustomUtcZoneWithOddNaming ()
{
{
}
+ private void GenericMethod2<A, B, C, D> ()
+ where C : Duper
+ where A : B, IFace
+ where B : C
+ where D : Baz<object>
+ {
+ }
+
public class Nested
{
// Tests for parameters with generic constraints
mi = typeof (TypeTest).GetMethod ("GenericMethod", BindingFlags.Instance|BindingFlags.NonPublic);
Assert.IsTrue (typeof (IFace).IsAssignableFrom (mi.GetParameters ()[1].ParameterType));
+
+ // Transitivity of IsAssignableFrom for type parameters
+ mi = typeof (TypeTest).GetMethod ("GenericMethod2", BindingFlags.Instance|BindingFlags.NonPublic);
+ var gparams = mi.GetGenericArguments ();
+ // B : Duper since B : C and C : Duper
+ Assert.IsTrue (typeof (Duper).IsAssignableFrom (gparams[1]), "#36");
+ // A : Duper since A : B and B : Duper
+ Assert.IsTrue (typeof (Duper).IsAssignableFrom (gparams[0]), "#37a");
+ // A : IFace since A : IFace
+ Assert.IsTrue (typeof (IFace).IsAssignableFrom (gparams[0]), "#37b");
+ // B : Super since B : Duper and Duper : Super
+ Assert.IsTrue (typeof (Super).IsAssignableFrom (gparams[1]), "#38");
+ // A : Super since A : B and B : Super
+ Assert.IsTrue (typeof (Super).IsAssignableFrom (gparams[0]), "#39");
+ // D : IBar<object> since D : Baz<object> and Baz<object> : IBar<object>
+ Assert.IsTrue (typeof (IBar<object>).IsAssignableFrom (gparams [3]), "#40");
+ // A not assignable from B since A : B
+ Assert.IsFalse (gparams[0].IsAssignableFrom (gparams [1]), "#41");
+ Assert.IsFalse (gparams[0].IsAssignableFrom (gparams [2]), "#42");
+
+ // A is not assignable from Array and Delegate and vice versa
+ Assert.IsFalse (gparams[0].IsAssignableFrom (typeof (Array)), "#43");
+ Assert.IsFalse (gparams[0].IsAssignableFrom (typeof (Delegate)), "#44");
+ Assert.IsFalse (typeof (Array).IsAssignableFrom (gparams[0]), "#45");
+ Assert.IsFalse (typeof (Delegate).IsAssignableFrom (gparams[0]), "#46");
+
+ }
+
+ [Test]
+ public void GenericParameterBaseType ()
+ {
+ var mi = typeof (TypeTest).GetMethod ("GenericMethod2", BindingFlags.Instance|BindingFlags.NonPublic);
+ var gparams = mi.GetGenericArguments ();
+
+ // From the .NET documentation: BaseType property of a
+ // gparam is "object" if its only constraints are other
+ // gparams or interfaces, otherwise if it has a class
+ // constraint that class is the BaseType.
+
+ // A : B where B is a gparam, and A : IFace which is an
+ // interface, so A.BaseType is object
+ Assert.AreEqual (typeof (object), gparams[0].BaseType, "#1");
+ // B : C where C is a gparam, so B.BaseType is object
+ Assert.AreEqual (typeof (object), gparams[1].BaseType, "#2");
+ // C : Duper where Duper is a class, so A.BaseType is Duper
+ Assert.AreEqual (typeof (Duper), gparams[2].BaseType, "#3");
+ // D : Baz<object>
+ Assert.AreEqual (typeof (Baz<object>), gparams[3].BaseType, "#4");
}
[Test]
public int field;
}
+ [Test]
+ public void IsAssignableFromGenericArgumentsWithConstraints ()
+ {
+ // Regression test for #58809
+
+ // Generic Parameters of a gtd should have their
+ // constraints respected even when those constraints
+ // are other generic parameters themselves.
+
+ var ps = typeof (GenericWithParamConstraints<,,>).GetGenericArguments ();
+
+ var a = ps[0];
+ var b = ps[1];
+ var c = ps[2];
+
+ // Foo<C>
+ var fooOfC = typeof (Foo<>).MakeGenericType (c);
+
+ // constraint B : Foo <C>
+ Assert.IsTrue (fooOfC.IsAssignableFrom (b), "#1");
+
+ // constraint A : B
+ Assert.IsTrue (b.IsAssignableFrom (a), "#2");
+
+ // A : Foo<C> since A : B and B : Foo<C>
+ Assert.IsTrue (fooOfC.IsAssignableFrom (a), "#3");
+ }
+
+ class GenericWithParamConstraints<A, B, C> where B : Foo<C> where A : B
+ {
+ }
+
[Test] // Bug #612780
public void CannotMakeDerivedTypesFromTypedByRef ()
{
using System;
using System.Net;
using System.Net.Sockets;
+using System.Collections.Generic;
namespace MonoTests.Helpers {
public static class NetworkHelpers
{
static Random rndPort = new Random ();
+ static HashSet<int> portsTable = new HashSet<int> ();
public static int FindFreePort ()
{
public static IPEndPoint LocalEphemeralEndPoint ()
{
- while (true) {
- var ep = new IPEndPoint (IPAddress.Loopback, rndPort.Next (10000, 60000));
-
- try {
- using (var socket = new Socket (ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp)) {
- socket.Bind (ep);
- socket.Close ();
- }
- return ep;
- } catch (SocketException) { }
+ int counter = 0;
+
+ while (counter < 1000) {
+ var testingPort = rndPort.Next (10000, 60000);
+
+ var ep = new IPEndPoint (IPAddress.Loopback, testingPort);
+
+ lock (portsTable) {
+ if (portsTable.Contains (testingPort))
+ continue;
+
+ ++counter;
+
+ try {
+ using (var socket = new Socket (ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp)) {
+ socket.Bind (ep);
+ socket.Close ();
+ }
+
+ portsTable.Add (testingPort);
+ return ep;
+ } catch (SocketException) { }
+ }
}
+
+ throw new ApplicationException ($"Could not find available local port after {counter} retries");
}
}
}
--- /dev/null
+// CS0106: The modifier `readonly' is not valid for this item
+// Line: 6
+// Compiler option: -langversion:latest
+
+readonly interface I
+{
+}
--- /dev/null
+// CS0131: The left-hand side of an assignment must be a variable, a property or an indexer
+// Line: 8
+
+class X
+{
+ void Test ()
+ {
+ Foo () = 1;
+ }
+
+ static int Foo ()
+ {
+ return 1;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS0199: A static readonly field `X.f' cannot be passed ref or out (except in a static constructor)
+// Line: 10
+
+class X
+{
+ static readonly int f = 0;
+
+ public static void Main ()
+ {
+ ref int j = ref f;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS0206: A property, indexer or dynamic member access may not be passed as `ref' or `out' parameter
+// Line: 10
+
+class X
+{
+ static int P { get; set; }
+
+ static void Main ()
+ {
+ ref int rl = ref P;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS0459: Cannot take the address of `this' because it is read-only
+// Line: 11
+// Compiler options: -unsafe -langversion:latest
+
+readonly struct X
+{
+ unsafe void Test ()
+ {
+ fixed (X* x = &this) {
+
+ }
+ }
+}
--- /dev/null
+// CS1503: Argument `#1' cannot convert `ref long' expression to type `ref int'
+// Line: 18
+
+using System;
+
+class X
+{
+ long field;
+
+ static void Main ()
+ {
+ var x = new X ();
+ x.Run ();
+ }
+
+ void Run ()
+ {
+ Test (ref Prop);
+ }
+
+ static int Test (ref int y)
+ {
+ return y;
+ }
+
+ ref long Prop {
+ get {
+ return ref field;
+ }
+ }
+}
--- /dev/null
+// CS1547: Keyword `void' cannot be used in this context
+// Line: 6
+
+interface IA
+{
+ ref void Foo ();
+}
--- /dev/null
+// CS1604: Cannot assign to `this' because it is read-only
+// Line: 8
+// Compiler options: -langversion:latest
+
+readonly struct S
+{
+ void Foo ()
+ {
+ this = new S ();
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS1605: Cannot pass `this' as a ref or out argument because it is read-only
+// Line: 14
+// Compiler options: -langversion:latest
+
+readonly struct X
+{
+ void Test (out X x)
+ {
+ x = new X ();
+ }
+
+ void Run ()
+ {
+ Test (out this);
+ }
+}
-// CS1617: Invalid -langversion option `ISO'. It must be `ISO-1', `ISO-2', Default or value in range 1 to 7
+// CS1617: Invalid -langversion option `ISO'. It must be `ISO-1', `ISO-2', Default, Latest or value in range 1 to 7.2
// Line: 0
// Compiler options: -langversion:ISO
--- /dev/null
+// CS1644: Feature `byref locals and returns' cannot be used because it is not part of the C# 6.0 language specification
+// Line: 9
+// Compiler options: -langversion:6
+
+class Text
+{
+ static ref long Foo ()
+ {
+ throw new System.NotImplementedException ();
+ }
+}
--- /dev/null
+// CS1644: Feature `readonly structs' cannot be used because it is not part of the C# 7.0 language specification
+// Line: 5
+// Compiler options: -langversion:7
+
+readonly struct S
+{
+}
\ No newline at end of file
--- /dev/null
+// CS1715: `B.Foo': type must be `int' to match overridden member `A.Foo'
+// Line: 11
+
+public abstract class A
+{
+ public abstract ref int Foo { get; }
+}
+
+public class B : A
+{
+ public override ref long Foo {
+ get {
+ throw null;
+ }
+ }
+}
\ No newline at end of file
-// CS1764: Cannot use fixed local `p' inside an anonymous method, lambda expression or query expression
+// CS1764: Cannot use fixed variable `p' inside an anonymous method, lambda expression or query expression
// Line: 10
// Compiler options: -unsafe
--- /dev/null
+// CS8145: Auto-implemented property `X.TestProp' cannot return by reference
+// Line: 6
+
+public class X
+{
+ ref string TestProp { get; }
+}
\ No newline at end of file
--- /dev/null
+// CS8146: `X.TestProp': property and indexer which return by reference must have a get accessor
+// Line: 6
+
+public class X
+{
+ ref string TestProp { set; }
+}
\ No newline at end of file
--- /dev/null
+// CS8147: `X.this[int]': property and indexer which return by reference cannot have set accessors
+// Line: 6
+
+public class X
+{
+ ref string this [int arg] {
+ set {
+
+ }
+ get {
+
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8147: `X.TestProp': property and indexer which return by reference cannot have set accessors
+// Line: 6
+
+public class X
+{
+ ref string TestProp {
+ set {
+
+ }
+ get {
+
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8148: `B.Foo': must return by reference to match overridden member `A.Foo'
+// Line: 11
+
+public abstract class A
+{
+ public abstract ref int Foo { get; }
+}
+
+public class B : A
+{
+ public override long Foo {
+ get {
+ throw null;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8148: `B.Foo()': must not return by reference to match overridden member `A.Foo()'
+// Line: 11
+
+public abstract class A
+{
+ public abstract int Foo ();
+}
+
+public class B : A
+{
+ public override ref int Foo ()
+ {
+
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8149: By-reference returns can only be used in lambda expressions that return by reference
+// Line: 12
+
+using System;
+
+class A
+{
+ int p;
+
+ void Test ()
+ {
+ Action a = () => ref p;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8149: By-reference returns can only be used in methods that return by reference
+// Line: 10
+
+class A
+{
+ int p;
+
+ int Test ()
+ {
+ return ref p;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8150: By-reference return is required when method returns by reference
+// Line: 10
+
+class A
+{
+ int p;
+
+ ref int Test ()
+ {
+ return p;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8151: The return by reference expression must be of type `string' because this method returns by reference
+// Line: 10
+
+public class X
+{
+ int field;
+
+ ref string TestMethod ()
+ {
+ return ref field;
+ }
+}
--- /dev/null
+// CS8152: `C' does not implement interface member `IA.Foo()' and the best implementing candidate `C.Foo()' return type `void' does not return by reference
+// Line: 11
+
+interface IA
+{
+ ref char Foo ();
+}
+
+public class C : IA
+{
+ public void Foo ()
+ {
+ }
+}
--- /dev/null
+// CS8153: An expression tree lambda cannot contain a call to a method, property, or indexer that returns by reference
+// Line: 11
+
+using System;
+using System.Linq.Expressions;
+
+class X
+{
+ void Foo ()
+ {
+ Expression<Func<int>> e = () => Test (ref this[0]);
+ }
+
+ static int Test (ref int y)
+ {
+ return y;
+ }
+
+ ref int this [int y] {
+ get {
+ throw null;
+ }
+ }
+}
--- /dev/null
+// CS8154: The body of `TestClass.TestFunction()' cannot be an iterator block because the method returns by reference
+// Line: 10
+
+class TestClass
+{
+ int x;
+
+ ref int TestFunction()
+ {
+ yield return x;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8155: Lambda expressions that return by reference cannot be converted to expression trees
+// Line: 14
+
+using System.Linq.Expressions;
+
+class TestClass
+{
+ static int x;
+
+ delegate ref int D ();
+
+ static void Main ()
+ {
+ Expression<D> e = () => ref x;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8156: An expression cannot be used in this context because it may not be returned by reference
+// Line: 8
+
+class X
+{
+ int Prop {
+ get {
+ return 1;
+ }
+ }
+
+ ref int Test ()
+ {
+ return ref Prop;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8156: An expression cannot be used in this context because it may not be returned by reference
+// Line: 8
+
+class Test
+{
+ ref int Foo ()
+ {
+ return ref 2;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8157: Cannot return `r' by reference because it was initialized to a value that cannot be returned by reference
+// Line: 11
+
+struct S
+{
+ int i;
+
+ ref int M ()
+ {
+ ref int r = ref i;
+ return ref r;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8160: A readonly field cannot be returned by reference
+// Line: 10
+
+class X
+{
+ readonly int f = 0;
+
+ ref int Test ()
+ {
+ return ref f;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8161: A static readonly field cannot be returned by reference
+// Line: 10
+
+class X
+{
+ static readonly int f;
+
+ static ref int Test ()
+ {
+ return ref f;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8170:
+// Line: 10
+
+public struct S
+{
+ int f;
+
+ public ref S Foo ()
+ {
+ return ref f;
+ }
+}
--- /dev/null
+// CS8170:
+// Line: 8
+
+public struct S
+{
+ public ref S Foo ()
+ {
+ return ref this;
+ }
+}
--- /dev/null
+// CS8171: Cannot initialize a by-value variable `l' with a reference expression
+// Line: 10
+
+class Test
+{
+ int field;
+
+ void Foo ()
+ {
+ int l = ref field;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8172: Cannot initialize a by-reference variable `j' with a value
+// Line: 10
+
+class X
+{
+ static int f;
+
+ public static void Main ()
+ {
+ ref int j = f;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8173: The expression must be of type `long' because it is being assigned by reference
+// Line: 11
+
+public class X
+{
+ int field;
+
+ public static void Main ()
+ {
+ int i = 5;
+ ref long j = ref i;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8174: A declaration of a by-reference variable must have an initializer
+// Line: 8
+
+class X
+{
+ public static void Main ()
+ {
+ ref int j;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8175: Cannot use by-reference variable `v' inside an anonymous method, lambda expression, or query expression
+// Line: 14
+
+using System;
+
+public class Test
+{
+ public static void Main()
+ {
+ var arr = new int [1];
+ ref var v = ref arr [0];
+
+ Action a = delegate {
+ ref var v2 = ref v;
+ };
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8176: Iterators cannot use by-reference variables
+// Line: 12
+
+using System.Collections.Generic;
+
+class X
+{
+ int x;
+
+ IEnumerable<int> Test ()
+ {
+ ref int y = ref x;
+ yield break;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8177: Async methods cannot use by-reference variables
+// Line: 12
+
+using System.Threading.Tasks;
+
+class X
+{
+ int x;
+
+ async Task Test ()
+ {
+ ref int y = ref x;
+ await Task.Yield ();
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8178: `await' cannot be used in an expression containing a call to `X.this[int]' because it returns by reference
+// Line: 12
+
+using System.Threading.Tasks;
+
+class X
+{
+ int x;
+
+ async Task Test ()
+ {
+ Foo (ref this [await Task.FromResult (1)]);
+ }
+
+ ref int this [int arg] => ref x;
+
+ static void Foo (ref int arg)
+ {
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8178: `await' cannot be used in an expression containing a call to `X.Wrap(int)' because it returns by reference
+// Line: 12
+
+using System.Threading.Tasks;
+
+class X
+{
+ int x;
+
+ async Task Test ()
+ {
+ Foo (ref Wrap (await Task.FromResult (1))) = 4;
+ }
+
+ ref int Wrap (int arg)
+ {
+ return ref x;
+ }
+
+ static ref int Foo (ref int arg)
+ {
+ return ref arg;
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8189: By reference return delegate does not match `C.D()' return type
+// Line: 15
+
+class C
+{
+ delegate ref int D ();
+
+ static int M ()
+ {
+ return 1;
+ }
+
+ static void Main ()
+ {
+ D d = new D (M);
+ }
+}
\ No newline at end of file
--- /dev/null
+// CS8303: Specified language version `0.5' cannot have leading zeroes
+// Line: 0
+// Compiler options: -langversion:0.5
\ No newline at end of file
--- /dev/null
+// CS8340: `S.field': Instance fields in readonly structs must be readonly
+// Line: 6
+// Compiler options: -langversion:latest
+
+readonly partial struct S
+{
+
+}
+
+partial struct S
+{
+ int field;
+}
\ No newline at end of file
--- /dev/null
+// CS8340: `S.field': Instance fields in readonly structs must be readonly
+// Line: 6
+// Compiler options: -langversion:latest
+
+readonly struct S
+{
+ int field;
+}
\ No newline at end of file
--- /dev/null
+// CS8341: Auto-implemented instance property `S.field' in readonly structs must be readonly
+// Line: 6
+// Compiler options: -langversion:latest
+
+readonly struct S
+{
+ int field { get; set; }
+}
\ No newline at end of file
--- /dev/null
+// CS8342: `S.e': Field-like instance events are not allowed in readonly structs
+// Line: 6
+// Compiler options: -langversion:latest
+
+using System;
+
+readonly struct S
+{
+ event Action e;
+}
\ No newline at end of file
cs8141.cs
cs8141-2.cs
cs8144.cs
+cs8157.cs NO ERROR
+cs8160.cs
+cs8161.cs
+cs8170.cs NO ERROR
+cs8170-2.cs
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
</PropertyGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<ClCompile>\r
<Optimization>Disabled</Optimization>\r
<PreprocessorDefinitions>SKEL_DIRECTORY=".";%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
<PostBuildEvent>\r
<Command>copy $(OutDir)jay.exe $(ProjectDir)jay.exe</Command>\r
</PostBuildEvent>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
<PostBuildEvent>\r
<Command>copy $(OutDir)jay.exe $(ProjectDir)jay.exe</Command>\r
</PostBuildEvent>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ClCompile Include="closure.c" />\r
return Clone (Expr.Clone (clonectx));
}
- public virtual Expression CreateExpressionTree (ResolveContext ec)
+ public virtual Expression CreateExpressionTree (ResolveContext rc)
{
+ if (Type.Kind == MemberKind.ByRef) {
+ rc.Report.Error (8153, Expr.Location, "An expression tree lambda cannot contain a call to a method, property, or indexer that returns by reference");
+ return null;
+ }
+
if (ArgType == AType.Default)
- ec.Report.Error (854, Expr.Location, "An expression tree cannot contain an invocation which uses optional parameter");
+ rc.Report.Error (854, Expr.Location, "An expression tree cannot contain an invocation which uses optional parameter");
- return Expr.CreateExpressionTree (ec);
+ return Expr.CreateExpressionTree (rc);
}
return;
}
+ if (Expr.Type.Kind == MemberKind.ByRef) {
+ Expr.Emit (ec);
+ return;
+ }
+
AddressOp mode = AddressOp.Store;
if (ArgType == AType.Ref)
mode |= AddressOp.Load;
- IMemoryLocation ml = (IMemoryLocation) Expr;
- ml.AddressOf (ec, mode);
+ ((IMemoryLocation)Expr).AddressOf (ec, mode);
}
public Argument EmitToField (EmitContext ec, bool cloneResult)
return all;
}
- public static Arguments CreateForExpressionTree (ResolveContext ec, Arguments args, params Expression[] e)
+ public static Arguments CreateForExpressionTree (ResolveContext rc, Arguments args, params Expression[] e)
{
Arguments all = new Arguments ((args == null ? 0 : args.Count) + e.Length);
for (int i = 0; i < e.Length; ++i) {
- if (e [i] != null)
- all.Add (new Argument (e[i]));
+ var expr = e [i];
+ if (expr != null) {
+ all.Add (new Argument (expr));
+ }
}
if (args != null) {
foreach (Argument a in args.args) {
- Expression tree_arg = a.CreateExpressionTree (ec);
+ Expression tree_arg = a.CreateExpressionTree (rc);
if (tree_arg != null)
all.Add (new Argument (tree_arg));
}
// New in .NET 4.7
public readonly PredefinedTupleElementNamesAttribute TupleElementNames;
+ // New in .NET 4.7.1
+ public readonly PredefinedAttribute IsReadOnly;
+
//
// Optional types which are used as types and for member lookup
//
CallerFilePathAttribute = new PredefinedAttribute (module, "System.Runtime.CompilerServices", "CallerFilePathAttribute");
TupleElementNames = new PredefinedTupleElementNamesAttribute (module, "System.Runtime.CompilerServices", "TupleElementNamesAttribute");
+ IsReadOnly = new PredefinedAttribute (module, "System.Runtime.CompilerServices", "IsReadOnlyAttribute");
// TODO: Should define only attributes which are used for comparison
const System.Reflection.BindingFlags all_fields = System.Reflection.BindingFlags.Public |
Modifiers.PROTECTED |
Modifiers.INTERNAL |
Modifiers.UNSAFE |
- Modifiers.PRIVATE;
+ Modifiers.PRIVATE |
+ Modifiers.READONLY;
public Struct (TypeContainer parent, MemberName name, Modifiers mod, Attributes attrs)
: base (parent, name, attrs, MemberKind.Struct)
public override void Emit ()
{
+ if ((ModFlags & Modifiers.READONLY) != 0)
+ Module.PredefinedAttributes.IsReadOnly.EmitAttribute (TypeBuilder);
+
CheckStructCycles ();
base.Emit ();
var base_member_type = ((IInterfaceMemberSpec)base_member).MemberType;
if (!TypeSpecComparer.Override.IsEqual (MemberType, base_member_type)) {
Report.SymbolRelatedToPreviousError (base_member);
- if (this is PropertyBasedMember) {
+ if (((base_member_type.Kind ^ MemberType.Kind) & MemberKind.ByRef) != 0) {
+ Report.Error (8148, Location, "`{0}': must {2}return by reference to match overridden member `{1}'",
+ GetSignatureForError (), base_member.GetSignatureForError (), base_member_type.Kind == MemberKind.ByRef ? "" : "not ");
+ } else if (this is PropertyBasedMember) {
Report.Error (1715, Location, "`{0}': type must be `{1}' to match overridden member `{2}'",
GetSignatureForError (), base_member_type.GetSignatureForError (), base_member.GetSignatureForError ());
} else {
return null;
}
+ if (expr is ReferenceExpression) {
+ // Only identify conversion is allowed
+ return null;
+ }
+
e = ImplicitNumericConversion (expr, expr_type, target_type);
if (e != null)
return e;
opt_modifiers
opt_partial
STRUCT
- {
- }
type_declaration_name
- {
+ {
+ var mods = (Modifiers) $2;
+ if ((mods & Modifiers.READONLY) != 0 && lang_version < LanguageVersion.V_7_2) {
+ FeatureIsNotAvailable (GetLocation ($4), "readonly structs");
+ }
+
lexer.ConstraintsParsing = true;
valid_param_mod = ParameterModifierType.PrimaryConstructor;
- push_current_container (new Struct (current_container, (MemberName) $6, (Modifiers) $2, (Attributes) $1), $3);
+ push_current_container (new Struct (current_container, (MemberName) $5, mods, (Attributes) $1), $3);
}
opt_primary_parameters
opt_class_base
valid_param_mod = 0;
lexer.ConstraintsParsing = false;
- if ($8 != null)
- current_type.PrimaryConstructorParameters = (ParametersCompiled) $8;
+ if ($7 != null)
+ current_type.PrimaryConstructorParameters = (ParametersCompiled) $7;
- if ($10 != null)
- current_container.SetConstraints ((List<Constraints>) $10);
+ if ($9 != null)
+ current_container.SetConstraints ((List<Constraints>) $9);
if (doc_support)
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
}
opt_semicolon
{
- if ($16 == null) {
- lbag.AppendToMember (current_container, GetLocation ($12), GetLocation ($15));
+ if ($15 == null) {
+ lbag.AppendToMember (current_container, GetLocation ($11), GetLocation ($14));
} else {
- lbag.AppendToMember (current_container, GetLocation ($12), GetLocation ($15), GetLocation ($17));
+ lbag.AppendToMember (current_container, GetLocation ($11), GetLocation ($14), GetLocation ($16));
}
$$ = pop_current_class ();
}
field_declaration
: opt_attributes
opt_modifiers
- member_type IDENTIFIER
+ ref_member_type IDENTIFIER
{
lexer.parsing_generic_declaration = false;
}
;
+ref_member_type
+ : member_type
+ {
+ $$ = $1;
+ }
+ | REF
+ {
+ lexer.parsing_generic_declaration = true;
+ }
+ type
+ {
+ if (lang_version < LanguageVersion.V_7) {
+ FeatureIsNotAvailable (GetLocation ($1), "byref locals and returns");
+ }
+
+ $$ = new ReferenceTypeExpr ((FullNamedExpression) $3, GetLocation ($1));
+ }
+ ;
+
method_header
: opt_attributes
opt_modifiers
- member_type
+ ref_member_type
method_declaration_name OPEN_PARENS
{
valid_param_mod = ParameterModifierType.All;
}
| opt_attributes
opt_modifiers
- member_type
+ ref_member_type
modifiers method_declaration_name OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS
{
MemberName name = (MemberName) $5;
}
| opt_attributes
opt_modifiers
- member_type
+ ref_member_type
method_declaration_name error
{
Error_SyntaxError (yyToken);
++lexer.parsing_block;
start_block (GetLocation ($1));
}
- expression SEMICOLON
+ lambda_arrow_expression SEMICOLON
{
lexer.parsing_block = 0;
current_block.AddStatement (new ContextualReturn ((Expression) $3));
property_declaration
: opt_attributes
opt_modifiers
- member_type
+ ref_member_type
member_declaration_name
{
lexer.parsing_generic_declaration = false;
if (doc_support)
current_property.DocComment = ConsumeStoredComment ();
+
+ if ($3 is ReferenceTypeExpr) {
+ if (current_property.Get == null) {
+ report.Error (8146, GetLocation ($4), "`{0}': property and indexer which return by reference must have a get accessor", current_property.GetSignatureForError ());
+ }
+
+ if (current_property.Set != null) {
+ report.Error (8147, GetLocation ($4), "`{0}': property and indexer which return by reference cannot have set accessors", current_property.GetSignatureForError ());
+ }
+ }
}
CLOSE_BRACE
{
}
| opt_attributes
opt_modifiers
- member_type
+ ref_member_type
member_declaration_name
{
lexer.parsing_generic_declaration = false;
indexer_declaration
: opt_attributes opt_modifiers
- member_type indexer_declaration_name OPEN_BRACKET
+ ref_member_type indexer_declaration_name OPEN_BRACKET
{
valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
}
if (doc_support)
current_property.DocComment = ConsumeStoredComment ();
+
+ if ($3 is ReferenceTypeExpr) {
+ if (current_property.Get == null) {
+ report.Error (8146, GetLocation ($4), "`{0}': property and indexer which return by reference must have a get accessor", current_property.GetSignatureForError ());
+ }
+
+ if (current_property.Set != null) {
+ report.Error (8147, GetLocation ($4), "`{0}': property and indexer which return by reference cannot have set accessors", current_property.GetSignatureForError ());
+ }
+ }
current_property = null;
}
: opt_attributes
opt_modifiers
DELEGATE
- member_type type_declaration_name
+ ref_member_type type_declaration_name
OPEN_PARENS
{
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
: {
start_block (Location.Null);
}
- expression // All expressions must handle error or current block won't be restored and breaking ast completely
+ lambda_arrow_expression // All expressions must handle error or current block won't be restored and breaking ast completely
{
Block b = end_block (Location.Null);
b.IsCompilerGenerated = true;
}
;
+lambda_arrow_expression
+ : expression
+ | reference_expression
+ ;
+
expression_or_error
: expression
| error
current_variable = null;
lbag.AddLocation ($$, GetLocation ($1), GetLocation ($7));
}
+ | REF variable_type identifier_inside_body
+ {
+ if (lang_version < LanguageVersion.V_7) {
+ FeatureIsNotAvailable (GetLocation ($1), "byref locals and returns");
+ }
+
+ var lt = (LocatedToken) $3;
+ var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ByRef, lt.Location);
+ current_block.AddLocalName (li);
+ current_variable = new BlockVariable ((FullNamedExpression) $2, li);
+ }
+ opt_local_variable_initializer opt_variable_declarators SEMICOLON
+ {
+ $$ = current_variable;
+ current_variable = null;
+ if ($5 != null) {
+ lbag.AddLocation ($$, PopLocation (), GetLocation ($7));
+ } else {
+ report.Error (8174, GetLocation ($3), "A declaration of a by-reference variable must have an initializer");
+ lbag.AddLocation ($$, GetLocation ($7));
+ }
+ }
;
opt_local_variable_initializer
report.Error (1575, GetLocation ($1), "A stackalloc expression requires [] after type");
$$ = new StackAlloc ((Expression) $2, null, GetLocation ($1));
}
+ | reference_expression
+ ;
+
+reference_expression
+ : REF expression
+ {
+ if (lang_version < LanguageVersion.V_7) {
+ FeatureIsNotAvailable (GetLocation ($1), "byref locals and returns");
+ }
+
+ $$ = new ReferenceExpression ((Expression) $2, GetLocation ($1));
+ }
;
expression_statement
$$ = new Return ((Expression) $2, GetLocation ($1));
lbag.AddStatement ($$, GetLocation ($3));
}
+ | RETURN reference_expression SEMICOLON
+ {
+ $$ = new Return ((Expression) $2, GetLocation ($1));
+ lbag.AddStatement ($$, GetLocation ($3));
+ }
| RETURN expression error
{
Error_SyntaxError (yyToken);
rt = ec.BuiltinTypes.Object;
if (!Delegate.IsTypeCovariant (ec, rt, invoke_method.ReturnType)) {
- Expression ret_expr = new TypeExpression (delegate_method.ReturnType, loc);
- Error_ConversionFailed (ec, delegate_method, ret_expr);
+ Error_ConversionFailed (ec, delegate_method, delegate_method.ReturnType);
}
if (method_group.IsConditionallyExcluded) {
method_group.FlowAnalysis (fc);
}
- void Error_ConversionFailed (ResolveContext ec, MethodSpec method, Expression return_type)
+ void Error_ConversionFailed (ResolveContext ec, MethodSpec method, TypeSpec return_type)
{
var invoke_method = Delegate.GetInvokeMethod (type);
string member_name = method_group.InstanceExpression != null ?
return;
}
+ if (invoke_method.ReturnType.Kind == MemberKind.ByRef) {
+ ec.Report.Error (8189, loc, "By reference return delegate does not match `{0}' return type",
+ Delegate.FullDelegateDesc (invoke_method));
+ return;
+ }
+
ec.Report.Error (407, loc, "A method or delegate `{0} {1}' return type does not match delegate `{2} {3}' return type",
return_type.GetSignatureForError (), member_name,
invoke_method.ReturnType.GetSignatureForError (), Delegate.FullDelegateDesc (invoke_method));
return;
string from_type = type.GetSignatureForError ();
+ if (type.Kind == MemberKind.ByRef)
+ from_type = "ref " + from_type;
string to_type = target.GetSignatureForError ();
+ if (target.Kind == MemberKind.ByRef)
+ to_type = "ref " + to_type;
+
if (from_type == to_type) {
from_type = type.GetSignatureForErrorIncludingAssemblyName ();
to_type = target.GetSignatureForErrorIncludingAssemblyName ();
public Expression ResolveLValue (ResolveContext ec, Expression right_side)
{
int errors = ec.Report.Errors;
- bool out_access = right_side == EmptyExpression.OutAccess;
+ //bool out_access = right_side == EmptyExpression.OutAccess;
Expression e = DoResolveLValue (ec, right_side);
- if (e != null && out_access && !(e is IMemoryLocation)) {
+ //if (e != null && out_access && !(e is IMemoryLocation)) {
// FIXME: There's no problem with correctness, the 'Expr = null' handles that.
// Enabling this 'throw' will "only" result in deleting useless code elsewhere,
//throw new InternalErrorException ("ResolveLValue didn't return an IMemoryLocation: " +
// e.GetType () + " " + e.GetSignatureForError ());
- e = null;
- }
+ // e = null;
+ //}
if (e == null) {
if (errors == ec.Report.Errors) {
if (arg_type == InternalType.VarOutType)
return 0;
+ var ref_arg_type = arg_type as ReferenceContainer;
+ if (ref_arg_type != null) {
+ arg_type = ref_arg_type.Element;
+ }
+
//
// Do full equality check after quick path
//
int arg_count = args == null ? 0 : args.Count;
for (; a_idx < arg_count; a_idx++, ++a_pos) {
- a = args[a_idx];
+ a = args [a_idx];
if (a == null)
continue;
if (p_mod != Parameter.Modifier.PARAMS) {
p_mod = cpd.FixedParameters [a_idx].ModFlags;
- pt = ptypes[a_idx];
+ pt = ptypes [a_idx];
has_unsafe_arg |= pt.IsPointer;
if (p_mod == Parameter.Modifier.PARAMS) {
continue;
}
+ var ref_arg_type = arg_type as ReferenceContainer;
+ if (ref_arg_type != null) {
+ if (ref_arg_type.Element != pt)
+ break;
+
+ return true;
+ }
+
if (!TypeSpecComparer.IsEqual (arg_type, pt))
break;
}
GetSignatureForError ());
}
- return null;
+ return ErrorExpression.Instance;
}
if (right_side == EmptyExpression.LValueMemberAccess) {
// Already reported as CS1648/CS1650
- return null;
+ return ErrorExpression.Instance;
}
if (right_side == EmptyExpression.LValueMemberOutAccess) {
rc.Report.Error (1649, loc, "Members of readonly field `{0}' cannot be passed ref or out (except in a constructor)",
GetSignatureForError ());
}
- return null;
+ return ErrorExpression.Instance;
}
if (IsStatic) {
GetSignatureForError ());
}
- return null;
+ return ErrorExpression.Instance;
}
public override Expression DoResolveLValue (ResolveContext ec, Expression right_side)
Error_NullPropagatingLValue (rc);
if (right_side == EmptyExpression.OutAccess) {
+ if (best_candidate?.MemberType.Kind == MemberKind.ByRef) {
+ if (Arguments?.ContainsEmitWithAwait () == true) {
+ rc.Report.Error (8178, loc, "`await' cannot be used in an expression containing a call to `{0}' because it returns by reference",
+ GetSignatureForError ());
+ }
+
+ return this;
+ }
+
// TODO: best_candidate can be null at this point
INamedBlockVariable variable = null;
if (best_candidate != null && rc.CurrentBlock.ParametersBlock.TopBlock.GetLocalName (best_candidate.Name, rc.CurrentBlock, ref variable) && variable is Linq.RangeVariable) {
if (ResolveAutopropertyAssignment (rc, right_side))
return this;
+ if (best_candidate.MemberType.Kind == MemberKind.ByRef) {
+ getter = CandidateToBaseOverride (rc, best_candidate.Get);
+ return ByRefDereference.Create(this).Resolve(rc);
+ }
+
rc.Report.Error (200, loc, "Property or indexer `{0}' cannot be assigned to (it is read-only)",
GetSignatureForError ());
return null;
return;
}
+ bool dereference = IsRef && !(source is ReferenceExpression);
New n_source = source as New;
if (n_source != null && n_source.CanEmitOptimizedLocalTarget (ec)) {
if (!n_source.Emit (ec, this)) {
if (leave_copy) {
EmitLoad (ec);
- if (IsRef)
+ if (dereference)
ec.EmitLoadFromPtr (type);
}
return;
}
} else {
- if (IsRef)
+ if (dereference)
EmitLoad (ec);
source.Emit (ec);
if (leave_copy) {
ec.Emit (OpCodes.Dup);
- if (IsRef) {
+ if (dereference) {
temp = new LocalTemporary (Type);
temp.Store (ec);
}
}
- if (IsRef)
+ if (dereference)
ec.EmitStoreFromPtr (type);
else
Variable.EmitAssign (ec);
}
public override bool IsRef {
- get { return false; }
+ get { return local_info.IsByRef; }
}
public override string Name {
AnonymousMethodExpression.Error_AddressOfCapturedVar (ec, this, loc);
} else if (local_info.IsFixed) {
ec.Report.Error (1764, loc,
- "Cannot use fixed local `{0}' inside an anonymous method, lambda expression or query expression",
+ "Cannot use fixed variable `{0}' inside an anonymous method, lambda expression or query expression",
+ GetSignatureForError ());
+ } else if (local_info.IsByRef) {
+ ec.Report.Error (8175, loc,
+ "Cannot use by-reference variable `{0}' inside an anonymous method, lambda expression, or query expression",
GetSignatureForError ());
}
protected override Expression DoResolve (ResolveContext rc)
{
ResolveConditionalAccessReceiver (rc);
- return DoResolveInvocation (rc);
+ return DoResolveInvocation (rc, null);
}
public override Expression DoResolveLValue (ResolveContext rc, Expression right_side)
return res.Resolve (rc);
}
+ if (right_side != null) {
+ if (eclass != ExprClass.Unresolved)
+ return this;
+
+ var res = DoResolveInvocation (rc, right_side);
+ if (res == null)
+ return null;
+
+ return res;
+ }
+
return base.DoResolveLValue (rc, right_side);
}
- Expression DoResolveInvocation (ResolveContext ec)
+ Expression DoResolveInvocation (ResolveContext ec, Expression rhs)
{
Expression member_expr;
var atn = expr as ATypeNameExpression;
IsSpecialMethodInvocation (ec, method, loc);
eclass = ExprClass.Value;
+
+ if (type.Kind == MemberKind.ByRef) {
+ if (rhs == null && arguments?.ContainsEmitWithAwait () == true) {
+ ec.Report.Error (8178, loc, "`await' cannot be used in an expression containing a call to `{0}' because it returns by reference",
+ GetSignatureForError ());
+ }
+
+ if (rhs != EmptyExpression.OutAccess)
+ return ByRefDereference.Create (this).Resolve (ec);
+ }
+
return this;
}
if (eclass == ExprClass.Unresolved)
ResolveBase (ec);
- if (type.IsClass){
+ if (type.IsClass || type.IsReadOnly) {
if (right_side == EmptyExpression.UnaryAddress)
ec.Report.Error (459, loc, "Cannot take the address of `this' because it is read-only");
else if (right_side == EmptyExpression.OutAccess)
}
}
+ class ReferenceTypeExpr : TypeExpr
+ {
+ FullNamedExpression element;
+
+ public ReferenceTypeExpr (FullNamedExpression element, Location loc)
+ {
+ this.element = element;
+ this.loc = loc;
+ }
+
+ public override TypeSpec ResolveAsType (IMemberContext mc, bool allowUnboundTypeArguments = false)
+ {
+ type = element.ResolveAsType (mc);
+ if (type == null)
+ return null;
+
+ eclass = ExprClass.Type;
+ type = ReferenceContainer.MakeType (mc.Module, type);
+
+ return type;
+ }
+
+ public override string GetSignatureForError ()
+ {
+ return "ref " + element.GetSignatureForError ();
+ }
+
+ public override object Accept (StructuralVisitor visitor)
+ {
+ return visitor.Visit (this);
+ }
+ }
+
class FixedBufferPtr : Expression
{
readonly Expression array;
return Reachability.CreateUnreachable ();
}
}
+
+ class ReferenceExpression : CompositeExpression
+ {
+ public ReferenceExpression (Expression expr, Location loc)
+ : base (expr)
+ {
+ this.loc = loc;
+ }
+
+ static bool CanBeByRef (Expression expr)
+ {
+ if (expr is IAssignMethod)
+ return true;
+
+ var invocation = expr as Invocation;
+ if (invocation?.Type.Kind == MemberKind.ByRef)
+ return true;
+
+ return false;
+ }
+
+ public override Expression CreateExpressionTree (ResolveContext rc)
+ {
+ throw new NotSupportedException ("ET");
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ var res = expr.DoResolveLValue (rc, EmptyExpression.OutAccess);
+ if (res == null || !CanBeByRef (res)) {
+ if (res?.Type != InternalType.ErrorType)
+ rc.Report.Error (8156, expr.Location, "An expression cannot be used in this context because it may not be returned by reference");
+ return ErrorExpression.Instance;
+ }
+
+ type = res.Type;
+ var type_container = type as ReferenceContainer;
+ if (type_container != null)
+ type = type_container.Element;
+
+ expr = res;
+ eclass = ExprClass.Value;
+ return this;
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ var ml = expr as IMemoryLocation;
+ if (ml != null)
+ ml.AddressOf (ec, AddressOp.LoadStore);
+ else
+ expr.Emit (ec);
+ }
+
+ public override void Error_ValueCannotBeConverted (ResolveContext rc, TypeSpec target, bool expl)
+ {
+ rc.Report.Error (8173, loc, "The expression must be of type `{0}' because it is being assigned by reference", target.GetSignatureForError ());
+ }
+ }
+
+ class ByRefDereference : CompositeExpression, IMemoryLocation, IAssignMethod
+ {
+ bool prepared;
+ LocalTemporary temporary;
+
+ private ByRefDereference (Expression expr)
+ : base (expr)
+ {
+ }
+
+ public static Expression Create (Expression expr)
+ {
+ var rc = expr.Type as ReferenceContainer;
+ if (rc == null)
+ return expr;
+
+ return new ByRefDereference (expr) {
+ type = rc.Element
+ };
+ }
+
+ public void AddressOf (EmitContext ec, AddressOp mode)
+ {
+ expr.Emit (ec);
+ }
+
+ public void Emit (EmitContext ec, bool leave_copy)
+ {
+ Emit (ec);
+ if (leave_copy) {
+ ec.Emit (OpCodes.Dup);
+ temporary = new LocalTemporary (type);
+ temporary.Store (ec);
+ }
+ }
+
+ public void EmitAssign (EmitContext ec, Expression source, bool leave_copy, bool isCompound)
+ {
+ prepared = isCompound;
+
+ expr.Emit (ec);
+
+ if (isCompound)
+ ec.Emit (OpCodes.Dup);
+
+ source.Emit (ec);
+ if (leave_copy) {
+ throw new NotImplementedException ("leave_copy");
+ }
+
+ ec.EmitStoreFromPtr (type);
+
+ if (temporary != null) {
+ temporary.Emit (ec);
+ temporary.Release (ec);
+ }
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ eclass = ExprClass.Variable;
+ return this;
+ }
+
+ public override Expression DoResolveLValue (ResolveContext rc, Expression right_side)
+ {
+ return DoResolve (rc);
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ if (!prepared)
+ base.Emit(ec);
+
+ ec.EmitLoadFromPtr (type);
+ }
+
+ public override object Accept (StructuralVisitor visitor)
+ {
+ return visitor.Visit (this);
+ }
+ }
}
return true;
}
+ protected override void DoMemberTypeIndependentChecks ()
+ {
+ if ((Parent.PartialContainer.ModFlags & Modifiers.READONLY) != 0 && (ModFlags & (Modifiers.READONLY | Modifiers.STATIC)) == 0) {
+ Report.Error (8340, Location, "`{0}': Instance fields in readonly structs must be readonly",
+ GetSignatureForError ());
+ }
+
+ base.DoMemberTypeIndependentChecks ();
+ }
+
protected override void DoMemberTypeDependentChecks ()
{
if ((ModFlags & Modifiers.BACKING_FIELD) != 0)
if (ec is PointerContainer)
return PointerContainer.MakeType (context.Module, et);
+ if (ec is ReferenceContainer)
+ return ReferenceContainer.MakeType (context.Module, et);
+
throw new NotImplementedException ();
}
}
}
- if (kind == MemberKind.Class) {
+ switch (kind) {
+ case MemberKind.Class:
if ((ma & TypeAttributes.Sealed) != 0) {
if ((ma & TypeAttributes.Abstract) != 0)
mod |= Modifiers.STATIC;
} else if ((ma & TypeAttributes.Abstract) != 0) {
mod |= Modifiers.ABSTRACT;
}
+ break;
+ case MemberKind.Struct:
+ if (HasAttribute (CustomAttributeData.GetCustomAttributes (type), "IsReadOnlyAttribute", CompilerServicesNamespace)) {
+ mod |= Modifiers.READONLY;
+ }
+
+ break;
}
}
return;
if (!CheckType (ret, parent, out iterator_type, out is_enumerable)) {
- parent.Compiler.Report.Error (1624, method.Location,
- "The body of `{0}' cannot be an iterator block " +
- "because `{1}' is not an iterator interface type",
- method.GetSignatureForError (),
- ret.GetSignatureForError ());
+ if (ret.Kind == MemberKind.ByRef) {
+ parent.Compiler.Report.Error (8154, method.Location,
+ "The body of `{0}' cannot be an iterator block because the method returns by reference",
+ method.GetSignatureForError ());
+ } else {
+ parent.Compiler.Report.Error (1624, method.Location,
+ "The body of `{0}' cannot be an iterator block because `{1}' is not an iterator interface type",
+ method.GetSignatureForError (), ret.GetSignatureForError ());
+ }
return;
}
public override Expression CreateExpressionTree (ResolveContext ec)
{
+ if (Expr is ReferenceExpression) {
+ ec.Report.Error (8155, Expr.Location, "Lambda expressions that return by reference cannot be converted to expression trees");
+ return null;
+ }
+
return Expr.CreateExpressionTree (ec);
}
if (Expr == null)
return false;
+ if (Expr is ReferenceExpression) {
+ // CSC: should be different error code
+ ec.Report.Error (8149, loc, "By-reference returns can only be used in lambda expressions that return by reference");
+ return false;
+ }
+
statement = Expr as ExpressionStatement;
if (statement == null) {
var reduced = Expr as IReducedExpressionStatement;
Enum = 1 << 14,
Interface = 1 << 15,
TypeParameter = 1 << 16,
+ ByRef = 1 << 17,
ArrayType = 1 << 19,
PointerType = 1 << 20,
Report.Error (737, container.Location,
"`{0}' does not implement interface member `{1}' and the best implementing candidate `{2}' is not public",
container.GetSignatureForError (), mi.GetSignatureForError (), candidate.GetSignatureForError ());
+ } else if (mi.ReturnType.Kind == MemberKind.ByRef) {
+ Report.Error (8152, container.Location,
+ "`{0}' does not implement interface member `{1}' and the best implementing candidate `{2}' return type `{3}' does not return by reference",
+ container.GetSignatureForError (), mi.GetSignatureForError (), candidate.GetSignatureForError (),
+ candidate.ReturnType.GetSignatureForError ());
} else {
Report.Error (738, container.Location,
"`{0}' does not implement interface member `{1}' and the best implementing candidate `{2}' return type `{3}' does not match interface member return type `{4}'",
return false;
}
+ if (MemberType.Kind == MemberKind.ByRef) {
+ Report.Error (8145, Location, "Auto-implemented property `{0}' cannot return by reference",
+ GetSignatureForError ());
+ return false;
+ }
+
+ if ((Parent.PartialContainer.ModFlags & Modifiers.READONLY) != 0 && Set != null && !IsStatic) {
+ Report.Error (8341, Location, "Auto-implemented instance property `{0}' in readonly structs must be readonly",
+ GetSignatureForError ());
+ }
+
if (Compiler.Settings.Version < LanguageVersion.V_3 && Initializer == null)
Report.FeatureIsNotAvailable (Compiler, Location, "auto-implemented properties");
base.ApplyAttributeBuilder (a, ctor, cdata, pa);
}
+ protected override void DoMemberTypeIndependentChecks ()
+ {
+ if ((Parent.PartialContainer.ModFlags & Modifiers.READONLY) != 0 && (ModFlags & Modifiers.STATIC) == 0) {
+ Report.Error (8342, Location, "`{0}': Field-like instance events are not allowed in readonly structs",
+ GetSignatureForError ());
+ }
+
+ base.DoMemberTypeIndependentChecks ();
+ }
+
public override bool Define()
{
var mod_flags_src = ModFlags;
V_5 = 5,
V_6 = 6,
V_7 = 7,
+ V_7_1 = 71,
+ V_7_2 = 72,
Experimental = 100,
Default = V_7,
+ Latest = V_7_2
}
public enum RuntimeVersion
switch (value.ToLowerInvariant ()) {
case "iso-1":
case "1":
+ case "1.0":
settings.Version = LanguageVersion.ISO_1;
return ParseResult.Success;
case "default":
settings.Version = LanguageVersion.Default;
return ParseResult.Success;
case "2":
+ case "2.0":
case "iso-2":
settings.Version = LanguageVersion.ISO_2;
return ParseResult.Success;
case "3":
+ case "3.0":
settings.Version = LanguageVersion.V_3;
return ParseResult.Success;
case "4":
+ case "4.0":
settings.Version = LanguageVersion.V_4;
return ParseResult.Success;
case "5":
+ case "5.0":
settings.Version = LanguageVersion.V_5;
return ParseResult.Success;
case "6":
+ case "6.0":
settings.Version = LanguageVersion.V_6;
return ParseResult.Success;
case "7":
+ case "7.0":
settings.Version = LanguageVersion.V_7;
return ParseResult.Success;
+ case "7.1":
+ settings.Version = LanguageVersion.V_7_1;
+ return ParseResult.Success;
+ case "7.2":
+ settings.Version = LanguageVersion.V_7_2;
+ return ParseResult.Success;
+ case "latest":
+ settings.Version = LanguageVersion.Latest;
+ return ParseResult.Success;
case "experimental":
settings.Version = LanguageVersion.Experimental;
return ParseResult.Success;
}
- report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', Default or value in range 1 to 7", value);
+ if (value.StartsWith ("0", StringComparison.Ordinal)) {
+ report.Error (8303, "Specified language version `{0}' cannot have leading zeroes", value);
+ } else {
+ report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', Default, Latest or value in range 1 to 7.2", value);
+ }
+
return ParseResult.Error;
case "/codepage":
if (expr == null)
return false;
+ if (expr is ReferenceExpression && block_return_type.Kind != MemberKind.ByRef) {
+ ec.Report.Error (8149, loc, "By-reference returns can only be used in methods that return by reference");
+ return false;
+ }
+
if (expr.Type != block_return_type && expr.Type != InternalType.ErrorType) {
- expr = Convert.ImplicitConversionRequired (ec, expr, block_return_type, loc);
+ if (block_return_type.Kind == MemberKind.ByRef) {
+ var ref_expr = Expr as ReferenceExpression;
+ if (ref_expr == null) {
+ ec.Report.Error (8150, loc, "By-reference return is required when method returns by reference");
+ return false;
+ }
- if (expr == null) {
- if (am != null && block_return_type == ec.ReturnType) {
- ec.Report.Error (1662, loc,
- "Cannot convert `{0}' to delegate type `{1}' because some of the return types in the block are not implicitly convertible to the delegate return type",
- am.ContainerType, am.GetSignatureForError ());
+ var byref_return = (ReferenceContainer)block_return_type;
+
+ if (expr.Type != byref_return.Element) {
+ ec.Report.Error (8151, loc, "The return by reference expression must be of type `{0}' because this method returns by reference",
+ byref_return.GetSignatureForError ());
+ return false;
+ }
+ } else {
+
+ expr = Convert.ImplicitConversionRequired (ec, expr, block_return_type, loc);
+
+ if (expr == null) {
+ if (am != null && block_return_type == ec.ReturnType) {
+ ec.Report.Error (1662, loc,
+ "Cannot convert `{0}' to delegate type `{1}' because some of the return types in the block are not implicitly convertible to the delegate return type",
+ am.ContainerType, am.GetSignatureForError ());
+ }
+ return false;
}
- return false;
}
}
}
if (type == null) {
- type = type_expr.ResolveAsType (bc);
+ type = ResolveTypeExpression (bc);
if (type == null)
return false;
}
if (initializer != null) {
+ if (li.IsByRef) {
+ if (!(initializer is ReferenceExpression)) {
+ bc.Report.Error (8172, loc, "Cannot initialize a by-reference variable `{0}' with a value", li.Name);
+ return false;
+ }
+
+ if (bc.CurrentAnonymousMethod is AsyncInitializer) {
+ bc.Report.Error (8177, loc, "Async methods cannot use by-reference variables");
+ } else if (bc.CurrentIterator != null) {
+ bc.Report.Error (8176, loc, "Iterators cannot use by-reference variables");
+ }
+
+ } else {
+ if (initializer is ReferenceExpression) {
+ bc.Report.Error (8171, loc, "Cannot initialize a by-value variable `{0}' with a reference expression", li.Name);
+ return false;
+ }
+ }
+
initializer = ResolveInitializer (bc, li, initializer);
// li.Variable.DefinitelyAssigned
}
return a.ResolveStatement (bc);
}
+ protected virtual TypeSpec ResolveTypeExpression (BlockContext bc)
+ {
+ return type_expr.ResolveAsType (bc);
+ }
+
protected override void DoEmit (EmitContext ec)
{
li.CreateBuilder (ec);
UsingVariable = 1 << 7,
IsLocked = 1 << 8,
SymbolFileHidden = 1 << 9,
+ ByRef = 1 << 10,
ReadonlyMask = ForeachVariable | FixedVariable | UsingVariable
}
}
}
+ public bool IsByRef => (flags & Flags.ByRef) != 0;
+
public bool IsCompilerGenerated {
get {
return (flags & Flags.CompilerGenerated) != 0;
throw new InternalErrorException ("Already created variable `{0}'", name);
}
- //
- // All fixed variabled are pinned, a slot has to be alocated
- //
- builder = ec.DeclareLocal (Type, IsFixed);
+ if (IsByRef) {
+ builder = ec.DeclareLocal (ReferenceContainer.MakeType (ec.Module, Type), IsFixed);
+ } else {
+ //
+ // All fixed variabled are pinned, a slot has to be alocated
+ //
+ builder = ec.DeclareLocal(Type, IsFixed);
+ }
+
if ((flags & Flags.SymbolFileHidden) == 0)
ec.DefineLocalVariable (name, builder);
}
if ((flags & Flags.CompilerGenerated) != 0)
CreateBuilder (ec);
- ec.Emit (OpCodes.Ldloca, builder);
+ if (IsByRef)
+ ec.Emit (OpCodes.Ldloc, builder);
+ else
+ ec.Emit (OpCodes.Ldloca, builder);
}
public static string GetCompilerGeneratedName (Block block)
}
}
+ public bool IsReadOnly => (modifiers & Modifiers.READONLY) != 0;
+
//
// Returns true for instances of any System.ValueTuple<......> type
//
}
}
+ [System.Diagnostics.DebuggerDisplay("{DisplayDebugInfo()}")]
class ReferenceContainer : ElementTypeSpec
{
ReferenceContainer (TypeSpec element)
- : base (MemberKind.Class, element, null) // TODO: Kind.Class is most likely wrong
+ : base (MemberKind.ByRef, element, null)
{
}
}
}
+ string DisplayDebugInfo()
+ {
+ return "ref " + GetSignatureForError();
+ }
+
public override MetaType GetMetaInfo ()
{
if (info == null) {
return info;
}
+ public override string GetSignatureForError ()
+ {
+ return Element.GetSignatureForError ();
+ }
+
public static ReferenceContainer MakeType (ModuleContainer module, TypeSpec element)
{
+ if (element.Kind == MemberKind.ByRef)
+ throw new ArgumentException ();
+
ReferenceContainer pc;
if (!module.ReferenceTypesCache.TryGetValue (element, out pc)) {
pc = new ReferenceContainer (element);
--- /dev/null
+// Compiler options: -langversion:latest
+
+using System;
+
+readonly struct S
+{
+ readonly int field;
+
+ static int sf;
+ static event Action e;
+ static int Prop { get; set; }
+
+ public static void Main ()
+ {
+ }
+}
\ No newline at end of file
--- /dev/null
+// Compiler options: -unsafe
+
+public unsafe class X
+{
+ int field;
+ int* ufield;
+
+ public static void Main ()
+ {
+ int i = 5;
+ ref int j = ref i;
+
+ var x = new X ();
+ ref var v = ref x.TestMethod ();
+ }
+
+ ref int TestMethod ()
+ {
+ return ref field;
+ }
+
+ ref int TestProperty {
+ get {
+ return ref field;
+ }
+ }
+
+ ref int this [long arg] {
+ get {
+ return ref field;
+ }
+ }
+
+ unsafe ref int* Foo ()
+ {
+ return ref ufield;
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+
+class X
+{
+ int field;
+
+ static void Main ()
+ {
+ var x = new X ();
+ x.Run ();
+ }
+
+ void Run ()
+ {
+ Test (ref this[0]);
+ Test (ref Prop);
+ }
+
+ static int Test (ref int y)
+ {
+ return y;
+ }
+
+ ref int this [int y] {
+ get {
+ return ref field;
+ }
+ }
+
+ ref int Prop {
+ get {
+ return ref field;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+class X
+{
+ int x;
+
+ static void Main ()
+ {
+ var x = new X ();
+ Foo (ref x.Wrap (1));
+ Foo (ref x.Prop);
+ Foo (ref x[""]);
+ }
+
+ ref int Wrap (int arg)
+ {
+ return ref x;
+ }
+
+ ref int Prop {
+ get {
+ return ref x;
+ }
+ }
+
+ ref int this [string arg] {
+ get {
+ return ref x;
+ }
+ }
+
+ static void Foo (ref int arg)
+ {
+ }
+}
\ No newline at end of file
--- /dev/null
+class X
+{
+ int field;
+
+ public static int Main ()
+ {
+ var x = new X ();
+
+ x.field = 5;
+ if (!x.Test1 ())
+ return 1;
+
+ x.Test2 ();
+
+ if (x.Test3 ()++ != 6)
+ return 2;
+
+ if (x.field != 7)
+ return 3;
+
+ return 0;
+ }
+
+ bool Test1 ()
+ {
+ ref var x = ref field;
+ int v = x;
+ ++x;
+
+ return x == 6;
+ }
+
+ void Test2 ()
+ {
+ ref int x = ref field;
+ x.ToString ();
+ }
+
+ ref int Test3 ()
+ {
+ ref int l = ref field;
+ ref int v = ref l;
+ return ref l;
+ }
+}
\ No newline at end of file
--- /dev/null
+class X
+{
+ static int field;
+
+ public static int Main ()
+ {
+ Test () = 3;
+
+ if (field != (byte) 3)
+ return 1;
+
+ G<string>.Test (ref field) = 6;
+ if (field != 6)
+ return 2;
+
+ --Test ();
+ if (field != 5)
+ return 3;
+
+ Test (ref Test (), ref Test ());
+
+ return 0;
+ }
+
+ static ref int Test ()
+ {
+ return ref field;
+ }
+
+ static void Test<T> (ref T a, ref int b)
+ {
+ }
+
+ static void Test2<T> (ref T arg)
+ {
+ Test (ref arg, ref Test ());
+ }
+}
+
+class G<U>
+{
+ public static ref T Test<T> (ref T arg)
+ {
+ return ref arg;
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+
+class X
+{
+ public static int Main ()
+ {
+ var x = new X ();
+ x [0] = 3;
+ if (x.field != 3)
+ return 1;
+ x.Prop = 5;
+ if (x.field != 5)
+ return 2;
+
+ return 0;
+ }
+
+ int field;
+
+ ref int this [int idx] => ref field;
+
+ ref int Prop => ref field;
+
+}
\ No newline at end of file
</method>
</type>
</test>
+ <test name="test-readonly-01.cs">
+ <type name="S">
+ <method name="Void add_e(System.Action)" attrs="2193">
+ <size>40</size>
+ </method>
+ <method name="Void remove_e(System.Action)" attrs="2193">
+ <size>40</size>
+ </method>
+ <method name="Int32 get_Prop()" attrs="2193">
+ <size>13</size>
+ </method>
+ <method name="Void set_Prop(Int32)" attrs="2193">
+ <size>7</size>
+ </method>
+ <method name="Void Main()" attrs="150">
+ <size>2</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-01.cs">
+ <type name="X">
+ <method name="Void Main()" attrs="150">
+ <size>20</size>
+ </method>
+ <method name="Int32& TestMethod()" attrs="129">
+ <size>15</size>
+ </method>
+ <method name="Int32& get_TestProperty()" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Int32& get_Item(Int64)" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Int32*& Foo()" attrs="129">
+ <size>15</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-02.cs">
+ <type name="X">
+ <method name="Void Main()" attrs="145">
+ <size>14</size>
+ </method>
+ <method name="Void Run()" attrs="129">
+ <size>27</size>
+ </method>
+ <method name="Int32 Test(Int32 ByRef)" attrs="145">
+ <size>11</size>
+ </method>
+ <method name="Int32& get_Item(Int32)" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Int32& get_Prop()" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-03.cs">
+ <type name="X">
+ <method name="Void Main()" attrs="145">
+ <size>47</size>
+ </method>
+ <method name="Int32& Wrap(Int32)" attrs="129">
+ <size>15</size>
+ </method>
+ <method name="Int32& get_Prop()" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Int32& get_Item(System.String)" attrs="2177">
+ <size>15</size>
+ </method>
+ <method name="Void Foo(Int32 ByRef)" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-04.cs">
+ <type name="X">
+ <method name="Int32 Main()" attrs="150">
+ <size>93</size>
+ </method>
+ <method name="Boolean Test1()" attrs="129">
+ <size>30</size>
+ </method>
+ <method name="Void Test2()" attrs="129">
+ <size>22</size>
+ </method>
+ <method name="Int32& Test3()" attrs="129">
+ <size>19</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-05.cs">
+ <type name="X">
+ <method name="Int32 Main()" attrs="150">
+ <size>108</size>
+ </method>
+ <method name="Int32& Test()" attrs="145">
+ <size>14</size>
+ </method>
+ <method name="Void Test[T](T ByRef, Int32 ByRef)" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void Test2[T](T ByRef)" attrs="145">
+ <size>13</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="G`1[U]">
+ <method name="T& Test[T](T ByRef)" attrs="150">
+ <size>10</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="test-ref-06.cs">
+ <type name="X">
+ <method name="Int32 Main()" attrs="150">
+ <size>71</size>
+ </method>
+ <method name="Int32& get_Item(Int32)" attrs="2177">
+ <size>14</size>
+ </method>
+ <method name="Int32& get_Prop()" attrs="2177">
+ <size>14</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
<test name="test-static-using-01.cs">
<type name="A.B.X">
<method name="Int32 Test()" attrs="150">
--- /dev/null
+Linker analyzer is a command line tool to analyze dependencies, which
+were recorded during linker processing, and led linker to mark an item
+to keep it in the resulting linked assembly.
+
+It works on an oriented graph of dependencies, which are collected and
+dumped during the linker run. The vertices of this graph are the items
+of interest like assemblies, types, methods, fields, linker steps,
+etc. The edges represent the dependencies.
+
+How to dump dependencies
+------------------------
+
+The linker analyzer needs a linker dependencies file as an input. It
+can be retrieved by enabling dependencies dumping during linking of a
+Xamarin.Android or a Xamarin.iOS project.
+
+That can be done on the command line by setting
+`LinkerDumpDependencies` property to `true` and building the
+project. (make sure the LinkAssemblies task is called, it might
+require cleaning the project sometimes) Usually it is enough to build
+the project like this:
+
+```msbuild /p:LinkerDumpDependencies=true /p:Configuration=Release YourAppProject.csproj```
+
+After a successful build, there will be a linker-dependencies.xml.gz
+file created, containing the information for the analyzer.
+
+How to use the analyzer
+-----------------------
+
+Let say you would like to know, why a type, Android.App.Activity for
+example, was marked by the linker. So run the analyzer like this:
+
+```mono linkeranalyzer.exe -t Android.App.Activity linker-dependencies.xml.gz```
+
+Output:
+
+```
+Loading dependency tree from: linker-dependencies.xml.gz
+
+--- Type dependencies: 'Android.App.Activity' -----------------------
+
+--- TypeDef:Android.App.Activity dependencies -----------------------
+Dependency #1
+ TypeDef:Android.App.Activity
+ | TypeDef:XA.App.MainActivity [2 deps]
+ | Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
+ | Other:Mono.Linker.Steps.ResolveFromAssemblyStep
+```
+
+The output contains dependencies string(s), starting with the type and
+continuing with the item of interest, which depends on the type. The
+dependency could be result of multiple reasons. For example the type
+was referenced from a method, or the type was listed in the linker xml
+file to be protected.
+
+In our example there is only one dependency string called `Dependency
+#1`. It shows us that the type `Android.App.Activity` was marked
+during processing of type `XA.App.MainActivity` by the linker. In this
+case because the `MainActivity` type is based on the `Activity` type
+and thus the linker marked it and kept it in the linked assembly. We
+can also see that there are 2 dependencies for the `MainActivity`
+class. Note that in the string (above) we see only 1st dependency of
+the 2, the dependency on the assembly `XA.App`. And finally the
+assembly vertex depends on the `ResolveFromAssemblyStep` vertex. So we
+see that the assembly was processed in the `ResolveFromAssembly`
+linker step.
+
+Now we might want to see the `MainActivity` dependencies. That could
+be done by the following analyzer run:
+
+```mono linkeranalyzer.exe -r TypeDef:XA.App.MainActivity linker-dependencies.xml.gz```
+
+Output:
+
+```
+Loading dependency tree from: linker-dependencies.xml.gz
+
+--- Raw dependencies: 'TypeDef:XA.App.MainActivity' -----------------
+
+--- TypeDef:XA.App.MainActivity dependencies ------------------------
+Dependency #1
+ TypeDef:XA.App.MainActivity
+ | Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
+ | Other:Mono.Linker.Steps.ResolveFromAssemblyStep
+Dependency #2
+ TypeDef:XA.App.MainActivity
+ | TypeDef:XA.App.MainActivity/<>c__DisplayClass1_0 [2 deps]
+ | TypeDef:XA.App.MainActivity [2 deps]
+ | Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
+ | Other:Mono.Linker.Steps.ResolveFromAssemblyStep
+```
+
+Known issues
+------------
+
+Sometimes the linker processing is not straight forward and the
+marking is postponed, like processing of some of the methods. They are
+queued to be processed later. In such case the dependencies are
+"interrupted" and the dependecy string for the method usually shows
+just dependency on the Mark step.
+
+Command line help
+-----------------
+```
+Usage:
+
+ linkeranalyzer [Options] <linker-dependency-file.xml.gz>
+
+Options:
+
+ -a, --alldeps show all dependencies
+ -h, --help show this message and exit.
+ -r, --rawdeps=VALUE show raw vertex dependencies. Raw vertex VALUE is
+ in the raw format written by linker to the
+ dependency XML file. VALUE can be regular
+ expression
+ --roots show root dependencies.
+ --stat show statistic of loaded dependencies.
+ --tree reduce the dependency graph to the tree.
+ --types show all types dependencies.
+ -t, --typedeps=VALUE show type dependencies. The VALUE can be regular
+ expression
+ -v, --verbose be more verbose. Enables stat and roots options.
+```
else
{
string zlib = (compress ? "-lz" : "");
+ string objc = (style == "osx" ? "-framework CoreFoundation -lobjc" : "");
string debugging = "-g";
string cc = GetEnv("CC", "cc");
string cmd = null;
smonolib = "`pkg-config --variable=libdir mono-2`/libmono-2.0.a ";
else
smonolib = "-Wl,-Bstatic -lmono-2.0 -Wl,-Bdynamic ";
- cmd = String.Format("{4} -o '{2}' -Wall `pkg-config --cflags mono-2` {0} {3} " +
+ cmd = String.Format("{4} -o '{2}' -Wall {5} `pkg-config --cflags mono-2` {0} {3} " +
"`pkg-config --libs-only-L mono-2` " + smonolib +
"`pkg-config --libs-only-l mono-2 | sed -e \"s/\\-lmono-2.0 //\"` {1}",
- temp_c, temp_o, output, zlib, cc);
+ temp_c, temp_o, output, zlib, cc, objc);
}
else
{
- cmd = String.Format("{4} " + debugging + " -o '{2}' -Wall {0} `pkg-config --cflags --libs mono-2` {3} {1}",
- temp_c, temp_o, output, zlib, cc);
+ cmd = String.Format("{4} " + debugging + " -o '{2}' -Wall {5} {0} `pkg-config --cflags --libs mono-2` {3} {1}",
+ temp_c, temp_o, output, zlib, cc, objc);
}
Execute (cmd);
}
if (parameters != null) {
var list = new List<string> ();
foreach (var p in parameters.Elements ("parameter")) {
- var pTypeName = p.GetTypeName ("type");
- list.Add (State.IgnoreParameterNameChanges
- ? pTypeName
- : pTypeName + " " + p.GetAttribute ("name"));
+ var param = p.GetTypeName ("type");
+ if (!State.IgnoreParameterNameChanges)
+ param += " " + p.GetAttribute ("name");
+
+ var direction = p.GetAttribute ("direction");
+ if (direction?.Length > 0)
+ param = direction + " " + param;
+
+ list.Add (param);
}
sb.Append (String.Join (", ", list));
}
--- /dev/null
+\r
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 2012\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mono-api-html", "mono-api-html.csproj", "{D25986E2-7A41-4966-A26D-5614BAC7B8A7}"\r
+EndProject\r
+Global\r
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+ Debug|Any CPU = Debug|Any CPU\r
+ Release|Any CPU = Release|Any CPU\r
+ EndGlobalSection\r
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+ {D25986E2-7A41-4966-A26D-5614BAC7B8A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {D25986E2-7A41-4966-A26D-5614BAC7B8A7}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+ {D25986E2-7A41-4966-A26D-5614BAC7B8A7}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {D25986E2-7A41-4966-A26D-5614BAC7B8A7}.Release|Any CPU.Build.0 = Release|Any CPU\r
+ EndGlobalSection\r
+EndGlobal\r
#define ppc_andid(c,S,A,ui) ppc_emit32(c, (28 << 26) | ((S) << 21 ) | ((A) << 16) | ((guint16)(ui)))
#define ppc_andisd(c,S,A,ui) ppc_emit32(c, (29 << 26) | ((S) << 21 ) | ((A) << 16) | ((guint16)(ui)))
-#define ppc_bcx(c,BO,BI,BD,AA,LK) ppc_emit32(c, (16 << 26) | (BO << 21 )| (BI << 16) | (BD << 2) | ((AA) << 1) | LK)
+#define ppc_bcx(c,BO,BI,BD,AA,LK) ppc_emit32(c, (16 << 26) | ((BO) << 21 )| ((BI) << 16) | (BD << 2) | ((AA) << 1) | LK)
#define ppc_bc(c,BO,BI,BD) ppc_bcx(c,BO,BI,BD,0,0)
#define ppc_bca(c,BO,BI,BD) ppc_bcx(c,BO,BI,BD,1,0)
#define ppc_bcl(c,BO,BI,BD) ppc_bcx(c,BO,BI,BD,0,1)
EXTRA_DIST = $(MONO_BTLS_SOURCES_FILES)
CMAKE_VERBOSE=$(if $(V),VERBOSE=1,)
+NINJA_VERBOSE=$(if ($V),-v,)
if NINJA
NINJA_ARGS = -G Ninja
if NINJA
build-shared/libmono-btls-shared$(libsuffix): build-shared/$(BUILDFILE) $(MONO_BTLS_SOURCES_FILES)
- ninja -C build-shared $(CMAKE_VERBOSE)
+ ninja -C build-shared $(NINJA_VERBOSE)
else
build-shared/libmono-btls-shared$(libsuffix): build-shared/$(BUILDFILE) $(MONO_BTLS_SOURCES_FILES)
$(MAKE) -C build-shared $(CMAKE_VERBOSE)
sre-save.c \
custom-attrs.c \
fdhandle.h \
- fdhandle.c
+ fdhandle.c \
+ callspec.h \
+ callspec.c
# These source files have compile time dependencies on GC code
gc_dependent_sources = \
--- /dev/null
+/**
+ * \file
+ * Call specification facilities for the Mono Runtime.
+ *
+ * Author:
+ * Paolo Molaro (lupus@ximian.com)
+ * Dietmar Maurer (dietmar@ximian.com)
+ *
+ * (C) 2002 Ximian, Inc.
+ * Copyright 2011 Xamarin, Inc (http://www.xamarin.com)
+ * Licensed under the MIT license. See LICENSE file in the project root for full
+ * license information.
+ */
+#include "metadata.h"
+#include "callspec.h"
+#include "assembly.h"
+#include "class-internals.h"
+#include "debug-helpers.h"
+
+static MonoAssembly *prog_assembly;
+
+gboolean
+mono_callspec_eval_exception (MonoClass *klass, MonoCallSpec *spec)
+{
+ int include = 0;
+ int i;
+
+ if (!klass)
+ return FALSE;
+
+ for (i = 0; i < spec->len; i++) {
+ MonoTraceOperation *op = &spec->ops [i];
+ int inc = 0;
+
+ switch (op->op) {
+ case MONO_TRACEOP_EXCEPTION:
+ if (strcmp ("", op->data) == 0 &&
+ strcmp ("all", op->data2) == 0)
+ inc = 1;
+ else if (strcmp ("", op->data) == 0 ||
+ strcmp (klass->name_space, op->data) == 0)
+ if (strcmp (klass->name, op->data2) == 0)
+ inc = 1;
+ break;
+ default:
+ break;
+ }
+ if (op->exclude) {
+ if (inc)
+ include = 0;
+ } else if (inc)
+ include = 1;
+ }
+
+ return include;
+}
+
+gboolean mono_callspec_eval (MonoMethod *method, const MonoCallSpec *spec)
+{
+ int include = 0;
+ int i;
+
+ for (i = 0; i < spec->len; i++) {
+ MonoTraceOperation *op = &spec->ops[i];
+ int inc = 0;
+
+ switch (op->op) {
+ case MONO_TRACEOP_ALL:
+ inc = 1;
+ break;
+ case MONO_TRACEOP_PROGRAM:
+ if (prog_assembly &&
+ (method->klass->image ==
+ mono_assembly_get_image (prog_assembly)))
+ inc = 1;
+ break;
+ case MONO_TRACEOP_WRAPPER:
+ if ((method->wrapper_type ==
+ MONO_WRAPPER_NATIVE_TO_MANAGED) ||
+ (method->wrapper_type ==
+ MONO_WRAPPER_MANAGED_TO_NATIVE))
+ inc = 1;
+ break;
+ case MONO_TRACEOP_METHOD:
+ if (mono_method_desc_full_match (
+ (MonoMethodDesc *)op->data, method))
+ inc = 1;
+ break;
+ case MONO_TRACEOP_CLASS:
+ if (strcmp (method->klass->name_space, op->data) == 0)
+ if (strcmp (method->klass->name, op->data2) ==
+ 0)
+ inc = 1;
+ break;
+ case MONO_TRACEOP_ASSEMBLY:
+ if (strcmp (mono_image_get_name (method->klass->image),
+ op->data) == 0)
+ inc = 1;
+ break;
+ case MONO_TRACEOP_NAMESPACE:
+ if (strcmp (method->klass->name_space, op->data) == 0)
+ inc = 1;
+ break;
+ case MONO_TRACEOP_EXCEPTION:
+ break;
+ }
+ if (op->exclude) {
+ if (inc)
+ include = 0;
+ } else if (inc) {
+ include = 1;
+ }
+ }
+ return include;
+}
+
+static int is_filenamechar (char p)
+{
+ if (p >= 'A' && p <= 'Z')
+ return TRUE;
+ if (p >= 'a' && p <= 'z')
+ return TRUE;
+ if (p >= '0' && p <= '9')
+ return TRUE;
+ if (p == '.' || p == ':' || p == '_' || p == '-' || p == '`')
+ return TRUE;
+ return FALSE;
+}
+
+static char *get_string (char **in)
+{
+ char *start = *in;
+ char *p = *in;
+ while (is_filenamechar (*p)) {
+ p++;
+ }
+ size_t len = p - start;
+ char *ret = (char *)g_malloc (len + 1);
+ memcpy (ret, start, len);
+ ret [len] = 0;
+ *in = p;
+ return ret;
+}
+
+enum Token {
+ TOKEN_METHOD,
+ TOKEN_CLASS,
+ TOKEN_ALL,
+ TOKEN_PROGRAM,
+ TOKEN_EXCEPTION,
+ TOKEN_NAMESPACE,
+ TOKEN_WRAPPER,
+ TOKEN_STRING,
+ TOKEN_EXCLUDE,
+ TOKEN_DISABLED,
+ TOKEN_SEPARATOR,
+ TOKEN_END,
+ TOKEN_ERROR
+};
+
+static int get_token (char **in, char **extra, char **errstr)
+{
+ char *p = *in;
+ while (p[0] == '+')
+ p++;
+
+ *extra = NULL;
+
+ if (p[0] == '\0') {
+ *in = p;
+ return TOKEN_END;
+ }
+ if (p[0] == 'M' && p[1] == ':') {
+ p += 2;
+ *extra = get_string (&p);
+ *in = p;
+ return TOKEN_METHOD;
+ }
+ if (p[0] == 'N' && p[1] == ':') {
+ p += 2;
+ *extra = get_string (&p);
+ *in = p;
+ return TOKEN_NAMESPACE;
+ }
+ if (p[0] == 'T' && p[1] == ':') {
+ p += 2;
+ *extra = get_string (&p);
+ *in = p;
+ return TOKEN_CLASS;
+ }
+ if (p[0] == 'E' && p[1] == ':') {
+ p += 2;
+ *extra = get_string (&p);
+ *in = p;
+ return TOKEN_EXCEPTION;
+ }
+ if (*p == '-') {
+ p++;
+ *in = p;
+ return TOKEN_EXCLUDE;
+ }
+ if (is_filenamechar (*p)) {
+ *extra = get_string (&p);
+ *in = p;
+ if (strcmp (*extra, "all") == 0)
+ return TOKEN_ALL;
+ if (strcmp (*extra, "program") == 0)
+ return TOKEN_PROGRAM;
+ if (strcmp (*extra, "wrapper") == 0)
+ return TOKEN_WRAPPER;
+ if (strcmp (*extra, "disabled") == 0)
+ return TOKEN_DISABLED;
+ return TOKEN_STRING;
+ }
+ if (*p == ',') {
+ p++;
+ *in = p;
+ return TOKEN_SEPARATOR;
+ }
+
+ *errstr = g_strdup_printf ("Syntax error at or around '%s'", p);
+ return TOKEN_ERROR;
+}
+
+static int get_spec (char **in, MonoCallSpec *spec, char **errstr)
+{
+ int n = spec->len;
+ char *extra = NULL;
+
+ int token = get_token (in, &extra, errstr);
+ gboolean exclude = FALSE;
+ if (token == TOKEN_EXCLUDE) {
+ exclude = TRUE;
+ token = get_token (in, &extra, errstr);
+ if (token == TOKEN_EXCLUDE || token == TOKEN_DISABLED) {
+ *errstr = g_strdup_printf ("Expecting an expression");
+ token = TOKEN_ERROR;
+ goto out;
+ }
+ }
+ if (token == TOKEN_END || token == TOKEN_SEPARATOR ||
+ token == TOKEN_ERROR)
+ goto out;
+
+ if (token == TOKEN_DISABLED) {
+ spec->enabled = FALSE;
+ goto out;
+ }
+
+ if (token == TOKEN_METHOD) {
+ MonoMethodDesc *desc = mono_method_desc_new (extra, TRUE);
+ if (desc == NULL) {
+ *errstr =
+ g_strdup_printf ("Invalid method name: %s", extra);
+ token = TOKEN_ERROR;
+ goto out;
+ }
+ spec->ops[n].op = MONO_TRACEOP_METHOD;
+ spec->ops[n].data = desc;
+ } else if (token == TOKEN_ALL)
+ spec->ops[n].op = MONO_TRACEOP_ALL;
+ else if (token == TOKEN_PROGRAM)
+ spec->ops[n].op = MONO_TRACEOP_PROGRAM;
+ else if (token == TOKEN_WRAPPER)
+ spec->ops[n].op = MONO_TRACEOP_WRAPPER;
+ else if (token == TOKEN_NAMESPACE) {
+ spec->ops[n].op = MONO_TRACEOP_NAMESPACE;
+ spec->ops[n].data = g_strdup (extra);
+ } else if (token == TOKEN_CLASS || token == TOKEN_EXCEPTION) {
+ char *p = strrchr (extra, '.');
+ if (p) {
+ *p++ = 0;
+ spec->ops[n].data = g_strdup (extra);
+ spec->ops[n].data2 = g_strdup (p);
+ } else {
+ spec->ops[n].data = g_strdup ("");
+ spec->ops[n].data2 = g_strdup (extra);
+ }
+ spec->ops[n].op = token == TOKEN_CLASS ? MONO_TRACEOP_CLASS
+ : MONO_TRACEOP_EXCEPTION;
+ } else if (token == TOKEN_STRING) {
+ spec->ops[n].op = MONO_TRACEOP_ASSEMBLY;
+ spec->ops[n].data = g_strdup (extra);
+ } else {
+ *errstr =
+ g_strdup_printf ("Syntax error in method specification");
+ token = TOKEN_ERROR;
+ goto out;
+ }
+
+ if (exclude)
+ spec->ops[n].exclude = 1;
+
+ spec->len = n + 1;
+ token = TOKEN_SEPARATOR;
+out:
+ if (extra != NULL) {
+ g_free (extra);
+ }
+ return token;
+}
+
+gboolean
+mono_callspec_parse (const char *options, MonoCallSpec *spec, char **errstr)
+{
+ char *p = (char *)options;
+ int size = 1;
+ int token;
+
+ memset (spec, 0, sizeof (*spec));
+ *errstr = NULL;
+
+ spec->enabled = TRUE;
+ if (*p == 0) {
+ spec->len = 1;
+ spec->ops = g_new0 (MonoTraceOperation, 1);
+ spec->ops[0].op = MONO_TRACEOP_ALL;
+ return TRUE;
+ }
+
+ for (p = (char *)options; *p != 0; p++)
+ if (*p == ',')
+ size++;
+
+ spec->ops = g_new0 (MonoTraceOperation, size);
+
+ p = (char *)options;
+
+ while ((token = (get_spec (&p, spec, errstr))) != TOKEN_END) {
+ if (token == TOKEN_ERROR)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void mono_callspec_cleanup (MonoCallSpec *spec)
+{
+ if (spec->ops != NULL) {
+ g_free (spec->ops);
+ }
+ memset (spec, 0, sizeof (*spec));
+}
+
+void
+mono_callspec_set_assembly (MonoAssembly *assembly)
+{
+ prog_assembly = assembly;
+}
--- /dev/null
+/**
+ * \file
+ */
+
+#ifndef __MONO_CALLSPEC_H__
+#define __MONO_CALLSPEC_H__
+#include <glib.h>
+#include <mono/utils/mono-compiler.h>
+
+typedef enum {
+ MONO_TRACEOP_ALL,
+ MONO_TRACEOP_PROGRAM,
+ MONO_TRACEOP_METHOD,
+ MONO_TRACEOP_ASSEMBLY,
+ MONO_TRACEOP_CLASS,
+ MONO_TRACEOP_NAMESPACE,
+ MONO_TRACEOP_EXCEPTION,
+ MONO_TRACEOP_WRAPPER,
+} MonoTraceOpcode;
+
+typedef struct {
+ MonoTraceOpcode op;
+ int exclude;
+ void *data, *data2;
+} MonoTraceOperation;
+
+typedef struct {
+ int len;
+ gboolean enabled;
+ MonoTraceOperation *ops;
+} MonoCallSpec;
+
+G_BEGIN_DECLS
+
+MONO_PROFILER_API gboolean mono_callspec_parse (const char *options,
+ MonoCallSpec *spec,
+ char **errstr);
+MONO_PROFILER_API void mono_callspec_cleanup (MonoCallSpec *spec);
+MONO_PROFILER_API gboolean mono_callspec_eval_exception (MonoClass *klass,
+ MonoCallSpec *spec);
+MONO_PROFILER_API gboolean mono_callspec_eval (MonoMethod *method,
+ const MonoCallSpec *spec);
+void mono_callspec_set_assembly (MonoAssembly *assembly);
+
+G_END_DECLS
+
+#endif /* __MONO_CALLSPEC_H__ */
typedef struct _MonoMethodWrapper MonoMethodWrapper;
typedef struct _MonoMethodInflated MonoMethodInflated;
typedef struct _MonoMethodPInvoke MonoMethodPInvoke;
+typedef struct _MonoDynamicMethod MonoDynamicMethod;
/* Properties that applies to a group of structs should better use a higher number
* to avoid colision with type specific properties.
void *method_data;
};
+struct _MonoDynamicMethod {
+ MonoMethodWrapper method;
+ MonoAssembly *assembly;
+};
+
struct _MonoMethodPInvoke {
MonoMethod method;
gpointer addr;
/* add marshal info */
guint16 piflags; /* pinvoke flags */
- guint16 implmap_idx; /* index into IMPLMAP */
+ guint32 implmap_idx; /* index into IMPLMAP */
};
/*
#endif
+GENERATE_GET_CLASS_WITH_CACHE_DECL (appdomain_unloaded_exception)
+
extern MonoDefaults mono_defaults;
void
* Sets the following fields in \p klass:
* - all the fields initialized by mono_class_init_sizes ()
* - element_class/cast_class (for enums)
+ * - sizes:element_size (for arrays)
* - field->type/offset for all fields
* - fields_inited
*
MonoClassField *field;
gboolean blittable;
int instance_size = base_instance_size;
+ int element_size = -1;
int class_size, min_align;
int *field_offsets;
gboolean *fields_has_references;
else if (klass->byval_arg.type == MONO_TYPE_PTR)
instance_size = sizeof (MonoObject) + sizeof (gpointer);
+ if (klass->byval_arg.type == MONO_TYPE_SZARRAY || klass->byval_arg.type == MONO_TYPE_ARRAY)
+ element_size = mono_class_array_element_size (klass->element_class);
+
/* Publish the data */
mono_loader_lock ();
if (klass->instance_size && !klass->image->dynamic) {
klass->fields [i].offset = field_offsets [i];
}
+ if (klass->byval_arg.type == MONO_TYPE_SZARRAY || klass->byval_arg.type == MONO_TYPE_ARRAY)
+ klass->sizes.element_size = element_size;
+
mono_memory_barrier ();
klass->size_inited = 1;
mono_loader_unlock ();
*ifaces = g_hash_table_new (NULL, NULL);
if (g_hash_table_lookup (*ifaces, ic))
continue;
+ /* A gparam is not an implemented interface for the purposes of
+ * mono_class_get_implemented_interfaces */
+ if (mono_class_is_gparam (ic))
+ continue;
g_ptr_array_add (*res, ic);
g_hash_table_insert (*ifaces, ic, ic);
mono_class_init (ic);
for (i = 0; i < k->interface_count; i++) {
ic = k->interfaces [i];
- mono_class_init (ic);
+ /* A gparam does not have any interface_id set. */
+ if (! mono_class_is_gparam (ic))
+ mono_class_init (ic);
if (max_iid < ic->interface_id)
max_iid = ic->interface_id;
GSList *init_list = (GSList *)mono_native_tls_get_value (init_pending_tls_id);
if (g_slist_find (init_list, klass)) {
mono_class_set_type_load_failure (klass, "Recursive type definition detected");
- goto leave;
+ goto leave_no_init_pending;
}
init_list = g_slist_prepend (init_list, klass);
mono_native_tls_set_value (init_pending_tls_id, init_list);
ghcimpl = cached_info.ghcimpl;
has_cctor = cached_info.has_cctor;
} else if (klass->rank == 1 && klass->byval_arg.type == MONO_TYPE_SZARRAY) {
- /* SZARRAY can have 2 vtable layouts, with and without the stelemref method.
+ /* SZARRAY can have 3 vtable layouts, with and without the stelemref method and enum element type
* The first slot if for array with.
*/
- static int szarray_vtable_size[2] = { 0 };
+ static int szarray_vtable_size[3] = { 0 };
- int slot = MONO_TYPE_IS_REFERENCE (&klass->element_class->byval_arg) ? 0 : 1;
+ int slot;
+
+ if (MONO_TYPE_IS_REFERENCE (&klass->element_class->byval_arg))
+ slot = 0;
+ else if (klass->element_class->enumtype)
+ slot = 1;
+ else
+ slot = 2;
/* SZARRAY case */
if (!szarray_vtable_size [slot]) {
goto leave;
- leave:
+leave:
+ init_list = mono_native_tls_get_value (init_pending_tls_id);
init_list = g_slist_remove (init_list, klass);
mono_native_tls_set_value (init_pending_tls_id, init_list);
+leave_no_init_pending:
if (locked)
mono_loader_unlock ();
/* element_size -1 is ok as this is not an instantitable type*/
klass->sizes.element_size = -1;
} else
- klass->sizes.element_size = mono_class_array_element_size (eclass);
+ klass->sizes.element_size = -1;
mono_class_setup_supertypes (klass);
return mono_gparam_is_assignable_from (klass, oklass);
}
- if (MONO_CLASS_IS_INTERFACE (klass)) {
- if ((oklass->byval_arg.type == MONO_TYPE_VAR) || (oklass->byval_arg.type == MONO_TYPE_MVAR)) {
- MonoGenericParam *gparam = oklass->byval_arg.data.generic_param;
- MonoClass **constraints = mono_generic_container_get_param_info (gparam->owner, gparam->num)->constraints;
- int i;
+ /* This can happen if oklass is a tyvar that has a constraint which is another tyvar which in turn
+ * has a constraint which is a class type:
+ *
+ * class Foo { }
+ * class G<T1, T2> where T1 : T2 where T2 : Foo { }
+ *
+ * In this case, Foo is assignable from T1.
+ */
+ if ((oklass->byval_arg.type == MONO_TYPE_VAR) || (oklass->byval_arg.type == MONO_TYPE_MVAR)) {
+ MonoGenericParam *gparam = oklass->byval_arg.data.generic_param;
+ MonoClass **constraints = mono_generic_container_get_param_info (gparam->owner, gparam->num)->constraints;
+ int i;
- if (constraints) {
- for (i = 0; constraints [i]; ++i) {
- if (mono_class_is_assignable_from (klass, constraints [i]))
- return TRUE;
- }
+ if (constraints) {
+ for (i = 0; constraints [i]; ++i) {
+ if (mono_class_is_assignable_from (klass, constraints [i]))
+ return TRUE;
}
-
- return FALSE;
}
+ return mono_class_has_parent (oklass, klass);
+ }
+
+ if (MONO_CLASS_IS_INTERFACE (klass)) {
+
/* interface_offsets might not be set for dynamic classes */
if (mono_class_get_ref_info_handle (oklass) && !oklass->interface_bitmap) {
/*
* \param ac pointer to a \c MonoArrayClass
*
* \returns The size of single array element.
+ *
+ * LOCKING: Acquires the loader lock.
*/
gint32
mono_array_element_size (MonoClass *ac)
{
g_assert (ac->rank);
+ if (G_UNLIKELY (!ac->size_inited)) {
+ mono_class_setup_fields (ac);
+ }
return ac->sizes.element_size;
}
if (klass->rank == 1 && klass->byval_arg.type != MONO_TYPE_ARRAY) {
MonoType *args [1];
- /* generic IList, ICollection, IEnumerable */
- interface_count = 2;
+ /* IList and IReadOnlyList -> 2x if enum*/
+ interface_count = klass->element_class->enumtype ? 4 : 2;
interfaces = (MonoClass **)mono_image_alloc0 (klass->image, sizeof (MonoClass*) * interface_count);
args [0] = &klass->element_class->byval_arg;
mono_defaults.generic_ilist_class, 1, args, FALSE);
interfaces [1] = mono_class_bind_generic_parameters (
mono_defaults.generic_ireadonlylist_class, 1, args, FALSE);
+ if (klass->element_class->enumtype) {
+ args [0] = mono_class_enum_basetype (klass->element_class);
+ interfaces [2] = mono_class_bind_generic_parameters (
+ mono_defaults.generic_ilist_class, 1, args, FALSE);
+ interfaces [3] = mono_class_bind_generic_parameters (
+ mono_defaults.generic_ireadonlylist_class, 1, args, FALSE);
+ }
} else if (mono_class_is_ginst (klass)) {
MonoClass *gklass = mono_class_get_generic_class (klass)->container_class;
MONO_API MonoClass *
mono_class_from_typeref_checked (MonoImage *image, uint32_t type_token, MonoError *error);
+MONO_RT_EXTERNAL_ONLY
MONO_API MonoClass *
mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, mono_bool is_mvar);
#define STATUS_SUCCESS 0x00000000L
#define STATUS_INVALID_IMAGE_FORMAT 0xC000007BL
-STDAPI MonoFixupCorEE(HMODULE ModuleHandle);
+MONO_API STDAPI MonoFixupCorEE(HMODULE ModuleHandle);
/* Defined by the linker. */
#ifndef _MSC_VER
image->method_aux_hash = g_hash_table_new (NULL, NULL);
image->vararg_aux_hash = g_hash_table_new (NULL, NULL);
image->handleref = g_hash_table_new (NULL, NULL);
- image->handleref_managed = mono_g_hash_table_new_type ((GHashFunc)mono_object_hash, NULL, MONO_HASH_KEY_GC, MONO_ROOT_SOURCE_REFLECTION, "dynamic module reference-to-token table");
image->tokens = mono_g_hash_table_new_type (NULL, NULL, MONO_HASH_VALUE_GC, MONO_ROOT_SOURCE_REFLECTION, "dynamic module tokens table");
image->generic_def_objects = mono_g_hash_table_new_type (NULL, NULL, MONO_HASH_VALUE_GC, MONO_ROOT_SOURCE_REFLECTION, "dynamic module generic definitions table");
image->typespec = g_hash_table_new ((GHashFunc)mono_metadata_type_hash, (GCompareFunc)mono_metadata_type_equal);
mono_dynamic_image_release_gc_roots (MonoDynamicImage *image)
{
release_hashtable (&image->token_fixups);
- release_hashtable (&image->handleref_managed);
release_hashtable (&image->tokens);
release_hashtable (&image->remapped_tokens);
release_hashtable (&image->generic_def_objects);
g_hash_table_destroy (di->typeref);
if (di->handleref)
g_hash_table_destroy (di->handleref);
- if (di->handleref_managed)
- mono_g_hash_table_destroy (di->handleref_managed);
if (di->tokens)
mono_g_hash_table_destroy (di->tokens);
if (di->remapped_tokens)
#include <mono/utils/mono-coop-semaphore.h>
#include <mono/utils/hazard-pointer.h>
#include <mono/utils/w32api.h>
+#include <mono/utils/unlocked.h>
+#include <mono/utils/mono-os-wait.h>
#ifndef HOST_WIN32
#include <pthread.h>
mono_gc_finalize_notify ();
/* g_print ("Waiting for pending finalizers....\n"); */
MONO_ENTER_GC_SAFE;
- WaitForSingleObjectEx (pending_done_event, INFINITE, TRUE);
+ mono_win32_wait_for_single_object_ex (pending_done_event, INFINITE, TRUE);
MONO_EXIT_GC_SAFE;
/* g_print ("Done pending....\n"); */
#else
DomainFinalizationReq *req = NULL;
MonoDomain *domain;
- if (domains_to_finalize) {
+ if (UnlockedReadPointer ((gpointer)&domains_to_finalize)) {
mono_finalizer_lock ();
if (domains_to_finalize) {
req = (DomainFinalizationReq *)domains_to_finalize->data;
ret = guarded_wait (gc_thread->handle, MONO_INFINITE_WAIT, FALSE);
g_assert (ret == MONO_THREAD_INFO_WAIT_RET_SUCCESS_0);
- mono_threads_add_joinable_thread (GUINT_TO_POINTER (gc_thread->tid));
+ mono_threads_add_joinable_thread ((gpointer)(MONO_UINT_TO_NATIVE_THREAD_ID (gc_thread->tid)));
break;
}
mono_gc_suspend_finalizers ();
/* Try to abort the thread, in the hope that it is running managed code */
- mono_thread_internal_abort (gc_thread);
+ mono_thread_internal_abort (gc_thread, FALSE);
/* Wait for it to stop */
ret = guarded_wait (gc_thread->handle, 100, FALSE);
g_assert (ret == MONO_THREAD_INFO_WAIT_RET_SUCCESS_0);
- mono_threads_add_joinable_thread (GUINT_TO_POINTER (gc_thread->tid));
+ mono_threads_add_joinable_thread ((gpointer)(MONO_UINT_TO_NATIVE_THREAD_ID (gc_thread->tid)));
break;
}
#endif /* !PLATFORM_RO_FS */
ICALL(MONOIO_38, "DumpHandles", ves_icall_System_IO_MonoIO_DumpHandles)
ICALL(MONOIO_34, "DuplicateHandle", ves_icall_System_IO_MonoIO_DuplicateHandle)
-ICALL(MONOIO_37, "FindClose", ves_icall_System_IO_MonoIO_FindClose)
ICALL(MONOIO_37a, "FindCloseFile", ves_icall_System_IO_MonoIO_FindCloseFile)
-ICALL(MONOIO_35, "FindFirst", ves_icall_System_IO_MonoIO_FindFirst)
ICALL(MONOIO_35a, "FindFirstFile", ves_icall_System_IO_MonoIO_FindFirstFile)
-ICALL(MONOIO_36, "FindNext", ves_icall_System_IO_MonoIO_FindNext)
ICALL(MONOIO_36a, "FindNextFile", ves_icall_System_IO_MonoIO_FindNextFile)
ICALL(MONOIO_6, "Flush(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Flush)
ICALL(MONOIO_7, "GetCurrentDirectory(System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetCurrentDirectory)
ICALL(MONOIO_8, "GetFileAttributes(string,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileAttributes)
ICALL(MONOIO_9, "GetFileStat(string,System.IO.MonoIOStat&,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileStat)
-ICALL(MONOIO_10, "GetFileSystemEntries", ves_icall_System_IO_MonoIO_GetFileSystemEntries)
ICALL(MONOIO_11, "GetFileType(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileType)
ICALL(MONOIO_12, "GetLength(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetLength)
#ifndef PLATFORM_RO_FS
ICALL_TYPE(CATTR_DATA, "System.Reflection.CustomAttributeData", CATTR_DATA_1)
ICALL(CATTR_DATA_1, "ResolveArgumentsInternal", ves_icall_System_Reflection_CustomAttributeData_ResolveArgumentsInternal)
-ICALL_TYPE(ASSEMB, "System.Reflection.Emit.AssemblyBuilder", ASSEMB_2)
+ICALL_TYPE(ASSEMB, "System.Reflection.Emit.AssemblyBuilder", ASSEMB_1)
+HANDLES(ICALL(ASSEMB_1, "UpdateNativeCustomAttributes", ves_icall_AssemblyBuilder_UpdateNativeCustomAttributes))
ICALL(ASSEMB_2, "basic_init", ves_icall_AssemblyBuilder_basic_init)
#ifndef DISABLE_REFLECTION_EMIT
static void dllmap_cleanup (void);
static void cached_module_cleanup(void);
+/* Class lazy loading functions */
+GENERATE_GET_CLASS_WITH_CACHE (appdomain_unloaded_exception, "System", "AppDomainUnloadedException")
+
static void
global_loader_data_lock (void)
{
mono_class_init (k);
if (retklass)
*retklass = k;
- field = mono_class_get_field (k, token);
- if (!field) {
- mono_error_set_bad_image (error, image, "Could not resolve field token 0x%08x", token);
+ if (mono_class_has_failure (k)) {
+ MonoError causedby_error;
+ error_init (&causedby_error);
+ mono_error_set_for_class_failure (&causedby_error, k);
+ mono_error_set_bad_image (error, image, "Could not resolve field token 0x%08x, due to: %s", token, mono_error_get_message (&causedby_error));
+ mono_error_cleanup (&causedby_error);
+ } else {
+ field = mono_class_get_field (k, token);
+ if (!field) {
+ mono_error_set_bad_image (error, image, "Could not resolve field token 0x%08x", token);
+ }
}
}
GHashTable *typespec;
GHashTable *typeref;
GHashTable *handleref;
- MonoGHashTable *handleref_managed;
MonoGHashTable *tokens;
GHashTable *blob_cache;
GHashTable *standalonesig_cache;
static gboolean
parse_property_signature (VerifyContext *ctx, const char **_ptr, const char *end)
{
+ unsigned type = 0;
unsigned sig = 0;
unsigned param_count = 0, i;
const char *ptr = *_ptr;
if (!parse_custom_mods (ctx, &ptr, end))
return FALSE;
+ if (!safe_read8 (type, ptr, end))
+ FAIL (ctx, g_strdup ("PropertySig: Not enough room for the type"));
+
+ //check if it's a byref. safe_read8 did update ptr, so we rollback if it's not a byref
+ if (type != MONO_TYPE_BYREF)
+ --ptr;
+
if (!parse_type (ctx, &ptr, end))
FAIL (ctx, g_strdup ("PropertySig: Could not parse property type"));
#include <mono/utils/mono-time.h>
#include <mono/utils/atomic.h>
#include <mono/utils/w32api.h>
+#include <mono/utils/mono-os-wait.h>
/*
* Pull the list of opcodes
*/
MONO_ENTER_GC_SAFE;
#ifdef HOST_WIN32
- ret = mono_w32handle_convert_wait_ret (WaitForSingleObjectEx (event, ms, TRUE), 1);
+ ret = mono_w32handle_convert_wait_ret (mono_win32_wait_for_single_object_ex (event, ms, TRUE), 1);
#else
ret = mono_w32handle_wait_one (event, ms, TRUE);
#endif /* HOST_WIN32 */
*/
MONO_ENTER_GC_SAFE;
#ifdef HOST_WIN32
- ret = mono_w32handle_convert_wait_ret (WaitForSingleObjectEx (event, 0, FALSE), 1);
+ ret = mono_w32handle_convert_wait_ret (mono_win32_wait_for_single_object_ex (event, 0, FALSE), 1);
#else
ret = mono_w32handle_wait_one (event, 0, FALSE);
#endif /* HOST_WIN32 */
#include "metadata/gc-internals.h"
#include <mono/utils/checked-build.h>
#include <mono/utils/mono-threads-coop.h>
+#include <mono/utils/unlocked.h>
-int mono_g_hash_table_max_chain_length;
+gint32 mono_g_hash_table_max_chain_length;
#ifdef HAVE_BOEHM_GC
#define mg_new0(type,n) ((type *) GC_MALLOC(sizeof(type) * (n)))
}
}
- if (i > start && (i - start) > mono_g_hash_table_max_chain_length)
- mono_g_hash_table_max_chain_length = i - start;
- else if (i < start && (hash->table_size - (start - i)) > mono_g_hash_table_max_chain_length)
- mono_g_hash_table_max_chain_length = hash->table_size - (start - i);
+ gint32 max_length = UnlockedRead (&mono_g_hash_table_max_chain_length);
+ if (i > start && (i - start) > max_length)
+ UnlockedWrite (&mono_g_hash_table_max_chain_length, i - start);
+ else if (i < start && (hash->table_size - (start - i)) > max_length)
+ UnlockedWrite (&mono_g_hash_table_max_chain_length, hash->table_size - (start - i));
+
return i;
}
MONO_HASH_KEY_VALUE_GC = MONO_HASH_KEY_GC | MONO_HASH_VALUE_GC,
} MonoGHashGCType;
-extern int mono_g_hash_table_max_chain_length;
+extern gint32 mono_g_hash_table_max_chain_length;
typedef struct _MonoGHashTable MonoGHashTable;
typedef enum {
MONO_THREAD_FLAG_DONT_MANAGE = 1, // Don't wait for or abort this thread
MONO_THREAD_FLAG_NAME_SET = 2, // Thread name set from managed code
+ MONO_THREAD_FLAG_APPDOMAIN_ABORT = 4, // Current requested abort originates from appdomain unload
} MonoThreadFlags;
struct _MonoInternalThread {
void
ves_icall_AssemblyBuilder_basic_init (MonoReflectionAssemblyBuilder *assemblyb);
-MonoReflectionModule*
-ves_icall_AssemblyBuilder_InternalAddModule (MonoReflectionAssemblyBuilder *ab, MonoString *fileName);
+void
+ves_icall_AssemblyBuilder_UpdateNativeCustomAttributes (MonoReflectionAssemblyBuilderHandle assemblyb, MonoError *error);
MonoArray*
ves_icall_CustomAttributeBuilder_GetBlob (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *propValues, MonoArray *fields, MonoArray* fieldValues);
DECL_OFFSET(MonoLMF, gregs)
DECL_OFFSET(DynCallArgs, regs)
DECL_OFFSET(DynCallArgs, fpregs)
+DECL_OFFSET(DynCallArgs, n_stackargs)
DECL_OFFSET(DynCallArgs, n_fpargs)
DECL_OFFSET(DynCallArgs, n_fpret)
#endif
MonoObjectHandle current_appdomain_delegate = MONO_HANDLE_NEW (MonoObject, NULL);
MonoClass *klass = mono_handle_class (exc);
- if (mono_class_has_parent (klass, mono_defaults.threadabortexception_class))
+ /*
+ * AppDomainUnloadedException don't behave like unhandled exceptions unless thrown from
+ * a thread started in unmanaged world.
+ * https://msdn.microsoft.com/en-us/library/system.appdomainunloadedexception(v=vs.110).aspx#Anchor_6
+ */
+ if (klass == mono_defaults.threadabortexception_class ||
+ (klass == mono_class_get_appdomain_unloaded_exception_class () &&
+ mono_thread_info_current ()->runtime_thread))
return;
field = mono_class_get_field_from_name (mono_defaults.appdomain_class, "UnhandledException");
static MonoObject*
mono_runtime_capture_context (MonoDomain *domain, MonoError *error)
{
+#ifdef HOST_WASM
+ return mono_runtime_invoke_checked (mono_get_context_capture_method (), NULL, NULL, error);
+#else
MONO_REQ_GC_UNSAFE_MODE;
RuntimeInvokeFunction runtime_invoke;
runtime_invoke = (RuntimeInvokeFunction)domain->capture_context_runtime_invoke;
return runtime_invoke (NULL, NULL, NULL, domain->capture_context_method);
+#endif
}
/**
* mono_async_result_new:
#include "mono/metadata/exception.h"
#include "mono/metadata/debug-helpers.h"
#include "mono/metadata/reflection-internals.h"
+#include "mono/metadata/assembly.h"
typedef enum {
MONO_MARSHAL_NONE, /* No marshalling needed */
static MonoObject *
mono_remoting_wrapper (MonoMethod *method, gpointer *params);
+static MonoException *
+mono_remoting_update_exception (MonoException *exc);
+
static gint32
mono_marshal_set_domain_by_id (gint32 id, MonoBoolean push);
register_icall (ves_icall_mono_marshal_xdomain_copy_value, "ves_icall_mono_marshal_xdomain_copy_value", "object object", FALSE);
register_icall (mono_marshal_xdomain_copy_out_value, "mono_marshal_xdomain_copy_out_value", "void object object", FALSE);
register_icall (mono_remoting_wrapper, "mono_remoting_wrapper", "object ptr ptr", FALSE);
+ register_icall (mono_remoting_update_exception, "mono_remoting_update_exception", "object object", FALSE);
register_icall (mono_upgrade_remote_class_wrapper, "mono_upgrade_remote_class_wrapper", "void object object", FALSE);
#ifndef DISABLE_JIT
if (exc) {
error_init (&error);
+ exc = (MonoObject*) mono_remoting_update_exception ((MonoException*)exc);
mono_error_set_exception_instance (&error, (MonoException *)exc);
goto fail;
}
return NULL;
}
+/*
+ * Handles exception transformation at appdomain call boundary.
+ * Note this is called from target appdomain inside xdomain wrapper, but from
+ * source domain in the mono_remoting_wrapper slowpath.
+ */
+static MonoException *
+mono_remoting_update_exception (MonoException *exc)
+{
+ MonoInternalThread *thread;
+ MonoClass *klass = mono_object_get_class ((MonoObject*)exc);
+
+ /* Serialization error can only happen when still in the target appdomain */
+ if (!(mono_class_get_flags (klass) & TYPE_ATTRIBUTE_SERIALIZABLE)) {
+ MonoException *ret;
+ char *aname = mono_stringify_assembly_name (&klass->image->assembly->aname);
+ char *message = g_strdup_printf ("Type '%s' in Assembly '%s' is not marked as serializable", klass->name, aname);
+ ret = mono_get_exception_serialization (message);
+ g_free (aname);
+ g_free (message);
+ return ret;
+ }
+
+ thread = mono_thread_internal_current ();
+ if (mono_object_get_class ((MonoObject*)exc) == mono_defaults.threadabortexception_class &&
+ thread->flags & MONO_THREAD_FLAG_APPDOMAIN_ABORT) {
+ mono_thread_internal_reset_abort (thread);
+ return mono_get_exception_appdomain_unloaded ();
+ }
+
+ return exc;
+}
/**
* mono_marshal_get_remoting_invoke:
int i, j, param_index, copy_locals_base;
MonoClass *ret_class = NULL;
int loc_array=0, loc_return=0, loc_serialized_exc=0;
- MonoExceptionClause *clauses, *main_clause, *serialization_clause;
- int pos, pos_leave, pos_leave_serialization;
+ MonoExceptionClause *main_clause;
+ int pos, pos_leave;
gboolean copy_return;
WrapperInfo *info;
/* try */
- clauses = (MonoExceptionClause *)mono_image_alloc0 (method->klass->image, 2 * sizeof (MonoExceptionClause));
- main_clause = &clauses [0];
+ main_clause = (MonoExceptionClause *)mono_image_alloc0 (method->klass->image, sizeof (MonoExceptionClause));
main_clause->try_offset = mono_mb_get_label (mb);
/* Clean the call context */
/* handler code */
main_clause->handler_offset = mono_mb_get_label (mb);
- /*
- * We deserialize the exception in another try-catch so we can catch
- * serialization failure exceptions.
- */
- serialization_clause = &clauses [1];
- serialization_clause->try_offset = mono_mb_get_label (mb);
-
- mono_mb_emit_managed_call (mb, method_rs_serialize_exc, NULL);
- mono_mb_emit_stloc (mb, loc_serialized_exc);
- mono_mb_emit_ldarg (mb, 2);
- mono_mb_emit_ldloc (mb, loc_serialized_exc);
- mono_mb_emit_byte (mb, CEE_STIND_REF);
- pos_leave_serialization = mono_mb_emit_branch (mb, CEE_LEAVE);
-
- /* Serialization exception catch */
- serialization_clause->flags = MONO_EXCEPTION_CLAUSE_NONE;
- serialization_clause->try_len = mono_mb_get_pos (mb) - serialization_clause->try_offset;
- serialization_clause->data.catch_class = mono_defaults.object_class;
-
- /* handler code */
- serialization_clause->handler_offset = mono_mb_get_label (mb);
-
- /*
- * If the serialization of the original exception failed we serialize the newly
- * thrown exception, which should always succeed, passing it over to the calling
- * domain.
- */
+ mono_mb_emit_icall (mb, mono_remoting_update_exception);
+ mono_mb_emit_op (mb, CEE_CASTCLASS, mono_defaults.exception_class);
mono_mb_emit_managed_call (mb, method_rs_serialize_exc, NULL);
mono_mb_emit_stloc (mb, loc_serialized_exc);
mono_mb_emit_ldarg (mb, 2);
mono_mb_emit_byte (mb, CEE_STIND_REF);
mono_mb_emit_branch (mb, CEE_LEAVE);
- /* end serialization exception catch */
- serialization_clause->handler_len = mono_mb_get_pos (mb) - serialization_clause->handler_offset;
- mono_mb_patch_branch (mb, pos_leave_serialization);
-
- mono_mb_emit_branch (mb, CEE_LEAVE);
- /* end main catch */
main_clause->handler_len = mono_mb_get_pos (mb) - main_clause->handler_offset;
+ /* end catch */
mono_mb_patch_branch (mb, pos_leave);
if (copy_return)
mono_mb_emit_byte (mb, CEE_RET);
- mono_mb_set_clauses (mb, 2, clauses);
+ mono_mb_set_clauses (mb, 1, main_clause);
#endif
info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_NONE);
klass.rank = 1;
klass.instance_size = MONO_SIZEOF_MONO_ARRAY;
klass.sizes.element_size = 1;
+ klass.size_inited = 1;
klass.name = "array_filler_type";
vtable->klass = &klass;
tid = mono_thread_info_get_tid (p);
- if (p->client_info.info.runtime_thread)
- mono_threads_add_joinable_thread ((gpointer)tid);
+ mono_threads_add_joinable_runtime_thread (&p->client_info.info);
if (mono_gc_get_gc_callbacks ()->thread_detach_func) {
mono_gc_get_gc_callbacks ()->thread_detach_func (p->client_info.runtime_data);
{
scan_area_arg_start = start_nursery;
scan_area_arg_end = end_nursery;
+#ifdef HOST_WASM
+ //Under WASM we don't scan thread stacks and we can't trust the values we find there either.
+ return;
+#endif
FOREACH_THREAD (info) {
int skip_reason = 0;
#if !defined(MONO_CROSS_COMPILE) && MONO_ARCH_HAS_MONO_CONTEXT
MONO_CONTEXT_GET_CURRENT (info->client_info.ctx);
+#elif defined (HOST_WASM)
+ //nothing
#else
g_error ("Sgen STW requires a working mono-context");
#endif
mono_image_property_insert (image, obj, MONO_PROP_DYNAMIC_CATTR, ainfo);
mono_loader_unlock ();
+}
+#else
+//FIXME some code compiled under DISABLE_REFLECTION_EMIT depends on this function, we should be more aggressively disabling things
+static void
+mono_save_custom_attrs (MonoImage *image, void *obj, MonoArray *cattrs)
+{
}
#endif
#ifndef DISABLE_REFLECTION_EMIT
static guint32
-mono_image_get_fieldref_token (MonoDynamicImage *assembly, MonoObjectHandle f, MonoClassField *field)
+mono_image_get_fieldref_token (MonoDynamicImage *assembly, MonoClassField *field)
{
MonoType *type;
guint32 token;
g_assert (field);
g_assert (field->parent);
- token = GPOINTER_TO_UINT (mono_g_hash_table_lookup (assembly->handleref_managed, MONO_HANDLE_RAW (f)));
+ token = GPOINTER_TO_UINT (g_hash_table_lookup (assembly->handleref, field));
if (token)
return token;
token = mono_image_get_memberref_token (assembly, &field->parent->byval_arg,
mono_field_get_name (field),
mono_dynimage_encode_fieldref_signature (assembly, field->parent->image, type));
- mono_g_hash_table_insert (assembly->handleref_managed, MONO_HANDLE_RAW (f), GUINT_TO_POINTER(token));
+ g_hash_table_insert (assembly->handleref, field, GUINT_TO_POINTER(token));
return token;
}
gboolean create_open_instance, gboolean register_token,
MonoError *error)
{
+ HANDLE_FUNCTION_ENTER ();
guint32 token = 0;
error_init (error);
MonoClass *klass = mono_handle_class (obj);
+ MonoObjectHandle register_obj = MONO_HANDLE_NEW (MonoObject, NULL);
+ MONO_HANDLE_ASSIGN (register_obj, obj);
/* Check for user defined reflection objects */
/* TypeDelegator is the only corlib type which doesn't look like a MonoReflectionType */
if (klass->image != mono_defaults.corlib || (strcmp (klass->name, "TypeDelegator") == 0)) {
mono_error_set_not_supported (error, "User defined subclasses of System.Type are not yet supported");
- return 0;
+ goto leave;
}
/* This function is called from ModuleBuilder:getToken multiple times for the same objects */
if (strcmp (klass->name, "RuntimeType") == 0) {
MonoType *type = mono_reflection_type_handle_mono_type (MONO_HANDLE_CAST (MonoReflectionType, obj), error);
- return_val_if_nok (error, 0);
+ if (!is_ok (error))
+ goto leave;
MonoClass *mc = mono_class_from_mono_type (type);
token = mono_metadata_token_from_dor (
mono_dynimage_encode_typedef_or_ref_full (assembly, type, !mono_class_is_gtd (mc) || create_open_instance));
how_collide = MONO_DYN_IMAGE_TOK_NEW;
}
} else {
- token = mono_image_get_methodref_token (assembly, method, create_open_instance);
+ guint32 methodref_token = mono_image_get_methodref_token (assembly, method, create_open_instance);
+ /* We need to register a 'canonical' object. The same
+ * MonoMethod could have been reflected via different
+ * classes so the MonoReflectionMethod:reftype could be
+ * different, and the object lookup in
+ * dynamic_image_register_token would assert assert. So
+ * we pick the MonoReflectionMethod object that has the
+ * reflected type as NULL (ie, take the declaring type
+ * of the method) */
+ MonoReflectionMethodHandle canonical_obj =
+ mono_method_get_object_handle (MONO_HANDLE_DOMAIN (obj), method, NULL, error);
+ if (!is_ok (error))
+ goto leave;
+ MONO_HANDLE_ASSIGN (register_obj, canonical_obj);
+ token = methodref_token;
}
/*g_print ("got token 0x%08x for %s\n", token, m->method->name);*/
} else if (strcmp (klass->name, "MonoField") == 0) {
token = MONO_TOKEN_FIELD_DEF | field_table_idx;
how_collide = MONO_DYN_IMAGE_TOK_NEW;
} else {
- token = mono_image_get_fieldref_token (assembly, obj, field);
+ guint32 fieldref_token = mono_image_get_fieldref_token (assembly, field);
+ /* Same as methodref: get a canonical object to
+ * register with the token. */
+ MonoReflectionFieldHandle canonical_obj =
+ mono_field_get_object_handle (MONO_HANDLE_DOMAIN (obj), field->parent, field, error);
+ if (!is_ok (error))
+ goto leave;
+ MONO_HANDLE_ASSIGN (register_obj, canonical_obj);
+ token = fieldref_token;
}
/*g_print ("got token 0x%08x for %s\n", token, f->field->name);*/
} else if (strcmp (klass->name, "MonoArrayMethod") == 0) {
MonoReflectionArrayMethodHandle m = MONO_HANDLE_CAST (MonoReflectionArrayMethod, obj);
- token = mono_image_get_array_token (assembly, m, error);
- return_val_if_nok (error, 0);
+ /* always returns a fresh token */
+ guint32 array_token = mono_image_get_array_token (assembly, m, error);
+ if (!is_ok (error))
+ goto leave;
+ token = array_token;
+ how_collide = MONO_DYN_IMAGE_TOK_NEW;
} else if (strcmp (klass->name, "SignatureHelper") == 0) {
MonoReflectionSigHelperHandle s = MONO_HANDLE_CAST (MonoReflectionSigHelper, obj);
- token = MONO_TOKEN_SIGNATURE | mono_image_get_sighelper_token (assembly, s, error);
- return_val_if_nok (error, 0);
+ /* always returns a fresh token */
+ guint32 sig_token = MONO_TOKEN_SIGNATURE | mono_image_get_sighelper_token (assembly, s, error);
+ if (!is_ok (error))
+ goto leave;
+ token = sig_token;
+ how_collide = MONO_DYN_IMAGE_TOK_NEW;
} else {
g_error ("requested token for %s\n", klass->name);
}
if (register_token)
- mono_dynamic_image_register_token (assembly, token, obj, how_collide);
+ mono_dynamic_image_register_token (assembly, token, register_obj, how_collide);
- return token;
+leave:
+ HANDLE_FUNCTION_RETURN_VAL (token);
}
(rmb->iattrs & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
m = (MonoMethod *)image_g_new0 (image, MonoMethodPInvoke, 1);
else
- m = (MonoMethod *)image_g_new0 (image, MonoMethodWrapper, 1);
+ m = (MonoMethod *)image_g_new0 (image, MonoDynamicMethod, 1);
wrapperm = (MonoMethodWrapper*)m;
}
wrapperm->header = header;
+ MonoDynamicMethod *dm = (MonoDynamicMethod*)wrapperm;
+ dm->assembly = klass->image->assembly;
}
if (rmb->generic_params) {
rmb.refs [i + 1] = handle_class;
}
+ MonoAssembly *ass = NULL;
if (mb->owner) {
MonoType *owner_type = mono_reflection_type_get_handle ((MonoReflectionType*)mb->owner, error);
if (!is_ok (error)) {
return FALSE;
}
klass = mono_class_from_mono_type (owner_type);
+ ass = klass->image->assembly;
} else {
klass = mono_defaults.object_class;
+ ass = (mb->module && mb->module->image) ? mb->module->image->assembly : NULL;
}
mb->mhandle = handle = reflection_methodbuilder_to_mono_method (klass, &rmb, sig, error);
+ ((MonoDynamicMethod*)handle)->assembly = ass;
g_free (rmb.refs);
return_val_if_nok (error, FALSE);
mono_reflection_dynimage_basic_init (assemblyb);
}
+void
+ves_icall_AssemblyBuilder_UpdateNativeCustomAttributes (MonoReflectionAssemblyBuilderHandle assemblyb, MonoError *error)
+{
+ MonoArrayHandle cattrs = MONO_HANDLE_NEW_GET (MonoArray, assemblyb, cattrs);
+
+ MonoReflectionAssemblyHandle assembly_handle = MONO_HANDLE_CAST (MonoReflectionAssembly, assemblyb);
+ MonoAssembly *assembly = MONO_HANDLE_GETVAL (assembly_handle, assembly);
+ g_assert (assembly);
+
+ mono_save_custom_attrs (assembly->image, assembly, MONO_HANDLE_RAW (cattrs));
+}
+
void
ves_icall_EnumBuilder_setup_enum_type (MonoReflectionTypeHandle enumtype,
MonoReflectionTypeHandle t,
#include <mono/utils/mono-threads.h>
#include <mono/utils/mono-time.h>
#include <mono/utils/refcount.h>
+#include <mono/utils/mono-os-wait.h>
typedef struct {
MonoDomain *domain;
mono_monitor_exit ((MonoObject*) ares);
MONO_ENTER_GC_SAFE;
#ifdef HOST_WIN32
- WaitForSingleObjectEx (wait_event, INFINITE, TRUE);
+ mono_win32_wait_for_single_object_ex (wait_event, INFINITE, TRUE);
#else
mono_w32handle_wait_one (wait_event, MONO_INFINITE_WAIT, TRUE);
#endif
MonoInternalThread *mono_thread_internal_current (void);
-void mono_thread_internal_abort (MonoInternalThread *thread);
+void mono_thread_internal_abort (MonoInternalThread *thread, gboolean appdomain_unload);
void mono_thread_internal_suspend_for_shutdown (MonoInternalThread *thread);
gboolean mono_thread_internal_has_appdomain_ref (MonoInternalThread *thread, MonoDomain *domain);
mono_thread_create_checked (MonoDomain *domain, gpointer func, gpointer arg, MonoError *error);
/* Can't include utils/mono-threads.h because of the THREAD_INFO_TYPE wizardry */
+void mono_threads_add_joinable_runtime_thread (gpointer thread_info);
void mono_threads_add_joinable_thread (gpointer tid);
void mono_threads_join_threads (void);
void mono_thread_join (gpointer tid);
#include <mono/metadata/abi-details.h>
#include <mono/metadata/w32error.h>
#include <mono/utils/w32api.h>
+#include <mono/utils/mono-os-wait.h>
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#if defined(HOST_WIN32)
#include <objbase.h>
+
+extern gboolean
+mono_native_thread_join_handle (HANDLE thread_handle, gboolean close_handle);
#endif
#if defined(HOST_ANDROID) && !defined(TARGET_ARM64) && !defined(TARGET_AMD64)
static gint32 managed_thread_id_counter = 0;
-/* Class lazy loading functions */
-static GENERATE_GET_CLASS_WITH_CACHE (appdomain_unloaded_exception, "System", "AppDomainUnloadedException")
-
static void
mono_threads_lock (void)
{
thread->abort_exc = NULL;
thread->current_appcontext = NULL;
+ /*
+ * Prevent race condition between execution of this method and runtime shutdown.
+ * Adding runtime thread to the joinable threads list will make sure runtime shutdown
+ * won't complete until added runtime thread have exited. Owner of threads attached to the
+ * runtime but not identified as runtime threads needs to make sure thread detach calls won't
+ * race with runtime shutdown.
+ */
+ mono_threads_add_joinable_runtime_thread (thread->thread_info);
+
/*
* thread->synch_cs can be NULL if this was called after
* ves_icall_System_Threading_InternalThread_Thread_free_internal.
mono_thread_detach_internal (internal);
- internal->tid = 0;
-
- return(0);
+ return 0;
}
static gsize WINAPI
else
stack_set_size = 0;
- if (!mono_thread_platform_create_thread (start_wrapper, start_info, &stack_set_size, &tid)) {
+ if (!mono_thread_platform_create_thread ((MonoThreadStart)start_wrapper, start_info, &stack_set_size, &tid)) {
/* The thread couldn't be created, so set an exception */
mono_threads_lock ();
mono_g_hash_table_remove (threads_starting_up, thread);
void
mono_thread_set_name_internal (MonoInternalThread *this_obj, MonoString *name, gboolean permanent, gboolean reset, MonoError *error)
{
+ MonoNativeThreadId tid = 0;
+
LOCK_THREAD (this_obj);
error_init (error);
else
this_obj->name = NULL;
-
+ if (!(this_obj->state & ThreadState_Stopped))
+ tid = thread_get_tid (this_obj);
+
UNLOCK_THREAD (this_obj);
- if (this_obj->name && this_obj->tid) {
+ if (this_obj->name && tid) {
char *tname = mono_string_to_utf8_checked (name, error);
return_if_nok (error);
- MONO_PROFILER_RAISE (thread_name, (this_obj->tid, tname));
- mono_native_thread_set_name (thread_get_tid (this_obj), tname);
+ MONO_PROFILER_RAISE (thread_name, ((uintptr_t)tid, tname));
+ mono_native_thread_set_name (tid, tname);
mono_free (tname);
}
}
return FALSE;
}
- MonoNativeThreadId tid = thread_get_tid (thread);
-
UNLOCK_THREAD (thread);
if (ms == -1)
if (ret == MONO_THREAD_INFO_WAIT_RET_SUCCESS_0) {
THREAD_DEBUG (g_message ("%s: join successful", __func__));
-#ifdef HOST_WIN32
- /* TODO: Do this on Unix platforms as well. See PR #5454 for context. */
/* Wait for the thread to really exit */
- MONO_ENTER_GC_SAFE;
- /* This shouldn't block */
- mono_threads_join_lock ();
- mono_native_thread_join (tid);
- mono_threads_join_unlock ();
- MONO_EXIT_GC_SAFE;
-#endif
+ MonoNativeThreadId tid = thread_get_tid (thread);
+ mono_thread_join (tid);
return TRUE;
}
MONO_ENTER_GC_SAFE;
#ifdef HOST_WIN32
if (numhandles != 1)
- ret = mono_w32handle_convert_wait_ret (WaitForMultipleObjectsEx (numhandles, handles, waitall, timeoutLeft, TRUE), numhandles);
+ ret = mono_w32handle_convert_wait_ret (mono_win32_wait_for_multiple_objects_ex(numhandles, handles, waitall, timeoutLeft, TRUE), numhandles);
else
- ret = mono_w32handle_convert_wait_ret (WaitForSingleObjectEx (handles [0], timeoutLeft, TRUE), 1);
+ ret = mono_w32handle_convert_wait_ret (mono_win32_wait_for_single_object_ex (handles [0], timeoutLeft, TRUE), 1);
#else
/* mono_w32handle_wait_multiple optimizes the case for numhandles == 1 */
ret = mono_w32handle_wait_multiple (handles, numhandles, waitall, timeoutLeft, TRUE);
MONO_ENTER_GC_SAFE;
#ifdef HOST_WIN32
- ret = mono_w32handle_convert_wait_ret (SignalObjectAndWait (toSignal, toWait, ms, TRUE), 1);
+ ret = mono_w32handle_convert_wait_ret (mono_win32_signal_object_and_wait (toSignal, toWait, ms, TRUE), 1);
#else
ret = mono_w32handle_signal_and_wait (toSignal, toWait, ms, TRUE);
#endif
}
static gboolean
-request_thread_abort (MonoInternalThread *thread, MonoObject *state)
+request_thread_abort (MonoInternalThread *thread, MonoObject *state, gboolean appdomain_unload)
{
LOCK_THREAD (thread);
}
thread->state |= ThreadState_AbortRequested;
+ if (appdomain_unload)
+ thread->flags |= MONO_THREAD_FLAG_APPDOMAIN_ABORT;
+ else
+ thread->flags &= ~MONO_THREAD_FLAG_APPDOMAIN_ABORT;
+
if (thread->abort_state_handle)
mono_gchandle_free (thread->abort_state_handle);
if (state) {
void
ves_icall_System_Threading_Thread_Abort (MonoInternalThread *thread, MonoObject *state)
{
- if (!request_thread_abort (thread, state))
+ if (!request_thread_abort (thread, state, FALSE))
return;
if (thread == mono_thread_internal_current ()) {
* \p thread MUST NOT be the current thread.
*/
void
-mono_thread_internal_abort (MonoInternalThread *thread)
+mono_thread_internal_abort (MonoInternalThread *thread, gboolean appdomain_unload)
{
g_assert (thread != mono_thread_internal_current ());
- if (!request_thread_abort (thread, NULL))
+ if (!request_thread_abort (thread, NULL, appdomain_unload))
return;
async_abort_internal (thread, TRUE);
}
ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this_obj)
{
MonoInternalThread *thread = mono_thread_internal_current ();
- gboolean was_aborting;
+ gboolean was_aborting, is_domain_abort;
LOCK_THREAD (thread);
was_aborting = thread->state & ThreadState_AbortRequested;
- thread->state &= ~ThreadState_AbortRequested;
+ is_domain_abort = thread->flags & MONO_THREAD_FLAG_APPDOMAIN_ABORT;
+
+ if (was_aborting && !is_domain_abort)
+ thread->state &= ~ThreadState_AbortRequested;
UNLOCK_THREAD (thread);
if (!was_aborting) {
const char *msg = "Unable to reset abort because no abort was requested";
mono_set_pending_exception (mono_get_exception_thread_state (msg));
return;
+ } else if (is_domain_abort) {
+ /* Silently ignore abort resets in unloading appdomains */
+ return;
}
mono_get_eh_callbacks ()->mono_clear_abort_threshold ();
{
MonoInternalThread *internal = thread->internal_thread;
- if (!request_thread_abort (internal, NULL))
+ if (!request_thread_abort (internal, NULL, FALSE))
return;
if (internal == mono_thread_internal_current ()) {
static void
thread_detach_with_lock (MonoThreadInfo *info)
{
- return mono_gc_thread_detach_with_lock (info);
+ mono_gc_thread_detach_with_lock (info);
}
static gboolean
wait->num++;
THREAD_DEBUG (g_print ("%s: Aborting id: %"G_GSIZE_FORMAT"\n", __func__, (gsize)thread->tid));
- mono_thread_internal_abort (thread);
+ mono_thread_internal_abort (thread, FALSE);
}
return TRUE;
if (user_data.wait.num > 0) {
/* Abort the threads outside the threads lock */
for (i = 0; i < user_data.wait.num; ++i)
- mono_thread_internal_abort (user_data.wait.threads [i]);
+ mono_thread_internal_abort (user_data.wait.threads [i], TRUE);
/*
* We should wait for the threads either to abort, or to leave the
/* this will consume pending APC calls */
#ifdef HOST_WIN32
- WaitForSingleObjectEx (GetCurrentThread(), 0, TRUE);
+ mono_win32_wait_for_single_object_ex (GetCurrentThread (), 0, TRUE);
#endif
+
/* Clear the interrupted flag of the thread so it can wait again */
mono_thread_info_clear_self_interrupt ();
/* this will awake the thread if it is in WaitForSingleObject
or similar */
- /* Our implementation of this function ignores the func argument */
#ifdef HOST_WIN32
- QueueUserAPC ((PAPCFUNC)dummy_apc, thread->native_handle, (ULONG_PTR)NULL);
+ mono_win32_interrupt_wait (thread->thread_info, thread->native_handle, (DWORD)thread->tid);
#else
mono_thread_info_self_interrupt ();
#endif
return info->runtime_thread == FALSE;
}
+#ifndef HOST_WIN32
+static void
+threads_native_thread_join_lock (gpointer tid, gpointer value)
+{
+ pthread_t thread = (pthread_t)tid;
+ if (thread != pthread_self ()) {
+ MONO_ENTER_GC_SAFE;
+ /* This shouldn't block */
+ mono_threads_join_lock ();
+ mono_native_thread_join (thread);
+ mono_threads_join_unlock ();
+ MONO_EXIT_GC_SAFE;
+ }
+}
+static void
+threads_native_thread_join_nolock (gpointer tid, gpointer value)
+{
+ pthread_t thread = (pthread_t)tid;
+ MONO_ENTER_GC_SAFE;
+ mono_native_thread_join (thread);
+ MONO_EXIT_GC_SAFE;
+}
+
+static void
+threads_add_joinable_thread_nolock (gpointer tid)
+{
+ g_hash_table_insert (joinable_threads, tid, tid);
+}
+#else
+static void
+threads_native_thread_join_lock (gpointer tid, gpointer value)
+{
+ MonoNativeThreadId thread_id = (MonoNativeThreadId)(guint64)tid;
+ HANDLE thread_handle = (HANDLE)value;
+ if (thread_id != GetCurrentThreadId () && thread_handle != NULL && thread_handle != INVALID_HANDLE_VALUE) {
+ MONO_ENTER_GC_SAFE;
+ /* This shouldn't block */
+ mono_threads_join_lock ();
+ mono_native_thread_join_handle (thread_handle, TRUE);
+ mono_threads_join_unlock ();
+ MONO_EXIT_GC_SAFE;
+ }
+}
+
+static void
+threads_native_thread_join_nolock (gpointer tid, gpointer value)
+{
+ HANDLE thread_handle = (HANDLE)value;
+ MONO_ENTER_GC_SAFE;
+ mono_native_thread_join_handle (thread_handle, TRUE);
+ MONO_EXIT_GC_SAFE;
+}
+
+static void
+threads_add_joinable_thread_nolock (gpointer tid)
+{
+ g_hash_table_insert (joinable_threads, tid, (gpointer)OpenThread (SYNCHRONIZE, TRUE, (MonoNativeThreadId)(guint64)tid));
+}
+#endif
+
+void
+mono_threads_add_joinable_runtime_thread (gpointer thread_info)
+{
+ g_assert (thread_info);
+ MonoThreadInfo *mono_thread_info = (MonoThreadInfo*)thread_info;
+
+ if (mono_thread_info->runtime_thread) {
+ if (InterlockedCompareExchange (&mono_thread_info->thread_pending_native_join, TRUE, FALSE) == FALSE)
+ mono_threads_add_joinable_thread ((gpointer)(MONO_UINT_TO_NATIVE_THREAD_ID (mono_thread_info_get_tid (mono_thread_info))));
+ }
+}
+
/*
* mono_add_joinable_thread:
*
void
mono_threads_add_joinable_thread (gpointer tid)
{
-#ifndef HOST_WIN32
/*
* We cannot detach from threads because it causes problems like
* 2fd16f60/r114307. So we collect them and join them when
- * we have time (in he finalizer thread).
+ * we have time (in the finalizer thread).
*/
joinable_threads_lock ();
if (!joinable_threads)
joinable_threads = g_hash_table_new (NULL, NULL);
- g_hash_table_insert (joinable_threads, tid, tid);
- UnlockedIncrement (&joinable_thread_count);
+
+ gpointer orig_key;
+ gpointer value;
+ if (!g_hash_table_lookup_extended (joinable_threads, tid, &orig_key, &value)) {
+ threads_add_joinable_thread_nolock (tid);
+ UnlockedIncrement (&joinable_thread_count);
+ }
joinable_threads_unlock ();
mono_gc_finalize_notify ();
-#endif
}
/*
void
mono_threads_join_threads (void)
{
-#ifndef HOST_WIN32
GHashTableIter iter;
gpointer key;
- gpointer tid;
- pthread_t thread;
+ gpointer value;
gboolean found;
/* Fastpath */
found = FALSE;
if (g_hash_table_size (joinable_threads)) {
g_hash_table_iter_init (&iter, joinable_threads);
- g_hash_table_iter_next (&iter, &key, (void**)&tid);
- thread = (pthread_t)tid;
+ g_hash_table_iter_next (&iter, &key, (void**)&value);
g_hash_table_remove (joinable_threads, key);
UnlockedDecrement (&joinable_thread_count);
found = TRUE;
}
joinable_threads_unlock ();
- if (found) {
- if (thread != pthread_self ()) {
- MONO_ENTER_GC_SAFE;
- /* This shouldn't block */
- mono_threads_join_lock ();
- mono_native_thread_join (thread);
- mono_threads_join_unlock ();
- MONO_EXIT_GC_SAFE;
- }
- } else {
+ if (found)
+ threads_native_thread_join_lock (key, value);
+ else
break;
- }
}
-#endif
}
/*
void
mono_thread_join (gpointer tid)
{
-#ifndef HOST_WIN32
- pthread_t thread;
gboolean found = FALSE;
+ gpointer orig_key;
+ gpointer value;
joinable_threads_lock ();
if (!joinable_threads)
joinable_threads = g_hash_table_new (NULL, NULL);
- if (g_hash_table_lookup (joinable_threads, tid)) {
+
+ if (g_hash_table_lookup_extended (joinable_threads, tid, &orig_key, &value)) {
g_hash_table_remove (joinable_threads, tid);
UnlockedDecrement (&joinable_thread_count);
found = TRUE;
}
joinable_threads_unlock ();
+
if (!found)
return;
- thread = (pthread_t)tid;
- MONO_ENTER_GC_SAFE;
- mono_native_thread_join (thread);
- MONO_EXIT_GC_SAFE;
-#endif
+
+ threads_native_thread_join_nolock (tid, value);
}
void
#ifdef ENODEV
case ENODEV: return ERROR_DEV_NOT_EXIST;
#endif
+#ifdef ENXIO
+ case ENXIO: return ERROR_DEV_NOT_EXIST;
+#endif
default:
g_error ("%s: unknown error (%d) \"%s\"", __FILE__, error, g_strerror (error));
return res;
}
+/*
+ * GetFileAttributes|Ex () seems to try opening the file, which might lead to sharing violation errors, whereas
+ * FindFirstFile always succeeds.
+ */
guint32
mono_w32file_get_attributes (const gunichar2 *name)
{
guint32 res;
+ guint32 error;
+ HANDLE find_handle;
+ WIN32_FIND_DATA find_data;
+
MONO_ENTER_GC_SAFE;
res = GetFileAttributes (name);
MONO_EXIT_GC_SAFE;
- return res;
+
+ if (res != INVALID_FILE_ATTRIBUTES)
+ return res;
+
+ error = GetLastError ();
+ if (error != ERROR_SHARING_VIOLATION)
+ return INVALID_FILE_ATTRIBUTES;
+
+ MONO_ENTER_GC_SAFE;
+ find_handle = FindFirstFile (name, &find_data);
+ MONO_EXIT_GC_SAFE;
+
+ if (find_handle == INVALID_HANDLE_VALUE)
+ return INVALID_FILE_ATTRIBUTES;
+
+ MONO_ENTER_GC_SAFE;
+ FindClose (find_handle);
+ MONO_EXIT_GC_SAFE;
+
+ return find_data.dwFileAttributes;
+}
+
+static gint64
+convert_filetime (const FILETIME *filetime)
+{
+ return (gint64) ((((guint64) filetime->dwHighDateTime) << 32) + filetime->dwLowDateTime);
}
gboolean
mono_w32file_get_attributes_ex (const gunichar2 *name, MonoIOStat *stat)
{
- gboolean result;
- WIN32_FILE_ATTRIBUTE_DATA data;
+ gboolean res;
+ guint32 error;
+ HANDLE find_handle;
+ WIN32_FIND_DATA find_data;
+ WIN32_FILE_ATTRIBUTE_DATA file_attribute_data;
MONO_ENTER_GC_SAFE;
- result = GetFileAttributesEx (name, GetFileExInfoStandard, &data);
+ res = GetFileAttributesEx (name, GetFileExInfoStandard, &file_attribute_data);
MONO_EXIT_GC_SAFE;
- if (result) {
- stat->attributes = data.dwFileAttributes;
- stat->creation_time = (gint64) ((((guint64) data.ftCreationTime.dwHighDateTime) << 32) + data.ftCreationTime.dwLowDateTime);
- stat->last_access_time = (gint64) ((((guint64) data.ftLastAccessTime.dwHighDateTime) << 32) + data.ftLastAccessTime.dwLowDateTime);
- stat->last_write_time = (gint64) ((((guint64) data.ftLastWriteTime.dwHighDateTime) << 32) + data.ftLastWriteTime.dwLowDateTime);
- stat->length = ((gint64)data.nFileSizeHigh << 32) | data.nFileSizeLow;
+ if (res) {
+ stat->attributes = file_attribute_data.dwFileAttributes;
+ stat->creation_time = convert_filetime (&file_attribute_data.ftCreationTime);
+ stat->last_access_time = convert_filetime (&file_attribute_data.ftLastAccessTime);
+ stat->last_write_time = convert_filetime (&file_attribute_data.ftLastWriteTime);
+ stat->length = ((gint64)file_attribute_data.nFileSizeHigh << 32) | file_attribute_data.nFileSizeLow;
+ return TRUE;
}
- return result;
+ error = GetLastError ();
+ if (error != ERROR_SHARING_VIOLATION)
+ return FALSE;
+
+ MONO_ENTER_GC_SAFE;
+ find_handle = FindFirstFile (name, &find_data);
+ MONO_EXIT_GC_SAFE;
+
+ if (find_handle == INVALID_HANDLE_VALUE)
+ return FALSE;
+
+ MONO_ENTER_GC_SAFE;
+ FindClose (find_handle);
+ MONO_EXIT_GC_SAFE;
+
+ stat->attributes = find_data.dwFileAttributes;
+ stat->creation_time = convert_filetime (&find_data.ftCreationTime);
+ stat->last_access_time = convert_filetime (&find_data.ftLastAccessTime);
+ stat->last_write_time = convert_filetime (&find_data.ftLastWriteTime);
+ stat->length = ((gint64)find_data.nFileSizeHigh << 32) | find_data.nFileSizeLow;
+ return TRUE;
}
gboolean
return(w32origin);
}
-static gint64 convert_filetime (const FILETIME *filetime)
-{
- return (gint64) ((((guint64) filetime->dwHighDateTime) << 32) + filetime->dwLowDateTime);
-}
-
/* Managed file attributes have nearly but not quite the same values
* as the w32 equivalents.
*/
return(attrs);
}
-/*
- * On Win32, mono_w32file_get_attributes|_ex () seems to try opening the file,
- * which might lead to sharing violation errors, whereas mono_w32file_find_first
- * always succeeds. These 2 wrappers resort to mono_w32file_find_first if
- * mono_w32file_get_attributes|_ex () has failed.
- */
-static guint32
-get_file_attributes (const gunichar2 *path)
-{
- guint32 res;
- WIN32_FIND_DATA find_data;
- HANDLE find_handle;
- gint32 error;
-
- res = mono_w32file_get_attributes (path);
- if (res != -1)
- return res;
-
- error = mono_w32error_get_last ();
-
- if (error != ERROR_SHARING_VIOLATION)
- return res;
-
- find_handle = mono_w32file_find_first (path, &find_data);
-
- if (find_handle == INVALID_HANDLE_VALUE)
- return res;
-
- mono_w32file_find_close (find_handle);
-
- return find_data.dwFileAttributes;
-}
-
-static gboolean
-get_file_attributes_ex (const gunichar2 *path, MonoIOStat *stat)
-{
- gboolean res;
- WIN32_FIND_DATA find_data;
- HANDLE find_handle;
- gint32 error;
-
- res = mono_w32file_get_attributes_ex (path, stat);
- if (res)
- return TRUE;
-
- error = mono_w32error_get_last ();
- if (error != ERROR_SHARING_VIOLATION)
- return FALSE;
-
- find_handle = mono_w32file_find_first (path, &find_data);
-
- if (find_handle == INVALID_HANDLE_VALUE)
- return FALSE;
-
- mono_w32file_find_close (find_handle);
-
- stat->attributes = find_data.dwFileAttributes;
- stat->creation_time = convert_filetime (&find_data.ftCreationTime);
- stat->last_access_time = convert_filetime (&find_data.ftLastAccessTime);
- stat->last_write_time = convert_filetime (&find_data.ftLastWriteTime);
- stat->length = ((gint64)find_data.nFileSizeHigh << 32) | find_data.nFileSizeLow;
- return TRUE;
-}
-
/* System.IO.MonoIO internal calls */
MonoBoolean
return(ret);
}
-static gchar *
-get_search_dir (const gunichar2 *pattern)
-{
- gchar *p;
- gchar *result;
-
- p = g_utf16_to_utf8 (pattern, -1, NULL, NULL, NULL);
- result = g_path_get_dirname (p);
- g_free (p);
- return result;
-}
-
-static GPtrArray *
-get_filesystem_entries (const gunichar2 *path,
- const gunichar2 *path_with_pattern,
- gint attrs, gint mask,
- gint32 *error)
-{
- int i;
- WIN32_FIND_DATA data;
- HANDLE find_handle;
- GPtrArray *names = NULL;
- gchar *utf8_path = NULL, *utf8_result, *full_name;
- gint32 attributes;
-
- mask = convert_attrs ((MonoFileAttributes)mask);
- attributes = get_file_attributes (path);
- if (attributes != -1) {
- if ((attributes & FILE_ATTRIBUTE_DIRECTORY) == 0) {
- *error = ERROR_INVALID_NAME;
- goto fail;
- }
- } else {
- *error = mono_w32error_get_last ();
- goto fail;
- }
-
- find_handle = mono_w32file_find_first (path_with_pattern, &data);
- if (find_handle == INVALID_HANDLE_VALUE) {
- gint32 find_error = mono_w32error_get_last ();
-
- if (find_error == ERROR_FILE_NOT_FOUND || find_error == ERROR_NO_MORE_FILES) {
- /* No files, so just return an empty array */
- goto fail;
- }
-
- *error = find_error;
- goto fail;
- }
-
- utf8_path = get_search_dir (path_with_pattern);
- names = g_ptr_array_new ();
-
- do {
- if ((data.cFileName[0] == '.' && data.cFileName[1] == 0) ||
- (data.cFileName[0] == '.' && data.cFileName[1] == '.' && data.cFileName[2] == 0)) {
- continue;
- }
-
- if ((data.dwFileAttributes & mask) == attrs) {
- utf8_result = g_utf16_to_utf8 (data.cFileName, -1, NULL, NULL, NULL);
- if (utf8_result == NULL) {
- continue;
- }
-
- full_name = g_build_filename (utf8_path, utf8_result, NULL);
- g_ptr_array_add (names, full_name);
-
- g_free (utf8_result);
- }
- } while(mono_w32file_find_next (find_handle, &data));
-
- if (mono_w32file_find_close (find_handle) == FALSE) {
- *error = mono_w32error_get_last ();
- goto fail;
- }
-
- g_free (utf8_path);
- return names;
-fail:
- if (names) {
- for (i = 0; i < names->len; i++)
- g_free (g_ptr_array_index (names, i));
- g_ptr_array_free (names, TRUE);
- }
- g_free (utf8_path);
- return FALSE;
-}
-
-
-MonoArray *
-ves_icall_System_IO_MonoIO_GetFileSystemEntries (MonoString *path,
- MonoString *path_with_pattern,
- gint attrs, gint mask,
- gint32 *ioerror)
-{
- MonoError error;
- MonoDomain *domain = mono_domain_get ();
- MonoArray *result;
- int i;
- GPtrArray *names;
-
- *ioerror = ERROR_SUCCESS;
-
- names = get_filesystem_entries (mono_string_chars (path), mono_string_chars (path_with_pattern), attrs, mask, ioerror);
-
- if (!names) {
- // If there's no array and no error, then return an empty array.
- if (*ioerror == ERROR_SUCCESS) {
- MonoArray *arr = mono_array_new_checked (domain, mono_defaults.string_class, 0, &error);
- mono_error_set_pending_exception (&error);
- return arr;
- }
- return NULL;
- }
-
- result = mono_array_new_checked (domain, mono_defaults.string_class, names->len, &error);
- if (mono_error_set_pending_exception (&error))
- goto leave;
- for (i = 0; i < names->len; i++) {
- MonoString *name = mono_string_new_checked (domain, (const char *)g_ptr_array_index (names, i), &error);
- if (mono_error_set_pending_exception (&error))
- goto leave;
- mono_array_setref (result, i, name);
- g_free (g_ptr_array_index (names, i));
- }
-leave:
- g_ptr_array_free (names, TRUE);
- return result;
-}
-
-typedef struct {
- MonoDomain *domain;
- gchar *utf8_path;
- HANDLE find_handle;
-} IncrementalFind;
-
-static gboolean
-incremental_find_check_match (IncrementalFind *handle, WIN32_FIND_DATA *data, MonoString **result, MonoError *error)
-{
- error_init (error);
- gchar *utf8_result;
- gchar *full_name;
-
- if ((data->cFileName[0] == '.' && data->cFileName[1] == 0) || (data->cFileName[0] == '.' && data->cFileName[1] == '.' && data->cFileName[2] == 0))
- return FALSE;
-
- utf8_result = g_utf16_to_utf8 (data->cFileName, -1, NULL, NULL, NULL);
- if (utf8_result == NULL)
- return FALSE;
-
- full_name = g_build_filename (handle->utf8_path, utf8_result, NULL);
- g_free (utf8_result);
- *result = mono_string_new_checked (mono_domain_get (), full_name, error);
- g_free (full_name);
- if (!is_ok (error))
- return FALSE;
-
- return TRUE;
-}
-
HANDLE
ves_icall_System_IO_MonoIO_FindFirstFile (MonoString *path_with_pattern, MonoString **file_name, gint32 *file_attr, gint32 *ioerror)
{
return mono_w32file_find_close (hnd);
}
-/* FIXME make gc suspendable */
-MonoString *
-ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
- MonoString *path_with_pattern,
- gint32 *result_attr, gint32 *ioerror,
- gpointer *handle)
-{
- MonoError error;
- WIN32_FIND_DATA data;
- HANDLE find_handle;
- IncrementalFind *ifh;
- MonoString *result;
-
- *ioerror = ERROR_SUCCESS;
-
- find_handle = mono_w32file_find_first (mono_string_chars (path_with_pattern), &data);
-
- if (find_handle == INVALID_HANDLE_VALUE) {
- gint32 find_error = mono_w32error_get_last ();
- *handle = NULL;
-
- if (find_error == ERROR_FILE_NOT_FOUND)
- return NULL;
-
- *ioerror = find_error;
- return NULL;
- }
-
- ifh = g_new (IncrementalFind, 1);
- ifh->find_handle = find_handle;
- ifh->utf8_path = mono_string_to_utf8_checked (path, &error);
- if (mono_error_set_pending_exception (&error)) {
- mono_w32file_find_close (find_handle);
- g_free (ifh);
- return NULL;
- }
- ifh->domain = mono_domain_get ();
- *handle = ifh;
-
- while (incremental_find_check_match (ifh, &data, &result, &error) == 0){
- if (!is_ok (&error)) {
- mono_error_set_pending_exception (&error);
- return NULL;
- }
- if (mono_w32file_find_next (find_handle, &data) == FALSE){
- int e = mono_w32error_get_last ();
- if (e != ERROR_NO_MORE_FILES)
- *ioerror = e;
- return NULL;
- }
- }
- *result_attr = data.dwFileAttributes;
-
- return result;
-}
-
-/* FIXME make gc suspendable */
-MonoString *
-ves_icall_System_IO_MonoIO_FindNext (gpointer handle, gint32 *result_attr, gint32 *ioerror)
-{
- MonoError error;
- IncrementalFind *ifh = (IncrementalFind *)handle;
- WIN32_FIND_DATA data;
- MonoString *result;
-
- error_init (&error);
- *ioerror = ERROR_SUCCESS;
- do {
- if (!is_ok (&error)) {
- mono_error_set_pending_exception (&error);
- return NULL;
- }
- if (mono_w32file_find_next (ifh->find_handle, &data) == FALSE){
- int e = mono_w32error_get_last ();
- if (e != ERROR_NO_MORE_FILES)
- *ioerror = e;
- return NULL;
- }
- } while (incremental_find_check_match (ifh, &data, &result, &error) == 0);
-
- *result_attr = data.dwFileAttributes;
- return result;
-}
-
-int
-ves_icall_System_IO_MonoIO_FindClose (gpointer handle)
-{
- IncrementalFind *ifh = (IncrementalFind *)handle;
- gint32 error;
-
- if (mono_w32file_find_close (ifh->find_handle) == FALSE){
- error = mono_w32error_get_last ();
- } else
- error = ERROR_SUCCESS;
- g_free (ifh->utf8_path);
- g_free (ifh);
-
- return error;
-}
-
MonoString *
ves_icall_System_IO_MonoIO_GetCurrentDirectory (gint32 *io_error)
{
gint32 ret;
*error=ERROR_SUCCESS;
- ret=get_file_attributes (mono_string_chars (path));
+ ret = mono_w32file_get_attributes (mono_string_chars (path));
/*
* The definition of INVALID_FILE_ATTRIBUTES in the cygwin win32
*error=ERROR_SUCCESS;
- result = get_file_attributes_ex (mono_string_chars (path), stat);
+ result = mono_w32file_get_attributes_ex (mono_string_chars (path), stat);
if (!result) {
*error=mono_w32error_get_last ();
/* If we're opening a directory we need to set the extra flag
*/
- attrs = get_file_attributes (chars);
+ attrs = mono_w32file_get_attributes (chars);
if (attrs != INVALID_FILE_ATTRIBUTES) {
if (attrs & FILE_ATTRIBUTE_DIRECTORY) {
attributes |= FILE_FLAG_BACKUP_SEMANTICS;
extern MonoBoolean
ves_icall_System_IO_MonoIO_RemoveDirectory (MonoString *path, gint32 *error);
-MonoArray *
-ves_icall_System_IO_MonoIO_GetFileSystemEntries (MonoString *path,
- MonoString *path_with_pattern,
- gint mask, gint attrs,
- gint32 *error);
-
extern gpointer
ves_icall_System_IO_MonoIO_FindFirstFile (MonoString *path_with_pattern,
MonoString **file_name,
extern MonoBoolean
ves_icall_System_IO_MonoIO_FindCloseFile (gpointer hnd);
-extern MonoString *
-ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
- MonoString *path_with_pattern,
- gint32 *result_mask,
- gint32 *error,
- gpointer *handle);
-extern MonoString *
-ves_icall_System_IO_MonoIO_FindNext (gpointer handle, gint32 *result_mask, gint32 *error);
-
-extern int
-ves_icall_System_IO_MonoIO_FindClose (gpointer handle);
-
extern MonoString *
ves_icall_System_IO_MonoIO_GetCurrentDirectory (gint32 *error);
signalled = (waitall && count == nhandles) || (!waitall && count > 0);
if (signalled) {
- for (i = 0; i < nhandles; i++)
- own_if_signalled (handles [i], &abandoned [i]);
+ for (i = 0; i < nhandles; i++) {
+ if (own_if_signalled (handles [i], &abandoned [i]) && !waitall) {
+ /* if we are calling WaitHandle.WaitAny, .NET only owns the first one; it matters for Mutex which
+ * throw AbandonedMutexException in case we owned it but didn't release it */
+ break;
+ }
+ }
}
mono_w32handle_unlock_handles (handles, nhandles);
&start_ticks, &user_ticks, &kernel_ticks);
ticks_to_processtime (start_ticks, creation_processtime);
- ticks_to_processtime (user_ticks, kernel_processtime);
- ticks_to_processtime (kernel_ticks, user_processtime);
+ ticks_to_processtime (kernel_ticks, kernel_processtime);
+ ticks_to_processtime (user_ticks, user_processtime);
return TRUE;
}
#include "w32socket-internals.h"
#include "utils/w32api.h"
+#include "utils/mono-os-wait.h"
#define LOGDEBUG(...)
WSAEVENT event = WSACreateEvent ();
if (event != WSA_INVALID_EVENT) {
if (WSAEventSelect (sock, event, (1 << event_bit) | FD_CLOSE) != SOCKET_ERROR) {
- LOGDEBUG (g_message ("%06d - Calling WSAWaitForMultipleEvents () on socket %d", GetCurrentThreadId (), sock));
- DWORD ret = WSAWaitForMultipleEvents (1, &event, TRUE, timeout, TRUE);
+ LOGDEBUG (g_message ("%06d - Calling mono_win32_wsa_wait_for_multiple_events () on socket %d", GetCurrentThreadId (), sock));
+ DWORD ret = mono_win32_wsa_wait_for_multiple_events (1, &event, TRUE, timeout, TRUE);
if (ret == WSA_WAIT_IO_COMPLETION) {
- LOGDEBUG (g_message ("%06d - WSAWaitForMultipleEvents () returned WSA_WAIT_IO_COMPLETION for socket %d", GetCurrentThreadId (), sock));
+ LOGDEBUG (g_message ("%06d - mono_win32_wsa_wait_for_multiple_events () returned WSA_WAIT_IO_COMPLETION for socket %d", GetCurrentThreadId (), sock));
error = WSAEINTR;
} else if (ret == WSA_WAIT_TIMEOUT) {
error = WSAETIMEDOUT;
if (error == WSA_IO_PENDING) {
error = 0;
// NOTE: .NET's Socket.SendFile() doesn't honor the Socket's SendTimeout so we shouldn't either
- DWORD ret = WaitForSingleObjectEx (overlapped.hEvent, INFINITE, TRUE);
+ DWORD ret = mono_win32_wait_for_single_object_ex (overlapped.hEvent, INFINITE, TRUE);
if (ret == WAIT_IO_COMPLETION) {
- LOGDEBUG (g_message ("%06d - WaitForSingleObjectEx () returned WSA_WAIT_IO_COMPLETION for socket %d", GetCurrentThreadId (), hSocket));
+ LOGDEBUG (g_message ("%06d - mono_win32_wait_for_single_object_ex () returned WSA_WAIT_IO_COMPLETION for socket %d", GetCurrentThreadId (), hSocket));
error = WSAEINTR;
} else if (ret == WAIT_TIMEOUT) {
error = WSAETIMEDOUT;
{
gboolean ret;
MONO_ENTER_GC_SAFE;
- ret = CloseHandle (sock);
+ ret = closesocket (sock);
MONO_EXIT_GC_SAFE;
return ret;
}
#include <mono/metadata/object-internals.h>
+#ifndef HOST_WIN32
#define INVALID_SOCKET ((SOCKET)(guint32)(~0))
#define SOCKET_ERROR (-1)
-#ifndef HOST_WIN32
typedef gint SOCKET;
typedef struct {
if (par->gshared_constraint) {
MonoGSharedGenericParam *gpar = (MonoGSharedGenericParam*)par;
encode_type (acfg, par->gshared_constraint, p, &p);
- encode_klass_ref (acfg, mono_class_from_generic_parameter (gpar->parent, NULL, klass->byval_arg.type == MONO_TYPE_MVAR), p, &p);
+ encode_klass_ref (acfg, mono_class_from_generic_parameter_internal (gpar->parent), p, &p);
} else {
encode_value (klass->byval_arg.type, p, &p);
encode_value (mono_type_get_generic_param_num (&klass->byval_arg), p, &p);
*(int*)margs->retval = res;
}
+static void
+wasm_invoke_iiiiiiiii (void *target_func, InterpMethodArguments *margs)
+{
+ int (*func)(gpointer a, gpointer b, gpointer c, gpointer d, gpointer e, gpointer f, gpointer g, gpointer h) = target_func;
+ int res = func (margs->iargs [0], margs->iargs [1], margs->iargs [2], margs->iargs [3], margs->iargs [4], margs->iargs [5], margs->iargs [6], margs->iargs [7]);
+ *(int*)margs->retval = res;
+}
+
+
typedef union {
gint64 l;
struct {
} pair;
} interp_pair;
+static void
+wasm_invoke_l (void *target_func, InterpMethodArguments *margs)
+{
+ gint64 (*func)(void) = target_func;
+
+ gint64 res = func ();
+ *(gint64*)margs->retval = res;
+}
+
static void
wasm_invoke_ll (void *target_func, InterpMethodArguments *margs)
{
*(float*)&margs->iargs [1]);
}
+static void
+wasm_invoke_ff (void *target_func, InterpMethodArguments *margs)
+{
+ float (*func)(float a) = target_func;
+
+ float res = func (*(float*)&margs->fargs [FIDX (0)]);
+ *(float*)margs->retval = res;
+}
+
static void
wasm_enter_icall_trampoline (void *target_func, InterpMethodArguments *margs)
{
wasm_invoke_iiiii (target_func, margs);
else if (!strcmp ("IIIIII", cookie))
wasm_invoke_iiiiii (target_func, margs);
+ else if (!strcmp ("IIIIIIIII", cookie))
+ wasm_invoke_iiiiiiiii (target_func, margs);
+ else if (!strcmp ("L", cookie))
+ wasm_invoke_l (target_func, margs);
else if (!strcmp ("LL", cookie))
wasm_invoke_ll (target_func, margs);
else if (!strcmp ("LI", cookie))
wasm_invoke_viffff (target_func, margs);
else if (!strcmp ("VIFFFFFI", cookie))
wasm_invoke_vifffffi (target_func, margs);
+ else if (!strcmp ("FF", cookie))
+ wasm_invoke_ff (target_func, margs);
else {
printf ("CANNOT HANDLE COOKIE %s\n", cookie);
g_assert (0);
return code;
}
-#endif
+#else /* TARGET_WASM */
+
+MONO_EMPTY_SOURCE_FILE (aot_runtime_wasm);
+
+#endif /* TARGET_WASM */
public delegate void ArrayDelegate (int[,] arr);
+ [Category ("!WASM")] //Requires a working threadpool
static int test_0_array_delegate_full_aot () {
ArrayDelegate d = delegate (int[,] arr) {
};
[Category ("DYNCALL")]
[Category ("!FULLAOT-AMD64")]
+ [Category ("!INTERPRETER")] //known bug in the interpreter
public static int test_0_dyncall_nullable () {
int? v;
[Category ("DYNCALL")]
[Category ("!FULLAOT-AMD64")]
+ [Category ("!INTERPRETER")] //known bug in the interpreter
public static int test_0_large_nullable_invoke () {
var s = new LargeStruct () { a = 1, b = 2, c = 3, d = 4 };
return 0;
}
+#if !__MOBILE__
public static int Main (String[] args) {
return TestDriver.RunTests (typeof (BuiltinTests), args);
}
+#endif
}
vcall2: len:40 clob:c
vcall2_reg: src1:i len:40 clob:c
vcall2_membase: src1:b len:40 clob:c
-dyn_call: src1:i src2:i len:192 clob:c
+dyn_call: src1:i src2:i len:216 clob:c
# This is different from the original JIT opcodes
float_beq: len:32
float_clt: dest:i src1:f src2:f len:16
float_clt_un: dest:i src1:f src2:f len:20
float_conv_to_u: dest:i src1:f len:36
+float_cneq: dest:i src1:f src2:f len:16
+float_cge: dest:i src1:f src2:f len:16
+float_cle: dest:i src1:f src2:f len:16
call_handler: len:12 clob:c
endfilter: src1:i len:32
aot_const: dest:i len:8
int_clt: dest:i len:12
int_clt_un: dest:i len:12
+int_cneq: dest:i len:12
+int_cge: dest:i len:12
+int_cle: dest:i len:12
+int_cge_un: dest:i len:12
+int_cle_un: dest:i len:12
+
cond_exc_ieq: len:8
cond_exc_ine_un: len:8
cond_exc_ilt: len:8
float_clt: dest:i src1:f src2:f len:16
float_clt_un: dest:i src1:f src2:f len:20
float_conv_to_u: dest:i src1:f len:36
+float_cneq: dest:i src1:f src2:f len:16
+float_cge: dest:i src1:f src2:f len:16
+float_cle: dest:i src1:f src2:f len:16
call_handler: len:12 clob:c
endfilter: src1:i len:20
aot_const: dest:i len:8
int_clt: dest:i len:12
int_clt_un: dest:i len:12
+int_cneq: dest:i len:12
+int_cge: dest:i len:12
+int_cle: dest:i len:12
+int_cge_un: dest:i len:12
+int_cle_un: dest:i len:12
+
cond_exc_ieq: len:8
cond_exc_ine_un: len:8
cond_exc_ilt: len:8
tls->abort_requested = TRUE;
- mono_thread_internal_abort (THREAD_TO_INTERNAL (thread));
+ mono_thread_internal_abort (THREAD_TO_INTERNAL (thread), FALSE);
mono_loader_unlock ();
break;
}
}
-class Tests {
+class DevirtualizationTests {
+#if !__MOBILE__
static int Main (string[] args) {
- return TestDriver.RunTests (typeof (Tests), args);
+ return TestDriver.RunTests (typeof (DevirtualizationTests), args);
}
+#endif
static public int test_0_sealed_class_devirt_right_method () {
SealedFinal x = new SealedFinal ();
#include "mono/utils/mono-hwcap.h"
#include "mono/utils/mono-logger-internals.h"
#include "mono/metadata/w32handle.h"
+#include "mono/metadata/callspec.h"
#include "mini.h"
#include "jit.h"
* Need to call this before mini_init () so we can trace methods
* compiled there too.
*/
- mono_jit_trace_calls = mono_trace_parse_options (trace_options);
+ mono_jit_trace_calls = mono_trace_set_options (trace_options);
if (mono_jit_trace_calls == NULL)
exit (1);
}
* Need to call this before mini_init () so we can trace methods
* compiled there too.
*/
- mono_jit_trace_calls = mono_trace_parse_options (trace_options);
+ mono_jit_trace_calls = mono_trace_set_options (trace_options);
if (mono_jit_trace_calls == NULL)
exit (1);
}
return 2;
}
- if (trace_options != NULL)
- mono_trace_set_assembly (assembly);
+ mono_callspec_set_assembly (assembly);
if (mono_compile_aot || action == DO_EXEC) {
const char *error;
gboolean
mono_jit_set_trace_options (const char* options)
{
- MonoTraceSpec *trace_opt = mono_trace_parse_options (options);
+ MonoCallSpec *trace_opt = mono_trace_set_options (options);
if (trace_opt == NULL)
return FALSE;
mono_jit_trace_calls = trace_opt;
return 0;
}
+ [Category ("!WASM")] // reported as https://github.com/kripken/emscripten/issues/5603
public static int test_0_simple_double_casts () {
double d = 0xffffffff;
/*
* Regression tests for the GC support in the JIT
*/
-
-class Tests {
-
- static int Main () {
- return TestDriver.RunTests (typeof (Tests));
- }
+#if __MOBILE__
+class GcTests
+#else
+class Tests
+#endif
+{
+#if !__MOBILE__
+ public static int Main (string[] args) {
+ return TestDriver.RunTests (typeof (Tests), args);
+ }
+#endif
public static int test_36_simple () {
// Overflow the registers
return 0;
}
+ class ObjWithShiftOp {
+ public static ObjWithShiftOp operator >> (ObjWithShiftOp bi1, int shiftVal) {
+ clobber_regs_and_gc ();
+ return bi1;
+ }
+ }
+
// Liveness for spill slots holding managed pointers
public static int test_0_liveness_11 () {
- Tests[] arr = new Tests [10];
+ ObjWithShiftOp[] arr = new ObjWithShiftOp [10];
// This uses an ldelema internally
// FIXME: This doesn't crash if mp-s are not correctly tracked, just writes to
// an old object.
return 0;
}
- public static Tests operator >> (Tests bi1, int shiftVal) {
- clobber_regs_and_gc ();
- return bi1;
- }
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static void liveness_12_inner (int a, int b, int c, int d, int e, int f, object o, ref string s) {
}
}
+ struct StructTest : IFaceTest {
+
+ int i;
+
+ public StructTest (int arg) {
+ i = arg;
+ }
+
+ public int iface_method () {
+ return i;
+ }
+ }
+
// Test constrained calls on an interface made from gsharedvt methods
public static int test_42_gsharedvt_constrained_iface () {
IFaceConstrainedIFace obj = new ConstrainedIFace ();
return obj.foo<IFaceTest, int> (ref t);
}
+ public static int test_42_gsharedvt_constrained_iface_vtype () {
+ IFaceConstrainedIFace obj = new ConstrainedIFace ();
+ IFaceTest t = new StructTest (42);
+ return obj.foo<IFaceTest, int> (ref t);
+ }
+
// Sign extension tests
// 0x55 == 85 == 01010101
// 0xAA == 170 == 10101010
ldc.i4.0
ret
}
+
+ .method public static bool llvm_regress_59436 () {
+ // Code size 41 (0x29)
+ .maxstack 3
+ .locals init (float64 V_0,
+ float64 V_1,
+ valuetype [mscorlib]System.Decimal V_2)
+ IL_0000: ldc.r8 1
+ IL_0009: stloc.0
+ IL_000a: ldc.r8 2
+ IL_0013: stloc.1
+ IL_0014: ldloc.0
+ IL_0015: newobj instance void [mscorlib]System.Decimal::.ctor(float64)
+ IL_001a: ldloca.s V_2
+ IL_001c: ldloc.1
+ IL_001d: call instance void [mscorlib]System.Decimal::.ctor(float64)
+ IL_0022: ldloc.2
+ IL_0023: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal,
+ valuetype [mscorlib]System.Decimal)
+ IL_0028: ret
+ }
+
+ .method private hidebysig static void fail_inline() cil managed
+ {
+ // Code size 9 (0x9)
+ .maxstack 8
+ IL_0000: ldc.i4.s 16
+ IL_0002: conv.u
+ IL_0003: ldc.i4.1
+ IL_0004: mul.ovf.un
+ IL_0005: localloc
+ IL_0007: pop
+ IL_0008: ret
+ }
+
+ .method private hidebysig static int32
+ always_inline(int32 op) cil managed aggressiveinlining
+ {
+ // Code size 24 (0x18)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: brfalse.s IL_0009
+
+ IL_0003: ldarg.0
+ IL_0004: ldc.i4.2
+ IL_0005: beq.s IL_000b
+
+ IL_0007: br.s IL_000d
+
+ IL_0009: ldc.i4.0
+ IL_000a: ret
+
+ IL_000b: ldc.i4.3
+ IL_000c: ret
+
+ IL_000d: call void Tests::fail_inline()
+ IL_0012: newobj instance void [mscorlib]System.Exception::.ctor()
+ IL_0017: throw
+ }
+
+ .method public hidebysig static int32 test_3_regress_59608() cil managed
+ {
+ .maxstack 8
+ IL_0000: ldc.i4.2
+ IL_0001: call int32 Tests::always_inline(int32)
+ IL_000c: ret
+ }
+
+ .method public hidebysig static int32 test_104_conv_u_and_string() cil managed
+ {
+ .maxstack 8
+ ldstr "hello"
+ conv.u
+ call int32 [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData()
+ add
+ ldind.u2
+ ret
+ }
+
}
/* needed on arm64 */
if (isinf (sp [-1].data.f))
sp [-1].data.i = 0;
+ /* needed by wasm */
+ else if (isnan (sp [-1].data.f))
+ sp [-1].data.i = 0;
else
sp [-1].data.i = (guint32)sp [-1].data.f;
++ip;
return;
} else {
/* mheader might not exist if this is a delegate invoc, etc */
- if (mheader && *mheader->code == CEE_RET && called_inited) {
+ gboolean has_vt_arg = FALSE;
+ for (i = 0; i < csignature->param_count; i++)
+ has_vt_arg |= !mini_type_is_reference (csignature->params [i]);
+
+ if (mheader && *mheader->code == CEE_RET && called_inited && !has_vt_arg) {
if (td->verbose_level)
g_print ("Inline (empty) call of %s.%s\n", target_method->klass->name, target_method->name);
for (i = 0; i < csignature->param_count; i++) {
#endif
break;
case STACK_TYPE_MP:
+ case STACK_TYPE_O:
break;
default:
g_assert_not_reached ();
MonoException *
mono_interp_transform_method (InterpMethod *imethod, ThreadContext *context)
{
+ MonoError error;
int i, align, size, offset;
MonoMethod *method = imethod->method;
MonoImage *image = method->klass->image;
MonoDomain *domain = imethod->domain;
// g_printerr ("TRANSFORM(0x%016lx): begin %s::%s\n", mono_thread_current (), method->klass->name, method->name);
- method_class_vt = mono_class_vtable (domain, imethod->method->klass);
+ method_class_vt = mono_class_vtable_full (domain, imethod->method->klass, &error);
+ if (!is_ok (&error))
+ return mono_error_convert_to_exception (&error);
+
if (!method_class_vt->initialized) {
- MonoError error;
jmp_buf env;
InterpFrame *last_env_frame = context->env_frame;
jmp_buf *old_env = context->current_env;
break;
case MonoInlineMethod:
if (method->wrapper_type == MONO_WRAPPER_NONE && *ip != CEE_CALLI) {
- m = mono_get_method_full (image, read32 (ip + 1), NULL, generic_context);
- if (m == NULL) {
+ m = mono_get_method_checked (image, read32 (ip + 1), NULL, generic_context, &error);
+ if (!is_ok (&error)) {
g_free (is_bb_start);
- g_error ("FIXME: where to get method and class string?");
- return NULL;
- // return mono_get_exception_missing_method ();
+ return mono_error_convert_to_exception (&error);
}
mono_class_init (m->klass);
if (!mono_class_is_interface (m->klass))
{
MonoMethod *m;
int vt_slot, iface_offset;
+ gboolean is_iface = FALSE;
error_init (error);
if (mono_class_is_interface (klass)) {
MonoObject *this_obj;
+ is_iface = TRUE;
+
/* Have to use the receiver's type instead of klass, the receiver is a ref type */
this_obj = *(MonoObject**)mp;
g_assert (this_obj);
m = mono_class_inflate_generic_method (m, mono_method_get_context (cmethod));
}
- if (klass->valuetype && (m->klass == mono_defaults.object_class || m->klass == mono_defaults.enum_class->parent || m->klass == mono_defaults.enum_class))
+ if (klass->valuetype && (m->klass == mono_defaults.object_class || m->klass == mono_defaults.enum_class->parent || m->klass == mono_defaults.enum_class)) {
/*
* Calling a non-vtype method with a vtype receiver, has to box.
*/
*this_arg = mono_value_box_checked (mono_domain_get (), klass, mp, error);
- else if (klass->valuetype)
- /*
- * Calling a vtype method with a vtype receiver
- */
- *this_arg = mp;
- else
+ } else if (klass->valuetype) {
+ if (is_iface) {
+ /*
+ * The original type is an interface, so the receiver is a ref,
+ the called method is a vtype method, need to unbox.
+ */
+ MonoObject *this_obj = *(MonoObject**)mp;
+
+ *this_arg = mono_object_unbox (this_obj);
+ } else {
+ /*
+ * Calling a vtype method with a vtype receiver
+ */
+ *this_arg = mp;
+ }
+ } else {
/*
* Calling a non-vtype method
*/
*this_arg = *(gpointer*)mp;
+ }
+
return m;
}
break;
case STACK_PTR:
case STACK_MP:
+ case STACK_OBJ:
#if SIZEOF_VOID_P == 8
ins->opcode = OP_LCONV_TO_U;
#else
prev_args = cfg->args;
prev_arg_types = cfg->arg_types;
prev_inlined_method = cfg->inlined_method;
- cfg->inlined_method = cmethod;
- cfg->ret_var_set = FALSE;
- cfg->inline_depth ++;
+ prev_ret_var_set = cfg->ret_var_set;
prev_real_offset = cfg->real_offset;
prev_cbb_hash = cfg->cbb_hash;
prev_cil_offset_to_bb = cfg->cil_offset_to_bb;
prev_cbb = cfg->cbb;
prev_current_method = cfg->current_method;
prev_generic_context = cfg->generic_context;
- prev_ret_var_set = cfg->ret_var_set;
prev_disable_inline = cfg->disable_inline;
+ cfg->inlined_method = cmethod;
+ cfg->ret_var_set = FALSE;
+ cfg->inline_depth ++;
+
if (ip && *ip == CEE_CALLVIRT && !(cmethod->flags & METHOD_ATTRIBUTE_STATIC))
virtual_ = TRUE;
cfg->dyn_call_var->flags |= MONO_INST_VOLATILE;
}
- /* Has to use a call inst since it local regalloc expects it */
+ /* Has to use a call inst since local regalloc expects it */
MONO_INST_NEW_CALL (cfg, call, OP_DYN_CALL);
ins = (MonoInst*)call;
sp -= 2;
MONO_ADD_INS (cfg->cbb, ins);
cfg->param_area = MAX (cfg->param_area, cfg->backend->dyn_call_param_area);
+ /* OP_DYN_CALL might need to allocate a dynamically sized param area */
+ cfg->flags |= MONO_CFG_HAS_ALLOCA;
ip += 2;
inline_costs += 10 * num_calls++;
typedef struct {
MonoMethodSignature *sig;
CallInfo *cinfo;
+ int nstack_args;
} ArchDynCallInfo;
static gboolean
case ArgInFloatSSEReg:
case ArgInDoubleSSEReg:
case ArgValuetypeInReg:
- break;
case ArgOnStack:
- if (!(ainfo->offset + (ainfo->arg_size / 8) <= DYN_CALL_STACK_ARGS))
- return FALSE;
break;
default:
return FALSE;
{
ArchDynCallInfo *info;
CallInfo *cinfo;
+ int i;
cinfo = get_call_info (NULL, sig);
// FIXME: Preprocess the info to speed up get_dyn_call_args ().
info->sig = sig;
info->cinfo = cinfo;
+ info->nstack_args = 0;
+
+ for (i = 0; i < cinfo->nargs; ++i) {
+ ArgInfo *ainfo = &cinfo->args [i];
+ switch (ainfo->storage) {
+ case ArgOnStack:
+ info->nstack_args = MAX (info->nstack_args, ainfo->offset + (ainfo->arg_size / 8));
+ break;
+ default:
+ break;
+ }
+ }
+ /* Align to 16 bytes */
+ if (info->nstack_args & 1)
+ info->nstack_args ++;
return (MonoDynCallInfo*)info;
}
g_free (ainfo);
}
+int
+mono_arch_dyn_call_get_buf_size (MonoDynCallInfo *info)
+{
+ ArchDynCallInfo *ainfo = (ArchDynCallInfo*)info;
+
+ /* Extend the 'regs' field dynamically */
+ return sizeof (DynCallArgs) + (ainfo->nstack_args * sizeof (mgreg_t));
+}
+
#define PTR_TO_GREG(ptr) (mgreg_t)(ptr)
#define GREG_TO_PTR(greg) (gpointer)(greg)
* libffi.
*/
void
-mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf, int buf_len)
+mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf)
{
ArchDynCallInfo *dinfo = (ArchDynCallInfo*)info;
DynCallArgs *p = (DynCallArgs*)buf;
param_reg_to_index_inited = 1;
}
- g_assert (buf_len >= sizeof (DynCallArgs));
-
p->res = 0;
p->ret = ret;
+ p->nstack_args = dinfo->nstack_args;
arg_index = 0;
greg = 0;
code = emit_move_return_value (cfg, ins, code);
break;
case OP_DYN_CALL: {
- int i;
+ int i, limit_reg, index_reg, src_reg, dst_reg;
MonoInst *var = cfg->dyn_call_var;
guint8 *label;
+ guint8 *buf [16];
g_assert (var->opcode == OP_REGOFFSET);
amd64_sse_movsd_reg_membase (code, i, AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, fregs) + (i * sizeof (double)));
amd64_patch (label, code);
+ /* Allocate param area */
+ /* This doesn't need to be freed since OP_DYN_CALL is never called in a loop */
+ amd64_mov_reg_membase (code, AMD64_RAX, AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, nstack_args), 8);
+ amd64_shift_reg_imm (code, X86_SHL, AMD64_RAX, 3);
+ amd64_alu_reg_reg (code, X86_SUB, AMD64_RSP, AMD64_RAX);
/* Set stack args */
- for (i = 0; i < DYN_CALL_STACK_ARGS; ++i) {
- amd64_mov_reg_membase (code, AMD64_RAX, AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, regs) + ((PARAM_REGS + i) * sizeof(mgreg_t)), sizeof(mgreg_t));
- amd64_mov_membase_reg (code, AMD64_RSP, i * sizeof (mgreg_t), AMD64_RAX, sizeof (mgreg_t));
- }
+ /* rax/rcx/rdx/r8/r9 is scratch */
+ limit_reg = AMD64_RAX;
+ index_reg = AMD64_RCX;
+ src_reg = AMD64_R8;
+ dst_reg = AMD64_R9;
+ amd64_mov_reg_membase (code, limit_reg, AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, nstack_args), 8);
+ amd64_mov_reg_imm (code, index_reg, 0);
+ amd64_lea_membase (code, src_reg, AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, regs) + ((PARAM_REGS) * sizeof(mgreg_t)));
+ amd64_mov_reg_reg (code, dst_reg, AMD64_RSP, 8);
+ buf [0] = code;
+ x86_jump8 (code, 0);
+ buf [1] = code;
+ amd64_mov_reg_membase (code, AMD64_RDX, src_reg, 0, 8);
+ amd64_mov_membase_reg (code, dst_reg, 0, AMD64_RDX, 8);
+ amd64_alu_reg_imm (code, X86_ADD, index_reg, 1);
+ amd64_alu_reg_imm (code, X86_ADD, src_reg, 8);
+ amd64_alu_reg_imm (code, X86_ADD, dst_reg, 8);
+ amd64_patch (buf [0], code);
+ amd64_alu_reg_reg (code, X86_CMP, index_reg, limit_reg);
+ buf [2] = code;
+ x86_branch8 (code, X86_CC_LT, 0, FALSE);
+ amd64_patch (buf [2], buf [1]);
/* Set argument registers */
for (i = 0; i < PARAM_REGS; ++i)
- amd64_mov_reg_membase (code, param_regs [i], AMD64_R11, i * sizeof(mgreg_t), sizeof(mgreg_t));
+ amd64_mov_reg_membase (code, param_regs [i], AMD64_R11, MONO_STRUCT_OFFSET (DynCallArgs, regs) + (i * sizeof(mgreg_t)), sizeof(mgreg_t));
/* Make the call */
amd64_call_reg (code, AMD64_R10);
gpointer bp_addrs [MONO_ZERO_LEN_ARRAY];
} SeqPointInfo;
-#define DYN_CALL_STACK_ARGS 6
-
typedef struct {
- mgreg_t regs [PARAM_REGS + DYN_CALL_STACK_ARGS];
mgreg_t res;
guint8 *ret;
double fregs [8];
mgreg_t has_fp;
+ mgreg_t nstack_args;
guint8 buffer [256];
+ /* This should come last as the structure is dynamically extended */
+ mgreg_t regs [PARAM_REGS];
} DynCallArgs;
typedef enum {
#define MONO_ARCH_GSHARED_SUPPORTED 1
#define MONO_ARCH_DYN_CALL_SUPPORTED 1
-#define MONO_ARCH_DYN_CALL_PARAM_AREA (DYN_CALL_STACK_ARGS * 8)
+#define MONO_ARCH_DYN_CALL_PARAM_AREA 0
#define MONO_ARCH_LLVM_SUPPORTED 1
#define MONO_ARCH_HAVE_CARD_TABLE_WBARRIER 1
g_free (ainfo);
}
+int
+mono_arch_dyn_call_get_buf_size (MonoDynCallInfo *info)
+{
+ return sizeof (DynCallArgs);
+}
+
void
-mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf, int buf_len)
+mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf)
{
ArchDynCallInfo *dinfo = (ArchDynCallInfo*)info;
DynCallArgs *p = (DynCallArgs*)buf;
int arg_index, greg, i, j, pindex;
MonoMethodSignature *sig = dinfo->sig;
- g_assert (buf_len >= sizeof (DynCallArgs));
-
p->res = 0;
p->ret = ret;
p->has_fpregs = 0;
{
int i;
- if (sig->hasthis + sig->param_count > PARAM_REGS + DYN_CALL_STACK_ARGS)
- return FALSE;
-
// FIXME: Add more cases
switch (cinfo->ret.storage) {
case ArgNone:
case ArgInFRegR4:
case ArgHFA:
case ArgVtypeByRef:
- break;
case ArgOnStack:
- if (ainfo->offset >= DYN_CALL_STACK_ARGS * sizeof (mgreg_t))
- return FALSE;
break;
default:
return FALSE;
g_free (ainfo);
}
+int
+mono_arch_dyn_call_get_buf_size (MonoDynCallInfo *info)
+{
+ ArchDynCallInfo *ainfo = (ArchDynCallInfo*)info;
+
+ g_assert (ainfo->cinfo->stack_usage % MONO_ARCH_FRAME_ALIGNMENT == 0);
+ return sizeof (DynCallArgs) + ainfo->cinfo->stack_usage;
+}
+
static double
bitcast_r4_to_r8 (float f)
{
}
void
-mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf, int buf_len)
+mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf)
{
ArchDynCallInfo *dinfo = (ArchDynCallInfo*)info;
DynCallArgs *p = (DynCallArgs*)buf;
CallInfo *cinfo = dinfo->cinfo;
int buffer_offset = 0;
- g_assert (buf_len >= sizeof (DynCallArgs));
-
p->res = 0;
p->ret = ret;
p->n_fpargs = dinfo->n_fpargs;
p->n_fpret = dinfo->n_fpret;
+ p->n_stackargs = cinfo->stack_usage / sizeof (mgreg_t);
arg_index = 0;
greg = 0;
code = emit_ldrfpx (code, ARMREG_D0 + i, ARMREG_LR, MONO_STRUCT_OFFSET (DynCallArgs, fpregs) + (i * 8));
arm_patch_rel (labels [0], code, MONO_R_ARM64_BCC);
+ /* Allocate callee area */
+ code = emit_ldrx (code, ARMREG_R0, ARMREG_LR, MONO_STRUCT_OFFSET (DynCallArgs, n_stackargs));
+ arm_lslw (code, ARMREG_R0, ARMREG_R0, 3);
+ arm_movspx (code, ARMREG_R1, ARMREG_SP);
+ arm_subx (code, ARMREG_R1, ARMREG_R1, ARMREG_R0);
+ arm_movspx (code, ARMREG_SP, ARMREG_R1);
+
/* Set stack args */
- for (i = 0; i < DYN_CALL_STACK_ARGS; ++i) {
- code = emit_ldrx (code, ARMREG_R0, ARMREG_LR, MONO_STRUCT_OFFSET (DynCallArgs, regs) + ((PARAM_REGS + 1 + i) * sizeof (mgreg_t)));
- code = emit_strx (code, ARMREG_R0, ARMREG_SP, i * sizeof (mgreg_t));
- }
+ /* R1 = limit */
+ code = emit_ldrx (code, ARMREG_R1, ARMREG_LR, MONO_STRUCT_OFFSET (DynCallArgs, n_stackargs));
+ /* R2 = pointer into 'regs' */
+ code = emit_imm (code, ARMREG_R2, MONO_STRUCT_OFFSET (DynCallArgs, regs) + ((PARAM_REGS + 1) * sizeof (mgreg_t)));
+ arm_addx (code, ARMREG_R2, ARMREG_LR, ARMREG_R2);
+ /* R3 = pointer to stack */
+ arm_movspx (code, ARMREG_R3, ARMREG_SP);
+ labels [0] = code;
+ arm_b (code, code);
+ labels [1] = code;
+ code = emit_ldrx (code, ARMREG_R5, ARMREG_R2, 0);
+ code = emit_strx (code, ARMREG_R5, ARMREG_R3, 0);
+ code = emit_addx_imm (code, ARMREG_R2, ARMREG_R2, sizeof (mgreg_t));
+ code = emit_addx_imm (code, ARMREG_R3, ARMREG_R3, sizeof (mgreg_t));
+ code = emit_subx_imm (code, ARMREG_R1, ARMREG_R1, 1);
+ arm_patch_rel (labels [0], code, MONO_R_ARM64_B);
+ arm_cmpw (code, ARMREG_R1, ARMREG_RZR);
+ arm_bcc (code, ARMCOND_GT, labels [1]);
/* Set argument registers + r8 */
- code = mono_arm_emit_load_regarray (code, 0x1ff, ARMREG_LR, 0);
+ code = mono_arm_emit_load_regarray (code, 0x1ff, ARMREG_LR, MONO_STRUCT_OFFSET (DynCallArgs, regs));
/* Make the call */
arm_blrx (code, ARMREG_IP1);
#define PARAM_REGS 8
#define FP_PARAM_REGS 8
-#define DYN_CALL_STACK_ARGS 6
-
typedef struct {
- /* The +1 is for r8 */
- mgreg_t regs [PARAM_REGS + 1 + DYN_CALL_STACK_ARGS];
mgreg_t res, res2;
guint8 *ret;
double fpregs [FP_PARAM_REGS];
- int n_fpargs, n_fpret;
+ int n_fpargs, n_fpret, n_stackargs;
guint8 buffer [256];
+ /* This should come last as the structure is dynamically extended */
+ /* The +1 is for r8 */
+ mgreg_t regs [PARAM_REGS + 1];
} DynCallArgs;
typedef struct {
#define MONO_ARCH_HAVE_EXCEPTIONS_INIT 1
#define MONO_ARCH_HAVE_GET_TRAMPOLINES 1
#define MONO_ARCH_DYN_CALL_SUPPORTED 1
-#define MONO_ARCH_DYN_CALL_PARAM_AREA (DYN_CALL_STACK_ARGS * 8)
+#define MONO_ARCH_DYN_CALL_PARAM_AREA 0
#define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1
#define MONO_ARCH_GSHAREDVT_SUPPORTED 1
#define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
int i;
gboolean val = FALSE;
+ if (m->wrapper_type == MONO_WRAPPER_DYNAMIC_METHOD) {
+ MonoDynamicMethod *dm = (MonoDynamicMethod *)m;
+ if (dm->assembly)
+ ass = dm->assembly;
+ }
g_assert (ass);
if (ass->wrap_non_exception_throws_inited)
return ass->wrap_non_exception_throws;
if (mono_ex->trace_ips) {
GList *trace_ips = NULL;
- gpointer ip = RETURN_ADDRESS ();
+ gpointer ip = MONO_RETURN_ADDRESS ();
size_t upper = mono_array_length (mono_ex->trace_ips);
static LLVMTypeRef
type_to_llvm_type (EmitContext *ctx, MonoType *t)
{
+ if (t->byref)
+ return ThisType ();
+
t = mini_get_underlying_type (t);
switch (t->type) {
int i, pindex;
MonoType *rtype;
- rtype = mini_get_underlying_type (sig->ret);
- ret_type = type_to_llvm_type (ctx, rtype);
+ ret_type = type_to_llvm_type (ctx, sig->ret);
if (!ctx_ok (ctx))
return NULL;
+ rtype = mini_get_underlying_type (sig->ret);
param_types = g_new0 (LLVMTypeRef, (sig->param_count * 8) + 3);
pindex = 0;
if (!cinfo)
return sig_to_llvm_sig_no_cinfo (ctx, sig);
- rtype = mini_get_underlying_type (sig->ret);
- ret_type = type_to_llvm_type (ctx, rtype);
+ ret_type = type_to_llvm_type (ctx, sig->ret);
if (!ctx_ok (ctx))
return NULL;
+ rtype = mini_get_underlying_type (sig->ret);
switch (cinfo->ret.storage) {
case LLVMArgVtypeInReg:
/* regression test suite */
if (!strcmp ("builtin-types", klass->image->assembly_name))
return TRUE;
+ if (!strcmp ("mini_tests", klass->image->assembly_name))
+ return TRUE;
return FALSE;
}
fr = PPC_FIRST_FPARG_REG;
gr = PPC_FIRST_ARG_REG;
- /* FIXME: handle returning a struct */
- if (MONO_TYPE_ISSTRUCT (sig->ret)) {
+ if (mini_type_is_vtype (sig->ret)) {
cinfo->vtype_retaddr = TRUE;
}
ppc_mtctr (code, ins->sreg1);
ppc_bcctr (code, PPC_BR_ALWAYS, 0);
break;
+ case OP_ICNEQ:
+ ppc_li (code, ins->dreg, 0);
+ ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 2);
+ ppc_li (code, ins->dreg, 1);
+ break;
case OP_CEQ:
case OP_ICEQ:
CASE_PPC64 (OP_LCEQ)
ppc_bc (code, PPC_BR_TRUE, PPC_BR_LT, 2);
ppc_li (code, ins->dreg, 0);
break;
+ case OP_ICGE:
+ case OP_ICGE_UN:
+ ppc_li (code, ins->dreg, 1);
+ ppc_bc (code, PPC_BR_FALSE, PPC_BR_LT, 2);
+ ppc_li (code, ins->dreg, 0);
+ break;
case OP_CGT:
case OP_CGT_UN:
case OP_ICGT:
ppc_bc (code, PPC_BR_TRUE, PPC_BR_GT, 2);
ppc_li (code, ins->dreg, 0);
break;
+ case OP_ICLE:
+ case OP_ICLE_UN:
+ ppc_li (code, ins->dreg, 1);
+ ppc_bc (code, PPC_BR_FALSE, PPC_BR_GT, 2);
+ ppc_li (code, ins->dreg, 0);
+ break;
case OP_COND_EXC_EQ:
case OP_COND_EXC_NE_UN:
case OP_COND_EXC_LT:
ppc_fcmpu (code, 0, ins->sreg1, ins->sreg2);
break;
case OP_FCEQ:
+ case OP_FCNEQ:
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
- ppc_li (code, ins->dreg, 0);
- ppc_bc (code, PPC_BR_FALSE, PPC_BR_EQ, 2);
ppc_li (code, ins->dreg, 1);
+ ppc_bc (code, ins->opcode == OP_FCEQ ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_EQ, 2);
+ ppc_li (code, ins->dreg, 0);
break;
case OP_FCLT:
+ case OP_FCGE:
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
ppc_li (code, ins->dreg, 1);
- ppc_bc (code, PPC_BR_TRUE, PPC_BR_LT, 2);
+ ppc_bc (code, ins->opcode == OP_FCLT ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_LT, 2);
ppc_li (code, ins->dreg, 0);
break;
case OP_FCLT_UN:
ppc_li (code, ins->dreg, 0);
break;
case OP_FCGT:
+ case OP_FCLE:
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
ppc_li (code, ins->dreg, 1);
- ppc_bc (code, PPC_BR_TRUE, PPC_BR_GT, 2);
+ ppc_bc (code, ins->opcode == OP_FCGT ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_GT, 2);
ppc_li (code, ins->dreg, 0);
break;
case OP_FCGT_UN:
g_free (jit_tls);*/
if ((mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_LEGACY) ||
- (obj->vtable->klass == mono_defaults.threadabortexception_class)) {
+ (obj->vtable->klass == mono_defaults.threadabortexception_class) ||
+ ((obj->vtable->klass) == mono_class_get_appdomain_unloaded_exception_class () &&
+ mono_thread_info_current ()->runtime_thread)) {
mono_thread_exit ();
} else {
mono_invoke_unhandled_exception_hook (obj);
if (mono_class_is_contextbound (method->klass) || !info->compiled_method)
supported = FALSE;
- if (supported)
+ if (supported) {
info->dyn_call_info = mono_arch_dyn_call_prepare (sig);
+ if (debug_options.dyn_runtime_invoke)
+ g_assert (info->dyn_call_info);
+ }
}
#endif
MonoMethodSignature *sig = mono_method_signature (method);
gpointer *args;
static RuntimeInvokeDynamicFunction dyn_runtime_invoke;
- int i, pindex;
- guint8 buf [512];
+ int i, pindex, buf_size;
+ guint8 *buf;
guint8 retval [256];
if (!dyn_runtime_invoke) {
//printf ("M: %s\n", mono_method_full_name (method, TRUE));
- mono_arch_start_dyn_call (info->dyn_call_info, (gpointer**)args, retval, buf, sizeof (buf));
+ buf_size = mono_arch_dyn_call_get_buf_size (info->dyn_call_info);
+ buf = g_alloca (buf_size);
+ g_assert (buf);
+
+ mono_arch_start_dyn_call (info->dyn_call_info, (gpointer**)args, retval, buf);
dyn_runtime_invoke (buf, exc, info->compiled_method);
mono_arch_finish_dyn_call (info->dyn_call_info, buf);
void
mini_init_delegate (MonoDelegate *del)
{
- if (mono_llvm_only)
- del->extra_arg = mini_get_delegate_arg (del->method, del->method_ptr);
#ifdef ENABLE_INTERPRETER
if (mono_use_interpreter)
mono_interp_init_delegate (del);
+ else
#endif
+ if (mono_llvm_only)
+ del->extra_arg = mini_get_delegate_arg (del->method, del->method_ptr);
}
char*
#include <mono/utils/mono-membar.h>
#include <mono/utils/mono-compiler.h>
#include <mono/utils/mono-threads-coop.h>
+#include <mono/utils/unlocked.h>
#include "mini.h"
#include "lldb.h"
static GHashTable *rgctx_lazy_fetch_trampoline_hash;
static GHashTable *rgctx_lazy_fetch_trampoline_hash_addr;
-static guint32 trampoline_calls, jit_trampolines, unbox_trampolines, static_rgctx_trampolines;
+
+static gint32 trampoline_calls;
+static gint32 jit_trampolines;
+static gint32 unbox_trampolines;
+static gint32 static_rgctx_trampolines;
+static gint32 rgctx_unmanaged_lookups;
+static gint32 rgctx_num_lazy_fetch_trampolines;
#define mono_trampolines_lock() mono_os_mutex_lock (&trampolines_mutex)
#define mono_trampolines_unlock() mono_os_mutex_unlock (&trampolines_mutex)
info->m = m;
info->addr = addr;
g_hash_table_insert (domain_jit_info (domain)->static_rgctx_trampoline_hash, info, res);
- mono_domain_unlock (domain);
- static_rgctx_trampolines ++;
+ UnlockedIncrement (&static_rgctx_trampolines);
+ mono_domain_unlock (domain);
return res;
}
g_assert (mono_thread_is_gc_unsafe_mode ());
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
res = common_call_trampoline (regs, code, (MonoMethod *)arg, NULL, NULL, &error);
if (!is_ok (&error)) {
MonoError error;
gpointer addr, res = NULL;
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
/*
* We need to obtain the following pieces of information:
MonoMethod *imt_method, *declaring;
gpointer addr;
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
g_assert (m->is_generic);
guint8 *plt_entry;
MonoError error;
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
image = (MonoImage *)*(gpointer*)(gpointer)token_info;
token_info += sizeof (gpointer);
gpointer res;
MonoError error;
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
res = mono_aot_plt_resolve (aot_module, plt_info_offset, code, &error);
if (!res) {
{
MONO_REQ_GC_UNSAFE_MODE;
- static gboolean inited = FALSE;
- static int num_lookups = 0;
guint32 slot = GPOINTER_TO_UINT (data);
mgreg_t *r = (mgreg_t*)regs;
gpointer arg = (gpointer)(gssize)r [MONO_ARCH_VTABLE_REG];
MonoError error;
gpointer res;
- trampoline_calls ++;
-
- if (!inited) {
- mono_counters_register ("RGCTX unmanaged lookups", MONO_COUNTER_GENERICS | MONO_COUNTER_INT, &num_lookups);
- inited = TRUE;
- }
-
- num_lookups++;
+ UnlockedIncrement (&trampoline_calls);
+ UnlockedIncrement (&rgctx_unmanaged_lookups);
if (mrgctx)
res = mono_method_fill_runtime_generic_context ((MonoMethodRuntimeGenericContext *)arg, index, &error);
gpointer addr, compiled_method;
gboolean is_remote = FALSE;
- trampoline_calls ++;
+ UnlockedIncrement (&trampoline_calls);
/* Obtain the delegate object according to the calling convention */
delegate = (MonoDelegate *)mono_arch_get_this_arg_from_call (regs, code);
mono_counters_register ("JIT trampolines", MONO_COUNTER_JIT | MONO_COUNTER_INT, &jit_trampolines);
mono_counters_register ("Unbox trampolines", MONO_COUNTER_JIT | MONO_COUNTER_INT, &unbox_trampolines);
mono_counters_register ("Static rgctx trampolines", MONO_COUNTER_JIT | MONO_COUNTER_INT, &static_rgctx_trampolines);
+ mono_counters_register ("RGCTX unmanaged lookups", MONO_COUNTER_GENERICS | MONO_COUNTER_INT, &rgctx_unmanaged_lookups);
+ mono_counters_register ("RGCTX num lazy fetch trampolines", MONO_COUNTER_GENERICS | MONO_COUNTER_INT, &rgctx_num_lazy_fetch_trampolines);
}
void
mono_domain_lock (domain);
g_hash_table_insert (domain_jit_info (domain)->jit_trampoline_hash, method, tramp);
+ UnlockedIncrement (&jit_trampolines);
mono_domain_unlock (domain);
- jit_trampolines++;
-
return tramp;
}
tramp = mono_create_specific_trampoline (start, MONO_TRAMPOLINE_AOT, domain, NULL);
- jit_trampolines++;
+ UnlockedIncrement (&jit_trampolines);
return tramp;
}
gpointer
mono_create_rgctx_lazy_fetch_trampoline (guint32 offset)
{
- static gboolean inited = FALSE;
- static int num_trampolines = 0;
MonoTrampInfo *info;
-
gpointer tramp, ptr;
mono_trampolines_lock ();
g_hash_table_insert (rgctx_lazy_fetch_trampoline_hash, GUINT_TO_POINTER (offset), ptr);
g_assert (offset != -1);
g_hash_table_insert (rgctx_lazy_fetch_trampoline_hash_addr, ptr, GUINT_TO_POINTER (offset + 1));
+ rgctx_num_lazy_fetch_trampolines ++;
mono_trampolines_unlock ();
- if (!inited) {
- mono_counters_register ("RGCTX num lazy fetch trampolines",
- MONO_COUNTER_GENERICS | MONO_COUNTER_INT, &num_trampolines);
- inited = TRUE;
- }
- num_trampolines++;
-
return ptr;
}
#include "mini-llvm.h"
#include "lldb.h"
-MonoTraceSpec *mono_jit_trace_calls;
+MonoCallSpec *mono_jit_trace_calls;
MonoMethodDesc *mono_inject_async_exc_method;
int mono_inject_async_exc_pos;
MonoMethodDesc *mono_break_at_bb_method;
#include "mono/metadata/marshal.h"
#include "mono/metadata/security-manager.h"
#include "mono/metadata/exception.h"
+#include "mono/metadata/callspec.h"
/*
* The mini code should not have any compile time dependencies on the GC being used, so the same object file from mini/
* can be linked into both mono and mono-sgen.
*/
+#if !defined(MONO_DLL_EXPORT) || !defined(_MSC_VER)
#if defined(HAVE_BOEHM_GC) || defined(HAVE_SGEN_GC)
#error "The code in mini/ should not depend on these defines."
#endif
+#endif
#ifndef __GNUC__
/*#define __alignof__(a) sizeof(a)*/
typedef struct MonoBasicBlock MonoBasicBlock;
typedef struct MonoLMF MonoLMF;
typedef struct MonoSpillInfo MonoSpillInfo;
-typedef struct MonoTraceSpec MonoTraceSpec;
-extern MonoTraceSpec *mono_jit_trace_calls;
+extern MonoCallSpec *mono_jit_trace_calls;
extern gboolean mono_break_on_exc;
extern int mono_exc_esp_offset;
extern gboolean mono_compile_aot;
extern int mono_break_at_bb_bb_num;
extern gboolean mono_verify_all;
extern gboolean mono_do_x86_stack_align;
-extern const char *mono_build_date;
+extern MONO_API const char *mono_build_date;
extern gboolean mono_do_signal_chaining;
extern gboolean mono_do_crash_chaining;
extern MONO_API gboolean mono_use_llvm;
void mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val);
MonoDynCallInfo *mono_arch_dyn_call_prepare (MonoMethodSignature *sig);
void mono_arch_dyn_call_free (MonoDynCallInfo *info);
-void mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf, int buf_len);
+int mono_arch_dyn_call_get_buf_size (MonoDynCallInfo *info);
+void mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, guint8 *buf);
void mono_arch_finish_dyn_call (MonoDynCallInfo *info, guint8 *buf);
MonoInst *mono_arch_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig, MonoInst **args);
void mono_arch_decompose_opts (MonoCompile *cfg, MonoInst *ins);
MONO_API gboolean mono_breakpoint_clean_code (guint8 *method_start, guint8 *code, int offset, guint8 *buf, int size);
/* Tracing */
-MonoTraceSpec *mono_trace_parse_options (const char *options);
-void mono_trace_set_assembly (MonoAssembly *assembly);
+MonoCallSpec *mono_trace_set_options (const char *options);
gboolean mono_trace_eval (MonoMethod *method);
extern void
#if defined (HOST_WASM)
-#define RETURN_ADDRESS_N(N) NULL
-#define RETURN_ADDRESS() RETURN_ADDRESS_N(0)
+#define MONO_RETURN_ADDRESS_N(N) NULL
+#define MONO_RETURN_ADDRESS() MONO_RETURN_ADDRESS_N(0)
#elif defined (__GNUC__)
-#define RETURN_ADDRESS_N(N) (__builtin_extract_return_addr (__builtin_return_address (N)))
-#define RETURN_ADDRESS() RETURN_ADDRESS_N(0)
+#define MONO_RETURN_ADDRESS_N(N) (__builtin_extract_return_addr (__builtin_return_address (N)))
+#define MONO_RETURN_ADDRESS() MONO_RETURN_ADDRESS_N(0)
#elif defined(_MSC_VER)
#include <intrin.h>
#pragma intrinsic(_ReturnAddress)
-#define RETURN_ADDRESS() _ReturnAddress()
-#define RETURN_ADDRESS_N(N) NULL
+#define MONO_RETURN_ADDRESS() _ReturnAddress()
+#define MONO_RETURN_ADDRESS_N(N) NULL
#else
return 1;
}
+ [Category ("!WASM")] //Stack traces / EH are super broken on WASM + Interpreter
public static int test_0_stack_traces () {
//
// Get a stacktrace for an interp->jit->interp call stack
return a;
}
+#if __MOBILE__
+ public static test_2_old_test_suite () {
+ return test1 (1);
+ }
+#else
static int Main() {
if (test1 (1) != 2)
return 1;
return 0;
}
+#endif
}
}
#include <string.h>
#include "mini.h"
#include <mono/metadata/debug-helpers.h>
-#include <mono/metadata/assembly.h>
#include <mono/utils/mono-time.h>
#include <mono/utils/mono-memory-model.h>
#include "trace.h"
+#include <mono/metadata/callspec.h>
#if defined (HOST_ANDROID) || (defined (TARGET_IOS) && defined (TARGET_IOS))
# undef printf
# define fprintf(__ignore, ...) g_log ("mono-gc", G_LOG_LEVEL_MESSAGE, __VA_ARGS__)
#endif
-static MonoTraceSpec trace_spec;
+static MonoCallSpec trace_spec;
static volatile gint32 output_lock = 0;
-gboolean
-mono_trace_eval_exception (MonoClass *klass)
-{
- int include = 0;
- int i;
-
- if (!klass)
- return FALSE;
-
- for (i = 0; i < trace_spec.len; i++) {
- MonoTraceOperation *op = &trace_spec.ops [i];
- int inc = 0;
-
- switch (op->op){
- case MONO_TRACEOP_EXCEPTION:
- if (strcmp ("", op->data) == 0 && strcmp ("all", op->data2) == 0)
- inc = 1;
- else if (strcmp ("", op->data) == 0 || strcmp (klass->name_space, op->data) == 0)
- if (strcmp (klass->name, op->data2) == 0)
- inc = 1;
- break;
- default:
- break;
- }
- if (op->exclude){
- if (inc)
- include = 0;
- } else if (inc)
- include = 1;
- }
-
- return include;
-}
-
-gboolean
-mono_trace_eval (MonoMethod *method)
-{
- int include = 0;
- int i;
-
- for (i = 0; i < trace_spec.len; i++){
- MonoTraceOperation *op = &trace_spec.ops [i];
- int inc = 0;
-
- switch (op->op){
- case MONO_TRACEOP_ALL:
- inc = 1;
- break;
- case MONO_TRACEOP_PROGRAM:
- if (trace_spec.assembly && (method->klass->image == mono_assembly_get_image (trace_spec.assembly)))
- inc = 1;
- break;
- case MONO_TRACEOP_WRAPPER:
- if ((method->wrapper_type == MONO_WRAPPER_NATIVE_TO_MANAGED) ||
- (method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE))
- inc = 1;
- break;
- case MONO_TRACEOP_METHOD:
- if (mono_method_desc_full_match ((MonoMethodDesc *) op->data, method))
- inc = 1;
- break;
- case MONO_TRACEOP_CLASS:
- if (strcmp (method->klass->name_space, op->data) == 0)
- if (strcmp (method->klass->name, op->data2) == 0)
- inc = 1;
- break;
- case MONO_TRACEOP_ASSEMBLY:
- if (strcmp (mono_image_get_name (method->klass->image), op->data) == 0)
- inc = 1;
- break;
- case MONO_TRACEOP_NAMESPACE:
- if (strcmp (method->klass->name_space, op->data) == 0)
- inc = 1;
- break;
- case MONO_TRACEOP_EXCEPTION:
- break;
- }
- if (op->exclude) {
- if (inc)
- include = 0;
- } else if (inc) {
- include = 1;
- }
- }
- return include;
-}
-
-static int is_filenamechar (char p)
-{
- if (p >= 'A' && p <= 'Z')
- return TRUE;
- if (p >= 'a' && p <= 'z')
- return TRUE;
- if (p >= '0' && p <= '9')
- return TRUE;
- if (p == '.' || p == ':' || p == '_' || p == '-' || p == '`')
- return TRUE;
- return FALSE;
-}
-
-static char *input;
-static char *value;
-
-static void get_string (void)
+gboolean mono_trace_eval_exception (MonoClass *klass)
{
- char *start = input;
- while (is_filenamechar (*input)){
- input++;
- }
- if (value != NULL)
- g_free (value);
- size_t len = input - start;
- value = (char *)g_malloc (len + 1);
- memcpy (value, start, len);
- value [len] = 0;
+ return mono_callspec_eval_exception (klass, &trace_spec);
}
-enum Token {
- TOKEN_METHOD,
- TOKEN_CLASS,
- TOKEN_ALL,
- TOKEN_PROGRAM,
- TOKEN_EXCEPTION,
- TOKEN_NAMESPACE,
- TOKEN_WRAPPER,
- TOKEN_STRING,
- TOKEN_EXCLUDE,
- TOKEN_DISABLED,
- TOKEN_SEPARATOR,
- TOKEN_END,
- TOKEN_ERROR
-};
-
-static int
-get_token (void)
+gboolean mono_trace_eval (MonoMethod *method)
{
- while (input [0] == '+')
- input++;
-
- if (input [0] == '\0') {
- return TOKEN_END;
- }
- if (input [0] == 'M' && input [1] == ':'){
- input += 2;
- get_string ();
- return TOKEN_METHOD;
- }
- if (input [0] == 'N' && input [1] == ':'){
- input += 2;
- get_string ();
- return TOKEN_NAMESPACE;
- }
- if (input [0] == 'T' && input [1] == ':'){
- input += 2;
- get_string ();
- return TOKEN_CLASS;
- }
- if (input [0] == 'E' && input [1] == ':'){
- input += 2;
- get_string ();
- return TOKEN_EXCEPTION;
- }
- if (*input == '-'){
- input++;
- return TOKEN_EXCLUDE;
- }
- if (is_filenamechar (*input)){
- get_string ();
- if (strcmp (value, "all") == 0)
- return TOKEN_ALL;
- if (strcmp (value, "program") == 0)
- return TOKEN_PROGRAM;
- if (strcmp (value, "wrapper") == 0)
- return TOKEN_WRAPPER;
- if (strcmp (value, "disabled") == 0)
- return TOKEN_DISABLED;
- return TOKEN_STRING;
- }
- if (*input == ','){
- input++;
- return TOKEN_SEPARATOR;
- }
-
- fprintf (stderr, "Syntax error at or around '%s'\n", input);
- return TOKEN_ERROR;
+ return mono_callspec_eval (method, &trace_spec);
}
-static void
-cleanup (void)
+MonoCallSpec *mono_trace_set_options (const char *options)
{
- if (value != NULL)
- g_free (value);
-}
-
-static int
-get_spec (int *last)
-{
- int token = get_token ();
- if (token == TOKEN_EXCLUDE){
- token = get_spec (last);
- if (token == TOKEN_EXCLUDE){
- fprintf (stderr, "Expecting an expression");
- return TOKEN_ERROR;
- }
- if (token == TOKEN_ERROR)
- return token;
- trace_spec.ops [(*last)-1].exclude = 1;
- return TOKEN_SEPARATOR;
- }
- if (token == TOKEN_END || token == TOKEN_SEPARATOR || token == TOKEN_ERROR)
- return token;
-
- if (token == TOKEN_METHOD){
- MonoMethodDesc *desc = mono_method_desc_new (value, TRUE);
- if (desc == NULL){
- fprintf (stderr, "Invalid method name: %s\n", value);
- return TOKEN_ERROR;
- }
- trace_spec.ops [*last].op = MONO_TRACEOP_METHOD;
- trace_spec.ops [*last].data = desc;
- } else if (token == TOKEN_ALL)
- trace_spec.ops [*last].op = MONO_TRACEOP_ALL;
- else if (token == TOKEN_PROGRAM)
- trace_spec.ops [*last].op = MONO_TRACEOP_PROGRAM;
- else if (token == TOKEN_WRAPPER)
- trace_spec.ops [*last].op = MONO_TRACEOP_WRAPPER;
- else if (token == TOKEN_NAMESPACE){
- trace_spec.ops [*last].op = MONO_TRACEOP_NAMESPACE;
- trace_spec.ops [*last].data = g_strdup (value);
- } else if (token == TOKEN_CLASS || token == TOKEN_EXCEPTION){
- char *p = strrchr (value, '.');
- if (p) {
- *p++ = 0;
- trace_spec.ops [*last].data = g_strdup (value);
- trace_spec.ops [*last].data2 = g_strdup (p);
- }
- else {
- trace_spec.ops [*last].data = g_strdup ("");
- trace_spec.ops [*last].data2 = g_strdup (value);
- }
- trace_spec.ops [*last].op = token == TOKEN_CLASS ? MONO_TRACEOP_CLASS : MONO_TRACEOP_EXCEPTION;
- } else if (token == TOKEN_STRING){
- trace_spec.ops [*last].op = MONO_TRACEOP_ASSEMBLY;
- trace_spec.ops [*last].data = g_strdup (value);
- } else if (token == TOKEN_DISABLED) {
- trace_spec.enabled = FALSE;
- } else {
- fprintf (stderr, "Syntax error in trace option specification\n");
- return TOKEN_ERROR;
+ char *errstr;
+ if (!mono_callspec_parse (options, &trace_spec, &errstr)) {
+ fprintf (stderr, "%s\n", errstr);
+ g_free (errstr);
+ return NULL;
}
- (*last)++;
- return TOKEN_SEPARATOR;
-}
-MonoTraceSpec *
-mono_trace_parse_options (const char *options)
-{
- char *p = (char*)options;
- int size = 1;
- int last_used;
- int token;
-
- trace_spec.enabled = TRUE;
- if (*p == 0){
- trace_spec.len = 1;
- trace_spec.ops = g_new0 (MonoTraceOperation, 1);
- trace_spec.ops [0].op = MONO_TRACEOP_ALL;
- return &trace_spec;
- }
-
- for (p = (char*)options; *p != 0; p++)
- if (*p == ',')
- size++;
-
- trace_spec.ops = g_new0 (MonoTraceOperation, size);
-
- input = (char*)options;
- last_used = 0;
-
- while ((token = (get_spec (&last_used))) != TOKEN_END){
- if (token == TOKEN_ERROR)
- return NULL;
- if (token == TOKEN_SEPARATOR)
- continue;
- }
- trace_spec.len = last_used;
- cleanup ();
return &trace_spec;
}
-void
-mono_trace_set_assembly (MonoAssembly *assembly)
-{
- trace_spec.assembly = assembly;
-}
-
static
#ifdef HAVE_KW_THREAD
__thread
g_free (fname);
if (!ebp) {
- printf (") ip: %p\n", RETURN_ADDRESS_N (1));
+ printf (") ip: %p\n", MONO_RETURN_ADDRESS_N (1));
goto unlock;
}
if (method->is_inflated) {
/* FIXME: Might be better to pass the ji itself */
- MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), (char *)RETURN_ADDRESS (), NULL);
+ MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), (char *)MONO_RETURN_ADDRESS (), NULL);
if (ji) {
gsctx = mono_jit_info_get_generic_sharing_context (ji);
if (gsctx && gsctx->is_gsharedvt) {
if (method->is_inflated) {
/* FIXME: Might be better to pass the ji itself */
- MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), (char *)RETURN_ADDRESS (), NULL);
+ MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), (char *)MONO_RETURN_ADDRESS (), NULL);
if (ji) {
gsctx = mono_jit_info_get_generic_sharing_context (ji);
if (gsctx && gsctx->is_gsharedvt) {
printf ("(unknown return type %x)", mono_method_signature (method)->ret->type);
}
- //printf (" ip: %p\n", RETURN_ADDRESS_N (1));
+ //printf (" ip: %p\n", MONO_RETURN_ADDRESS_N (1));
printf ("\n");
fflush (stdout);
#include <glib.h>
#include "mono/utils/mono-compiler.h"
-typedef enum {
- MONO_TRACEOP_ALL,
- MONO_TRACEOP_PROGRAM,
- MONO_TRACEOP_METHOD,
- MONO_TRACEOP_ASSEMBLY,
- MONO_TRACEOP_CLASS,
- MONO_TRACEOP_NAMESPACE,
- MONO_TRACEOP_EXCEPTION,
- MONO_TRACEOP_WRAPPER,
-} MonoTraceOpcode;
-
-typedef struct {
- MonoTraceOpcode op;
- int exclude;
- void *data, *data2;
-} MonoTraceOperation;
-
-struct MonoTraceSpec {
- int len;
- gboolean enabled;
- MonoTraceOperation *ops;
-
- MonoAssembly *assembly;
-};
-
G_BEGIN_DECLS
void
libmono-profiler-iomap-static.la \
libmono-profiler-log.la \
libmono-profiler-log-static.la \
+ libmono-profiler-coverage.la \
+ libmono-profiler-coverage-static.la \
$(vtune_libs)
suppressiondir = $(datadir)/mono-$(API_VER)/mono/profiler
libmono_profiler_log_static_la_SOURCES = log.c log-args.c
libmono_profiler_log_static_la_LDFLAGS = -static
+libmono_profiler_coverage_la_SOURCES = coverage.c
+libmono_profiler_coverage_la_LIBADD = $(libmono_dep) $(GLIB_LIBS) $(Z_LIBS)
+libmono_profiler_coverage_la_LDFLAGS = $(prof_ldflags)
+libmono_profiler_coverage_static_la_SOURCES = coverage.c
+libmono_profiler_coverage_static_la_LDFLAGS = -static
+
if HAVE_VTUNE
libmono_profiler_vtune_la_SOURCES = vtune.c
libmono_profiler_vtune_la_CFLAGS = $(VTUNE_CFLAGS)
--- /dev/null
+/*
+ * coverage.c: mono coverage profiler
+ *
+ * Authors:
+ * Paolo Molaro (lupus@ximian.com)
+ * Alex Rønne Petersen (alexrp@xamarin.com)
+ * Ludovic Henry (ludovic@xamarin.com)
+ *
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
+ */
+
+/*
+ * The Coverage XML output schema
+ * <coverage>
+ * <assembly/>
+ * <class/>
+ * <method>
+ * <statement/>
+ * </method>
+ * </coverage>
+ *
+ * Elements:
+ * <coverage> - The root element of the documentation. It can contain any number of
+ * <assembly>, <class> or <method> elements.
+ * Attributes:
+ * - version: The version number for the file format - (eg: "0.3")
+ * <assembly> - Contains data about assemblies. Has no child elements
+ * Attributes:
+ * - name: The name of the assembly - (eg: "System.Xml")
+ * - guid: The GUID of the assembly
+ * - filename: The filename of the assembly
+ * - method-count: The number of methods in the assembly
+ * - full: The number of fully covered methods
+ * - partial: The number of partially covered methods
+ * <class> - Contains data about classes. Has no child elements
+ * Attributes:
+ * - name: The name of the class
+ * - method-count: The number of methods in the class
+ * - full: The number of fully covered methods
+ * - partial: The number of partially covered methods
+ * <method> - Contains data about methods. Can contain any number of <statement> elements
+ * Attributes:
+ * - assembly: The name of the parent assembly
+ * - class: The name of the parent class
+ * - name: The name of the method, with all it's parameters
+ * - filename: The name of the source file containing this method
+ * - token
+ * <statement> - Contains data about IL statements. Has no child elements
+ * Attributes:
+ * - offset: The offset of the statement in the IL code after the previous
+ * statement's offset
+ * - counter: 1 if the line was covered, 0 if it was not
+ * - line: The line number in the parent method's file
+ * - column: The column on the line
+ */
+
+#include <config.h>
+#include <glib.h>
+
+#include <stdio.h>
+
+#ifdef HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+#if defined (HAVE_SYS_ZLIB)
+#include <zlib.h>
+#endif
+
+#include <mono/metadata/assembly.h>
+#include <mono/metadata/debug-helpers.h>
+#include <mono/metadata/profiler.h>
+#include <mono/metadata/tabledefs.h>
+#include <mono/metadata/metadata-internals.h>
+
+#include <mono/utils/atomic.h>
+#include <mono/utils/hazard-pointer.h>
+#include <mono/utils/lock-free-queue.h>
+#include <mono/utils/mono-conc-hashtable.h>
+#include <mono/utils/mono-os-mutex.h>
+#include <mono/utils/mono-logger-internals.h>
+#include <mono/utils/mono-counters.h>
+
+// Statistics for profiler events.
+static gint32 coverage_methods_ctr,
+ coverage_statements_ctr,
+ coverage_classes_ctr,
+ coverage_assemblies_ctr;
+
+struct _MonoProfiler {
+ MonoProfilerHandle handle;
+
+ FILE* file;
+
+ char *args;
+
+ mono_mutex_t mutex;
+ GPtrArray *data;
+
+ GPtrArray *filters;
+ MonoConcurrentHashTable *filtered_classes;
+ MonoConcurrentHashTable *suppressed_assemblies;
+
+ MonoConcurrentHashTable *methods;
+ MonoConcurrentHashTable *assemblies;
+ MonoConcurrentHashTable *classes;
+
+ MonoConcurrentHashTable *image_to_methods;
+
+ guint32 previous_offset;
+};
+
+typedef struct {
+ //Where to compress the output file
+ gboolean use_zip;
+
+ //Name of the generated xml file
+ const char *output_filename;
+
+ //Filter files used by the code coverage mode
+ GPtrArray *cov_filter_files;
+} ProfilerConfig;
+
+static ProfilerConfig coverage_config;
+static struct _MonoProfiler coverage_profiler;
+
+/* This is a very basic escape function that escapes < > and &
+ Ideally we'd use g_markup_escape_string but that function isn't
+ available in Mono's eglib. This was written without looking at the
+ source of that function in glib. */
+static char *
+escape_string_for_xml (const char *string)
+{
+ GString *string_builder = g_string_new (NULL);
+ const char *start, *p;
+
+ start = p = string;
+ while (*p) {
+ while (*p && *p != '&' && *p != '<' && *p != '>')
+ p++;
+
+ g_string_append_len (string_builder, start, p - start);
+
+ if (*p == '\0')
+ break;
+
+ switch (*p) {
+ case '<':
+ g_string_append (string_builder, "<");
+ break;
+
+ case '>':
+ g_string_append (string_builder, ">");
+ break;
+
+ case '&':
+ g_string_append (string_builder, "&");
+ break;
+
+ default:
+ break;
+ }
+
+ p++;
+ start = p;
+ }
+
+ return g_string_free (string_builder, FALSE);
+}
+
+typedef struct {
+ MonoLockFreeQueueNode node;
+ MonoMethod *method;
+} MethodNode;
+
+typedef struct {
+ int offset;
+ int counter;
+ char *filename;
+ int line;
+ int column;
+} CoverageEntry;
+
+static void
+free_coverage_entry (gpointer data, gpointer userdata)
+{
+ CoverageEntry *entry = (CoverageEntry *)data;
+ g_free (entry->filename);
+ g_free (entry);
+}
+
+static void
+obtain_coverage_for_method (MonoProfiler *prof, const MonoProfilerCoverageData *entry)
+{
+ g_assert (prof == &coverage_profiler);
+
+ int offset = entry->il_offset - coverage_profiler.previous_offset;
+ CoverageEntry *e = g_new (CoverageEntry, 1);
+
+ coverage_profiler.previous_offset = entry->il_offset;
+
+ e->offset = offset;
+ e->counter = entry->counter;
+ e->filename = g_strdup(entry->file_name ? entry->file_name : "");
+ e->line = entry->line;
+ e->column = entry->column;
+
+ g_ptr_array_add (coverage_profiler.data, e);
+}
+
+static char *
+parse_generic_type_names(char *name)
+{
+ char *new_name, *ret;
+ int within_generic_declaration = 0, generic_members = 1;
+
+ if (name == NULL || *name == '\0')
+ return g_strdup ("");
+
+ if (!(ret = new_name = (char *) g_calloc (strlen (name) * 4 + 1, sizeof (char))))
+ return NULL;
+
+ do {
+ switch (*name) {
+ case '<':
+ within_generic_declaration = 1;
+ break;
+
+ case '>':
+ within_generic_declaration = 0;
+
+ if (*(name - 1) != '<') {
+ *new_name++ = '`';
+ *new_name++ = '0' + generic_members;
+ } else {
+ memcpy (new_name, "<>", 8);
+ new_name += 8;
+ }
+
+ generic_members = 0;
+ break;
+
+ case ',':
+ generic_members++;
+ break;
+
+ default:
+ if (!within_generic_declaration)
+ *new_name++ = *name;
+
+ break;
+ }
+ } while (*name++);
+
+ return ret;
+}
+
+static void
+dump_method (gpointer key, gpointer value, gpointer userdata)
+{
+ MonoMethod *method = (MonoMethod *)value;
+ MonoClass *klass;
+ MonoImage *image;
+ char *class_name, *escaped_image_name, *escaped_class_name, *escaped_method_name, *escaped_method_signature, *escaped_method_filename;
+ const char *image_name, *method_name, *method_signature, *method_filename;
+ guint i;
+
+ coverage_profiler.previous_offset = 0;
+ coverage_profiler.data = g_ptr_array_new ();
+
+ mono_profiler_get_coverage_data (coverage_profiler.handle, method, obtain_coverage_for_method);
+
+ klass = mono_method_get_class (method);
+ image = mono_class_get_image (klass);
+ image_name = mono_image_get_name (image);
+
+ method_signature = mono_signature_get_desc (mono_method_signature (method), TRUE);
+ class_name = parse_generic_type_names (mono_type_get_name (mono_class_get_type (klass)));
+ method_name = mono_method_get_name (method);
+
+ if (coverage_profiler.data->len != 0) {
+ CoverageEntry *entry = (CoverageEntry *)coverage_profiler.data->pdata[0];
+ method_filename = entry->filename ? entry->filename : "";
+ } else
+ method_filename = "";
+
+ image_name = image_name ? image_name : "";
+ method_signature = method_signature ? method_signature : "";
+ method_name = method_name ? method_name : "";
+
+ escaped_image_name = escape_string_for_xml (image_name);
+ escaped_class_name = escape_string_for_xml (class_name);
+ escaped_method_name = escape_string_for_xml (method_name);
+ escaped_method_signature = escape_string_for_xml (method_signature);
+ escaped_method_filename = escape_string_for_xml (method_filename);
+
+ fprintf (coverage_profiler.file, "\t<method assembly=\"%s\" class=\"%s\" name=\"%s (%s)\" filename=\"%s\" token=\"%d\">\n",
+ escaped_image_name, escaped_class_name, escaped_method_name, escaped_method_signature, escaped_method_filename, mono_method_get_token (method));
+
+ g_free (escaped_image_name);
+ g_free (escaped_class_name);
+ g_free (escaped_method_name);
+ g_free (escaped_method_signature);
+ g_free (escaped_method_filename);
+
+ for (i = 0; i < coverage_profiler.data->len; i++) {
+ CoverageEntry *entry = (CoverageEntry *)coverage_profiler.data->pdata[i];
+
+ fprintf (coverage_profiler.file, "\t\t<statement offset=\"%d\" counter=\"%d\" line=\"%d\" column=\"%d\"/>\n",
+ entry->offset, entry->counter, entry->line, entry->column);
+ }
+
+ fprintf (coverage_profiler.file, "\t</method>\n");
+
+ g_free (class_name);
+
+ g_ptr_array_foreach (coverage_profiler.data, free_coverage_entry, NULL);
+ g_ptr_array_free (coverage_profiler.data, TRUE);
+}
+
+/* This empties the queue */
+static guint
+count_queue (MonoLockFreeQueue *queue)
+{
+ MonoLockFreeQueueNode *node;
+ guint count = 0;
+
+ while ((node = mono_lock_free_queue_dequeue (queue))) {
+ count++;
+ mono_thread_hazardous_try_free (node, g_free);
+ }
+
+ return count;
+}
+
+static void
+dump_classes_for_image (gpointer key, gpointer value, gpointer userdata)
+{
+ MonoClass *klass = (MonoClass *)key;
+ MonoLockFreeQueue *class_methods = (MonoLockFreeQueue *)value;
+ MonoImage *image;
+ char *class_name, *escaped_class_name;
+ const char *image_name;
+ int number_of_methods, partially_covered;
+ guint fully_covered;
+
+ image = mono_class_get_image (klass);
+ image_name = mono_image_get_name (image);
+
+ if (!image_name || strcmp (image_name, mono_image_get_name (((MonoImage*) userdata))) != 0)
+ return;
+
+ class_name = mono_type_get_name (mono_class_get_type (klass));
+
+ number_of_methods = mono_class_num_methods (klass);
+ fully_covered = count_queue (class_methods);
+ /* We don't handle partial covered yet */
+ partially_covered = 0;
+
+ escaped_class_name = escape_string_for_xml (class_name);
+
+ fprintf (coverage_profiler.file, "\t<class name=\"%s\" method-count=\"%d\" full=\"%d\" partial=\"%d\"/>\n",
+ escaped_class_name, number_of_methods, fully_covered, partially_covered);
+
+ g_free (escaped_class_name);
+
+ g_free (class_name);
+
+}
+
+static void
+get_coverage_for_image (MonoImage *image, int *number_of_methods, guint *fully_covered, int *partially_covered)
+{
+ MonoLockFreeQueue *image_methods = (MonoLockFreeQueue *)mono_conc_hashtable_lookup (coverage_profiler.image_to_methods, image);
+
+ *number_of_methods = mono_image_get_table_rows (image, MONO_TABLE_METHOD);
+ if (image_methods)
+ *fully_covered = count_queue (image_methods);
+ else
+ *fully_covered = 0;
+
+ // FIXME: We don't handle partially covered yet.
+ *partially_covered = 0;
+}
+
+static void
+dump_assembly (gpointer key, gpointer value, gpointer userdata)
+{
+ MonoAssembly *assembly = (MonoAssembly *)value;
+ MonoImage *image = mono_assembly_get_image (assembly);
+ const char *image_name, *image_guid, *image_filename;
+ char *escaped_image_name, *escaped_image_filename;
+ int number_of_methods = 0, partially_covered = 0;
+ guint fully_covered = 0;
+
+ image_name = mono_image_get_name (image);
+ image_guid = mono_image_get_guid (image);
+ image_filename = mono_image_get_filename (image);
+
+ image_name = image_name ? image_name : "";
+ image_guid = image_guid ? image_guid : "";
+ image_filename = image_filename ? image_filename : "";
+
+ get_coverage_for_image (image, &number_of_methods, &fully_covered, &partially_covered);
+
+ escaped_image_name = escape_string_for_xml (image_name);
+ escaped_image_filename = escape_string_for_xml (image_filename);
+
+ fprintf (coverage_profiler.file, "\t<assembly name=\"%s\" guid=\"%s\" filename=\"%s\" method-count=\"%d\" full=\"%d\" partial=\"%d\"/>\n",
+ escaped_image_name, image_guid, escaped_image_filename, number_of_methods, fully_covered, partially_covered);
+
+ g_free (escaped_image_name);
+ g_free (escaped_image_filename);
+
+ mono_conc_hashtable_foreach (coverage_profiler.classes, dump_classes_for_image, image);
+}
+
+static void
+dump_coverage (void)
+{
+ fprintf (coverage_profiler.file, "<?xml version=\"1.0\"?>\n");
+ fprintf (coverage_profiler.file, "<coverage version=\"0.3\">\n");
+
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_foreach (coverage_profiler.assemblies, dump_assembly, NULL);
+ mono_conc_hashtable_foreach (coverage_profiler.methods, dump_method, NULL);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+
+ fprintf (coverage_profiler.file, "</coverage>\n");
+}
+
+static MonoLockFreeQueueNode *
+create_method_node (MonoMethod *method)
+{
+ MethodNode *node = (MethodNode *) g_malloc (sizeof (MethodNode));
+ mono_lock_free_queue_node_init ((MonoLockFreeQueueNode *) node, FALSE);
+ node->method = method;
+
+ return (MonoLockFreeQueueNode *) node;
+}
+
+static gboolean
+coverage_filter (MonoProfiler *prof, MonoMethod *method)
+{
+ MonoError error;
+ MonoClass *klass;
+ MonoImage *image;
+ MonoAssembly *assembly;
+ MonoMethodHeader *header;
+ guint32 iflags, flags, code_size;
+ char *fqn, *classname;
+ gboolean has_positive, found;
+ MonoLockFreeQueue *image_methods, *class_methods;
+ MonoLockFreeQueueNode *node;
+
+ g_assert (prof == &coverage_profiler);
+
+ flags = mono_method_get_flags (method, &iflags);
+ if ((iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) ||
+ (flags & METHOD_ATTRIBUTE_PINVOKE_IMPL))
+ return FALSE;
+
+ // Don't need to do anything else if we're already tracking this method
+ if (mono_conc_hashtable_lookup (coverage_profiler.methods, method))
+ return TRUE;
+
+ klass = mono_method_get_class (method);
+ image = mono_class_get_image (klass);
+
+ // Don't handle coverage for the core assemblies
+ if (mono_conc_hashtable_lookup (coverage_profiler.suppressed_assemblies, (gpointer) mono_image_get_name (image)) != NULL)
+ return FALSE;
+
+ if (coverage_profiler.filters) {
+ /* Check already filtered classes first */
+ if (mono_conc_hashtable_lookup (coverage_profiler.filtered_classes, klass))
+ return FALSE;
+
+ classname = mono_type_get_name (mono_class_get_type (klass));
+
+ fqn = g_strdup_printf ("[%s]%s", mono_image_get_name (image), classname);
+
+ // Check positive filters first
+ has_positive = FALSE;
+ found = FALSE;
+ for (guint i = 0; i < coverage_profiler.filters->len; ++i) {
+ char *filter = (char *)g_ptr_array_index (coverage_profiler.filters, i);
+
+ if (filter [0] == '+') {
+ filter = &filter [1];
+
+ if (strstr (fqn, filter) != NULL)
+ found = TRUE;
+
+ has_positive = TRUE;
+ }
+ }
+
+ if (has_positive && !found) {
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_insert (coverage_profiler.filtered_classes, klass, klass);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+ g_free (fqn);
+ g_free (classname);
+
+ return FALSE;
+ }
+
+ for (guint i = 0; i < coverage_profiler.filters->len; ++i) {
+ // FIXME: Is substring search sufficient?
+ char *filter = (char *)g_ptr_array_index (coverage_profiler.filters, i);
+ if (filter [0] == '+')
+ continue;
+
+ // Skip '-'
+ filter = &filter [1];
+
+ if (strstr (fqn, filter) != NULL) {
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_insert (coverage_profiler.filtered_classes, klass, klass);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+ g_free (fqn);
+ g_free (classname);
+
+ return FALSE;
+ }
+ }
+
+ g_free (fqn);
+ g_free (classname);
+ }
+
+ header = mono_method_get_header_checked (method, &error);
+ mono_error_cleanup (&error);
+
+ mono_method_header_get_code (header, &code_size, NULL);
+
+ assembly = mono_image_get_assembly (image);
+
+ // Need to keep the assemblies around for as long as they are kept in the hashtable
+ // Nunit, for example, has a habit of unloading them before the coverage statistics are
+ // generated causing a crash. See https://bugzilla.xamarin.com/show_bug.cgi?id=39325
+ mono_assembly_addref (assembly);
+
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_insert (coverage_profiler.methods, method, method);
+ mono_conc_hashtable_insert (coverage_profiler.assemblies, assembly, assembly);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+
+ image_methods = (MonoLockFreeQueue *)mono_conc_hashtable_lookup (coverage_profiler.image_to_methods, image);
+
+ if (image_methods == NULL) {
+ image_methods = (MonoLockFreeQueue *) g_malloc (sizeof (MonoLockFreeQueue));
+ mono_lock_free_queue_init (image_methods);
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_insert (coverage_profiler.image_to_methods, image, image_methods);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+ }
+
+ node = create_method_node (method);
+ mono_lock_free_queue_enqueue (image_methods, node);
+
+ class_methods = (MonoLockFreeQueue *)mono_conc_hashtable_lookup (coverage_profiler.classes, klass);
+
+ if (class_methods == NULL) {
+ class_methods = (MonoLockFreeQueue *) g_malloc (sizeof (MonoLockFreeQueue));
+ mono_lock_free_queue_init (class_methods);
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_insert (coverage_profiler.classes, klass, class_methods);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+ }
+
+ node = create_method_node (method);
+ mono_lock_free_queue_enqueue (class_methods, node);
+
+ return TRUE;
+}
+
+#define LINE_BUFFER_SIZE 4096
+/* Max file limit of 128KB */
+#define MAX_FILE_SIZE 128 * 1024
+static char *
+get_file_content (const gchar *filename)
+{
+ char *buffer;
+ ssize_t bytes_read;
+ long filesize;
+ int res, offset = 0;
+ FILE *stream;
+
+ stream = fopen (filename, "r");
+ if (stream == NULL)
+ return NULL;
+
+ res = fseek (stream, 0, SEEK_END);
+ if (res < 0) {
+ fclose (stream);
+ return NULL;
+ }
+
+ filesize = ftell (stream);
+ if (filesize < 0) {
+ fclose (stream);
+ return NULL;
+ }
+
+ res = fseek (stream, 0, SEEK_SET);
+ if (res < 0) {
+ fclose (stream);
+ return NULL;
+ }
+
+ if (filesize > MAX_FILE_SIZE) {
+ fclose (stream);
+ return NULL;
+ }
+
+ buffer = (char *) g_malloc ((filesize + 1) * sizeof (char));
+ while ((bytes_read = fread (buffer + offset, 1, LINE_BUFFER_SIZE, stream)) > 0)
+ offset += bytes_read;
+
+ /* NULL terminate our buffer */
+ buffer[filesize] = '\0';
+
+ fclose (stream);
+ return buffer;
+}
+
+static char *
+get_next_line (char *contents, char **next_start)
+{
+ char *p = contents;
+
+ if (p == NULL || *p == '\0') {
+ *next_start = NULL;
+ return NULL;
+ }
+
+ while (*p != '\n' && *p != '\0')
+ p++;
+
+ if (*p == '\n') {
+ *p = '\0';
+ *next_start = p + 1;
+ } else
+ *next_start = NULL;
+
+ return contents;
+}
+
+static void
+init_suppressed_assemblies (void)
+{
+ char *content;
+ char *line;
+
+ coverage_profiler.suppressed_assemblies = mono_conc_hashtable_new (g_str_hash, g_str_equal);
+
+ /* Don't need to free content as it is referred to by the lines stored in @filters */
+ content = get_file_content (SUPPRESSION_DIR "/mono-profiler-coverage.suppression");
+ if (content == NULL)
+ content = get_file_content (SUPPRESSION_DIR "/mono-profiler-log.suppression");
+ if (content == NULL)
+ return;
+
+ while ((line = get_next_line (content, &content))) {
+ line = g_strchomp (g_strchug (line));
+ /* No locking needed as we're doing initialization */
+ mono_conc_hashtable_insert (coverage_profiler.suppressed_assemblies, line, line);
+ }
+}
+
+static void
+parse_cov_filter_file (GPtrArray *filters, const char *file)
+{
+ char *content;
+ char *line;
+
+ /* Don't need to free content as it is referred to by the lines stored in @filters */
+ content = get_file_content (file);
+ if (content == NULL) {
+ mono_profiler_printf_err ("Could not open coverage filter file '%s'.", file);
+ return;
+ }
+
+ while ((line = get_next_line (content, &content)))
+ g_ptr_array_add (filters, g_strchug (g_strchomp (line)));
+}
+
+static void
+unref_coverage_assemblies (gpointer key, gpointer value, gpointer userdata)
+{
+ MonoAssembly *assembly = (MonoAssembly *)value;
+ mono_assembly_close (assembly);
+}
+
+static void
+log_shutdown (MonoProfiler *prof)
+{
+ g_assert (prof == &coverage_profiler);
+
+ dump_coverage ();
+
+ mono_os_mutex_lock (&coverage_profiler.mutex);
+ mono_conc_hashtable_foreach (coverage_profiler.assemblies, unref_coverage_assemblies, NULL);
+ mono_os_mutex_unlock (&coverage_profiler.mutex);
+
+ mono_conc_hashtable_destroy (coverage_profiler.methods);
+ mono_conc_hashtable_destroy (coverage_profiler.assemblies);
+ mono_conc_hashtable_destroy (coverage_profiler.classes);
+ mono_conc_hashtable_destroy (coverage_profiler.filtered_classes);
+
+ mono_conc_hashtable_destroy (coverage_profiler.image_to_methods);
+ mono_conc_hashtable_destroy (coverage_profiler.suppressed_assemblies);
+ mono_os_mutex_destroy (&coverage_profiler.mutex);
+
+ if (*coverage_config.output_filename == '|') {
+ pclose (coverage_profiler.file);
+ } else if (*coverage_config.output_filename == '#') {
+ // do nothing
+ } else {
+ fclose (coverage_profiler.file);
+ }
+
+ g_free (coverage_profiler.args);
+}
+
+static void
+runtime_initialized (MonoProfiler *profiler)
+{
+ mono_counters_register ("Event: Coverage methods", MONO_COUNTER_UINT | MONO_COUNTER_PROFILER | MONO_COUNTER_MONOTONIC, &coverage_methods_ctr);
+ mono_counters_register ("Event: Coverage statements", MONO_COUNTER_UINT | MONO_COUNTER_PROFILER | MONO_COUNTER_MONOTONIC, &coverage_statements_ctr);
+ mono_counters_register ("Event: Coverage classes", MONO_COUNTER_UINT | MONO_COUNTER_PROFILER | MONO_COUNTER_MONOTONIC, &coverage_classes_ctr);
+ mono_counters_register ("Event: Coverage assemblies", MONO_COUNTER_UINT | MONO_COUNTER_PROFILER | MONO_COUNTER_MONOTONIC, &coverage_assemblies_ctr);
+}
+
+static void usage (void);
+
+static gboolean
+match_option (const char *arg, const char *opt_name, const char **rval)
+{
+ if (rval) {
+ const char *end = strchr (arg, '=');
+
+ *rval = NULL;
+ if (!end)
+ return !strcmp (arg, opt_name);
+
+ if (strncmp (arg, opt_name, strlen (opt_name)) || (end - arg) > strlen (opt_name) + 1)
+ return FALSE;
+ *rval = end + 1;
+ return TRUE;
+ } else {
+ //FIXME how should we handle passing a value to an arg that doesn't expect it?
+ return !strcmp (arg, opt_name);
+ }
+}
+
+static void
+parse_arg (const char *arg)
+{
+ const char *val;
+
+ if (match_option (arg, "help", NULL)) {
+ usage ();
+ // } else if (match_option (arg, "zip", NULL)) {
+ // coverage_config.use_zip = TRUE;
+ } else if (match_option (arg, "output", &val)) {
+ coverage_config.output_filename = g_strdup (val);
+ // } else if (match_option (arg, "covfilter", &val)) {
+ // g_error ("not supported");
+ } else if (match_option (arg, "covfilter-file", &val)) {
+ if (coverage_config.cov_filter_files == NULL)
+ coverage_config.cov_filter_files = g_ptr_array_new ();
+ g_ptr_array_add (coverage_config.cov_filter_files, g_strdup (val));
+ } else {
+ mono_profiler_printf_err ("Could not parse argument: %s", arg);
+ }
+}
+
+static void
+parse_args (const char *desc)
+{
+ const char *p;
+ gboolean in_quotes = FALSE;
+ char quote_char = '\0';
+ char *buffer = malloc (strlen (desc));
+ int buffer_pos = 0;
+
+ for (p = desc; *p; p++){
+ switch (*p){
+ case ',':
+ if (!in_quotes) {
+ if (buffer_pos != 0){
+ buffer [buffer_pos] = 0;
+ parse_arg (buffer);
+ buffer_pos = 0;
+ }
+ } else {
+ buffer [buffer_pos++] = *p;
+ }
+ break;
+
+ case '\\':
+ if (p [1]) {
+ buffer [buffer_pos++] = p[1];
+ p++;
+ }
+ break;
+ case '\'':
+ case '"':
+ if (in_quotes) {
+ if (quote_char == *p)
+ in_quotes = FALSE;
+ else
+ buffer [buffer_pos++] = *p;
+ } else {
+ in_quotes = TRUE;
+ quote_char = *p;
+ }
+ break;
+ default:
+ buffer [buffer_pos++] = *p;
+ break;
+ }
+ }
+
+ if (buffer_pos != 0) {
+ buffer [buffer_pos] = 0;
+ parse_arg (buffer);
+ }
+
+ g_free (buffer);
+}
+
+static void
+usage (void)
+{
+ mono_profiler_printf ("Mono coverage profiler");
+ mono_profiler_printf ("Usage: mono --profile=coverage[:OPTION1[,OPTION2...]] program.exe\n");
+ mono_profiler_printf ("Options:");
+ mono_profiler_printf ("\thelp show this usage info");
+
+ // mono_profiler_printf ("\tcovfilter=ASSEMBLY add ASSEMBLY to the code coverage filters");
+ // mono_profiler_printf ("\t prefix a + to include the assembly or a - to exclude it");
+ // mono_profiler_printf ("\t e.g. covfilter=-mscorlib");
+ mono_profiler_printf ("\tcovfilter-file=FILE use FILE to generate the list of assemblies to be filtered");
+ mono_profiler_printf ("\toutput=FILENAME write the data to file FILENAME (the file is always overwritten)");
+ mono_profiler_printf ("\toutput=+FILENAME write the data to file FILENAME.pid (the file is always overwritten)");
+ mono_profiler_printf ("\toutput=|PROGRAM write the data to the stdin of PROGRAM");
+ mono_profiler_printf ("\toutput=|PROGRAM write the data to the stdin of PROGRAM");
+ // mono_profiler_printf ("\tzip compress the output data");
+}
+
+MONO_API void
+mono_profiler_init_coverage (const char *desc);
+
+void
+mono_profiler_init_coverage (const char *desc)
+{
+ GPtrArray *filters = NULL;
+
+ parse_args (desc [strlen("coverage")] == ':' ? desc + strlen ("coverage") + 1 : "");
+
+ if (coverage_config.cov_filter_files) {
+ filters = g_ptr_array_new ();
+ int i;
+ for (i = 0; i < coverage_config.cov_filter_files->len; ++i) {
+ const char *name = coverage_config.cov_filter_files->pdata [i];
+ parse_cov_filter_file (filters, name);
+ }
+ }
+
+ coverage_profiler.args = g_strdup (desc);
+
+ //If coverage_config.output_filename begin with +, append the pid at the end
+ if (!coverage_config.output_filename)
+ coverage_config.output_filename = "coverage.xml";
+ else if (*coverage_config.output_filename == '+')
+ coverage_config.output_filename = g_strdup_printf ("%s.%d", coverage_config.output_filename + 1, getpid ());
+
+ if (*coverage_config.output_filename == '|')
+ coverage_profiler.file = popen (coverage_config.output_filename + 1, "w");
+ else if (*coverage_config.output_filename == '#')
+ coverage_profiler.file = fdopen (strtol (coverage_config.output_filename + 1, NULL, 10), "a");
+ else
+ coverage_profiler.file = fopen (coverage_config.output_filename, "w");
+
+ if (!coverage_profiler.file) {
+ mono_profiler_printf_err ("Could not create coverage profiler output file '%s'.", coverage_config.output_filename);
+ exit (1);
+ }
+
+ mono_os_mutex_init (&coverage_profiler.mutex);
+ coverage_profiler.methods = mono_conc_hashtable_new (NULL, NULL);
+ coverage_profiler.assemblies = mono_conc_hashtable_new (NULL, NULL);
+ coverage_profiler.classes = mono_conc_hashtable_new (NULL, NULL);
+ coverage_profiler.filtered_classes = mono_conc_hashtable_new (NULL, NULL);
+ coverage_profiler.image_to_methods = mono_conc_hashtable_new (NULL, NULL);
+ init_suppressed_assemblies ();
+
+ coverage_profiler.filters = filters;
+
+ MonoProfilerHandle handle = coverage_profiler.handle = mono_profiler_create (&coverage_profiler);
+
+ /*
+ * Required callbacks. These are either necessary for the profiler itself
+ * to function, or provide metadata that's needed if other events (e.g.
+ * allocations, exceptions) are dynamically enabled/disabled.
+ */
+
+ mono_profiler_set_runtime_shutdown_end_callback (handle, log_shutdown);
+ mono_profiler_set_runtime_initialized_callback (handle, runtime_initialized);
+
+ mono_profiler_enable_coverage ();
+ mono_profiler_set_coverage_filter_callback (handle, coverage_filter);
+}
} else if (match_option (arg, "calls", NULL)) {
config->enter_leave = TRUE;
} else if (match_option (arg, "coverage", NULL)) {
+ g_warning ("the log profiler support for code coverage is obsolete, use the \"coverage\" profiler");
config->collect_coverage = TRUE;
} else if (match_option (arg, "zip", NULL)) {
config->use_zip = TRUE;
} else if (match_option (arg, "calldepth", &val)) {
char *end;
config->max_call_depth = strtoul (val, &end, 10);
+ } else if (match_option (arg, "callspec", &val)) {
+ if (!val)
+ val = "";
+ if (val[0] == '\"')
+ ++val;
+ char *spec = g_strdup (val);
+ size_t speclen = strlen (val);
+ if (speclen > 0 && spec[speclen - 1] == '\"')
+ spec[speclen - 1] = '\0';
+ char *errstr;
+ if (!mono_callspec_parse (spec, &config->callspec, &errstr)) {
+ mono_profiler_printf_err (
+ "Could not parse callspec: '%s': %s", spec,
+ errstr);
+ g_free (errstr);
+ mono_callspec_cleanup (&config->callspec);
+ }
+ g_free (spec);
} else if (match_option (arg, "covfilter-file", &val)) {
if (config->cov_filter_files == NULL)
config->cov_filter_files = g_ptr_array_new ();
ENTER_LOG (&sync_points_ctr, logbuffer,
EVENT_SIZE /* event */ +
- LEB128_SIZE /* type */
+ BYTE_SIZE /* type */
);
emit_event (logbuffer, TYPE_META | TYPE_SYNC_POINT);
static MonoProfilerCallInstrumentationFlags
method_filter (MonoProfiler *prof, MonoMethod *method)
{
+ if (log_config.callspec.len > 0 &&
+ !mono_callspec_eval (method, &log_config.callspec))
+ return MONO_PROFILER_CALL_INSTRUMENTATION_NONE;
+
return MONO_PROFILER_CALL_INSTRUMENTATION_ENTER |
MONO_PROFILER_CALL_INSTRUMENTATION_LEAVE |
MONO_PROFILER_CALL_INSTRUMENTATION_TAIL_CALL |
EVENT_SIZE /* event */ +
BYTE_SIZE /* clause type */ +
LEB128_SIZE /* clause num */ +
- LEB128_SIZE /* method */
+ LEB128_SIZE /* method */ +
+ LEB128_SIZE /* exc */
);
emit_event (logbuffer, TYPE_EXCEPTION | TYPE_CLAUSE);
LEB128_SIZE /* load address */ +
LEB128_SIZE /* offset */ +
LEB128_SIZE /* size */ +
- nlen /* file name */
+ len /* file name */
);
emit_event (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_UBIN);
;
for (agent = log_profiler.counters; agent; agent = agent->next) {
+ /*
+ * FIXME: This calculation is incorrect for string counters since
+ * mono_counter_get_size () just returns 0 in that case. We should
+ * address this if we ever actually add any string counters to Mono.
+ */
+
size +=
LEB128_SIZE /* index */ +
BYTE_SIZE /* type */ +
#include <glib.h>
#define MONO_PROFILER_UNSTABLE_GC_ROOTS
#include <mono/metadata/profiler.h>
+#include <mono/metadata/callspec.h>
#define BUF_ID 0x4D504C01
#define LOG_HEADER_ID 0x4D505A01
// Sample mode. Only used at startup.
MonoProfilerSampleMode sampling_mode;
+
+ // Callspec config - which methods are to be instrumented
+ MonoCallSpec callspec;
} ProfilerConfig;
void proflog_parse_args (ProfilerConfig *config, const char *desc);
#endif
#endif
-#if defined (TARGET_WASM)
+#if defined (HOST_WASM)
#define DEFAULT_MAJOR SGEN_MAJOR_SERIAL
#define DEFAULT_SWEEP_MODE SGEN_SWEEP_SERIAL
#elif defined(HAVE_CONC_GC_AS_DEFAULT)
* LOCKING: Assumes the GC lock is held.
*/
void
-sgen_perform_collection (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish, gboolean stw)
+sgen_perform_collection_inner (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish, gboolean stw)
{
TV_DECLARE (gc_total_start);
TV_DECLARE (gc_total_end);
sgen_restart_world (oldest_generation_collected);
}
+#ifdef HOST_WASM
+
+typedef struct {
+ size_t requested_size;
+ int generation_to_collect;
+ const char *reason;
+} SgenGcRequest;
+
+static SgenGcRequest gc_request;
+static gboolean pending_request;
+
+extern void request_gc_cycle (void);
+
+#include <emscripten.h>
+
+EMSCRIPTEN_KEEPALIVE void
+mono_gc_pump_callback (void)
+{
+ if (!pending_request)
+ return;
+ pending_request = FALSE;
+ sgen_perform_collection_inner (gc_request.requested_size, gc_request.generation_to_collect, gc_request.reason, TRUE, TRUE);
+}
+#endif
+
+void
+sgen_perform_collection (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish, gboolean stw)
+{
+#ifdef HOST_WASM
+ g_assert (stw); //can't handle non-stw mode (IE, domain unload)
+ //we ignore wait_to_finish
+ if (!pending_request || gc_request.generation_to_collect <= generation_to_collect) { //no active request or request was for a smaller part of the heap
+ gc_request.requested_size = requested_size;
+ gc_request.generation_to_collect = generation_to_collect;
+ gc_request.reason = reason;
+ if (!pending_request) {
+ request_gc_cycle ();
+ pending_request = TRUE;
+ }
+ }
+
+ degraded_mode = 1; //enable degraded mode so allocation can continue
+#else
+ sgen_perform_collection_inner (requested_size, generation_to_collect, reason, wait_to_finish, stw);
+#endif
+}
/*
* ######################################################################
* ######## Memory allocation from the OS
{
SGEN_ASSERT (0, sweep_state == SWEEP_STATE_SWEPT, "Sweeping must have finished before freeing blocks");
-#if defined(HOST_WIN32) || defined(HOST_ORBIS)
+#if defined(HOST_WIN32) || defined(HOST_ORBIS) || defined (HOST_WASM)
/*
* sgen_free_os_memory () asserts in mono_vfree () because windows doesn't like freeing the middle of
* a VirtualAlloc ()-ed block.
appdomain-unload-callback.cs \
appdomain-unload-doesnot-raise-pending-events.cs \
appdomain-unload-asmload.cs \
+ appdomain-unload-exception.cs \
unload-appdomain-on-shutdown.cs \
bug-47295.cs \
loader.cs \
runtime-invoke.gen.cs \
imt_big_iface_test.cs \
bug-58782-plain-throw.cs \
- bug-58782-capture-and-throw.cs
+ bug-58782-capture-and-throw.cs \
+ recursive-struct-arrays.cs \
+ bug-59281.cs
if AMD64
TESTS_CS_SRC += async-exc-compilation.cs finally_guard.cs finally_block_ending_in_dead_bb.cs
array_load_exception.exe \
assembly_append_ordering.exe \
assemblyresolve_event4.exe \
+ assemblyresolve_event6.exe \
async-exc-compilation.exe \
async-with-cb-throws.exe \
async_read.exe \
# tests that expect a 1 exit code
TESTS_UNHANDLED_EXCEPTION_1_SRC = \
- unhandled-exception-1.cs
+ unhandled-exception-1.cs \
+ unhandled-exception-9.cs
# tests that expect a 255 exit code
TESTS_UNHANDLED_EXCEPTION_255_SRC = \
--- /dev/null
+using System;
+using System.Diagnostics;
+using System.Threading;
+using System.Threading.Tasks;
+
+class Driver
+{
+ static void ThrowTP ()
+ {
+ ManualResetEvent mre = new ManualResetEvent (false);
+
+ ThreadPool.QueueUserWorkItem (_ => { try { throw new AppDomainUnloadedException (); } finally { mre.Set (); } });
+
+ if (!mre.WaitOne (5000))
+ Environment.Exit (1);
+
+ /* Wait for exception unwinding */
+ Thread.Sleep (500);
+ }
+
+ static void ThrowThread ()
+ {
+ Thread thread = new Thread (_ => { throw new AppDomainUnloadedException (); });
+ thread.Start ();
+ thread.Join ();
+ }
+
+ static int Main (string[] args)
+ {
+ ThrowTP ();
+ ThrowThread ();
+
+ return 0;
+ }
+}
}
}
+public interface IRunnable {
+ void Run ();
+}
+
+public class MBRObject : MarshalByRefObject, IRunnable {
+ /* XDomain wrappers for invocation */
+ public void Run () {
+ while (true) {
+ try {
+ while (true)
+ Thread.Sleep (100);
+ }
+ catch (ThreadAbortException ex) {
+ Thread.ResetAbort ();
+ }
+ }
+ }
+}
+
+public class CBObject : ContextBoundObject, IRunnable {
+ /* Slow corlib path for invocation */
+ public void Run () {
+ while (true) {
+ try {
+ while (true)
+ Thread.Sleep (100);
+ }
+ catch (ThreadAbortException ex) {
+ Thread.ResetAbort ();
+ }
+ }
+ }
+}
+
public class UnloadThread {
AppDomain domain;
}
*/
+ public static void ThreadStart (object obj)
+ {
+ IRunnable runnable = (IRunnable)obj;
+
+ try {
+ runnable.Run ();
+ } catch (AppDomainUnloadedException) {
+ Console.WriteLine ("OK");
+ } catch (ThreadAbortException) {
+ throw new Exception ();
+ }
+ }
+
+ public static int test_0_unload_reset_abort () {
+ AppDomain domain = AppDomain.CreateDomain ("test_0_unload_reset_abort");
+ MBRObject mbro = (MBRObject) domain.CreateInstanceFromAndUnwrap (typeof (Tests).Assembly.Location, "MBRObject");
+ CBObject cbo = (CBObject) domain.CreateInstanceFromAndUnwrap (typeof (Tests).Assembly.Location, "CBObject");
+
+ new Thread (ThreadStart).Start (mbro);
+ new Thread (ThreadStart).Start (cbo);
+ Thread.Sleep (100);
+
+ AppDomain.Unload (domain);
+ return 0;
+ }
+
static void Worker (object x) {
Thread.Sleep (100000);
}
public static int test_0_unload_inside_appdomain_sync () {
AppDomain domain = AppDomain.CreateDomain ("Test3");
+ bool caught = false;
try {
domain.DoCallBack (new CrossAppDomainDelegate (SyncCallback));
}
- catch (Exception ex) {
- /* Should throw a ThreadAbortException */
- Thread.ResetAbort ();
+ catch (AppDomainUnloadedException ex) {
+ caught = true;
}
+ if (!caught)
+ return 1;
+
return 0;
}
using System;
+using System.Collections.Generic;
using System.Runtime.InteropServices;
public class Test {
- static void puts (string s)
- {
- Console.WriteLine (s);
- }
-
- public static int jagged ()
+ public static int test_0_jagged ()
{
int[][] j2 = new int [3][];
return 0;
}
- public static int stest ()
+ public static int test_0_stest ()
{
string[] sa = new string[32];
for (int i = 0; i < sa.Length; i++){
if (sa [i] != null)
- puts (sa [i]);
+ Console.WriteLine (sa [i]);
}
return 0;
}
- public static int atest2 ()
+ public static int test_0_atest2 ()
{
int[,] ia = new int[32,32];
return 0;
}
- public static int atest ()
+ public static int test_0_atest ()
{
int[] ia = new int[32];
for (int i = 0; i <ia.Length; i++)
if ((int)ia.GetValue (i) != i*i*i){
- puts ("Crap: " + i + " " + (int) ia.GetValue (i) );
+ Console.WriteLine ("Crap: " + i + " " + (int) ia.GetValue (i) );
return 4;
}
return 0;
}
-
- public static int Main () {
- puts ("a");
- if (atest () != 0)
- return atest ();
- puts ("b");
- if (atest2 () != 0)
- return 1;
- puts ("c");
- if (atest2 () != 0)
- return 1;
- puts ("d");
- if (stest () != 0)
+ enum Foo { a, b };
+ public static int test_0_enum_array_casting () {
+ var x = new Foo[10];
+ try {
+ var y = (IReadOnlyList<int>)(object)x;
+ } catch (Exception e) {
return 1;
- puts ("e");
- if (jagged () != 0)
- return 1;
-
-
+ }
+ try {
+ var y = (IList<int>)(object)x;
+ } catch (Exception e) {
+ return 2;
+ }
+
+ try {
+ var y = (ICollection<int>)(object)x;
+ } catch (Exception e) {
+ return 3;
+ }
+
+ try {
+ var y = (IEnumerable<int>)(object)x;
+ } catch (Exception e) {
+ return 4;
+ }
+
+ try {
+ var y = (IReadOnlyCollection<int>)(object)x;
+ } catch (Exception e) {
+ return 5;
+ }
return 0;
}
+
+ public static int Main (string[] args) {
+ return TestDriver.RunTests (typeof (Test), args);
+ }
}
--- /dev/null
+using System;
+using System.Threading;
+
+class Driver
+{
+
+ static readonly Mutex[] mutexes = new Mutex[2];
+
+ public static void Main(string[] args)
+ {
+ for (int i = 0; i < mutexes.Length; i++) {
+ mutexes [i] = new Mutex();
+ }
+
+ Thread thread1 = new Thread(() => {
+ for (int i = 0; i < 1; i++) {
+ int idx = -1;
+ try {
+ idx = WaitHandle.WaitAny (mutexes);
+ Console.WriteLine($"Thread 1 iter: {i} with mutex: {idx}");
+ } finally {
+ if (idx != -1)
+ mutexes [idx].ReleaseMutex();
+ }
+ }
+
+ Console.WriteLine("Thread 1 ended");
+ });
+
+ thread1.Start();
+ thread1.Join();
+
+ Thread thread2 = new Thread(() => {
+ for (int i = 0; i < 1000; i++) {
+ int idx = -1;
+ try {
+ idx = WaitHandle.WaitAny (mutexes);
+ Console.WriteLine($"Thread 2 iter: {i} with mutex: {idx}");
+ } finally {
+ if (idx != -1)
+ mutexes [idx].ReleaseMutex();
+ }
+ }
+
+ Console.WriteLine("Thread 2 ended");
+ });
+
+ thread2.Start();
+ thread2.Join();
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+
+/* Test that the runtime can represent value types that have array fields that
+ * recursively refer to the same value type */
+
+struct S1 {
+ static S1[][] foo;
+}
+
+struct S2 {
+ static S2[] foo;
+}
+
+struct S3a {
+ static S3b[] foo;
+}
+
+struct S3b {
+ static S3a[][] foo;
+}
+
+struct P<X> where X : struct {
+ static P<X>[][] foo;
+}
+
+public struct S4
+{
+ private static S4[][] foo;
+
+ public static readonly S4 West = new S4(-1, 0);
+ public static readonly S4 East = new S4(1, 0);
+ public static readonly S4 North = new S4(0, 1);
+ public static readonly S4 South = new S4(0, -1);
+ public static readonly S4[] Directions = { North, South, East, West };
+
+ public readonly int x;
+ public readonly int z;
+
+ public S4(int x, int z)
+ {
+ this.x = x;
+ this.z = z;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("[{0}, {1}]", x, z);
+ }
+}
+
+
+class Program {
+ static int Main() {
+ Console.WriteLine (typeof (S1).Name);
+ Console.WriteLine (typeof (S2).Name);
+ Console.WriteLine (typeof (S3a).Name);
+ Console.WriteLine (typeof (S3b).Name);
+ foreach (var s4 in S4.Directions) {
+ Console.WriteLine (s4);
+ }
+ Console.WriteLine (typeof (P<S1>).Name);
+ Console.WriteLine (typeof (P<int>).Name);
+ return 0;
+ }
+}
D
}
+struct AStruct {
+ public int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
+ public int a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
+}
+
class Tests
{
public static Enum1 return_enum1 () {
return UInt64.MaxValue - 5;
}
+ public static object return_t<T> (T t) {
+ return (object)t;
+ }
+
static int Main (string[] args)
{
return TestDriver.RunTests (typeof (Tests), args);
else
return 1;
}
+
+ public static int test_0_large_arg ()
+ {
+ var arg = new AStruct ();
+ arg.a1 = 1;
+ arg.a2 = 2;
+ arg.a3 = 3;
+ arg.a20 = 20;
+ var res = typeof (Tests).GetMethod ("return_t").MakeGenericMethod (new Type [] { typeof (AStruct) }).Invoke (null, new object [] { arg });
+ var arg2 = (AStruct)res;
+ if (arg2.a20 == 20)
+ return 0;
+ else
+ return 1;
+ }
}
--- /dev/null
+using System;
+using System.Diagnostics;
+using System.Threading;
+using System.Threading.Tasks;
+
+class Driver
+{
+ /* expected exit code: 1 */
+ static void Main (string[] args)
+ {
+ if (Environment.GetEnvironmentVariable ("TEST_UNHANDLED_EXCEPTION_HANDLER") != null)
+ AppDomain.CurrentDomain.UnhandledException += (s, e) => {};
+
+ throw new AppDomainUnloadedException ();
+ }
+}
if HOST_WIN32
win32_sources = \
- os-event-win32.c
+ os-event-win32.c \
+ mono-os-wait-win32.c
platform_sources = $(win32_sources)
else
mono-mmap-windows-internals.h \
mono-os-mutex.h \
mono-os-mutex.c \
+ mono-os-wait.h \
mono-coop-mutex.h \
mono-once.h \
mono-lazy-init.h \
#elif !defined(HOST_WIN32) && defined(HAVE_SEMAPHORE_H)
#include <semaphore.h>
#else
-#include <winsock2.h>
-#include <windows.h>
+#include <mono/utils/mono-os-wait.h>
#endif
#define MONO_HAS_SEMAPHORES 1
BOOL res;
retry:
- res = WaitForSingleObjectEx (*sem, timeout_ms, flags & MONO_SEM_FLAGS_ALERTABLE);
+ res = mono_win32_wait_for_single_object_ex (*sem, timeout_ms, flags & MONO_SEM_FLAGS_ALERTABLE);
if (G_UNLIKELY (res != WAIT_OBJECT_0 && res != WAIT_IO_COMPLETION && res != WAIT_TIMEOUT))
- g_error ("%s: WaitForSingleObjectEx failed with error %d", __func__, GetLastError ());
+ g_error ("%s: mono_win32_wait_for_single_object_ex failed with error %d", __func__, GetLastError ());
if (res == WAIT_IO_COMPLETION && !(flags & MONO_SEM_FLAGS_ALERTABLE))
goto retry;
--- /dev/null
+/**
+* \file
+* Win32 OS wait wrappers and interrupt/abort APC handling.
+*
+* Author:
+* Johan Lorensson (lateralusx.github@gmail.com)
+*
+* Licensed under the MIT license. See LICENSE file in the project root for full license information.
+*/
+
+#include <mono/utils/mono-os-wait.h>
+#include <mono/utils/mono-threads.h>
+#include <mono/utils/mono-threads-debug.h>
+
+enum ThreadWaitInfo {
+ THREAD_WAIT_INFO_CLEARED = 0,
+ THREAD_WAIT_INFO_ALERTABLE_WAIT_SLOT = 1 << 0,
+ THREAD_WAIT_INFO_PENDING_INTERRUPT_APC_SLOT = 1 << 1,
+ THREAD_WAIT_INFO_PENDING_ABORT_APC_SLOT = 1 << 2
+};
+
+static inline void
+request_interrupt (gpointer thread_info, HANDLE native_thread_handle, gint32 pending_apc_slot, PAPCFUNC apc_callback, DWORD tid)
+{
+ /*
+ * On Windows platforms, an async interrupt/abort request queues an APC
+ * that needs to be processed by target thread before it can return from an
+ * alertable OS wait call and complete the mono interrupt/abort request.
+ * Uncontrolled queuing of APC's could flood the APC queue preventing the target thread
+ * to return from its alertable OS wait call, blocking the interrupt/abort requests to complete
+ * This check makes sure that only one APC per type gets queued, preventing potential flooding
+ * of the APC queue. NOTE, this code will execute regardless if targeted thread is currently in
+ * an alertable wait or not. This is done to prevent races between interrupt/abort requests and
+ * alertable wait calls. Threads already in an alertable wait should handle WAIT_IO_COMPLETION
+ * return scenarios and restart the alertable wait operation if needed or take other actions
+ * (like service the interrupt/abort request).
+ */
+ MonoThreadInfo *info = (MonoThreadInfo *)thread_info;
+ gint32 old_wait_info, new_wait_info;
+
+ do {
+ old_wait_info = InterlockedRead (&info->thread_wait_info);
+ if (old_wait_info & pending_apc_slot)
+ return;
+
+ new_wait_info = old_wait_info | pending_apc_slot;
+ } while (InterlockedCompareExchange (&info->thread_wait_info, new_wait_info, old_wait_info) != old_wait_info);
+
+ THREADS_INTERRUPT_DEBUG ("%06d - Interrupting/Aborting syscall in thread %06d", GetCurrentThreadId (), tid);
+ QueueUserAPC (apc_callback, native_thread_handle, (ULONG_PTR)NULL);
+}
+
+static void CALLBACK
+interrupt_apc (ULONG_PTR param)
+{
+ THREADS_INTERRUPT_DEBUG ("%06d - interrupt_apc () called", GetCurrentThreadId ());
+}
+
+void
+mono_win32_interrupt_wait (PVOID thread_info, HANDLE native_thread_handle, DWORD tid)
+{
+ request_interrupt (thread_info, native_thread_handle, THREAD_WAIT_INFO_PENDING_INTERRUPT_APC_SLOT, interrupt_apc, tid);
+}
+
+static void CALLBACK
+abort_apc (ULONG_PTR param)
+{
+ THREADS_INTERRUPT_DEBUG ("%06d - abort_apc () called", GetCurrentThreadId ());
+}
+
+void
+mono_win32_abort_wait (PVOID thread_info, HANDLE native_thread_handle, DWORD tid)
+{
+ request_interrupt (thread_info, native_thread_handle, THREAD_WAIT_INFO_PENDING_ABORT_APC_SLOT, abort_apc, tid);
+}
+
+static inline void
+enter_alertable_wait (MonoThreadInfo *info)
+{
+ // Clear any previous flags. Set alertable wait flag.
+ InterlockedExchange (&info->thread_wait_info, THREAD_WAIT_INFO_ALERTABLE_WAIT_SLOT);
+}
+
+static inline void
+leave_alertable_wait (MonoThreadInfo *info)
+{
+ // Clear any previous flags. Thread is exiting alertable wait state, and info around pending interrupt/abort APC's
+ // can now be discarded as well, thread is out of wait operation and can proceed it's execution.
+ InterlockedExchange (&info->thread_wait_info, THREAD_WAIT_INFO_CLEARED);
+}
+
+DWORD
+mono_win32_sleep_ex (DWORD timeout, BOOL alertable)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = SleepEx (timeout, alertable);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
+
+DWORD
+mono_win32_wait_for_single_object_ex (HANDLE handle, DWORD timeout, BOOL alertable)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = WaitForSingleObjectEx (handle, timeout, alertable);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
+
+DWORD
+mono_win32_wait_for_multiple_objects_ex (DWORD count, CONST HANDLE *handles, BOOL waitAll, DWORD timeout, BOOL alertable)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = WaitForMultipleObjectsEx (count, handles, waitAll, timeout, alertable);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
+
+DWORD
+mono_win32_signal_object_and_wait (HANDLE toSignal, HANDLE toWait, DWORD timeout, BOOL alertable)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = SignalObjectAndWait (toSignal, toWait, timeout, alertable);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
+
+DWORD
+mono_win32_msg_wait_for_multiple_objects_ex (DWORD count, CONST HANDLE *handles, DWORD timeout, DWORD wakeMask, DWORD flags)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+ BOOL alertable = flags & MWMO_ALERTABLE;
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = MsgWaitForMultipleObjectsEx (count, handles, timeout, wakeMask, flags);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
+
+DWORD
+mono_win32_wsa_wait_for_multiple_events (DWORD count, const WSAEVENT FAR *handles, BOOL waitAll, DWORD timeout, BOOL alertable)
+{
+ DWORD result = WAIT_FAILED;
+ MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+
+ if (alertable && info) {
+ enter_alertable_wait (info);
+ }
+
+ result = WSAWaitForMultipleEvents (count, handles, waitAll, timeout, alertable);
+
+ // NOTE, leave_alertable_wait should not affect GetLastError but
+ // if changed, GetLastError needs to be preserved and reset before returning.
+ if (alertable && info) {
+ leave_alertable_wait (info);
+ }
+
+ return result;
+}
--- /dev/null
+/**
+* \file
+*/
+
+#ifndef _MONO_UTILS_OS_WAIT_H_
+#define _MONO_UTILS_OS_WAIT_H_
+
+#include <config.h>
+#ifdef HOST_WIN32
+
+#include <winsock2.h>
+#include <windows.h>
+
+DWORD
+mono_win32_sleep_ex (DWORD timeout, BOOL alertable);
+
+DWORD
+mono_win32_wait_for_single_object_ex (HANDLE handle, DWORD timeout, BOOL alertable);
+
+DWORD
+mono_win32_wait_for_multiple_objects_ex (DWORD count, CONST HANDLE *handles, BOOL waitAll, DWORD timeout, BOOL alertable);
+
+DWORD
+mono_win32_signal_object_and_wait (HANDLE toSignal, HANDLE toWait, DWORD timeout, BOOL alertable);
+
+DWORD
+mono_win32_msg_wait_for_multiple_objects_ex (DWORD count, CONST HANDLE *handles, DWORD timeout, DWORD wakeMask, DWORD flags);
+
+DWORD
+mono_win32_wsa_wait_for_multiple_events (DWORD count, const WSAEVENT FAR *handles, BOOL waitAll, DWORD timeout, BOOL alertable);
+
+void
+mono_win32_interrupt_wait (PVOID thread_info, HANDLE native_thread_handle, DWORD tid);
+
+void
+mono_win32_abort_wait (PVOID thread_info, HANDLE native_thread_handle, DWORD tid);
+
+#endif
+
+#endif /* _MONO_UTILS_OS_WAIT_H_ */
#include <mono/utils/mono-compiler.h>
#include <mono/utils/mono-threads-debug.h>
+#include <mono/utils/mono-os-wait.h>
#include <limits.h>
-
void
mono_threads_suspend_init (void)
{
}
-static void CALLBACK
-interrupt_apc (ULONG_PTR param)
-{
-}
-
gboolean
mono_threads_suspend_begin_async_suspend (MonoThreadInfo *info, gboolean interrupt_kernel)
{
info->suspend_can_continue = mono_threads_get_runtime_callbacks ()->thread_state_init_from_handle (&info->thread_saved_state [ASYNC_SUSPEND_STATE_INDEX], info);
THREADS_SUSPEND_DEBUG ("thread state %p -> %d\n", (void*)id, res);
if (info->suspend_can_continue) {
- //FIXME do we need to QueueUserAPC on this case?
if (interrupt_kernel)
- QueueUserAPC ((PAPCFUNC)interrupt_apc, handle, (ULONG_PTR)NULL);
+ mono_win32_interrupt_wait (info, handle, id);
} else {
THREADS_SUSPEND_DEBUG ("FAILSAFE RESUME/2 %p -> %d\n", (void*)info->native_handle, 0);
}
return info->suspend_can_continue;
}
-static void CALLBACK
-abort_apc (ULONG_PTR param)
-{
- THREADS_INTERRUPT_DEBUG ("%06d - abort_apc () called", GetCurrentThreadId ());
-}
+
void
mono_threads_suspend_abort_syscall (MonoThreadInfo *info)
handle = OpenThread (THREAD_ALL_ACCESS, FALSE, id);
g_assert (handle);
- THREADS_INTERRUPT_DEBUG ("%06d - Aborting syscall in thread %06d", GetCurrentThreadId (), id);
- QueueUserAPC ((PAPCFUNC)abort_apc, handle, (ULONG_PTR)NULL);
+ mono_win32_abort_wait (info, handle, id);
CloseHandle (handle);
}
return CreateThread (NULL, 0, (func), (arg), 0, (tid)) != NULL;
}
+gboolean
+mono_native_thread_join_handle (HANDLE thread_handle, gboolean close_handle)
+{
+ DWORD res = WaitForSingleObject (thread_handle, INFINITE);
+
+ if (close_handle)
+ CloseHandle (thread_handle);
+
+ return res != WAIT_FAILED;
+}
+
gboolean
mono_native_thread_join (MonoNativeThreadId tid)
{
HANDLE handle;
- if (!(handle = OpenThread (THREAD_ALL_ACCESS, TRUE, tid)))
+ if (!(handle = OpenThread (SYNCHRONIZE, TRUE, tid)))
return FALSE;
- DWORD res = WaitForSingleObject (handle, INFINITE);
-
- CloseHandle (handle);
-
- return res != WAIT_FAILED;
+ return mono_native_thread_join_handle (handle, TRUE);
}
#if HAVE_DECL___READFSDWORD==0
* handled a sampling signal before sending another one.
*/
gint32 profiler_signal_ack;
+
+ gint32 thread_pending_native_join;
+
+#ifdef USE_WINDOWS_BACKEND
+ gint32 thread_wait_info;
+#endif
+
} MonoThreadInfo;
typedef struct {
#include <winbase.h>
#include "atomic.h"
+#include "mono-os-wait.h"
void
mono_os_event_init (MonoOSEvent *event, gboolean initial)
g_assert (event);
g_assert (event->handle);
- res = WaitForSingleObjectEx (event->handle, timeout, alertable);
+ res = mono_win32_wait_for_single_object_ex (event->handle, timeout, alertable);
if (res == WAIT_OBJECT_0)
return MONO_OS_EVENT_WAIT_RET_SUCCESS_0;
else if (res == WAIT_IO_COMPLETION)
else if (res == WAIT_TIMEOUT)
return MONO_OS_EVENT_WAIT_RET_TIMEOUT;
else if (res == WAIT_FAILED)
- g_error ("%s: WaitForSingleObjectEx failed with error %d", __func__, GetLastError ());
+ g_error ("%s: mono_thread_win32_wait_one_handle failed with error %d", __func__, GetLastError ());
else
g_error ("%s: unknown res value %d", __func__, res);
}
handles [i] = events [i]->handle;
}
- res = WaitForMultipleObjectsEx (nevents, handles, waitall, timeout, alertable);
+ res = mono_win32_wait_for_multiple_objects_ex ((DWORD)nevents, handles, waitall, timeout, alertable);
if (res >= WAIT_OBJECT_0 && res < WAIT_OBJECT_0 + MONO_OS_EVENT_WAIT_MAXIMUM_OBJECTS)
return MONO_OS_EVENT_WAIT_RET_SUCCESS_0 + (res - WAIT_OBJECT_0);
else if (res == WAIT_IO_COMPLETION)
else if (res == WAIT_TIMEOUT)
return MONO_OS_EVENT_WAIT_RET_TIMEOUT;
else if (res == WAIT_FAILED)
- g_error ("%s: WaitForSingleObjectEx failed with error %d", __func__, GetLastError ());
+ g_error ("%s: mono_thread_win32_wait_multiple_handle failed with error %d", __func__, GetLastError ());
else
g_error ("%s: unknown res value %d", __func__, res);
}
#if MONO_HAS_CLANG_THREAD_SANITIZER
#define MONO_UNLOCKED_ATTRS MONO_NO_SANITIZE_THREAD MONO_NEVER_INLINE static
+#elif defined(_MSC_VER)
+#define MONO_UNLOCKED_ATTRS MONO_ALWAYS_INLINE static
#else
#define MONO_UNLOCKED_ATTRS MONO_ALWAYS_INLINE static inline
#endif
return *src;
}
+MONO_UNLOCKED_ATTRS
+gpointer
+UnlockedReadPointer (volatile gpointer *src)
+{
+ return *src;
+}
+
#endif /* _UNLOCKED_H_ */
EXTRA_DIST = \
$(VCXPROJS) \
README \
- create-windef.pl \
- mono.def \
mono.props \
mono.sln \
monoposixhelper.def \
runmdesc.bat \
winsetup.bat
-
-update-def:
- perl create-windef.pl mono.def ../mono/mini/.libs/libmonoboehm-2.0.so mono-2.0.dll
- perl create-windef.pl monosgen.def ../mono/mini/.libs/libmonosgen-2.0.so monosgen-2.0.dll
From this directory type:
- msbuild.exe mono.sln /p:Configuration=Debug_eglib
+ msbuild.exe mono.sln /p:Configuration=Debug /p:Platform=x64
msbuild must be in your path, it comes with the .NET Framework.
MAINTENANCE
- When new exported API calls are added to the runtime, issue the
- command:
+ Source files added to the different project .target files matches project makefile structure.
+ NOTE, all sources added to makefiles should also be added to corresponding targets files for consistency.
+ Files that should not be build on Windows should be excluded using this configuration:
- make update-def
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
- in this directory and commit the resulting mono.def file.
+ and at the begning of the target file have a property set when to exclude files. This example will always
+ exclude the file, but could be condtional if needed:
- This must happen on a Linux system, because we get the list of
- the exported symbols from the generated shared library.
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ All header files added to makefiles should be included in the different targets files for consistency.
+
+ Each target file has a corresponding filter file, files added to target files should also be added to the corresponding
+ filter file.
+++ /dev/null
-#!/usr/bin/perl -w
-
-use strict;
-
-my $outfile = shift || usage ();
-my $soname = shift || usage ();
-my $dllname = shift || usage ();
-my @symbols = ();
-my %excludes = ();
-my $cmd = "nm -D $soname";
-
-@excludes {qw(
- mono_class_setup_vtable_general_new mono_debugger_init mono_debugger_main
- mono_once mono_pthread_key_for_tls
- mono_gc_pthread_create mono_gc_pthread_detach mono_gc_pthread_join
- mono_gc_pthread_exit
- mono_file_map_fileio mono_file_unmap_fileio
- mono_file_map_set_allocator
-)} = ();
-
-open (SYMS, "$cmd |") || die "Cannot run \$cmd': $!\n";
-while (<SYMS>) {
- next unless / T (mono_.*)/;
- next if exists $excludes {$1};
- push @symbols, $1;
-}
-close (SYMS);
-push @symbols, "MonoFixupCorEE";
-@symbols = sort @symbols;
-
-open (OUT, ">$outfile") || die "Cannot open '$outfile': $!\n";
-print OUT "; file generated by create-windef.pl\n";
-print OUT "EXPORTS\n";
-print OUT join ("\n", @symbols);
-print OUT "\n";
-
-close (OUT);
-
-sub usage {
- print "Usage: create-windef.pl output_file soname dllname\n";
- exit (1);
-}
-
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
+ <ItemGroup Label="common_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\eglib-remap.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\sort.frag.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\glib.h" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\garray.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gbytearray.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gerror.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\ghashtable.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\giconv.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\glist.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmarkup.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmem.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule.h" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\goutput.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpattern.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gptrarray.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gqsort.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstr.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gslist.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstring.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gptrarray.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\glist.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gqueue.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpath.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gshell.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gslist.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gspawn.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstr.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstring.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-posix.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpattern.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmarkup.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gutf8.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\unicode-data.h" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\glib.h" />
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule.h" />
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\sort.frag.h" />
+ <None Include="$(MonoSourceLocation)\mono\eglib\Makefile.am" />
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
+ <ItemGroup Label="common_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\eglib-remap.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\sort.frag.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\glib.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClInclude>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\garray.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gbytearray.c">
- <Filter>Source Files\Common</Filter>
- </ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gerror.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\ghashtable.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\giconv.c">
- <Filter>Source Files\Common</Filter>
- </ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\glist.c">
- <Filter>Source Files\Common</Filter>
- </ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmarkup.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmem.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClInclude>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\goutput.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpattern.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gqsort.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstr.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gslist.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstring.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gptrarray.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gqsort.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\glist.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gqueue.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gshell.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpath.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gslist.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gshell.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gspawn.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstr.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gstring.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-posix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode.c">
- <Filter>Source Files\Common</Filter>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpattern.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmarkup.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gutf8.c">
- <Filter>Source Files\Common</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
</ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\unicode-data.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\common</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\glib.h">
- <Filter>Header Files\Common</Filter>
- </ClInclude>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule.h">
- <Filter>Header Files\Common</Filter>
- </ClInclude>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\sort.frag.h">
- <Filter>Header Files\Common</Filter>
- </ClInclude>
+ <None Include="$(MonoSourceLocation)\mono\eglib\Makefile.am">
+ <Filter>Resource Files$(EGLibFilterSubFolder)\common</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(EGLibFilterSubFolder)\common">
+ <UniqueIdentifier>{04853f35-873a-4b07-990a-61dc8ebd5105}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(EGLibFilterSubFolder)\common">
+ <UniqueIdentifier>{453FE226-0B9E-4A07-B2F8-BB2955098E9E}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(EGLibFilterSubFolder)\common">
+ <UniqueIdentifier>{7a01f670-6a6a-4837-b3ac-cd6c08075b4e}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-posix.c" />
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdate-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdir-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmisc-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmodule-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gtimer-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-posix.c">
- <Filter>Source Files\Posix</Filter>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdate-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdir-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmisc-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
</ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmodule-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gtimer-unix.c">
+ <Filter>Source Files$(EGLibFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(EGLibFilterSubFolder)\posix">
+ <UniqueIdentifier>{3c958a68-b6a1-40d3-834c-b50be09cb819}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
+ <ItemGroup Label="win32_sources">
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdate-win32.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdir-win32.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-win32.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmisc-win32.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32.c" />
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpath.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32-internals.h" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gtimer-win32.c" />
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode-win32.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32-internals.h" />
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
+ <ItemGroup Label="win32_sources">
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdate-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gdir-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gfile-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmisc-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32.c">
- <Filter>Source Files\Win32</Filter>
- </ClCompile>
- <ClCompile Include="$(MonoSourceLocation)\mono\eglib\gpath.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32-internals.h">
+ <Filter>Header Files$(EGLibFilterSubFolder)\win32</Filter>
+ </ClInclude>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gtimer-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
<ClCompile Include="$(MonoSourceLocation)\mono\eglib\gunicode-win32.c">
- <Filter>Source Files\Win32</Filter>
+ <Filter>Source Files$(EGLibFilterSubFolder)\win32</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(MonoSourceLocation)\mono\eglib\gmodule-win32-internals.h">
- <Filter>Header Files\Win32</Filter>
- </ClInclude>
+ <Filter Include="Header Files$(EGLibFilterSubFolder)\win32">
+ <UniqueIdentifier>{80953075-5d05-41b9-be90-82497081b11c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(EGLibFilterSubFolder)\win32">
+ <UniqueIdentifier>{c6e3ed6c-6b52-4823-bc4f-2dc9f84e3f5d}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="eglib-common.targets" />
+ <Import Project="eglib-win32.targets" />
+ <Import Project="eglib-posix.targets" />
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="eglib-common.targets.filters" />
+ <Import Project="eglib-win32.targets.filters" />
+ <Import Project="eglib-posix.targets.filters" />
+ <ItemGroup Condition="'$(EGLibFilterSubFolder)'!=''">
+ <Filter Include="Source Files$(EGLibFilterSubFolder)">
+ <UniqueIdentifier>{8B3E0DAF-48EA-4B5F-B573-4E8ED8525134}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files$(EGLibFilterSubFolder)">
+ <UniqueIdentifier>{1277B2DB-F7E8-44C0-9F8B-5933EB5BD879}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(EGLibFilterSubFolder)">
+ <UniqueIdentifier>{9B2D78CC-201F-48DF-8710-839BCDB0AEE9}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
<ItemGroup Label="ProjectConfigurations">\r
<ProjectConfiguration Include="Debug|Win32">\r
<ClCompile>\r
<Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_EGLIB_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
</Command>\r
</PreBuildEvent>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_EGLIB_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<ClCompile>\r
<Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_EGLIB_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_EGLIB_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
</ItemDefinitionGroup>\r
- <Import Project="eglib-common.targets" />\r
- <Import Project="eglib-win32.targets" />\r
- <Import Project="eglib-posix.targets" />\r
+ <Import Project="eglib.targets" />\r
<ItemGroup>\r
<ProjectReference Include="build-init.vcxproj">\r
<Project>{92ae7622-5f58-4234-9a26-9ec71876b3f4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\eglib\src\Makefile.am" />\r
- </ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <Import Project="eglib-common.targets.filters" />\r
- <Import Project="eglib-win32.targets.filters" />\r
- <Import Project="eglib-posix.targets.filters" />\r
+ <Import Project="eglib.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Source Files">\r
<UniqueIdentifier>{d16b81e3-5093-424e-a5d4-e7dd8da49dce}</UniqueIdentifier>\r
<Filter Include="Resource Files">\r
<UniqueIdentifier>{38a39ff1-842b-431b-b54b-24094e8283eb}</UniqueIdentifier>\r
</Filter>\r
- <Filter Include="Header Files\Common">\r
- <UniqueIdentifier>{04853f35-873a-4b07-990a-61dc8ebd5105}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Header Files\Win32">\r
- <UniqueIdentifier>{80953075-5d05-41b9-be90-82497081b11c}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files\Common">\r
- <UniqueIdentifier>{7a01f670-6a6a-4837-b3ac-cd6c08075b4e}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files\Win32">\r
- <UniqueIdentifier>{c6e3ed6c-6b52-4823-bc4f-2dc9f84e3f5d}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files\Posix">\r
- <UniqueIdentifier>{3c958a68-b6a1-40d3-834c-b50be09cb819}</UniqueIdentifier>\r
- </Filter>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\eglib\src\Makefile.am">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
</ItemGroup>\r
</Project>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<SuppressStartupBanner>true</SuppressStartupBanner>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
<PostBuildEvent />\r
<CustomBuildStep>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>_DEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;_CONSOLE;HAVE_CONFIG_H;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
</ProjectReference>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
<PostBuildEvent />\r
<CustomBuildStep>\r
</HeaderFileName>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<StringPooling>true</StringPooling>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
</ProjectReference>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
</Link>\r
<PostBuildEvent />\r
<CustomBuildStep>\r
</HeaderFileName>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>NDEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;_CONSOLE;HAVE_CONFIG_H;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<StringPooling>true</StringPooling>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
- <CompileAs>CompileAsC</CompileAs>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
</ProjectReference>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
- <SuppressStartupBanner>true</SuppressStartupBanner>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
</Link>\r
<PostBuildEvent />\r
<CustomBuildStep>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ <ExcludeBoehmGCFromBuild>true</ExcludeBoehmGCFromBuild>
+ <ExcludeBoehmGCFromBuild Condition="'$(MONO_TARGET_GC)'=='boehm' And '$(Platform)'=='Win32'">false</ExcludeBoehmGCFromBuild>
+ </PropertyGroup>
+ <ItemGroup Label="libmonogc_la_sources">
+ <ClCompile Include="$(MonoSourceLocation)\libgc\allchblk.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\alloc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\blacklst.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\checksums.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\dbg_mlc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\dyn_load.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\finalize.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\gc_dlopen.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\gcj_mlc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\headers.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\malloc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mallocx.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mark.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mark_rts.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\misc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\new_hblk.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\obj_map.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\os_dep.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pcr_interface.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\ptr_chck.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\real_malloc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\reclaim.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\solaris_pthreads.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\solaris_threads.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\specific.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\stubborn.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\typd_mlc.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\backgraph.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\win32_threads.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pthread_support.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pthread_stop_world.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\darwin_stop_world.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\openbsd_stop_world.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mach_dep.c">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gcconfig.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_priv.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_hdrs.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc_gcj.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc_mark.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_locks.h">
+ <ExcludedFromBuild>$(ExcludeBoehmGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\libgc\Makefile.am" />
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="libmonogc_la_sources">
+ <ClCompile Include="$(MonoSourceLocation)\libgc\allchblk.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\alloc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\blacklst.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\checksums.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\dbg_mlc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\dyn_load.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\finalize.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\gc_dlopen.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\gcj_mlc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\headers.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\malloc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mallocx.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mark.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mark_rts.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\misc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\new_hblk.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\obj_map.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\os_dep.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pcr_interface.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\ptr_chck.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\real_malloc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\reclaim.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\solaris_pthreads.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\solaris_threads.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\specific.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\stubborn.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\typd_mlc.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\backgraph.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\win32_threads.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pthread_support.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\pthread_stop_world.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\darwin_stop_world.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\openbsd_stop_world.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\libgc\mach_dep.c">
+ <Filter>Source Files$(GCboehmFilterSubFolder)</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gcconfig.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_priv.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_hdrs.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc_gcj.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\gc_mark.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\libgc\include\private\gc_locks.h">
+ <Filter>Header Files$(GCboehmFilterSubFolder)</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\libgc\Makefile.am">
+ <Filter>Resource Files$(GCboehmFilterSubFolder)</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup Condition="'$(GCboehmFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(GCboehmFilterSubFolder)">
+ <UniqueIdentifier>{9671D54B-CA64-4CFA-89BD-D90D90D38F6B}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(GCboehmFilterSubFolder)">
+ <UniqueIdentifier>{AA2FEF48-1466-481B-AA60-BF0DA57967BC}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(GCboehmFilterSubFolder)">
+ <UniqueIdentifier>{67EC6108-4A9F-4B19-B019-734A71CDFE30}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
<AdditionalIncludeDirectories>$(MONO_LIBGC_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>_DEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME="libgc-mono";PACKAGE_TARNAME="libgc-mono";PACKAGE_VERSION="6.6";PACKAGE_STRING="libgc-mono 6.6";PACKAGE_BUGREPORT="Hans_Boehm%40hp.com";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4311;4312;4996;4005;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- <WarningLevel>Level1</WarningLevel>\r
+ <WarningLevel>Level3</WarningLevel>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
</ClCompile>\r
- <Lib>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
- </Lib>\r
+ <Lib />\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_LIBGC_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>NDEBUG;__i386__;TARGET_X86;i386;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME="libgc-mono";PACKAGE_TARNAME="libgc-mono";PACKAGE_VERSION="6.6";PACKAGE_STRING="libgc-mono 6.6";PACKAGE_BUGREPORT="Hans_Boehm%40hp.com";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
- <Lib>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
- </Lib>\r
+ <Lib />\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<Midl>\r
<AdditionalIncludeDirectories>$(MONO_LIBGC_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>_DEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME="libgc-mono";PACKAGE_TARNAME="libgc-mono";PACKAGE_VERSION="6.6";PACKAGE_STRING="libgc-mono 6.6";PACKAGE_BUGREPORT="Hans_Boehm%40hp.com";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4311;4312;4996;4005;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
</ClCompile>\r
- <Lib>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
- </Lib>\r
+ <Lib />\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<Midl>\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_LIBGC_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>NDEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME="libgc-mono";PACKAGE_TARNAME="libgc-mono";PACKAGE_VERSION="6.6";PACKAGE_STRING="libgc-mono 6.6";PACKAGE_BUGREPORT="Hans_Boehm%40hp.com";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
- <Lib>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
- </Lib>\r
+ <Lib />\r
</ItemDefinitionGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\libgc\allchblk.c" />\r
- <ClCompile Include="..\libgc\alloc.c" />\r
- <ClCompile Include="..\libgc\blacklst.c" />\r
- <ClCompile Include="..\libgc\dbg_mlc.c" />\r
- <ClCompile Include="..\libgc\dyn_load.c" />\r
- <ClCompile Include="..\libgc\finalize.c" />\r
- <ClCompile Include="..\libgc\gcj_mlc.c" />\r
- <ClCompile Include="..\libgc\headers.c" />\r
- <ClCompile Include="..\libgc\mach_dep.c" />\r
- <ClCompile Include="..\libgc\malloc.c" />\r
- <ClCompile Include="..\libgc\mallocx.c" />\r
- <ClCompile Include="..\libgc\mark.c" />\r
- <ClCompile Include="..\libgc\mark_rts.c" />\r
- <ClCompile Include="..\libgc\misc.c" />\r
- <ClCompile Include="..\libgc\new_hblk.c" />\r
- <ClCompile Include="..\libgc\obj_map.c" />\r
- <ClCompile Include="..\libgc\os_dep.c" />\r
- <ClCompile Include="..\libgc\ptr_chck.c" />\r
- <ClCompile Include="..\libgc\reclaim.c" />\r
- <ClCompile Include="..\libgc\stubborn.c" />\r
- <ClCompile Include="..\libgc\typd_mlc.c" />\r
- <ClCompile Include="..\libgc\win32_threads.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\libgc\include\gc.h" />\r
- <ClInclude Include="..\libgc\include\private\gc_hdrs.h" />\r
- <ClInclude Include="..\libgc\include\private\gc_locks.h" />\r
- <ClInclude Include="..\libgc\include\gc_mark.h" />\r
- <ClInclude Include="..\libgc\include\private\gc_pmark.h" />\r
- <ClInclude Include="..\libgc\include\private\gc_priv.h" />\r
- <ClInclude Include="..\libgc\include\private\gcconfig.h" />\r
- </ItemGroup>\r
+ <Import Project="libgc.targets" />\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\libgc\allchblk.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\alloc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\blacklst.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\dbg_mlc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\dyn_load.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\finalize.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\gcj_mlc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\headers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\mach_dep.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\malloc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\mallocx.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\mark.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\mark_rts.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\misc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\new_hblk.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\obj_map.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\os_dep.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\ptr_chck.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\reclaim.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\stubborn.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\typd_mlc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\libgc\win32_threads.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\libgc\include\gc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\private\gc_hdrs.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\private\gc_locks.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\gc_mark.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\private\gc_pmark.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\private\gc_priv.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\libgc\include\private\gcconfig.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
+ <Import Project="libgc.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<UniqueIdentifier>{699a2844-7533-4292-9d33-c8f0ff83fc43}</UniqueIdentifier>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeSGenGCFromBuild>true</ExcludeSGenGCFromBuild>
+ <ExcludeSGenGCFromBuild Condition="'$(MONO_TARGET_GC)'=='sgen'">false</ExcludeSGenGCFromBuild>
+ </PropertyGroup>
+ <ItemGroup Label="monosgen_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\gc-internal-agnostic.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-alloc.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-archdep.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-cardtable.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-cardtable.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-client.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-conf.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-copy-object.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-debug.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-descriptor.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-descriptor.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-fin-weak-hash.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gc.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-gc.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gchandles.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gray.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-gray.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-hash-table.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-hash-table.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-internal.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-layout-stats.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-layout-stats.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-los.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-major-copy-object.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-marksweep-drain-gray-stack.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-marksweep.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-memory-governor.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-memory-governor.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-minor-copy-object.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-minor-scan-object.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-nursery-allocator.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning-stats.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pointer-queue.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-pointer-queue.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-array-list.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-array-list.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol-def.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-qsort.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-qsort.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-scan-object.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-simple-nursery.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-split-nursery.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-tagged-pointer.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-thread-pool.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-thread-pool.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-workers.c">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-workers.h">
+ <ExcludedFromBuild>$(ExcludeSGenGCFromBuild)</ExcludedFromBuild>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\sgen\Makefile.am" />
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="monosgen_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\gc-internal-agnostic.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-alloc.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-archdep.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-cardtable.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-cardtable.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-client.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-conf.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-copy-object.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-debug.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-descriptor.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-descriptor.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-fin-weak-hash.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gc.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-gc.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gchandles.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-gray.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-gray.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-hash-table.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-hash-table.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-internal.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-layout-stats.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-layout-stats.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-los.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-major-copy-object.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-marksweep-drain-gray-stack.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-marksweep.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-memory-governor.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-memory-governor.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-minor-copy-object.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-minor-scan-object.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-nursery-allocator.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning-stats.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-pinning.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-pointer-queue.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-pointer-queue.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-array-list.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-array-list.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol-def.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-protocol.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-qsort.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-qsort.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-scan-object.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-simple-nursery.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-split-nursery.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-tagged-pointer.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-thread-pool.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-thread-pool.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\sgen\sgen-workers.c">
+ <Filter>Source Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\sgen\sgen-workers.h">
+ <Filter>Header Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\sgen\Makefile.am">
+ <Filter>Resource Files$(MonoGCsgenFilterSubFolder)</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup Condition="'$(MonoGCsgenFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(MonoGCsgenFilterSubFolder)">
+ <UniqueIdentifier>{09852EE2-29A8-4C5A-9DE0-748F4113132B}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoGCsgenFilterSubFolder)">
+ <UniqueIdentifier>{D551BA3A-A20D-4FB2-BFF4-0174A3CB19E1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoGCsgenFilterSubFolder)">
+ <UniqueIdentifier>{37293C0E-9158-42C3-BE90-8FE4B63CDFF5}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
<Platform>x64</Platform>\r
</ProjectConfiguration>\r
</ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\sgen\sgen-alloc.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-array-list.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-cardtable.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-debug.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-descriptor.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-gc.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-gchandles.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-gray.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-hash-table.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-internal.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-los.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-marksweep.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-memory-governor.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-nursery-allocator.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-pinning-stats.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-pinning.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-pointer-queue.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-protocol.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-qsort.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-simple-nursery.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-split-nursery.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-thread-pool.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-workers.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-fin-weak-hash.c" />\r
- <ClCompile Include="..\mono\sgen\sgen-layout-stats.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\sgen\gc-internal-agnostic.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-archdep.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-array-list.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-cardtable.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-client.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-conf.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-copy-object.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-descriptor.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-gc.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-gray.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-hash-table.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-layout-stats.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-major-copy-object.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-marksweep-drain-gray-stack.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-marksweep-scan-object-concurrent.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-memory-governor.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-minor-copy-object.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-minor-scan-object.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-pinning.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-pointer-queue.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-protocol-def.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-protocol.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-qsort.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-scan-object.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-tagged-pointer.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-thread-pool.h" />\r
- <ClInclude Include="..\mono\sgen\sgen-workers.h" />\r
- </ItemGroup>\r
<PropertyGroup Label="Globals">\r
<ProjectGuid>{C36612BD-22D3-4B95-85E2-7FDC4FC5D740}</ProjectGuid>\r
<Keyword>Win32Proj</Keyword>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
<Optimization>Disabled</Optimization>\r
- <PreprocessorDefinitions>WIN32;$(SGEN_DEFINES);_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(SGEN_DEFINES);_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
<Optimization>Disabled</Optimization>\r
- <PreprocessorDefinitions>WIN32;$(SGEN_DEFINES);_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <OmitFramePointers>false</OmitFramePointers>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(SGEN_DEFINES);_LIB;_DEBUG;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <PreprocessorDefinitions>WIN32;$(SGEN_DEFINES);NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(SGEN_DEFINES);_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <PreprocessorDefinitions>WIN32;$(SGEN_DEFINES);NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(SGEN_DEFINES);_LIB;NDEBUG;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<OptimizeReferences>true</OptimizeReferences>\r
</Link>\r
</ItemDefinitionGroup>\r
+ <Import Project="libgcmonosgen.targets" />\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\sgen\sgen-alloc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-cardtable.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-debug.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-descriptor.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-fin-weak-hash.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-gc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-gchandles.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-gray.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-hash-table.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-internal.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-layout-stats.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-los.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-marksweep.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-memory-governor.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-nursery-allocator.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-pinning.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-pinning-stats.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-pointer-queue.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-protocol.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-qsort.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-simple-nursery.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-split-nursery.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-thread-pool.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-workers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\sgen\sgen-array-list.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\sgen\gc-internal-agnostic.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-archdep.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-cardtable.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-client.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-conf.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-copy-object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-descriptor.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-gc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-gray.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-hash-table.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-layout-stats.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-major-copy-object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-marksweep-drain-gray-stack.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-marksweep-scan-object-concurrent.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-memory-governor.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-minor-copy-object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-minor-scan-object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-pinning.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-pointer-queue.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-protocol.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-protocol-def.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-qsort.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-scan-object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-tagged-pointer.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-thread-pool.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-workers.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\sgen-array-list.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
+ <Import Project="libgcmonosgen.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Resource Files">\r
<UniqueIdentifier>{62eb1a19-26dd-4c17-8bd0-0a734673637d}</UniqueIdentifier>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ <ExcludeFromWindows32Build>false</ExcludeFromWindows32Build>
+ <ExcludeFromWindows64Build>false</ExcludeFromWindows64Build>
+ <ExcludeFromWindows32Build Condition="'$(Platform)'=='Win32'">true</ExcludeFromWindows32Build>
+ <ExcludeFromWindows64Build Condition="'$(Platform)'=='x64'">true</ExcludeFromWindows64Build>
+ </PropertyGroup>
+ <ItemGroup Label="arch_wasm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-wasm.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_x86_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-x86.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-x86.h"/>
+ <CustomBuildStep Include="$(MonoSourceLocation)\mono\mini\mini-x86.h">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </CustomBuildStep>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-x86.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-x86.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-x86-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-x86-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows64Build)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_amd64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-amd64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-amd64.h"/>
+ <CustomBuildStep Include="$(MonoSourceLocation)\mono\mini\mini-amd64.h">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </CustomBuildStep>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-amd64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-amd64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-amd64-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-amd64-gsharedvt.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-amd64-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_ppc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-ppc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-ppc.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-ppc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-ppc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-arm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm64.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-arm64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm64-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm64-gsharedvt.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm64-gsharedvt.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_mips_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-mips.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-mips.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-mips.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-mips.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_sparc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-sparc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-sparc.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-sparc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-sparc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_s390x_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-s390x.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-s390x.h"/>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\support-s390x.h"/>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-s390x.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-s390x.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="arch_wasm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-wasm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\wasm</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-wasm.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\wasm</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-wasm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\wasm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-wasm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\wasm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_x86_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-x86.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-x86.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-x86.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-x86.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-x86-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-x86-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_amd64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-amd64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-amd64.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-amd64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-amd64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-amd64-gsharedvt.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-amd64-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-amd64-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_ppc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-ppc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\ppc</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-ppc.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\ppc</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-ppc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\ppc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-ppc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\ppc</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-arm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm64.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-arm64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm64.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arm64-gsharedvt.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-arm64-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-arm64-gsharedvt.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_mips_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-mips.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\mips</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-mips.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\mips</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-mips.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\mips</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-mips.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\mips</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_sparc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-sparc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\sparc</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-sparc.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\sparc</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-sparc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\sparc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-sparc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\sparc</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_s390x_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-s390x.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\s390x</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-s390x.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\s390x</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\support-s390x.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\arch\s390x</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\exceptions-s390x.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\s390x</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tramp-s390x.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\arch\s390x</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch">
+ <UniqueIdentifier>{819510FE-1354-40D8-93CA-2FF5EB410FED}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch">
+ <UniqueIdentifier>{9FD04D2D-B4F4-4EC6-82FF-26A2333D4467}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\wasm">
+ <UniqueIdentifier>{B6D0ED07-1561-4C73-97E6-3E0688E3FDB3}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\wasm">
+ <UniqueIdentifier>{1EBAD4C5-455D-425F-B036-9D31C3A1D5B5}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\x86">
+ <UniqueIdentifier>{4F64FA1A-0E4D-46ED-97DE-6913D02E6210}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\x86">
+ <UniqueIdentifier>{195D3978-2A6F-4319-8E1C-D0DB1210F6B2}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\amd64">
+ <UniqueIdentifier>{257C0357-BA3E-4E1C-9C35-466AB8436E8C}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\amd64">
+ <UniqueIdentifier>{54DD5925-EFC1-4795-A72F-567572A55127}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\ppc">
+ <UniqueIdentifier>{93654968-5AC2-47D6-B75A-2B2B389E755F}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\ppc">
+ <UniqueIdentifier>{BC2E6DB6-BE05-4CA1-8B7A-C6E479CF18B8}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\arm">
+ <UniqueIdentifier>{AD618FB9-5A86-4FB0-8954-D521472E4ABA}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\arm">
+ <UniqueIdentifier>{BEB75A74-7D5B-46FF-A3C8-54CD43CB3169}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\arm64">
+ <UniqueIdentifier>{215EE8BC-34C7-443B-913D-6C66A12D5423}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\arm64">
+ <UniqueIdentifier>{62141C1C-2506-47B6-87FC-A5BEC57E25C4}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\mips">
+ <UniqueIdentifier>{EAD92105-5ECB-4307-B7B1-E46505F8F663}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\mips">
+ <UniqueIdentifier>{36B76A9F-133A-4A05-BB24-8AF688194DF2}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\sparc">
+ <UniqueIdentifier>{9388C690-91E7-4FA1-86EE-FF8D2B146B23}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\sparc">
+ <UniqueIdentifier>{271C5D45-30DD-490B-B8F1-00BB955EAF71}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\arch\s390x">
+ <UniqueIdentifier>{E241E01E-29A9-4029-AD16-7A9E33B3153C}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\arch\s390x">
+ <UniqueIdentifier>{906B3D7C-D6B7-4EA6-A2B5-2B385C9C2A6C}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="common_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-runtime.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\seq-points.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\seq-points.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\ir-emit.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\method-to-ir.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\cfgdump.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\cfgdump.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\decompose.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\version.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\optflags-def.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\jit-icalls.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\jit-icalls.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\trace.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\trace.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\patch-info.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-ops.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arch.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\dominators.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\cfold.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\regalloc.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\helpers.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\liveness.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\ssa.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\abcremoval.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\abcremoval.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\local-propagation.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\driver.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\debug-mini.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\linear-scan.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\aot-compiler.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-compiler.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-runtime.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-runtime-wasm.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\graph.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-codegen.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-exceptions.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-trampolines.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\branch-opts.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-generic-sharing.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\simd-methods.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tasklets.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\tasklets.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-native-types.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\simd-intrinsics.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-unwind.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\unwind.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\image-writer.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\image-writer.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\dwarfwriter.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\dwarfwriter.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-gc.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-gc.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\debugger-agent.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\debugger-agent.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\xdebug.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-llvm.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-llvm-cpp.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\llvm-jit.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\alias-analysis.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-cross-helpers.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\arch-stubs.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\llvm-runtime.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\type-checking.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\lldb.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\lldb.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\memory-access.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-profiler.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\mini\Makefile.am.in" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="common_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-runtime.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\seq-points.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\seq-points.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\ir-emit.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\method-to-ir.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\cfgdump.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\cfgdump.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\decompose.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\version.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\optflags-def.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\jit-icalls.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\jit-icalls.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\trace.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\trace.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\patch-info.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-ops.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-arch.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\dominators.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\cfold.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\regalloc.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\helpers.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\liveness.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\ssa.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\abcremoval.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\abcremoval.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\local-propagation.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\driver.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\debug-mini.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\linear-scan.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\aot-compiler.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-compiler.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-runtime.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\aot-runtime-wasm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\graph.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-codegen.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-exceptions.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-trampolines.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\branch-opts.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-generic-sharing.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\simd-methods.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\tasklets.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\tasklets.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-native-types.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\simd-intrinsics.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-unwind.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\unwind.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\image-writer.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\image-writer.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\dwarfwriter.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\dwarfwriter.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-gc.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-gc.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\debugger-agent.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\debugger-agent.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\xdebug.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-llvm.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-llvm-cpp.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\llvm-jit.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\alias-analysis.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-cross-helpers.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\arch-stubs.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\llvm-runtime.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\type-checking.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\lldb.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\lldb.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\memory-access.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-profiler.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\mini\Makefile.am.in">
+ <Filter>Resource Files$(MonoMiniFilterSubFolder)\common</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\common">
+ <UniqueIdentifier>{5E1443AF-3832-4C37-AD99-0D264DE68344}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoMiniFilterSubFolder)\common">
+ <UniqueIdentifier>{D09DBA53-D0BA-4E90-B207-4B23A9E7709B}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\common">
+ <UniqueIdentifier>{C0C82F0C-77A6-447F-BED2-39FD6ACDDC3A}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="interp_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\hacks.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\interp.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\interp-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\interp.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\interp-stubs.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\mintops.h" />
+ <None Include="$(MonoSourceLocation)\mono\mini\interp\mintops.def" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\mintops.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\transform.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="interp_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\hacks.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\interp.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\interp-internals.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\interp.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\interp-stubs.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\interp\mintops.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClInclude>
+ <None Include="$(MonoSourceLocation)\mono\mini\interp\mintops.def">
+ <Filter>Resource Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </None>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\mintops.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\interp\transform.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\interp</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\interp">
+ <UniqueIdentifier>{9E07C63F-9DE3-45EC-AEF6-D55AE5E7B644}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoMiniFilterSubFolder)\interp">
+ <UniqueIdentifier>{1064DAD3-1B4C-4803-BD5F-D046F98052E4}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\interp">
+ <UniqueIdentifier>{5D14595A-15DA-44C8-AC7D-3B296DBC324D}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="llvm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm-loaded.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\llvm-runtime.cpp">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm-cpp.cpp">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\llvm-jit.cpp">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="llvm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm-loaded.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\llvm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\llvm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\llvm-runtime.cpp">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\llvm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-llvm-cpp.cpp">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\llvm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\llvm-jit.cpp">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\llvm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\llvm">
+ <UniqueIdentifier>{6FF52301-18F4-41A3-AF3B-6D129E50D8AB}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="darwin_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-darwin.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-posix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="darwin_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-darwin.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\darwin</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-posix.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\darwin">
+ <UniqueIdentifier>{E3BEC2F7-4DE6-43BC-A38D-67414D6CAB8B}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\posix">
+ <UniqueIdentifier>{B80745E3-E5F0-47A7-BE31-CBEC8615EDFE}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="windows_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-windows.h" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="windows_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-windows.c">
+ <Filter>Source Files$(MonoMiniFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\mini\mini-windows.h">
+ <Filter>Header Files$(MonoMiniFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)\win32">
+ <UniqueIdentifier>{B67D965A-45EE-4B01-AE98-CC6470F6DC9E}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)\win32">
+ <UniqueIdentifier>{2F0E3758-B8D9-4009-8B48-47F48303D00E}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmini-common.targets" />
+ <Import Project="libmini-win32.targets" />
+ <Import Project="libmini-posix.targets" />
+ <Import Project="libmini-arch.targets" />
+ <Import Project="libmini-interp.targets" />
+ <Import Project="libmini-llvm.targets" />
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmini-common.targets.filters" />
+ <Import Project="libmini-win32.targets.filters" />
+ <Import Project="libmini-posix.targets.filters" />
+ <Import Project="libmini-arch.targets.filters" />
+ <Import Project="libmini-interp.targets.filters" />
+ <Import Project="libmini-llvm.targets.filters" />
+ <ItemGroup Condition="'$(MonoMiniFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(MonoMiniFilterSubFolder)">
+ <UniqueIdentifier>{b64924de-7e02-416b-9779-4cc7fe0270e6}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoMiniFilterSubFolder)">
+ <UniqueIdentifier>{95531242-a8da-43ec-9ddb-6da7551d9c2d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoMiniFilterSubFolder)">
+ <UniqueIdentifier>{f66c7e0f-6887-449d-81a5-49168ddfc4db}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="eglib.vcxproj">\r
+ <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
+ </ProjectReference>\r
+ <ProjectReference Include="genmdesc.vcxproj">\r
+ <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{88D2EB79-592D-45F8-B849-AE021C1D983A}</ProjectGuid>\r
+ <RootNamespace>libmini</RootNamespace>\r
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>StaticLibrary</ConfigurationType>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>StaticLibrary</ConfigurationType>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>StaticLibrary</ConfigurationType>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>StaticLibrary</ConfigurationType>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <LinkIncremental>true</LinkIncremental>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <LinkIncremental>true</LinkIncremental>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Windows</SubSystem>\r
+ </Link>\r
+ <PostBuildEvent />\r
+ <Lib>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ </Lib>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Windows</SubSystem>\r
+ </Link>\r
+ <PostBuildEvent />\r
+ <Lib>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ </Lib>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <StringPooling>true</StringPooling>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Windows</SubSystem>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ </Link>\r
+ <PostBuildEvent />\r
+ <Lib>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ </Lib>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <StringPooling>true</StringPooling>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Windows</SubSystem>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ </Link>\r
+ <PostBuildEvent />\r
+ <Lib>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ </Lib>\r
+ </ItemDefinitionGroup>\r
+ <Import Project="libmini.targets" />\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <Import Project="libmini.targets.filters" />\r
+ <ItemGroup>\r
+ <Filter Include="Header Files">\r
+ <UniqueIdentifier>{30FB3E7A-9BC7-47A9-BABB-D34F7CD6F466}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Resource Files">\r
+ <UniqueIdentifier>{A4810F67-8B76-40A9-9A43-6048BC8A65F1}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files">\r
+ <UniqueIdentifier>{3E49E932-95E1-4900-89D8-0ABFD8094726}</UniqueIdentifier>\r
+ </Filter>\r
+ </ItemGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Debug|x64">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|x64">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>x64</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{675F4175-FFB1-480D-AD36-F397578844D4}</ProjectGuid>\r
+ <RootNamespace>libmono-dynamic</RootNamespace>\r
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <UseOfMfc>false</UseOfMfc>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <UseOfMfc>false</UseOfMfc>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <UseOfMfc>false</UseOfMfc>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+ <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+ <UseOfMfc>false</UseOfMfc>\r
+ <CharacterSet>Unicode</CharacterSet>\r
+ <PlatformToolset>v140</PlatformToolset>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ <Import Project="mono.props" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup>\r
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <LinkIncremental>true</LinkIncremental>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <LinkIncremental>true</LinkIncremental>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
+ <Link>\r
+ <AdditionalDependencies Condition="'$(MONO_TARGET_GC)'=='boehm'">$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ModuleDefinitionFile>\r
+ </ModuleDefinitionFile>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
+ </Link>\r
+ <PostBuildEvent>\r
+ <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
+ </PostBuildEvent>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <Optimization>Disabled</Optimization>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
+ <Link>\r
+ <AdditionalDependencies Condition="'$(MONO_TARGET_GC)'=='boehm'">$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ModuleDefinitionFile>\r
+ </ModuleDefinitionFile>\r
+ <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
+ </Link>\r
+ <PostBuildEvent>\r
+ <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
+ </PostBuildEvent>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <ProjectReference />\r
+ <Link>\r
+ <AdditionalDependencies Condition="'$(MONO_TARGET_GC)'=='boehm'">$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ModuleDefinitionFile>\r
+ </ModuleDefinitionFile>\r
+ <DataExecutionPrevention>\r
+ </DataExecutionPrevention>\r
+ <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
+ </Link>\r
+ <PostBuildEvent>\r
+ <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
+ </PostBuildEvent>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+ <PreBuildEvent>\r
+ <Command>\r
+ </Command>\r
+ </PreBuildEvent>\r
+ <Midl>\r
+ <TargetEnvironment>X64</TargetEnvironment>\r
+ </Midl>\r
+ <ClCompile>\r
+ <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);MONO_DLL_EXPORT;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <StringPooling>true</StringPooling>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ </ClCompile>\r
+ <ResourceCompile>\r
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <Culture>0x0409</Culture>\r
+ </ResourceCompile>\r
+ <ProjectReference />\r
+ <Link>\r
+ <AdditionalDependencies Condition="'$(MONO_TARGET_GC)'=='boehm'">$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+ <ModuleDefinitionFile>\r
+ </ModuleDefinitionFile>\r
+ <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
+ </Link>\r
+ <PostBuildEvent>\r
+ <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
+ </PostBuildEvent>\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+ </ProjectReference>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ProjectReference Include="genmdesc.vcxproj">\r
+ <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
+ </ProjectReference>\r
+ <ProjectReference Include="libgc.vcxproj">\r
+ <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
+ </ProjectReference>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-windows-dllmain.c" />\r
+ </ItemGroup>\r
+ <Import Project="eglib.targets" />\r
+ <Import Project="libmonoutils.targets" />\r
+ <Import Project="libmonoruntime.targets" />\r
+ <Import Project="libmini.targets" />\r
+ <Import Project="libgcmonosgen.targets" />\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <PropertyGroup>\r
+ <MonoUtilsFilterSubFolder>\libmonoutils</MonoUtilsFilterSubFolder>\r
+ <MonoRuntimeFilterSubFolder>\libmonoruntime</MonoRuntimeFilterSubFolder>\r
+ <MonoMiniFilterSubFolder>\libmini</MonoMiniFilterSubFolder>\r
+ <MonoGCsgenFilterSubFolder>\libgcmonosgen</MonoGCsgenFilterSubFolder>\r
+ <EGLibFilterSubFolder>\eglib</EGLibFilterSubFolder>\r
+ </PropertyGroup>\r
+ <Import Project="eglib.targets.filters" />\r
+ <Import Project="libmonoutils.targets.filters" />\r
+ <Import Project="libmonoruntime.targets.filters" />\r
+ <Import Project="libmini.targets.filters" />\r
+ <Import Project="libgcmonosgen.targets.filters" />\r
+ <ItemGroup>\r
+ <Filter Include="Header Files">\r
+ <UniqueIdentifier>{09693EC3-6099-43FF-A22D-D0651643B146}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Resource Files">\r
+ <UniqueIdentifier>{851A7AF5-8521-4F03-9527-D162FB53D9E7}</UniqueIdentifier>\r
+ </Filter>\r
+ <Filter Include="Source Files">\r
+ <UniqueIdentifier>{58EC90AB-A91B-433C-AE1E-6B09A6D43A3E}</UniqueIdentifier>\r
+ </Filter>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="$(MonoSourceLocation)\mono\mini\mini-windows-dllmain.c">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+</Project>
\ No newline at end of file
<Platform>x64</Platform>\r
</ProjectConfiguration>\r
</ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\mini\alias-analysis.c" />\r
- <ClCompile Include="..\mono\mini\arch-stubs.c" />\r
- <ClCompile Include="..\mono\mini\exceptions-amd64.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\exceptions-x86.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-amd64.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-amd64-gsharedvt.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-runtime.c" />\r
- <ClCompile Include="..\mono\mini\mini-windows.c" />\r
- <ClCompile Include="..\mono\mini\mini-x86.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-x86-gsharedvt.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini.c" />\r
- <ClCompile Include="..\mono\mini\memory-access.c" />\r
- <ClInclude Include="..\mono\metadata\remoting.h" />\r
- <ClInclude Include="..\mono\mini\ir-emit.h" />\r
- <ClCompile Include="..\mono\mini\method-to-ir.c" />\r
- <ClCompile Include="..\mono\mini\decompose.c" />\r
- <ClInclude Include="..\mono\mini\mini-amd64.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-amd64-gsharedvt.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-windows.h" />\r
- <ClInclude Include="..\mono\mini\mini-x86.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini.h" />\r
- <ClInclude Include="..\mono\mini\seq-points.h" />\r
- <ClInclude Include="..\mono\mini\version.h" />\r
- <ClInclude Include="..\mono\mini\optflags-def.h" />\r
- <ClInclude Include="..\mono\mini\cfgdump.h" />\r
- <ClCompile Include="..\mono\mini\cfgdump.c" />\r
- <ClInclude Include="..\mono\mini\jit-icalls.h " />\r
- <ClCompile Include="..\mono\mini\jit-icalls.c " />\r
- <ClCompile Include="..\mono\mini\seq-points.c" />\r
- <ClCompile Include="..\mono\mini\trace.c" />\r
- <ClInclude Include="..\mono\mini\trace.h" />\r
- <ClInclude Include="..\mono\mini\patch-info.h" />\r
- <ClInclude Include="..\mono\mini\mini-ops.h" />\r
- <ClInclude Include="..\mono\mini\mini-arch.h" />\r
- <ClCompile Include="..\mono\mini\dominators.c" />\r
- <ClCompile Include="..\mono\mini\cfold.c" />\r
- <ClInclude Include="..\mono\mini\regalloc.h" />\r
- <ClCompile Include="..\mono\mini\helpers.c" />\r
- <ClCompile Include="..\mono\mini\liveness.c" />\r
- <ClCompile Include="..\mono\mini\ssa.c" />\r
- <ClCompile Include="..\mono\mini\abcremoval.c" />\r
- <ClInclude Include="..\mono\mini\abcremoval.h" />\r
- <ClCompile Include="..\mono\mini\local-propagation.c" />\r
- <ClCompile Include="..\mono\mini\driver.c" />\r
- <ClCompile Include="..\mono\mini\debug-mini.c" />\r
- <ClCompile Include="..\mono\mini\linear-scan.c" />\r
- <ClCompile Include="..\mono\mini\aot-compiler.c" />\r
- <ClCompile Include="..\mono\mini\aot-runtime.c" />\r
- <ClCompile Include="..\mono\mini\graph.c" />\r
- <ClCompile Include="..\mono\mini\mini-codegen.c" />\r
- <ClCompile Include="..\mono\mini\mini-cross-helpers.c" />\r
- <ClCompile Include="..\mono\mini\mini-exceptions.c" />\r
- <ClCompile Include="..\mono\mini\mini-trampolines.c " />\r
- <ClCompile Include="..\mono\mini\tramp-amd64.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-amd64-gsharedvt.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-x86.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-x86-gsharedvt.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\branch-opts.c" />\r
- <ClCompile Include="..\mono\mini\mini-generic-sharing.c" />\r
- <ClInclude Include="..\mono\mini\simd-methods.h" />\r
- <ClCompile Include="..\mono\mini\tasklets.c" />\r
- <ClInclude Include="..\mono\mini\tasklets.h" />\r
- <ClCompile Include="..\mono\mini\simd-intrinsics.c" />\r
- <ClInclude Include="..\mono\mini\mini-unwind.h" />\r
- <ClCompile Include="..\mono\mini\unwind.c" />\r
- <ClInclude Include="..\mono\mini\image-writer.h" />\r
- <ClCompile Include="..\mono\mini\image-writer.c" />\r
- <ClInclude Include="..\mono\mini\dwarfwriter.h" />\r
- <ClCompile Include="..\mono\mini\dwarfwriter.c" />\r
- <ClInclude Include="..\mono\mini\mini-gc.h" />\r
- <ClCompile Include="..\mono\mini\mini-gc.c" />\r
- <ClInclude Include="..\mono\mini\debugger-agent.h " />\r
- <ClCompile Include="..\mono\mini\debugger-agent.c" />\r
- <ClCompile Include="..\mono\mini\xdebug.c" />\r
- <ClInclude Include="..\mono\mini\mini-llvm.h" />\r
- <ClInclude Include="..\mono\mini\mini-llvm-cpp.h" />\r
- <ClCompile Include="..\mono\mini\mini-native-types.c" />\r
- <ClCompile Include="..\mono\mini\type-checking.c" />\r
- <ClCompile Include="..\mono\mini\lldb.c" />\r
- <ClCompile Include="..\mono\mini\interp\interp-stubs.c" />\r
- <ClCompile Include="..\mono\mini\mini-profiler.c" />\r
- </ItemGroup>\r
<PropertyGroup Label="Globals">\r
<ProjectGuid>{CB0D9E92-293C-439C-9AC7-C5F59B6E0772}</ProjectGuid>\r
<RootNamespace>libmono-static</RootNamespace>\r
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
<Optimization>Disabled</Optimization>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <BrowseInformation>false</BrowseInformation>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</Link>\r
<PostBuildEvent />\r
+ <Lib />\r
+ <ProjectReference />\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<PreBuildEvent>\r
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
<Optimization>Disabled</Optimization>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <BrowseInformation>false</BrowseInformation>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</Link>\r
<PostBuildEvent />\r
+ <Lib />\r
+ <ProjectReference />\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<PreBuildEvent>\r
</PreBuildEvent>\r
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>MaxSpeed</Optimization>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<OptimizeReferences>true</OptimizeReferences>\r
</Link>\r
<PostBuildEvent />\r
+ <Lib />\r
+ <ProjectReference />\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<PreBuildEvent>\r
</PreBuildEvent>\r
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>MaxSpeed</Optimization>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<OptimizeReferences>true</OptimizeReferences>\r
</Link>\r
<PostBuildEvent />\r
+ <Lib />\r
+ <ProjectReference />\r
+ <ProjectReference>\r
+ <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ </ProjectReference>\r
</ItemDefinitionGroup>\r
- <ItemGroup>\r
- <CustomBuildStep Include="..\mono\mini\mini-x86.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </CustomBuildStep>\r
- <CustomBuildStep Include="..\mono\mini\mini-amd64.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </CustomBuildStep>\r
- </ItemGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="genmdesc.vcxproj">\r
- <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgc.vcxproj">\r
+ <ProjectReference Condition="'$(MONO_TARGET_GC)'=='boehm'" Include="libgc.vcxproj">\r
<Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="libgcmonosgen.vcxproj">\r
+ <ProjectReference Condition="'$(MONO_TARGET_GC)'=='sgen'" Include="libgcmonosgen.vcxproj">\r
<Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d740}</Project>\r
</ProjectReference>\r
+ <ProjectReference Include="libmini.vcxproj">\r
+ <Project>{88d2eb79-592d-45f8-b849-ae021c1d983a}</Project>\r
+ </ProjectReference>\r
<ProjectReference Include="libmonoruntime.vcxproj">\r
<Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d739}</Project>\r
</ProjectReference>\r
<Project>{8fc2b0c8-51ad-49df-851f-5d01a77a75e4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\mini\Makefile.am.in" />\r
- </ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\mini\abcremoval.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\alias-analysis.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\aot-compiler.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\aot-runtime.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\arch-stubs.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\branch-opts.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\cfold.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\debugger-agent.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\debug-mini.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\decompose.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\dominators.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\driver.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\dwarfwriter.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\exceptions-amd64.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\exceptions-x86.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\graph.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\helpers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\image-writer.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\jit-icalls.c ">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\linear-scan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\liveness.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\local-propagation.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\method-to-ir.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\memory-access.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-amd64.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-codegen.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-exceptions.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-gc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-generic-sharing.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-native-types.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-runtime.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-trampolines.c ">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-x86.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\seq-points.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\simd-intrinsics.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\ssa.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tasklets.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\trace.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-amd64.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-x86.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\unwind.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\xdebug.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\cfgdump.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-amd64-gsharedvt.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-cross-helpers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-x86-gsharedvt.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-amd64-gsharedvt.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\tramp-x86-gsharedvt.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\type-checking.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\lldb.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\interp\interp-stubs.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\mini\mini-profiler.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\mini\abcremoval.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\debugger-agent.h ">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\dwarfwriter.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\ir-emit.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\image-writer.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\seq-points.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\jit-icalls.h ">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-amd64.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-arch.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-gc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-llvm.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-llvm-cpp.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-ops.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-unwind.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-x86.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\optflags-def.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\patch-info.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\regalloc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\remoting.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\simd-methods.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\tasklets.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\trace.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\version.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\cfgdump.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-amd64-gsharedvt.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\mini\mini-windows.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<UniqueIdentifier>{bdc9f80b-3045-49d2-bb7b-510450371395}</UniqueIdentifier>\r
<UniqueIdentifier>{5370c3c4-b6ec-4f8a-8b21-ce4e782720a6}</UniqueIdentifier>\r
</Filter>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\mini\Makefile.am.in">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
- </ItemGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup Label="ProjectConfigurations">\r
- <ProjectConfiguration Include="Debug|Win32">\r
- <Configuration>Debug</Configuration>\r
- <Platform>Win32</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Debug|x64">\r
- <Configuration>Debug</Configuration>\r
- <Platform>x64</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Release|Win32">\r
- <Configuration>Release</Configuration>\r
- <Platform>Win32</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Release|x64">\r
- <Configuration>Release</Configuration>\r
- <Platform>x64</Platform>\r
- </ProjectConfiguration>\r
- </ItemGroup>\r
- <PropertyGroup Label="Globals">\r
- <ProjectGuid>{CB0D9E92-293C-439C-9AC7-C5F59B6E0771}</ProjectGuid>\r
- <RootNamespace>libmono</RootNamespace>\r
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
- </PropertyGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <UseOfMfc>false</UseOfMfc>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <UseOfMfc>false</UseOfMfc>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <UseOfMfc>false</UseOfMfc>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <UseOfMfc>false</UseOfMfc>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
- <ImportGroup Label="ExtensionSettings">\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="mono.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="mono.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="mono.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="mono.props" />\r
- </ImportGroup>\r
- <PropertyGroup Label="UserMacros" />\r
- <PropertyGroup>\r
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mono-2.0$(MONO_TARGET_SUFFIX)</TargetName>\r
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <LinkIncremental>true</LinkIncremental>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
- <LinkIncremental>true</LinkIncremental>\r
- </PropertyGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <PreBuildEvent>\r
- <Command>\r
- </Command>\r
- </PreBuildEvent>\r
- <ClCompile>\r
- <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>Disabled</Optimization>\r
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>\r
- <IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
- <PrecompiledHeader>\r
- </PrecompiledHeader>\r
- <PrecompiledHeaderOutputFile>\r
- </PrecompiledHeaderOutputFile>\r
- <BrowseInformation>true</BrowseInformation>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
- <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <ResourceCompile>\r
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <Culture>0x0409</Culture>\r
- </ResourceCompile>\r
- <ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
- </ProjectReference>\r
- <Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <ModuleDefinitionFile>$(MONO_DEF)</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <DataExecutionPrevention>\r
- </DataExecutionPrevention>\r
- <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>\r
- </Link>\r
- <PostBuildEvent>\r
- <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
- </PostBuildEvent>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
- <PreBuildEvent>\r
- <Command>\r
- </Command>\r
- </PreBuildEvent>\r
- <Midl>\r
- <TargetEnvironment>X64</TargetEnvironment>\r
- </Midl>\r
- <ClCompile>\r
- <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>Disabled</Optimization>\r
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>\r
- <IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
- <PrecompiledHeader>\r
- </PrecompiledHeader>\r
- <PrecompiledHeaderOutputFile>\r
- </PrecompiledHeaderOutputFile>\r
- <BrowseInformation>true</BrowseInformation>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
- <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <ResourceCompile>\r
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <Culture>0x0409</Culture>\r
- </ResourceCompile>\r
- <ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
- </ProjectReference>\r
- <Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <ModuleDefinitionFile>$(MONO_DEF)</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- </Link>\r
- <PostBuildEvent>\r
- <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
- </PostBuildEvent>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
- <PreBuildEvent>\r
- <Command>\r
- </Command>\r
- </PreBuildEvent>\r
- <ClCompile>\r
- <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>MinSpace</Optimization>\r
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
- <IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <StringPooling>true</StringPooling>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
- <PrecompiledHeader>\r
- </PrecompiledHeader>\r
- <PrecompiledHeaderOutputFile>\r
- </PrecompiledHeaderOutputFile>\r
- <CompileAs>CompileAsC</CompileAs>\r
- </ClCompile>\r
- <ResourceCompile>\r
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <Culture>0x0409</Culture>\r
- </ResourceCompile>\r
- <ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
- </ProjectReference>\r
- <Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <ModuleDefinitionFile>$(MONO_DEF)</ModuleDefinitionFile>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <DataExecutionPrevention>\r
- </DataExecutionPrevention>\r
- <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- </Link>\r
- <PostBuildEvent>\r
- <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
- </PostBuildEvent>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
- <PreBuildEvent>\r
- <Command>\r
- </Command>\r
- </PreBuildEvent>\r
- <Midl>\r
- <TargetEnvironment>X64</TargetEnvironment>\r
- </Midl>\r
- <ClCompile>\r
- <AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>MinSpace</Optimization>\r
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
- <IntrinsicFunctions>true</IntrinsicFunctions>\r
- <AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <StringPooling>true</StringPooling>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
- <PrecompiledHeader>\r
- </PrecompiledHeader>\r
- <PrecompiledHeaderOutputFile>\r
- </PrecompiledHeaderOutputFile>\r
- <CompileAs>CompileAsC</CompileAs>\r
- </ClCompile>\r
- <ResourceCompile>\r
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <Culture>0x0409</Culture>\r
- </ResourceCompile>\r
- <ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
- </ProjectReference>\r
- <Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <ModuleDefinitionFile>$(MONO_DEF)</ModuleDefinitionFile>\r
- <ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- </Link>\r
- <PostBuildEvent>\r
- <Command>.\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q</Command>\r
- </PostBuildEvent>\r
- </ItemDefinitionGroup>\r
- <ItemGroup>\r
- <CustomBuildStep Include="..\mono\mini\mini-x86.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </CustomBuildStep>\r
- <CustomBuildStep Include="..\mono\mini\mini-amd64.h">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </CustomBuildStep>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="genmdesc.vcxproj">\r
- <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgc.vcxproj">\r
- <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgcmonosgen.vcxproj">\r
- <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d740}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono-static.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0772}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmonoruntime.vcxproj">\r
- <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d739}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmonoutils.vcxproj">\r
- <Project>{8fc2b0c8-51ad-49df-851f-5d01a77a75e4}</Project>\r
- </ProjectReference>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\mini\mini-windows-dllmain.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="mono.def" />\r
- </ItemGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
- <ImportGroup Label="ExtensionTargets">\r
- </ImportGroup>\r
-</Project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <Filter Include="Header Files">\r
- <UniqueIdentifier>{bdc9f80b-3045-49d2-bb7b-510450371395}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Resource Files">\r
- <UniqueIdentifier>{f7700495-afaa-4d16-9aac-79d54d10de23}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files">\r
- <UniqueIdentifier>{5370c3c4-b6ec-4f8a-8b21-ce4e782720a6}</UniqueIdentifier>\r
- </Filter>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\mini\mini-windows-dllmain.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="mono.def">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
- </ItemGroup>\r
-</Project>
\ No newline at end of file
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
<Optimization>Disabled</Optimization>\r
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>\r
- <IntrinsicFunctions>true</IntrinsicFunctions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<PrecompiledHeaderOutputFile>\r
</PrecompiledHeaderOutputFile>\r
- <BrowseInformation>true</BrowseInformation>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<Culture>0x0409</Culture>\r
</ResourceCompile>\r
<ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<ModuleDefinitionFile>\r
</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
<PostBuildEvent>\r
<Command>\r
</Midl>\r
<ClCompile>\r
<AdditionalOptions>/D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions)</AdditionalOptions>\r
- <Optimization>MinSpace</Optimization>\r
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<StringPooling>true</StringPooling>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<PrecompiledHeaderOutputFile>\r
</PrecompiledHeaderOutputFile>\r
- <CompileAs>CompileAsC</CompileAs>\r
+ <WarningLevel>Level3</WarningLevel>\r
</ClCompile>\r
<ResourceCompile>\r
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<Culture>0x0409</Culture>\r
</ResourceCompile>\r
<ProjectReference>\r
- <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+ <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<ModuleDefinitionFile>\r
</ModuleDefinitionFile>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
<PostBuildEvent>\r
<Command>\r
</Command>\r
</PostBuildEvent>\r
</ItemDefinitionGroup>\r
- <ItemGroup>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
- </ProjectReference>\r
- </ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="..\mono\mini\mini-windows-dlldac.c" />\r
</ItemGroup>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="common_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\appdomain.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\domain.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\appdomain-icalls.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\assembly.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\assembly-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\attach.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\attach.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cil-coff.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\class.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class-inlines.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\class-accessors.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\cominterop.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cominterop.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\console-io.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\coree.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\coree.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\coree-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\culture-info.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\culture-info-tables.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-helpers.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-mono-symfile.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-mono-ppdb.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-mono-ppdb.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\decimal-ms.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\decimal-ms.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\domain-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\environment.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\exception.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\exception-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\filewatcher.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\filewatcher.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\gc-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\icall.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-def.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\image.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\image-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\jit-info.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\loader.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\locales.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\locales.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\lock-tracer.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\lock-tracer.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\marshal.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mempool.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mempool.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mempool-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata-verify.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\metadata-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\method-builder.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\method-builder.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-basic-block.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-basic-block.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-config.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-debug.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-endian.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-endian.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-hash.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-conc-hash.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-mlist.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-mlist.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters-def.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-ptr-array.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-route.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-route.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\monitor.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\normalization-tables.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\number-formatter.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\number-ms.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\number-ms.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\object.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\opcodes.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\property-bag.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\property-bag.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32socket.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32socket-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\profiler.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler-private.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\rand.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\rand.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\remoting.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\remoting.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\runtime.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-security.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\security-core-clr.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security-core-clr.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\security-manager.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security-manager.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\string-icalls.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\string-icalls.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sysmath.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sysmath.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\tabledefs.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threads.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threads-types.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool-worker-default.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool-worker.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool-io.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool-io.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\verify.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\verify-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\wrapper-types.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\dynamic-image-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\dynamic-stream.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\dynamic-stream-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection-cache.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\custom-attrs-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sre-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\file-mmap-posix.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\file-mmap-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\file-mmap.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object-offsets.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\abi-details.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata-cross-helpers.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\seq-points-data.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\seq-points-data.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\handle.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\handle.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32mutex.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32semaphore.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32event.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32handle-namespace.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32handle-namespace.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32handle.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32handle.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32error.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\reflection.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\dynamic-image.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre-encode.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre-save.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\custom-attrs.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\fdhandle.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\fdhandle.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\callspec.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\callspec.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\runtime.h" />
+ </ItemGroup>
+ <ItemGroup Label="config_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-config-dirs.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-config-dirs.c" />
+ </ItemGroup>
+ <ItemGroup Label="null_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-null.c">
+ <ExcludedFromBuild>true</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="null_gc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\null-gc.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\null-gc-handles.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\null-gc-handles.c" />
+ </ItemGroup>
+ <ItemGroup Label="gc_dependent_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\gc-stats.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\gc.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\monitor.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-hash.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-conc-hash.c" />
+ </ItemGroup>
+ <ItemGroup Label="boehm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\boehm-gc.c" />
+ </ItemGroup>
+ <ItemGroup Label="sgen_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-old-bridge.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-new-bridge.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-tarjan-bridge.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-toggleref.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-toggleref.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-stw.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-mono.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-client-mono.h" />
+ </ItemGroup>
+ <ItemGroup Label="libmonoruntimeinclude_headers">
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\assembly.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\attrdefs.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\appdomain.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\blob.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-helpers.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-mono-symfile.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threads.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\environment.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\exception.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\image.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\loader.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\metadata.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-config.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-debug.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-gc.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\opcodes.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler-events.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\row-indexes.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\tokentype.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\verify.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\metadata\Makefile.am" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="common_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\appdomain.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\domain.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\appdomain-icalls.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\assembly.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\assembly-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\attach.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\attach.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cil-coff.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\class.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class-inlines.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\class-accessors.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\cominterop.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cominterop.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\console-io.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\coree.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\coree.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\coree-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\culture-info.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\culture-info-tables.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-helpers.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-mono-symfile.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-mono-ppdb.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\debug-mono-ppdb.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\decimal-ms.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\decimal-ms.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\domain-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\environment.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\exception.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\exception-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\filewatcher.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\filewatcher.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\gc-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\icall.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-def.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\image.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\image-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\jit-info.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\loader.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\locales.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\locales.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\lock-tracer.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\lock-tracer.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\marshal.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mempool.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mempool.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mempool-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata-verify.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\metadata-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\method-builder.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\method-builder.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-basic-block.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-basic-block.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-config.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-debug.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-endian.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-endian.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-hash.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-conc-hash.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-mlist.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-mlist.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-perfcounters-def.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-ptr-array.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-route.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-route.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\monitor.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\normalization-tables.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\number-formatter.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\number-ms.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\number-ms.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\object.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\opcodes.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\property-bag.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\property-bag.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32socket.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32socket-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\profiler.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler-private.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\rand.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\rand.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\remoting.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\remoting.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\runtime.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-security.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\security-core-clr.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security-core-clr.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\security-manager.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\security-manager.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\string-icalls.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\string-icalls.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sysmath.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sysmath.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\tabledefs.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threads.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threads-types.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool-worker-default.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool-worker.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\threadpool-io.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threadpool-io.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\verify.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\verify-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\wrapper-types.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\dynamic-image-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\dynamic-stream.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\dynamic-stream-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection-cache.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\custom-attrs-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sre-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\file-mmap-posix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\file-mmap-windows.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\file-mmap.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object-offsets.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\abi-details.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\metadata-cross-helpers.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\seq-points-data.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\seq-points-data.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\handle.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\handle.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32mutex.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32semaphore.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32event.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32handle-namespace.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32handle-namespace.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32handle.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32handle.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32error.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\reflection.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\dynamic-image.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre-encode.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sre-save.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\custom-attrs.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\fdhandle.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\fdhandle.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\callspec.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\callspec.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\runtime.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup Label="config_sources">
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-config-dirs.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\config</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-config-dirs.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\config</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="null_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-null.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\null</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="null_gc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\null-gc.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\null</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\null-gc-handles.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\null</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\null-gc-handles.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\null</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="gc_dependent_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\gc-stats.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\gc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\gc.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\gc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\monitor.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\gc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-hash.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\gc</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-conc-hash.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\gc</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="boehm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\boehm-gc.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\boehm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="sgen_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-old-bridge.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-new-bridge.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-tarjan-bridge.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-toggleref.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-toggleref.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-stw.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\sgen-mono.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-client-mono.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\sgen</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup Label="libmonoruntimeinclude_headers">
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\assembly.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\attrdefs.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\appdomain.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\blob.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\class.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-helpers.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\debug-mono-symfile.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\threads.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\environment.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\exception.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\image.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\loader.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\metadata.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-config.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-debug.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-gc.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\sgen-bridge.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\object.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\opcodes.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\profiler-events.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\reflection.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\row-indexes.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\tokentype.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\verify.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\metadata\Makefile.am">
+ <Filter>Resource Files$(MonoRuntimeFilterSubFolder)\common</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\common">
+ <UniqueIdentifier>{843B5CD9-EDFA-4AAC-991D-61DFA21371BC}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoRuntimeFilterSubFolder)\common">
+ <UniqueIdentifier>{A02993B9-96B7-4706-8DBC-C308D8E73728}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common">
+ <UniqueIdentifier>{7DF7F41B-D8FA-4360-97E0-B489AF16A4A1}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\common\config">
+ <UniqueIdentifier>{315FC157-3666-4A1D-9B57-E7109B4DB660}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common\config">
+ <UniqueIdentifier>{07DDD063-86C3-4F17-AC99-EBB8FBC893A8}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\common\null">
+ <UniqueIdentifier>{99F530B5-33A8-4BB4-ADEE-728D8E12DABD}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common\null">
+ <UniqueIdentifier>{8257808E-1E66-4361-9389-7C37D89FEE87}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common\gc">
+ <UniqueIdentifier>{410dd556-6715-4c4e-beff-c5dd7a6b78a1}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common\boehm">
+ <UniqueIdentifier>{728e57f8-14d3-42f4-b92a-be03cd2acdfa}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\common\sgen">
+ <UniqueIdentifier>{5fede250-d478-466b-aa2a-36d2222de065}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\common\sgen">
+ <UniqueIdentifier>{d5996ea0-8b43-4267-a46c-715270aaee2b}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\common\public">
+ <UniqueIdentifier>{D27FE656-8C2C-4D3B-8F25-4BAEAEAB7C6D}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32mutex-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32semaphore-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32event-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-osx.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-bsd.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-haiku.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-default.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-unix-glob.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-unix-glob.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32error-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32mutex-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32semaphore-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32event-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-osx.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-bsd.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-haiku.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-unix-default.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-unix-glob.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-unix-glob.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32error-unix.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\posix">
+ <UniqueIdentifier>{A7AC4663-8099-40E7-8527-BB3E157E4724}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\posix">
+ <UniqueIdentifier>{C3BF4A1D-8504-4891-9682-8DA7F355F8A3}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="win32_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-win32.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\console-win32-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cominterop-win32-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-win32.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-win32-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\icall-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\marshal-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-security-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-security-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32mutex-win32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32semaphore-win32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32event-win32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-win32.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-win32-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket-win32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32error-win32.c" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="win32_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\console-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\console-win32-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\cominterop-win32-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32file-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32file-win32-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\icall-windows.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\icall-windows-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\marshal-windows.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\marshal-windows-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\mono-security-windows.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\mono-security-windows-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32mutex-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32semaphore-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32event-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32process-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\metadata\w32process-win32-internals.h">
+ <Filter>Header Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32socket-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\metadata\w32error-win32.c">
+ <Filter>Source Files$(MonoRuntimeFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)\win32">
+ <UniqueIdentifier>{C6938EF2-A57F-4941-90EB-FCD7CF1E035D}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)\win32">
+ <UniqueIdentifier>{56DCE5E4-A83E-487B-BFED-577E1F784C14}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmonoruntime-common.targets" />
+ <Import Project="libmonoruntime-win32.targets" />
+ <Import Project="libmonoruntime-posix.targets" />
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmonoruntime-common.targets.filters" />
+ <Import Project="libmonoruntime-win32.targets.filters" />
+ <Import Project="libmonoruntime-posix.targets.filters" />
+ <ItemGroup Condition="'$(MonoRuntimeFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(MonoRuntimeFilterSubFolder)">
+ <UniqueIdentifier>{992766FD-0584-4B49-A4F7-B59947CD8488}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoRuntimeFilterSubFolder)">
+ <UniqueIdentifier>{12D2E658-65D0-48E9-8F7A-6355482F17DA}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoRuntimeFilterSubFolder)">
+ <UniqueIdentifier>{DC656245-EE35-4C36-AA40-A109905666F3}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
<ItemGroup Label="ProjectConfigurations">\r
<ProjectConfiguration Include="Debug|Win32">\r
<Platform>x64</Platform>\r
</ProjectConfiguration>\r
</ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\metadata\appdomain.c" />\r
- <ClCompile Include="..\mono\metadata\assembly.c" />\r
- <ClCompile Include="..\mono\metadata\attach.c" />\r
- <ClCompile Include="..\mono\metadata\boehm-gc.c" />\r
- <ClCompile Include="..\mono\metadata\class-accessors.c" />\r
- <ClCompile Include="..\mono\metadata\class.c" />\r
- <ClCompile Include="..\mono\metadata\cominterop.c" />\r
- <ClCompile Include="..\mono\metadata\console-win32.c" />\r
- <ClCompile Include="..\mono\metadata\property-bag.c" />\r
- <ClCompile Include="..\mono\metadata\w32socket-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32file-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32error-win32.c" />\r
- <ClCompile Include="..\mono\metadata\icall-windows.c" />\r
- <ClCompile Include="..\mono\metadata\marshal-windows.c" />\r
- <ClCompile Include="..\mono\metadata\mono-security-windows.c" />\r
- <ClCompile Include="..\mono\metadata\w32mutex-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32semaphore-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32event-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32process.c" />\r
- <ClCompile Include="..\mono\metadata\w32process-win32.c" />\r
- <ClCompile Include="..\mono\metadata\coree.c" />\r
- <ClCompile Include="..\mono\metadata\custom-attrs.c" />\r
- <ClCompile Include="..\mono\metadata\debug-helpers.c" />\r
- <ClCompile Include="..\mono\metadata\debug-mono-ppdb.c" />\r
- <ClCompile Include="..\mono\metadata\debug-mono-symfile.c" />\r
- <ClCompile Include="..\mono\metadata\decimal-ms.c" />\r
- <ClCompile Include="..\mono\metadata\dynamic-image.c" />\r
- <ClCompile Include="..\mono\metadata\dynamic-stream.c" />\r
- <ClCompile Include="..\mono\metadata\domain.c" />\r
- <ClCompile Include="..\mono\metadata\environment.c" />\r
- <ClCompile Include="..\mono\metadata\exception.c" />\r
- <ClCompile Include="..\mono\metadata\w32file.c" />\r
- <ClCompile Include="..\mono\metadata\file-mmap-windows.c" />\r
- <ClCompile Include="..\mono\metadata\filewatcher.c" />\r
- <ClCompile Include="..\mono\metadata\gc-stats.c" />\r
- <ClCompile Include="..\mono\metadata\gc.c" />\r
- <ClCompile Include="..\mono\metadata\handle.c" />\r
- <ClCompile Include="..\mono\metadata\icall.c" />\r
- <ClCompile Include="..\mono\metadata\image.c" />\r
- <ClCompile Include="..\mono\metadata\jit-info.c" />\r
- <ClCompile Include="..\mono\metadata\loader.c" />\r
- <ClCompile Include="..\mono\metadata\locales.c" />\r
- <ClCompile Include="..\mono\metadata\lock-tracer.c" />\r
- <ClCompile Include="..\mono\metadata\marshal.c" />\r
- <ClCompile Include="..\mono\metadata\mempool.c" />\r
- <ClCompile Include="..\mono\metadata\metadata-verify.c" />\r
- <ClCompile Include="..\mono\metadata\metadata.c" />\r
- <ClCompile Include="..\mono\metadata\metadata-cross-helpers.c" />\r
- <ClCompile Include="..\mono\metadata\method-builder.c" />\r
- <ClCompile Include="..\mono\metadata\monitor.c" />\r
- <ClCompile Include="..\mono\metadata\mono-basic-block.c" />\r
- <ClCompile Include="..\mono\metadata\mono-config.c" />\r
- <ClCompile Include="..\mono\metadata\mono-config-dirs.c" />\r
- <ClCompile Include="..\mono\metadata\mono-debug.c" />\r
- <ClCompile Include="..\mono\metadata\mono-endian.c" />\r
- <ClCompile Include="..\mono\metadata\mono-hash.c" />\r
- <ClCompile Include="..\mono\metadata\mono-conc-hash.c" />\r
- <ClCompile Include="..\mono\metadata\mono-mlist.c" />\r
- <ClCompile Include="..\mono\metadata\mono-perfcounters.c" />\r
- <ClCompile Include="..\mono\metadata\null-gc.c" />\r
- <ClCompile Include="..\mono\metadata\number-ms.c" />\r
- <ClCompile Include="..\mono\metadata\object.c" />\r
- <ClCompile Include="..\mono\metadata\opcodes.c" />\r
- <ClCompile Include="..\mono\metadata\profiler.c" />\r
- <ClCompile Include="..\mono\metadata\rand.c" />\r
- <ClCompile Include="..\mono\metadata\reflection.c" />\r
- <ClCompile Include="..\mono\metadata\remoting.c" />\r
- <ClCompile Include="..\mono\metadata\runtime.c" />\r
- <ClCompile Include="..\mono\metadata\security-core-clr.c" />\r
- <ClCompile Include="..\mono\metadata\security-manager.c" />\r
- <ClCompile Include="..\mono\metadata\mono-security.c" />\r
- <ClCompile Include="..\mono\metadata\seq-points-data.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-mono.c" />\r
- <ClCompile Include="..\mono\metadata\threadpool-io.c" />\r
- <ClCompile Include="..\mono\metadata\threadpool.c" />\r
- <ClCompile Include="..\mono\metadata\threadpool-worker-default.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-bridge.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-new-bridge.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-old-bridge.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-tarjan-bridge.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-toggleref.c" />\r
- <ClCompile Include="..\mono\metadata\sgen-stw.c" />\r
- <ClCompile Include="..\mono\metadata\w32socket.c" />\r
- <ClCompile Include="..\mono\metadata\sre.c" />\r
- <ClCompile Include="..\mono\metadata\sre-encode.c" />\r
- <ClCompile Include="..\mono\metadata\sre-save.c" />\r
- <ClCompile Include="..\mono\metadata\string-icalls.c" />\r
- <ClCompile Include="..\mono\metadata\sysmath.c" />\r
- <ClCompile Include="..\mono\metadata\threads.c" />\r
- <ClCompile Include="..\mono\metadata\verify.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\metadata\appdomain.h" />\r
- <ClInclude Include="..\mono\metadata\appdomain-icalls.h" />\r
- <ClInclude Include="..\mono\metadata\assembly.h" />\r
- <ClInclude Include="..\mono\metadata\attach.h" />\r
- <ClInclude Include="..\mono\metadata\cil-coff.h" />\r
- <ClInclude Include="..\mono\metadata\class-internals.h" />\r
- <ClInclude Include="..\mono\metadata\class.h" />\r
- <ClInclude Include="..\mono\metadata\cominterop-win32-internals.h" />\r
- <ClInclude Include="..\mono\metadata\cominterop.h" />\r
- <ClInclude Include="..\mono\metadata\console-io.h" />\r
- <ClInclude Include="..\mono\metadata\console-win32-internals.h" />\r
- <ClInclude Include="..\mono\metadata\coree-internals.h" />\r
- <ClInclude Include="..\mono\metadata\coree.h" />\r
- <ClInclude Include="..\mono\metadata\culture-info-tables.h" />\r
- <ClInclude Include="..\mono\metadata\culture-info.h" />\r
- <ClInclude Include="..\mono\metadata\custom-attrs-internals.h" />\r
- <ClInclude Include="..\mono\metadata\debug-helpers.h" />\r
- <ClInclude Include="..\mono\metadata\debug-mono-ppdb.h" />\r
- <ClInclude Include="..\mono\metadata\debug-mono-symfile.h" />\r
- <ClInclude Include="..\mono\metadata\domain-internals.h" />\r
- <ClInclude Include="..\mono\metadata\dynamic-image-internals.h" />\r
- <ClInclude Include="..\mono\metadata\dynamic-stream-internals.h" />\r
- <ClInclude Include="..\mono\metadata\environment.h" />\r
- <ClInclude Include="..\mono\metadata\exception.h" />\r
- <ClInclude Include="..\mono\metadata\w32file-internals.h" />\r
- <ClInclude Include="..\mono\metadata\w32file-win32-internals.h" />\r
- <ClInclude Include="..\mono\metadata\w32file.h" />\r
- <ClInclude Include="..\mono\metadata\w32error.h" />\r
- <ClInclude Include="..\mono\utils\w32api.h" />\r
- <ClInclude Include="..\mono\metadata\filewatcher.h" />\r
- <ClInclude Include="..\mono\metadata\gc-internals.h" />\r
- <ClInclude Include="..\mono\metadata\handle.h" />\r
- <ClInclude Include="..\mono\metadata\icall-windows-internals.h" />\r
- <ClInclude Include="..\mono\metadata\icall-internals.h" />\r
- <ClInclude Include="..\mono\metadata\marshal-internals.h" />\r
- <ClInclude Include="..\mono\metadata\marshal-windows-internals.h" />\r
- <ClInclude Include="..\mono\metadata\mono-security-windows-internals.h" />\r
- <ClInclude Include="..\mono\metadata\number-ms.h" />\r
- <ClInclude Include="..\mono\metadata\property-bag.h" />\r
- <ClInclude Include="..\mono\metadata\w32process.h" />\r
- <ClInclude Include="..\mono\metadata\w32process-internals.h" />\r
- <ClInclude Include="..\mono\metadata\w32process-win32-internals.h" />\r
- <ClInclude Include="..\mono\metadata\remoting.h" />\r
- <ClInclude Include="..\mono\metadata\seq-points-data.h" />\r
- <ClInclude Include="..\mono\metadata\sgen-bridge-internals.h" />\r
- <ClInclude Include="..\mono\metadata\sgen-client-mono.h" />\r
- <ClInclude Include="..\mono\metadata\w32socket-internals.h" />\r
- <ClInclude Include="..\mono\metadata\threadpool-io.h" />\r
- <ClInclude Include="..\mono\metadata\threadpool.h" />\r
- <ClInclude Include="..\mono\metadata\threadpool-worker.h" />\r
- <ClInclude Include="..\mono\sgen\gc-internal-agnostic.h" />\r
- <ClInclude Include="..\mono\metadata\icall-def.h" />\r
- <ClInclude Include="..\mono\metadata\image.h" />\r
- <ClInclude Include="..\mono\metadata\loader.h" />\r
- <ClInclude Include="..\mono\metadata\locales.h" />\r
- <ClInclude Include="..\mono\metadata\lock-tracer.h" />\r
- <ClInclude Include="..\mono\metadata\marshal.h" />\r
- <ClInclude Include="..\mono\metadata\mempool-internals.h" />\r
- <ClInclude Include="..\mono\metadata\mempool.h" />\r
- <ClInclude Include="..\mono\metadata\metadata-internals.h" />\r
- <ClInclude Include="..\mono\metadata\metadata.h" />\r
- <ClInclude Include="..\mono\metadata\method-builder.h" />\r
- <ClInclude Include="..\mono\metadata\monitor.h" />\r
- <ClInclude Include="..\mono\metadata\mono-basic-block.h" />\r
- <ClInclude Include="..\mono\metadata\mono-config.h" />\r
- <ClInclude Include="..\mono\metadata\mono-config-dirs.h" />\r
- <ClInclude Include="..\mono\metadata\mono-debug-debugger.h" />\r
- <ClInclude Include="..\mono\metadata\mono-debug.h" />\r
- <ClInclude Include="..\mono\metadata\mono-endian.h" />\r
- <ClInclude Include="..\mono\metadata\mono-hash.h" />\r
- <ClInclude Include="..\mono\metadata\mono-conc-hash.h" />\r
- <ClInclude Include="..\mono\metadata\mono-mlist.h" />\r
- <ClInclude Include="..\mono\metadata\mono-perfcounters-def.h" />\r
- <ClInclude Include="..\mono\metadata\mono-perfcounters.h" />\r
- <ClInclude Include="..\mono\metadata\mono-ptr-array.h" />\r
- <ClInclude Include="..\mono\metadata\normalization-tables.h" />\r
- <ClInclude Include="..\mono\metadata\number-formatter.h" />\r
- <ClInclude Include="..\mono\metadata\object-internals.h" />\r
- <ClInclude Include="..\mono\metadata\object.h" />\r
- <ClInclude Include="..\mono\metadata\opcodes.h" />\r
- <ClInclude Include="..\mono\metadata\profiler-events.h" />\r
- <ClInclude Include="..\mono\metadata\profiler-private.h" />\r
- <ClInclude Include="..\mono\metadata\profiler.h" />\r
- <ClInclude Include="..\mono\metadata\rand.h" />\r
- <ClInclude Include="..\mono\metadata\reflection.h" />\r
- <ClInclude Include="..\mono\metadata\reflection-cache.h" />\r
- <ClInclude Include="..\mono\metadata\reflection-internals.h" />\r
- <ClInclude Include="..\mono\metadata\runtime.h" />\r
- <ClInclude Include="..\mono\metadata\security-core-clr.h" />\r
- <ClInclude Include="..\mono\metadata\security-manager.h" />\r
- <ClInclude Include="..\mono\metadata\security.h" />\r
- <ClInclude Include="..\mono\metadata\sgen-bridge.h" />\r
- <ClInclude Include="..\mono\metadata\sgen-toggleref.h" />\r
- <ClInclude Include="..\mono\metadata\w32socket.h" />\r
- <ClInclude Include="..\mono\metadata\sre-internals.h" />\r
- <ClInclude Include="..\mono\metadata\string-icalls.h" />\r
- <ClInclude Include="..\mono\metadata\sysmath.h" />\r
- <ClInclude Include="..\mono\metadata\tabledefs.h" />\r
- <ClInclude Include="..\mono\metadata\threads-types.h" />\r
- <ClInclude Include="..\mono\metadata\verify-internals.h" />\r
- <ClInclude Include="..\mono\metadata\verify.h" />\r
- <ClInclude Include="..\mono\metadata\wrapper-types.h" />\r
- </ItemGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\metadata\Makefile.am" />\r
- </ItemGroup>\r
<PropertyGroup Label="Globals">\r
<ProjectGuid>{C36612BD-22D3-4B95-85E2-7FDC4FC5D739}</ProjectGuid>\r
<Keyword>Win32Proj</Keyword>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
<Optimization>Disabled</Optimization>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
<Optimization>Disabled</Optimization>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;$(GC_DEFINES);NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_LIB;$(GC_DEFINES);WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</Link>\r
<Lib />\r
</ItemDefinitionGroup>\r
+ <Import Project="libmonoruntime.targets" />\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\metadata\assembly.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\attach.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\class.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\cominterop.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\console-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32mutex-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32semaphore-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32event-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\coree.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\debug-helpers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\debug-mono-ppdb.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\debug-mono-symfile.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\decimal-ms.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\environment.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\exception.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32file.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\file-mmap-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\filewatcher.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\handle.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\icall.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\image.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\jit-info.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\loader.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\locales.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\lock-tracer.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\marshal.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mempool.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\metadata.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\metadata-verify.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\method-builder.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-basic-block.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-config.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-config-dirs.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-debug.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-endian.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-mlist.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-perfcounters.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-security.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\null-gc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\number-ms.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\opcodes.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32process.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32process-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\profiler.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\rand.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\remoting.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\runtime.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\security-core-clr.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\security-manager.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\seq-points-data.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32socket.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\string-icalls.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sysmath.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\threadpool.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\threadpool-worker-default.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\threadpool-io.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\threads.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\verify.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\boehm-gc.c">\r
- <Filter>Source Files\boehm</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\appdomain.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\domain.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\gc-stats.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\gc.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\monitor.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-hash.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-conc-hash.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\object.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\reflection.c">\r
- <Filter>Source Files\gc</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-bridge.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-old-bridge.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-new-bridge.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-tarjan-bridge.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-toggleref.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-stw.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sgen-mono.c">\r
- <Filter>Source Files\sgen</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\metadata-cross-helpers.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\custom-attrs.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\dynamic-image.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\dynamic-stream.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sre.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sre-encode.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sre-save.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32socket-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32file-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32error-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\icall-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\marshal-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-security-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\class-accessors.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\property-bag.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\metadata\appdomain.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\assembly.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\attach.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\cil-coff.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\class.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\class-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\cominterop.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\console-io.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\coree.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\culture-info.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\culture-info-tables.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\debug-helpers.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\debug-mono-ppdb.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\debug-mono-symfile.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\domain-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\environment.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\exception.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32file.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32error.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\w32api.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\filewatcher.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\handle.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\icall-def.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\image.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\loader.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\locales.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\lock-tracer.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\marshal.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mempool.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mempool-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\metadata.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\metadata-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\method-builder.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\monitor.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-basic-block.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-config.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-config-dirs.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-debug.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-debug-debugger.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-endian.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-hash.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-conc-hash.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-mlist.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-perfcounters.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-perfcounters-def.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-ptr-array.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\normalization-tables.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\number-formatter.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\number-ms.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\object.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\object-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\opcodes.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32process.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32process-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32process-win32-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\profiler-events.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\profiler-private.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\profiler.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\rand.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\reflection.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\remoting.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\runtime.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\security.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\security-core-clr.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\security-manager.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\seq-points-data.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32socket.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\string-icalls.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sysmath.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\tabledefs.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\threadpool.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\threadpool-worker.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\wrapper-types.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\threadpool-io.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\threads-types.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\verify.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\verify-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sgen-bridge.h">\r
- <Filter>Header Files\sgen</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sgen-bridge-internals.h">\r
- <Filter>Header Files\sgen</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sgen-toggleref.h">\r
- <Filter>Header Files\sgen</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sgen-client-mono.h">\r
- <Filter>Header Files\sgen</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\sgen\gc-internal-agnostic.h">\r
- <Filter>Header Files\gc</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\gc-internals.h">\r
- <Filter>Header Files\gc</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\custom-attrs-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\dynamic-image-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\dynamic-stream-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\reflection-cache.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\reflection-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\sre-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32socket-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\coree-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\console-win32-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32file-win32-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\w32file-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\icall-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\icall-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\marshal-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\marshal-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\mono-security-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\property-bag.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\metadata\cominterop-win32-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
+ <Import Project="libmonoruntime.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<UniqueIdentifier>{eb8a6a4d-924c-494d-99c1-663e4c09a806}</UniqueIdentifier>\r
<Filter Include="Source Files">\r
<UniqueIdentifier>{3f4ff222-41cc-4bbc-b36b-cac0c21266ad}</UniqueIdentifier>\r
</Filter>\r
- <Filter Include="Source Files\boehm">\r
- <UniqueIdentifier>{728e57f8-14d3-42f4-b92a-be03cd2acdfa}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files\sgen">\r
- <UniqueIdentifier>{d5996ea0-8b43-4267-a46c-715270aaee2b}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Header Files\boehm">\r
- <UniqueIdentifier>{2446a0bf-5f8b-4789-91ab-6107f72b8539}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Header Files\sgen">\r
- <UniqueIdentifier>{5fede250-d478-466b-aa2a-36d2222de065}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Source Files\gc">\r
- <UniqueIdentifier>{410dd556-6715-4c4e-beff-c5dd7a6b78a1}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Header Files\gc">\r
- <UniqueIdentifier>{e37c9a88-bfb3-47dd-948c-a74dea25b3ad}</UniqueIdentifier>\r
- </Filter>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\metadata\Makefile.am">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
</ItemGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ <ExcludeFromWindows32Build>false</ExcludeFromWindows32Build>
+ <ExcludeFromWindows64Build>false</ExcludeFromWindows64Build>
+ <ExcludeFromWindows32Build Condition="'$(Platform)'=='Win32'">true</ExcludeFromWindows32Build>
+ <ExcludeFromWindows64Build Condition="'$(Platform)'=='x64'">true</ExcludeFromWindows64Build>
+ </PropertyGroup>
+ <ItemGroup Label="arch_x86_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-x86.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-x86.c" />
+ </ItemGroup>
+ <ItemGroup Label="arch_amd64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-amd64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <MASM Include="$(MonoSourceLocation)\mono\utils\win64.asm">
+ <FileType>Document</FileType>
+ <ExcludedFromBuild>$(ExcludeFromWindows32Build)</ExcludedFromBuild>
+ <PreprocessorDefinitions>X64</PreprocessorDefinitions>
+ </MASM>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-arm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-arm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-arm64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-arm64.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_mips_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-mips.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_ppc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-ppc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_sparc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-sparc.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_s390x_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-os390x.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_wasm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_unknown_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-unknown.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_cross_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-cross.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ImportGroup Label="ExtensionSettings">
+ <Import Project="$(MonoSourceLocation)\msvc\masm.fixed.props" />
+ <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
+ </ImportGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="arch_x86_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-x86.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-x86.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\x86</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_amd64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-amd64.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\amd64</Filter>
+ </ClCompile>
+ <MASM Include="$(MonoSourceLocation)\mono\utils\win64.asm">
+ <Filter>Resource Files$(MonoUtilsFilterSubFolder)\arch\amd64</Filter>
+ </MASM>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-arm.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-arm.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\arm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_arm64_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-arm64.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-arm64.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\arm64</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_mips_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-mips.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\mips</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_ppc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-ppc.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\ppc</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_sparc_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-sparc.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\sparc</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_s390x_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-os390x.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\s390x</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_wasm_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-wasm.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\wasm</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_unknown_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support-unknown.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\unknown</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup Label="arch_cross_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-cross.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\arch\cross</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Resource Files$(MonoUtilsFilterSubFolder)\arch">
+ <UniqueIdentifier>{CF1B494F-7FC7-4B1F-9356-1E6F4C3AA151}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch">
+ <UniqueIdentifier>{6603FB44-3F5A-490C-A2FB-3FCD4818EA6A}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\x86">
+ <UniqueIdentifier>{9931E7C8-6C44-48E6-8752-AD0E3CB99A40}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Resource Files$(MonoUtilsFilterSubFolder)\arch\amd64">
+ <UniqueIdentifier>{6F39D983-0414-4906-A8B4-F3EE6D66ADB2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\amd64">
+ <UniqueIdentifier>{711787B7-91B8-4FDF-937B-35C28B17F264}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\arm">
+ <UniqueIdentifier>{BF9E07DE-1E58-485B-8A1D-E98B51AA3335}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\arm64">
+ <UniqueIdentifier>{7F0740FA-7CF3-4281-B044-76AA9D603173}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\mips">
+ <UniqueIdentifier>{C994366B-5CDF-4221-9F02-0889EE48AE84}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\ppc">
+ <UniqueIdentifier>{350298FD-D211-4A13-9FDD-5CFFE2693D3E}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\sparc">
+ <UniqueIdentifier>{58B688AA-3E02-4D79-A17F-FC287BC36BD4}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\s390x">
+ <UniqueIdentifier>{D0DAB5B3-50DB-4122-81A2-FB82F6569DC7}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\wasm">
+ <UniqueIdentifier>{CCF0AA6D-4EC2-4D0B-80DE-3D304D3F1B06}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\unknown">
+ <UniqueIdentifier>{1241F641-C6B5-4139-87D9-9981D309FFBA}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\arch\cross">
+ <UniqueIdentifier>{23738EAA-81C9-4974-B742-6054F15292A4}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="monoutils_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-md5.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-sha1.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-logger.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-logger-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-codeman.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\dlmalloc.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\dlmalloc.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-counters.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-compiler.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-complex.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-windows.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-darwin.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-posix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-windows.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-common.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-posix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-android.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-darwin.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-internal-hash.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-internal-hash.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-io-portability.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-io-portability.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\monobitset.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-filemap.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-math.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap-windows-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-mutex.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-os-mutex.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-wait.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-coop-mutex.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-once.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-lazy-init.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-networkinterfaces.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-networkinterfaces.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-proclib.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-proclib-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-proclib.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-proclib-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-publib.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-string.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-time.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-time.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\strenc.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\strenc.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-uri.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-poll.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-path.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-semaphore.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-coop-semaphore.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-sigcontext.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-stdlib.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-property-hash.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-property-hash.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-value-hash.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-value-hash.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf_common.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf32.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf64.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-dwarf.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\dtrace.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\gc_wrapper.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-error.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-error-internals.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\monobitset.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-codeman.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-digest.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-machine.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-math.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-membar.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-path.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-poll.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-uri.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-stdlib.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\valgrind.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mach-support.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\memcheck.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-context.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-context.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-stack-unwinding.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\hazard-pointer.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\hazard-pointer.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-queue.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-queue.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-alloc.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-alloc.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-array-queue.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-array-queue.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-linked-list-set.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-linked-list-set.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-state-machine.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-posix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-posix-signals.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-mach.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-mach-helper.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-windows.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-linux.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-freebsd.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-netbsd.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-openbsd.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-android.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-haiku.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-wasm.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-debug.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-api.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-coop.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-coop.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-tls.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-tls.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\linux_magic.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-memory-model.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\atomic.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\atomic.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-hwcap.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-vars.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\bsearch.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\bsearch.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-signal-handler.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-conc-hashtable.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-conc-hashtable.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\json.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\json.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-posix.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-fallback.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-missing.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\networking.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-rand.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-rand-windows.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-rand.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-rand-windows-internals.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\memfuncs.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\memfuncs.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\parse.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\parse.h" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\checked-build.c" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\checked-build.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\os-event.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\refcount.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\w32api.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\unlocked.h" />
+ </ItemGroup>
+ <ItemGroup Label="libmonoutilsinclude_headers">
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-logger.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-error.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-publib.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl-fallback.h" />
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-counters.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\utils\Makefile.am" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="monoutils_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-md5.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-sha1.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-logger.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-logger-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-codeman.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\dlmalloc.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\dlmalloc.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-counters.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-compiler.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-complex.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-darwin.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-posix.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-dl-wasm.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl-windows-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-common.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-posix.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-android.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-log-darwin.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-internal-hash.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-internal-hash.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-io-portability.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-io-portability.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\monobitset.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-filemap.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-math.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-mmap-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-mmap-windows-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-mutex.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-os-mutex.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-wait.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-coop-mutex.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-once.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-lazy-init.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-networkinterfaces.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-networkinterfaces.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-proclib.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-proclib-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-proclib.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-proclib-windows-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-publib.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-string.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-time.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-time.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\strenc.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\strenc.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-uri.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-poll.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-path.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-os-semaphore.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-coop-semaphore.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-sigcontext.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-stdlib.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-property-hash.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-property-hash.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-value-hash.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-value-hash.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf_common.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf32.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-elf64.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\freebsd-dwarf.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\dtrace.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\gc_wrapper.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-error.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-error-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\monobitset.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-codeman.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-digest.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-machine.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-math.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-membar.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-path.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-poll.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-uri.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-stdlib.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\valgrind.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mach-support.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mach-support.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\memcheck.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-context.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-context.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-stack-unwinding.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\hazard-pointer.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\hazard-pointer.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-queue.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-queue.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-alloc.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-alloc.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\lock-free-array-queue.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\lock-free-array-queue.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-linked-list-set.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-linked-list-set.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-state-machine.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-posix.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-posix-signals.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-mach.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-mach-helper.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-linux.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-freebsd.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-netbsd.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-openbsd.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-android.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-haiku.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-wasm.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-debug.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-api.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-threads-coop.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-threads-coop.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-tls.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-tls.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\linux_magic.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-memory-model.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\atomic.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\atomic.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-hwcap.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-hwcap.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-hwcap-vars.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\bsearch.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\bsearch.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-signal-handler.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-conc-hashtable.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-conc-hashtable.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\json.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\json.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-posix.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-fallback.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-missing.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\networking-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\networking.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-rand.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-rand-windows.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-rand.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-rand-windows-internals.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\memfuncs.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\memfuncs.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\parse.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\parse.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\checked-build.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClCompile>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\checked-build.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\os-event.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\refcount.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\w32api.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\unlocked.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup Label="libmonoutilsinclude_headers">
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-logger.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-error.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-publib.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-dl-fallback.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\mono\utils\mono-counters.h">
+ <Filter>Header Files$(MonoUtilsFilterSubFolder)\common\public</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MonoSourceLocation)\mono\utils\Makefile.am">
+ <Filter>Resource Files$(MonoUtilsFilterSubFolder)\common</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoUtilsFilterSubFolder)\common">
+ <UniqueIdentifier>{467B47D6-631B-4DFD-83B7-70CD1E314F7F}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoUtilsFilterSubFolder)\common">
+ <UniqueIdentifier>{E4760A93-A38F-48E5-B89D-78487FA2805D}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\common">
+ <UniqueIdentifier>{0CB40928-2D3E-46B9-A8DF-D7F63A35A6CD}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Header Files$(MonoUtilsFilterSubFolder)\common\public">
+ <UniqueIdentifier>{23D97CF3-2DE0-42A1-8AF7-40D6981EB259}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ExcludeFromWindowsBuild>true</ExcludeFromWindowsBuild>
+ </PropertyGroup>
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\os-event-unix.c">
+ <ExcludedFromBuild>$(ExcludeFromWindowsBuild)</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="posix_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\os-event-unix.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\posix</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\posix">
+ <UniqueIdentifier>{CFAFABB9-9646-402C-BD4E-A0E1EF4F3595}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="win32_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\os-event-win32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-os-wait-win32.c" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="win32_sources">
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\os-event-win32.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\mono\utils\mono-os-wait-win32.c">
+ <Filter>Source Files$(MonoUtilsFilterSubFolder)\win32</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)\win32">
+ <UniqueIdentifier>{56DCE5E4-A83E-487B-BFED-577E1F784C14}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmonoutils-common.targets" />
+ <Import Project="libmonoutils-win32.targets" />
+ <Import Project="libmonoutils-posix.targets" />
+ <Import Project="libmonoutils-arch.targets" />
+</Project>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="libmonoutils-common.targets.filters" />
+ <Import Project="libmonoutils-win32.targets.filters" />
+ <Import Project="libmonoutils-posix.targets.filters" />
+ <Import Project="libmonoutils-arch.targets.filters" />
+ <ItemGroup Condition="'$(MonoUtilsFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(MonoUtilsFilterSubFolder)">
+ <UniqueIdentifier>{1ACFEA26-DBB0-44B9-8297-414DD74D7E22}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoUtilsFilterSubFolder)">
+ <UniqueIdentifier>{A52D473E-5928-4BD9-AA2D-284C4A04D9D4}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoUtilsFilterSubFolder)">
+ <UniqueIdentifier>{69B9EC3D-597F-46CE-8F9F-55B732E95CCC}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
<ItemGroup Label="ProjectConfigurations">\r
<ProjectConfiguration Include="Debug|Win32">\r
<Platform>x64</Platform>\r
</ProjectConfiguration>\r
</ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\utils\dlmalloc.c" />\r
- <ClCompile Include="..\mono\utils\hazard-pointer.c" />\r
- <ClCompile Include="..\mono\utils\json.c" />\r
- <ClCompile Include="..\mono\utils\lock-free-alloc.c" />\r
- <ClCompile Include="..\mono\utils\lock-free-array-queue.c" />\r
- <ClCompile Include="..\mono\utils\lock-free-queue.c" />\r
- <ClCompile Include="..\mono\utils\mach-support-amd64.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support-arm.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support-x86.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-codeman.c" />\r
- <ClCompile Include="..\mono\utils\mono-conc-hashtable.c" />\r
- <ClCompile Include="..\mono\utils\mono-context.c" />\r
- <ClCompile Include="..\mono\utils\mono-counters.c" />\r
- <ClCompile Include="..\mono\utils\mono-dl-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-dl.c" />\r
- <ClCompile Include="..\mono\utils\mono-error.c" />\r
- <ClCompile Include="..\mono\utils\mono-filemap.c" />\r
- <ClCompile Include="..\mono\utils\mono-internal-hash.c" />\r
- <ClCompile Include="..\mono\utils\mono-io-portability.c" />\r
- <ClCompile Include="..\mono\utils\mono-linked-list-set.c" />\r
- <ClCompile Include="..\mono\utils\mono-logger.c" />\r
- <ClCompile Include="..\mono\utils\mono-log-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-log-common.c" />\r
- <ClCompile Include="..\mono\utils\mono-math.c" />\r
- <ClCompile Include="..\mono\utils\mono-md5.c" />\r
- <ClCompile Include="..\mono\utils\mono-mmap-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-mmap.c" />\r
- <ClCompile Include="..\mono\utils\mono-networkinterfaces.c" />\r
- <ClCompile Include="..\mono\utils\mono-proclib-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-rand-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-rand.c" />\r
- <ClCompile Include="..\mono\utils\mono-threads-state-machine.c" />\r
- <ClCompile Include="..\mono\utils\networking.c" />\r
- <ClCompile Include="..\mono\utils\networking-posix.c" />\r
- <ClCompile Include="..\mono\utils\networking-missing.c" />\r
- <ClCompile Include="..\mono\utils\networking-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-path.c" />\r
- <ClCompile Include="..\mono\utils\mono-poll.c" />\r
- <ClCompile Include="..\mono\utils\mono-proclib.c" />\r
- <ClCompile Include="..\mono\utils\mono-property-hash.c" />\r
- <ClCompile Include="..\mono\utils\mono-publib.c" />\r
- <ClCompile Include="..\mono\utils\mono-sha1.c" />\r
- <ClCompile Include="..\mono\utils\mono-stdlib.c" />\r
- <ClCompile Include="..\mono\utils\mono-threads-mach.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-posix.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-posix-signals.c">\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-windows.c" />\r
- <ClCompile Include="..\mono\utils\mono-threads.c" />\r
- <ClCompile Include="..\mono\utils\mono-threads-coop.c" />\r
- <ClCompile Include="..\mono\utils\mono-time.c" />\r
- <ClCompile Include="..\mono\utils\mono-tls.c" />\r
- <ClCompile Include="..\mono\utils\mono-uri.c" />\r
- <ClCompile Include="..\mono\utils\mono-value-hash.c" />\r
- <ClCompile Include="..\mono\utils\monobitset.c" />\r
- <ClCompile Include="..\mono\utils\mono-os-mutex.c" />\r
- <ClCompile Include="..\mono\utils\os-event-win32.c" />\r
- <ClCompile Include="..\mono\utils\strenc.c" />\r
- <ClCompile Include="..\mono\utils\atomic.c" />\r
- <ClCompile Include="..\mono\utils\mono-hwcap.c" />\r
- <ClCompile Include="..\mono\utils\mono-hwcap-x86.c" />\r
- <ClCompile Include="..\mono\utils\bsearch.c" />\r
- <ClCompile Include="..\mono\utils\memfuncs.c" />\r
- <ClCompile Include="..\mono\utils\parse.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\utils\dlmalloc.h" />\r
- <ClInclude Include="..\mono\utils\dtrace.h" />\r
- <ClInclude Include="..\mono\utils\freebsd-dwarf.h" />\r
- <ClInclude Include="..\mono\utils\freebsd-elf32.h" />\r
- <ClInclude Include="..\mono\utils\freebsd-elf64.h" />\r
- <ClInclude Include="..\mono\utils\freebsd-elf_common.h" />\r
- <ClInclude Include="..\mono\utils\gc_wrapper.h" />\r
- <ClInclude Include="..\mono\utils\hazard-pointer.h" />\r
- <ClInclude Include="..\mono\utils\json.h" />\r
- <ClInclude Include="..\mono\utils\linux_magic.h" />\r
- <ClInclude Include="..\mono\utils\lock-free-alloc.h" />\r
- <ClInclude Include="..\mono\utils\lock-free-array-queue.h" />\r
- <ClInclude Include="..\mono\utils\lock-free-queue.h" />\r
- <ClInclude Include="..\mono\utils\mach-support.h" />\r
- <ClInclude Include="..\mono\utils\memcheck.h" />\r
- <ClInclude Include="..\mono\utils\mono-codeman.h" />\r
- <ClInclude Include="..\mono\utils\mono-compiler.h" />\r
- <ClInclude Include="..\mono\utils\mono-complex.h" />\r
- <ClInclude Include="..\mono\utils\mono-conc-hashtable.h" />\r
- <ClInclude Include="..\mono\utils\mono-context.h" />\r
- <ClInclude Include="..\mono\utils\mono-coop-mutex.h" />\r
- <ClInclude Include="..\mono\utils\mono-coop-semaphore.h" />\r
- <ClInclude Include="..\mono\utils\mono-counters.h" />\r
- <ClInclude Include="..\mono\utils\mono-digest.h" />\r
- <ClInclude Include="..\mono\utils\mono-dl-fallback.h" />\r
- <ClInclude Include="..\mono\utils\mono-dl-windows-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-dl.h" />\r
- <ClInclude Include="..\mono\utils\mono-error-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-error.h" />\r
- <ClInclude Include="..\mono\utils\mono-internal-hash.h" />\r
- <ClInclude Include="..\mono\utils\mono-io-portability.h" />\r
- <ClInclude Include="..\mono\utils\mono-linked-list-set.h" />\r
- <ClInclude Include="..\mono\utils\mono-logger-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-logger.h" />\r
- <ClInclude Include="..\mono\utils\mono-machine.h" />\r
- <ClInclude Include="..\mono\utils\mono-math.h" />\r
- <ClInclude Include="..\mono\utils\mono-membar.h" />\r
- <ClInclude Include="..\mono\utils\mono-memory-model.h" />\r
- <ClInclude Include="..\mono\utils\mono-mmap-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-mmap-windows-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-mmap.h" />\r
- <ClInclude Include="..\mono\utils\mono-networkinterfaces.h" />\r
- <ClInclude Include="..\mono\utils\mono-once.h" />\r
- <ClInclude Include="..\mono\utils\mono-os-mutex.h" />\r
- <ClInclude Include="..\mono\utils\mono-os-semaphore.h" />\r
- <ClInclude Include="..\mono\utils\mono-path.h" />\r
- <ClInclude Include="..\mono\utils\mono-poll.h" />\r
- <ClInclude Include="..\mono\utils\mono-proclib-windows-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-proclib.h" />\r
- <ClInclude Include="..\mono\utils\mono-property-hash.h" />\r
- <ClInclude Include="..\mono\utils\mono-publib.h" />\r
- <ClInclude Include="..\mono\utils\mono-rand-windows-internals.h" />\r
- <ClInclude Include="..\mono\utils\mono-rand.h" />\r
- <ClInclude Include="..\mono\utils\mono-sigcontext.h" />\r
- <ClInclude Include="..\mono\utils\mono-stack-unwinding.h" />\r
- <ClInclude Include="..\mono\utils\mono-stdlib.h" />\r
- <ClInclude Include="..\mono\utils\mono-string.h" />\r
- <ClInclude Include="..\mono\utils\mono-threads.h" />\r
- <ClInclude Include="..\mono\utils\mono-threads-api.h" />\r
- <ClInclude Include="..\mono\utils\mono-threads-coop.h" />\r
- <ClInclude Include="..\mono\utils\mono-time.h" />\r
- <ClInclude Include="..\mono\utils\mono-tls.h" />\r
- <ClInclude Include="..\mono\utils\mono-uri.h" />\r
- <ClInclude Include="..\mono\utils\mono-value-hash.h" />\r
- <ClInclude Include="..\mono\utils\monobitset.h" />\r
- <ClInclude Include="..\mono\utils\os-event.h" />\r
- <ClInclude Include="..\mono\utils\strenc.h" />\r
- <ClInclude Include="..\mono\utils\valgrind.h" />\r
- <ClInclude Include="..\mono\utils\atomic.h" />\r
- <ClInclude Include="..\mono\utils\unlocked.h" />
- <ClInclude Include="..\mono\utils\mono-hwcap.h" />\r
- <ClInclude Include="..\mono\utils\mono-hwcap-x86.h" />\r
- <ClInclude Include="..\mono\utils\bsearch.h" />\r
- <ClInclude Include="..\mono\utils\memfuncs.h" />\r
- <ClInclude Include="..\mono\utils\parse.h" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <MASM Include="..\mono\utils\win64.asm">\r
- <FileType>Document</FileType>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
- </MASM>\r
- </ItemGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\utils\Makefile.am" />\r
- </ItemGroup>\r
<PropertyGroup Label="Globals">\r
<ProjectGuid>{8FC2B0C8-51AD-49DF-851F-5D01A77A75E4}</ProjectGuid>\r
<Keyword>Win32Proj</Keyword>\r
<PlatformToolset>v140</PlatformToolset>\r
</PropertyGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
- <ImportGroup Label="ExtensionSettings">\r
- <Import Project=".\masm.fixed.props" />\r
- </ImportGroup>\r
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
<Import Project="mono.props" />\r
<Optimization>Disabled</Optimization>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
<Optimization>Disabled</Optimization>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<Command>\r
</Command>\r
</PreBuildEvent>\r
- <MASM>\r
- <PreprocessorDefinitions>X64</PreprocessorDefinitions>\r
- </MASM>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<WarningLevel>Level3</WarningLevel>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <Optimization>MaxSpeed</Optimization>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
- <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<SubSystem>Windows</SubSystem>\r
<Command>\r
</Command>\r
</PreBuildEvent>\r
- <MASM>\r
- <PreprocessorDefinitions>X64</PreprocessorDefinitions>\r
- </MASM>\r
</ItemDefinitionGroup>\r
+ <Import Project="libmonoutils.targets" />\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
- <ImportGroup Label="ExtensionTargets">\r
- <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />\r
- </ImportGroup>\r
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\mono\utils\atomic.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\bsearch.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\dlmalloc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\hazard-pointer.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\json.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\lock-free-alloc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\lock-free-array-queue.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\lock-free-queue.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support-amd64.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support-arm.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mach-support-x86.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\memfuncs.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\monobitset.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-codeman.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-conc-hashtable.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-context.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-counters.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-dl.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-dl-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-error.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-filemap.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-hwcap.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-hwcap-x86.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-internal-hash.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-io-portability.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-linked-list-set.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-logger.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-math.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-md5.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-mmap.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-networkinterfaces.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-path.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-poll.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-proclib.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-property-hash.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-publib.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-rand.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-sha1.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-stdlib.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-coop.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-mach.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-mach-abort-syscall.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-posix.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-posix-abort-syscall.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-posix-signals.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-state-machine.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-threads-windows-abort-syscall.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-time.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-tls.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-uri.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-value-hash.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\networking.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\networking-missing.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\networking-posix.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\networking-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\parse.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\strenc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-log-common.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-log-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-rand-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-proclib-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-mmap-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\os-event-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\mono\utils\atomic.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\bsearch.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\dlmalloc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\dtrace.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\freebsd-dwarf.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\freebsd-elf_common.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\freebsd-elf32.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\freebsd-elf64.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\gc_wrapper.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\hazard-pointer.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\json.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\linux_magic.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\lock-free-alloc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\lock-free-array-queue.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\lock-free-queue.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mach-support.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\memcheck.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\memfuncs.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\monobitset.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-codeman.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-compiler.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-complex.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-conc-hashtable.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-context.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-coop-mutex.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-coop-semaphore.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-counters.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-digest.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-dl.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-dl-fallback.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-error.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-error-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-hwcap.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-hwcap-x86.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-internal-hash.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-io-portability.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-linked-list-set.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-logger.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-logger-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-machine.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-math.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-membar.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-memory-model.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-mmap.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-networkinterfaces.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-once.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-os-mutex.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-os-semaphore.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-path.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-poll.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-proclib.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-property-hash.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-publib.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-rand.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-sigcontext.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-stack-unwinding.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-stdlib.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-string.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-threads.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-threads-api.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-threads-coop.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-threads-posix-signals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-time.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-tls.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-uri.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-value-hash.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\parse.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\strenc.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\valgrind.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-mmap-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-mmap-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-proclib-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-rand-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\mono-dl-windows-internals.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\os-event.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\mono\utils\unlocked.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>\r
+ <Import Project="libmonoutils.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<UniqueIdentifier>{7d1240fd-7e95-4e21-ab1a-365dd69355de}</UniqueIdentifier>\r
<UniqueIdentifier>{82f9c5a2-bc7b-4424-ae85-a203027fd038}</UniqueIdentifier>\r
</Filter>\r
</ItemGroup>\r
- <ItemGroup>\r
- <MASM Include="..\mono\utils\win64.asm">\r
- <Filter>Resource Files</Filter>\r
- </MASM>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="..\mono\utils\Makefile.am">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
- </ItemGroup>\r
</Project>
\ No newline at end of file
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<ClCompile>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTEST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTEST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTEST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTEST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
- </ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
+++ /dev/null
-; file generated by create-windef.pl
-EXPORTS
-MonoFixupCorEE
-mono_add_internal_call
-mono_aot_register_module
-mono_array_addr_with_size
-mono_array_class_get
-mono_array_clone
-mono_array_element_size
-mono_array_length
-mono_array_new
-mono_array_new_full
-mono_array_new_specific
-mono_assemblies_cleanup
-mono_assemblies_init
-mono_assembly_addref
-mono_assembly_close
-mono_assembly_fill_assembly_name
-mono_assembly_foreach
-mono_assembly_get_assemblyref
-mono_assembly_get_image
-mono_assembly_get_main
-mono_assembly_get_name
-mono_assembly_get_object
-mono_assembly_getrootdir
-mono_assembly_invoke_load_hook
-mono_assembly_invoke_search_hook
-mono_assembly_load
-mono_assembly_load_from
-mono_assembly_load_from_full
-mono_assembly_load_full
-mono_assembly_load_module
-mono_assembly_load_module_checked
-mono_assembly_load_reference
-mono_assembly_load_references
-mono_assembly_load_with_partial_name
-mono_assembly_loaded
-mono_assembly_loaded_full
-mono_assembly_name_free
-mono_assembly_name_get_culture
-mono_assembly_name_get_name
-mono_assembly_name_get_pubkeytoken
-mono_assembly_name_get_version
-mono_assembly_name_new
-mono_assembly_names_equal
-mono_assembly_open
-mono_assembly_open_full
-mono_assembly_set_main
-mono_assembly_setrootdir
-mono_bitset_alloc_size
-mono_bitset_clear
-mono_bitset_clear_all
-mono_bitset_clone
-mono_bitset_copyto
-mono_bitset_count
-mono_bitset_equal
-mono_bitset_find_first
-mono_bitset_find_first_unset
-mono_bitset_find_last
-mono_bitset_find_start
-mono_bitset_foreach
-mono_bitset_free
-mono_bitset_intersection
-mono_bitset_intersection_2
-mono_bitset_invert
-mono_bitset_mem_new
-mono_bitset_new
-mono_bitset_set
-mono_bitset_set_all
-mono_bitset_size
-mono_bitset_sub
-mono_bitset_test
-mono_bitset_test_bulk
-mono_bitset_union
-mono_bounded_array_class_get
-mono_breakpoint_clean_code
-mono_check_corlib_version
-mono_class_array_element_size
-mono_class_data_size
-mono_class_describe_statics
-mono_class_enum_basetype
-mono_class_from_generic_parameter
-mono_class_from_mono_type
-mono_class_from_name
-mono_class_from_name_case
-mono_class_from_typeref
-mono_class_from_typeref_checked
-mono_class_get
-mono_class_get_byref_type
-mono_class_get_context
-mono_class_get_element_class
-mono_class_get_event_token
-mono_class_get_events
-mono_class_get_field
-mono_class_get_field_from_name
-mono_class_get_field_token
-mono_class_get_fields
-mono_class_get_flags
-mono_class_get_full
-mono_class_get_image
-mono_class_get_interfaces
-mono_class_get_method_from_name
-mono_class_get_method_from_name_flags
-mono_class_get_methods
-mono_class_get_name
-mono_class_get_namespace
-mono_class_get_nested_types
-mono_class_get_nesting_type
-mono_class_get_parent
-mono_class_get_properties
-mono_class_get_property_from_name
-mono_class_get_property_token
-mono_class_get_rank
-mono_class_get_type
-mono_class_get_type_token
-mono_class_implements_interface
-mono_class_inflate_generic_method
-mono_class_inflate_generic_type
-mono_class_init
-mono_class_instance_size
-mono_class_interface_offset
-mono_class_is_assignable_from
-mono_class_is_delegate
-mono_class_is_enum
-mono_class_is_subclass_of
-mono_class_is_valid_enum
-mono_class_is_valuetype
-mono_class_min_align
-mono_class_name_from_token
-mono_class_num_events
-mono_class_num_fields
-mono_class_num_methods
-mono_class_num_properties
-mono_class_value_size
-mono_class_vtable
-mono_cli_rva_image_map
-mono_code_manager_cleanup
-mono_code_manager_commit
-mono_code_manager_destroy
-mono_code_manager_init
-mono_code_manager_install_callbacks
-mono_code_manager_invalidate
-mono_code_manager_new
-mono_code_manager_new_dynamic
-mono_code_manager_reserve
-mono_code_manager_reserve_align
-mono_code_manager_set_read_only
-mono_code_manager_size
-mono_compile_method
-mono_conc_hashtable_destroy
-mono_conc_hashtable_foreach
-mono_conc_hashtable_foreach_steal
-mono_conc_hashtable_insert
-mono_conc_hashtable_lookup
-mono_conc_hashtable_new
-mono_conc_hashtable_new_full
-mono_conc_hashtable_remove
-mono_config_cleanup
-mono_config_for_assembly
-mono_config_get_cpu
-mono_config_get_os
-mono_config_get_wordsize
-mono_config_is_server_mode
-mono_config_parse
-mono_config_parse_memory
-mono_config_set_server_mode
-mono_config_string_for_assembly_file
-mono_context_get
-mono_context_get_desc
-mono_context_get_domain_id
-mono_context_get_id
-mono_context_init
-mono_context_set
-mono_counter_get_name
-mono_counter_get_section
-mono_counter_get_size
-mono_counter_get_type
-mono_counter_get_unit
-mono_counter_get_variance
-mono_counters_cleanup
-mono_counters_dump
-mono_counters_enable
-mono_counters_foreach
-mono_counters_init
-mono_counters_on_register
-mono_counters_register
-mono_counters_register_with_size
-mono_counters_sample
-mono_cpu_count
-mono_custom_attrs_construct
-mono_custom_attrs_free
-mono_custom_attrs_from_assembly
-mono_custom_attrs_from_class
-mono_custom_attrs_from_event
-mono_custom_attrs_from_field
-mono_custom_attrs_from_index
-mono_custom_attrs_from_method
-mono_custom_attrs_from_param
-mono_custom_attrs_from_property
-mono_custom_attrs_get_attr
-mono_custom_attrs_has_attr
-mono_debug_add_delegate_trampoline
-mono_debug_add_method
-mono_debug_cleanup
-mono_debug_close_image
-mono_debug_close_mono_symbol_file
-mono_debug_domain_create
-mono_debug_domain_unload
-mono_debug_enabled
-mono_debug_find_method
-mono_debug_free_locals
-mono_debug_free_method_jit_info
-mono_debug_free_source_location
-mono_debug_il_offset_from_address
-mono_debug_init
-mono_debug_lookup_locals
-mono_debug_lookup_method
-mono_debug_lookup_method_addresses
-mono_debug_lookup_source_location
-mono_debug_open_image_from_memory
-mono_debug_open_mono_symbols
-mono_debug_print_stack_frame
-mono_debug_print_vars
-mono_debug_remove_method
-mono_debug_symfile_free_location
-mono_debug_symfile_is_loaded
-mono_debug_symfile_lookup_locals
-mono_debug_symfile_lookup_location
-mono_debug_symfile_lookup_method
-mono_debugger_agent_parse_options
-mono_debugger_agent_register_transport
-mono_debugger_agent_transport_handshake
-mono_debugger_insert_breakpoint
-mono_debugger_method_has_breakpoint
-mono_debugger_run_finally
-mono_declsec_flags_from_assembly
-mono_declsec_flags_from_class
-mono_declsec_flags_from_method
-mono_declsec_get_assembly_action
-mono_declsec_get_class_action
-mono_declsec_get_demands
-mono_declsec_get_inheritdemands_class
-mono_declsec_get_inheritdemands_method
-mono_declsec_get_linkdemands
-mono_declsec_get_method_action
-mono_digest_get_public_token
-mono_disasm_code
-mono_disasm_code_one
-mono_dl_fallback_register
-mono_dl_fallback_unregister
-mono_dl_open
-mono_dllmap_insert
-mono_domain_assembly_open
-mono_domain_create
-mono_domain_create_appdomain
-mono_domain_finalize
-mono_domain_foreach
-mono_domain_free
-mono_domain_from_appdomain
-mono_domain_get
-mono_domain_get_by_id
-mono_domain_get_friendly_name
-mono_domain_get_id
-mono_domain_has_type_resolve
-mono_domain_is_unloading
-mono_domain_owns_vtable_slot
-mono_domain_set
-mono_domain_set_config
-mono_domain_set_internal
-mono_domain_try_type_resolve
-mono_domain_try_unload
-mono_domain_unload
-mono_environment_exitcode_get
-mono_environment_exitcode_set
-mono_error_cleanup
-mono_error_get_error_code
-mono_error_get_message
-mono_error_init
-mono_error_init_flags
-mono_error_ok
-mono_escape_uri_string
-mono_event_get_add_method
-mono_event_get_flags
-mono_event_get_name
-mono_event_get_object
-mono_event_get_parent
-mono_event_get_raise_method
-mono_event_get_remove_method
-mono_exception_from_name
-mono_exception_from_name_domain
-mono_exception_from_name_msg
-mono_exception_from_name_two_strings
-mono_exception_from_token
-mono_exception_from_token_two_strings
-mono_exception_walk_trace
-mono_field_from_token
-mono_field_full_name
-mono_field_get_data
-mono_field_get_flags
-mono_field_get_name
-mono_field_get_object
-mono_field_get_offset
-mono_field_get_parent
-mono_field_get_type
-mono_field_get_value
-mono_field_get_value_object
-mono_field_set_value
-mono_field_static_get_value
-mono_field_static_set_value
-mono_file_map
-mono_file_map_close
-mono_file_map_fd
-mono_file_map_open
-mono_file_map_size
-mono_file_unmap
-mono_free
-mono_free_bstr
-mono_free_method
-mono_free_verify_list
-mono_g_hash_table_destroy
-mono_g_hash_table_find
-mono_g_hash_table_foreach
-mono_g_hash_table_foreach_remove
-mono_g_hash_table_insert
-mono_g_hash_table_lookup
-mono_g_hash_table_lookup_extended
-mono_g_hash_table_new_type
-mono_g_hash_table_print_stats
-mono_g_hash_table_remove
-mono_g_hash_table_replace
-mono_g_hash_table_size
-mono_gc_collect
-mono_gc_collection_count
-mono_gc_finalize_notify
-mono_gc_get_generation
-mono_gc_get_heap_size
-mono_gc_get_used_size
-mono_gc_invoke_finalizers
-mono_gc_max_generation
-mono_gc_pending_finalizers
-mono_gc_reference_queue_add
-mono_gc_reference_queue_free
-mono_gc_reference_queue_new
-mono_gc_register_finalizer_callbacks
-mono_gc_register_root
-mono_gc_toggleref_add
-mono_gc_toggleref_register_callback
-mono_gc_walk_heap
-mono_gc_wbarrier_arrayref_copy
-mono_gc_wbarrier_generic_nostore
-mono_gc_wbarrier_generic_store
-mono_gc_wbarrier_generic_store_atomic
-mono_gc_wbarrier_object_copy
-mono_gc_wbarrier_set_arrayref
-mono_gc_wbarrier_set_field
-mono_gc_wbarrier_value_copy
-mono_gchandle_free
-mono_gchandle_get_target
-mono_gchandle_new
-mono_gchandle_new_weakref
-mono_get_array_class
-mono_get_boolean_class
-mono_get_byte_class
-mono_get_char_class
-mono_get_config_dir
-mono_get_corlib
-mono_get_dbnull_object
-mono_get_delegate_begin_invoke
-mono_get_delegate_end_invoke
-mono_get_delegate_invoke
-mono_get_double_class
-mono_get_enum_class
-mono_get_exception_appdomain_unloaded
-mono_get_exception_argument
-mono_get_exception_argument_null
-mono_get_exception_argument_out_of_range
-mono_get_exception_arithmetic
-mono_get_exception_array_type_mismatch
-mono_get_exception_bad_image_format
-mono_get_exception_bad_image_format2
-mono_get_exception_cannot_unload_appdomain
-mono_get_exception_class
-mono_get_exception_divide_by_zero
-mono_get_exception_execution_engine
-mono_get_exception_field_access
-mono_get_exception_file_not_found
-mono_get_exception_file_not_found2
-mono_get_exception_index_out_of_range
-mono_get_exception_invalid_cast
-mono_get_exception_invalid_operation
-mono_get_exception_io
-mono_get_exception_method_access
-mono_get_exception_missing_field
-mono_get_exception_missing_method
-mono_get_exception_not_implemented
-mono_get_exception_not_supported
-mono_get_exception_null_reference
-mono_get_exception_out_of_memory
-mono_get_exception_overflow
-mono_get_exception_reflection_type_load
-mono_get_exception_runtime_wrapped
-mono_get_exception_security
-mono_get_exception_serialization
-mono_get_exception_stack_overflow
-mono_get_exception_synchronization_lock
-mono_get_exception_thread_abort
-mono_get_exception_thread_interrupted
-mono_get_exception_thread_state
-mono_get_exception_type_initialization
-mono_get_exception_type_load
-mono_get_inflated_method
-mono_get_int16_class
-mono_get_int32_class
-mono_get_int64_class
-mono_get_intptr_class
-mono_get_machine_config
-mono_get_method
-mono_get_method_constrained
-mono_get_method_full
-mono_get_object_class
-mono_get_root_domain
-mono_get_runtime_build_info
-mono_get_sbyte_class
-mono_get_single_class
-mono_get_string_class
-mono_get_thread_class
-mono_get_uint16_class
-mono_get_uint32_class
-mono_get_uint64_class
-mono_get_uintptr_class
-mono_get_void_class
-mono_guid_to_string
-mono_guid_to_string_minimal
-mono_hazard_pointer_get
-mono_image_add_to_name_cache
-mono_image_addref
-mono_image_close
-mono_image_ensure_section
-mono_image_ensure_section_idx
-mono_image_fixup_vtable
-mono_image_get_assembly
-mono_image_get_entry_point
-mono_image_get_filename
-mono_image_get_guid
-mono_image_get_name
-mono_image_get_public_key
-mono_image_get_resource
-mono_image_get_strong_name
-mono_image_get_table_info
-mono_image_get_table_rows
-mono_image_has_authenticode_entry
-mono_image_init
-mono_image_init_name_cache
-mono_image_is_dynamic
-mono_image_load_file_for_image
-mono_image_load_module
-mono_image_loaded
-mono_image_loaded_by_guid
-mono_image_loaded_by_guid_full
-mono_image_loaded_full
-mono_image_lookup_resource
-mono_image_open
-mono_image_open_from_data
-mono_image_open_from_data_full
-mono_image_open_from_data_with_name
-mono_image_open_full
-mono_image_rva_map
-mono_image_strerror
-mono_image_strong_name_position
-mono_images_cleanup
-mono_images_init
-mono_init
-mono_init_from_assembly
-mono_init_version
-mono_install_assembly_load_hook
-mono_install_assembly_postload_refonly_search_hook
-mono_install_assembly_postload_search_hook
-mono_install_assembly_preload_hook
-mono_install_assembly_refonly_preload_hook
-mono_install_assembly_refonly_search_hook
-mono_install_assembly_search_hook
-mono_install_ftnptr_eh_callback
-mono_install_load_aot_data_hook
-mono_install_runtime_cleanup
-mono_install_unhandled_exception_hook
-mono_is_debugger_attached
-mono_jit_cleanup
-mono_jit_exec
-mono_jit_info_get_code_size
-mono_jit_info_get_code_start
-mono_jit_info_get_method
-mono_jit_info_table_find
-mono_jit_init
-mono_jit_init_version
-mono_jit_parse_options
-mono_jit_set_aot_mode
-mono_jit_set_aot_only
-mono_jit_set_domain
-mono_jit_set_trace_options
-mono_jit_thread_attach
-mono_ldstr
-mono_ldtoken
-mono_lls_find
-mono_lls_get_hazardous_pointer_with_mask
-mono_lls_init
-mono_lls_insert
-mono_lls_remove
-mono_load_remote_field
-mono_load_remote_field_new
-mono_loader_register_module
-mono_lock_free_alloc
-mono_lock_free_allocator_check_consistency
-mono_lock_free_allocator_init_allocator
-mono_lock_free_allocator_init_size_class
-mono_lock_free_free
-mono_lock_free_queue_dequeue
-mono_lock_free_queue_enqueue
-mono_lock_free_queue_init
-mono_lock_free_queue_node_init
-mono_lock_free_queue_node_unpoison
-mono_locks_dump
-mono_lookup_icall_symbol
-mono_lookup_internal_call
-mono_lookup_pinvoke_call
-mono_main
-mono_marshal_string_to_utf16
-mono_md5_final
-mono_md5_get_digest
-mono_md5_get_digest_from_file
-mono_md5_init
-mono_md5_update
-mono_mem_account_register_counters
-mono_mem_account_type_name
-mono_mempool_alloc
-mono_mempool_alloc0
-mono_mempool_contains_addr
-mono_mempool_destroy
-mono_mempool_get_allocated
-mono_mempool_invalidate
-mono_mempool_new
-mono_mempool_new_size
-mono_mempool_stats
-mono_mempool_strdup
-mono_metadata_blob_heap
-mono_metadata_cleanup
-mono_metadata_compute_size
-mono_metadata_custom_attrs_from_index
-mono_metadata_declsec_from_index
-mono_metadata_decode_blob_size
-mono_metadata_decode_row
-mono_metadata_decode_row_col
-mono_metadata_decode_signed_value
-mono_metadata_decode_table_row
-mono_metadata_decode_table_row_col
-mono_metadata_decode_value
-mono_metadata_encode_value
-mono_metadata_events_from_typedef
-mono_metadata_field_info
-mono_metadata_field_info_with_mempool
-mono_metadata_free_array
-mono_metadata_free_inflated_signature
-mono_metadata_free_marshal_spec
-mono_metadata_free_method_signature
-mono_metadata_free_mh
-mono_metadata_free_type
-mono_metadata_generic_class_is_valuetype
-mono_metadata_get_constant_index
-mono_metadata_get_generic_param_row
-mono_metadata_get_inflated_signature
-mono_metadata_get_marshal_info
-mono_metadata_guid_heap
-mono_metadata_implmap_from_method
-mono_metadata_init
-mono_metadata_interfaces_from_typedef
-mono_metadata_load_generic_param_constraints_checked
-mono_metadata_load_generic_params
-mono_metadata_locate
-mono_metadata_locate_token
-mono_metadata_methods_from_event
-mono_metadata_methods_from_property
-mono_metadata_nested_in_typedef
-mono_metadata_nesting_typedef
-mono_metadata_packing_from_typedef
-mono_metadata_parse_array
-mono_metadata_parse_custom_mod
-mono_metadata_parse_field_type
-mono_metadata_parse_marshal_spec
-mono_metadata_parse_method_signature
-mono_metadata_parse_method_signature_full
-mono_metadata_parse_mh
-mono_metadata_parse_mh_full
-mono_metadata_parse_param
-mono_metadata_parse_signature
-mono_metadata_parse_type
-mono_metadata_parse_typedef_or_ref
-mono_metadata_properties_from_typedef
-mono_metadata_signature_alloc
-mono_metadata_signature_dup
-mono_metadata_signature_equal
-mono_metadata_string_heap
-mono_metadata_token_from_dor
-mono_metadata_translate_token_index
-mono_metadata_type_equal
-mono_metadata_type_hash
-mono_metadata_typedef_from_field
-mono_metadata_typedef_from_method
-mono_metadata_user_string
-mono_method_body_get_object
-mono_method_can_access_field
-mono_method_can_access_method
-mono_method_desc_free
-mono_method_desc_from_method
-mono_method_desc_full_match
-mono_method_desc_match
-mono_method_desc_new
-mono_method_desc_search_in_class
-mono_method_desc_search_in_image
-mono_method_full_name
-mono_method_get_class
-mono_method_get_context
-mono_method_get_flags
-mono_method_get_generic_container
-mono_method_get_header
-mono_method_get_header_checked
-mono_method_get_index
-mono_method_get_last_managed
-mono_method_get_marshal_info
-mono_method_get_name
-mono_method_get_object
-mono_method_get_param_names
-mono_method_get_param_token
-mono_method_get_signature
-mono_method_get_signature_full
-mono_method_get_token
-mono_method_get_unmanaged_thunk
-mono_method_has_marshal_info
-mono_method_header_get_clauses
-mono_method_header_get_code
-mono_method_header_get_locals
-mono_method_header_get_num_clauses
-mono_method_print_code
-mono_method_signature
-mono_method_signature_checked
-mono_method_verify
-mono_mlist_alloc
-mono_mlist_append
-mono_mlist_get_data
-mono_mlist_last
-mono_mlist_length
-mono_mlist_next
-mono_mlist_prepend
-mono_mlist_remove_item
-mono_mlist_set_data
-mono_mlist_set_next
-mono_module_file_get_object
-mono_module_get_object
-mono_monitor_enter
-mono_monitor_enter_v4
-mono_monitor_exit
-mono_monitor_try_enter
-mono_mprotect
-mono_native_getrootdir
-mono_native_thread_create
-mono_native_thread_id_equals
-mono_native_thread_id_get
-mono_native_thread_join
-mono_native_thread_set_name
-mono_object_castclass_mbyref
-mono_object_clone
-mono_object_describe
-mono_object_describe_fields
-mono_object_get_class
-mono_object_get_domain
-mono_object_get_size
-mono_object_get_virtual_method
-mono_object_hash
-mono_object_isinst
-mono_object_isinst_mbyref
-mono_object_new
-mono_object_new_alloc_specific
-mono_object_new_fast
-mono_object_new_from_token
-mono_object_new_specific
-mono_object_to_string
-mono_object_unbox
-mono_opcode_name
-mono_opcode_value
-mono_pagesize
-mono_param_get_objects
-mono_parse_default_optimizations
-mono_parse_env_options
-mono_parse_options_from
-mono_path_canonicalize
-mono_path_resolve_symlinks
-mono_pe_file_open
-mono_perfcounter_foreach
-mono_perfcounters_init
-mono_personality
-mono_pmip
-mono_poll
-mono_print_method_from_ip
-mono_print_thread_dump
-mono_print_thread_dump_from_ctx
-mono_print_unhandled_exception
-mono_profiler_call_context_free_buffer
-mono_profiler_call_context_get_argument
-mono_profiler_call_context_get_local
-mono_profiler_call_context_get_result
-mono_profiler_call_context_get_this
-mono_profiler_create
-mono_profiler_enable_allocations
-mono_profiler_enable_call_context_introspection
-mono_profiler_enable_sampling
-mono_profiler_get_coverage_data
-mono_profiler_get_sample_mode
-mono_profiler_install
-mono_profiler_install_gc
-mono_profiler_install_jit_end
-mono_profiler_install_thread
-mono_profiler_load
-mono_profiler_set_assembly_loaded_callback
-mono_profiler_set_assembly_loading_callback
-mono_profiler_set_assembly_unloaded_callback
-mono_profiler_set_assembly_unloading_callback
-mono_profiler_set_call_instrumentation_filter_callback
-mono_profiler_set_class_failed_callback
-mono_profiler_set_class_loaded_callback
-mono_profiler_set_class_loading_callback
-mono_profiler_set_context_loaded_callback
-mono_profiler_set_context_unloaded_callback
-mono_profiler_set_coverage_filter_callback
-mono_profiler_set_domain_loaded_callback
-mono_profiler_set_domain_loading_callback
-mono_profiler_set_domain_name_callback
-mono_profiler_set_domain_unloaded_callback
-mono_profiler_set_domain_unloading_callback
-mono_profiler_set_events
-mono_profiler_set_exception_clause_callback
-mono_profiler_set_exception_throw_callback
-mono_profiler_set_gc_allocation_callback
-mono_profiler_set_gc_event_callback
-mono_profiler_set_gc_finalized_callback
-mono_profiler_set_gc_finalized_object_callback
-mono_profiler_set_gc_finalizing_callback
-mono_profiler_set_gc_finalizing_object_callback
-mono_profiler_set_gc_handle_created_callback
-mono_profiler_set_gc_handle_deleted_callback
-mono_profiler_set_gc_moves_callback
-mono_profiler_set_gc_resize_callback
-mono_profiler_set_gc_roots_callback
-mono_profiler_set_image_failed_callback
-mono_profiler_set_image_loaded_callback
-mono_profiler_set_image_loading_callback
-mono_profiler_set_image_unloaded_callback
-mono_profiler_set_image_unloading_callback
-mono_profiler_set_iomap_report_callback
-mono_profiler_set_jit_begin_callback
-mono_profiler_set_jit_chunk_created_callback
-mono_profiler_set_jit_chunk_destroyed_callback
-mono_profiler_set_jit_code_buffer_callback
-mono_profiler_set_jit_done_callback
-mono_profiler_set_jit_failed_callback
-mono_profiler_set_method_begin_invoke_callback
-mono_profiler_set_method_end_invoke_callback
-mono_profiler_set_method_enter_callback
-mono_profiler_set_method_exception_leave_callback
-mono_profiler_set_method_free_callback
-mono_profiler_set_method_leave_callback
-mono_profiler_set_monitor_acquired_callback
-mono_profiler_set_monitor_contention_callback
-mono_profiler_set_monitor_failed_callback
-mono_profiler_set_runtime_initialized_callback
-mono_profiler_set_runtime_shutdown_begin_callback
-mono_profiler_set_runtime_shutdown_end_callback
-mono_profiler_set_sample_hit_callback
-mono_profiler_set_sample_mode
-mono_profiler_set_thread_name_callback
-mono_profiler_set_thread_started_callback
-mono_profiler_set_thread_stopped_callback
-mono_property_get_flags
-mono_property_get_get_method
-mono_property_get_name
-mono_property_get_object
-mono_property_get_parent
-mono_property_get_set_method
-mono_property_get_value
-mono_property_hash_destroy
-mono_property_hash_insert
-mono_property_hash_lookup
-mono_property_hash_new
-mono_property_hash_remove_object
-mono_property_set_value
-mono_ptr_class_get
-mono_raise_exception
-mono_reflection_assembly_get_assembly
-mono_reflection_free_type_info
-mono_reflection_get_custom_attrs
-mono_reflection_get_custom_attrs_blob
-mono_reflection_get_custom_attrs_by_type
-mono_reflection_get_custom_attrs_data
-mono_reflection_get_custom_attrs_info
-mono_reflection_get_token
-mono_reflection_get_type
-mono_reflection_parse_type
-mono_reflection_type_from_name
-mono_reflection_type_get_type
-mono_register_bundled_assemblies
-mono_register_config_for_assembly
-mono_register_machine_config
-mono_register_symfile_for_assembly
-mono_runtime_class_init
-mono_runtime_cleanup
-mono_runtime_delegate_invoke
-mono_runtime_exec_main
-mono_runtime_exec_managed_code
-mono_runtime_get_main_args
-mono_runtime_init
-mono_runtime_invoke
-mono_runtime_invoke_array
-mono_runtime_is_shutting_down
-mono_runtime_object_init
-mono_runtime_quit
-mono_runtime_resource_check_limit
-mono_runtime_resource_limit
-mono_runtime_resource_set_callback
-mono_runtime_run_main
-mono_runtime_set_main_args
-mono_runtime_set_shutting_down
-mono_security_core_clr_get_options
-mono_security_core_clr_require_elevated_permissions
-mono_security_core_clr_set_options
-mono_security_enable_core_clr
-mono_security_set_core_clr_platform_callback
-mono_set_allocator_vtable
-mono_set_assemblies_path
-mono_set_break_policy
-mono_set_config_dir
-mono_set_crash_chaining
-mono_set_defaults
-mono_set_dirs
-mono_set_is_debugger_attached
-mono_set_rootdir
-mono_set_signal_chaining
-mono_sha1_final
-mono_sha1_get_digest
-mono_sha1_get_digest_from_file
-mono_sha1_init
-mono_sha1_update
-mono_shared_area
-mono_shared_area_for_pid
-mono_shared_area_instances
-mono_shared_area_remove
-mono_shared_area_unload
-mono_signature_explicit_this
-mono_signature_full_name
-mono_signature_get_call_conv
-mono_signature_get_desc
-mono_signature_get_param_count
-mono_signature_get_params
-mono_signature_get_return_type
-mono_signature_hash
-mono_signature_is_instance
-mono_signature_param_is_out
-mono_signature_vararg_start
-mono_signbit_double
-mono_signbit_float
-mono_stack_walk
-mono_stack_walk_async_safe
-mono_stack_walk_no_il
-mono_store_remote_field
-mono_store_remote_field_new
-mono_string_chars
-mono_string_empty
-mono_string_empty_wrapper
-mono_string_equal
-mono_string_from_bstr
-mono_string_from_utf16
-mono_string_from_utf32
-mono_string_hash
-mono_string_intern
-mono_string_is_interned
-mono_string_length
-mono_string_new
-mono_string_new_len
-mono_string_new_size
-mono_string_new_utf16
-mono_string_new_utf32
-mono_string_new_wrapper
-mono_string_to_utf16
-mono_string_to_utf32
-mono_string_to_utf8
-mono_string_to_utf8_checked
-mono_stringify_assembly_name
-mono_table_info_get_rows
-mono_thread_attach
-mono_thread_cleanup
-mono_thread_create
-mono_thread_current
-mono_thread_detach
-mono_thread_detach_if_exiting
-mono_thread_exit
-mono_thread_get_main
-mono_thread_get_managed_id
-mono_thread_get_name_utf8
-mono_thread_get_undeniable_exception
-mono_thread_hazardous_queue_free
-mono_thread_hazardous_try_free
-mono_thread_hazardous_try_free_all
-mono_thread_info_detach
-mono_thread_info_get_small_id
-mono_thread_info_register_small_id
-mono_thread_info_yield
-mono_thread_init
-mono_thread_is_foreign
-mono_thread_manage
-mono_thread_new_init
-mono_thread_set_main
-mono_thread_set_manage_callback
-mono_thread_stop
-mono_threads_assert_gc_safe_region
-mono_threads_assert_gc_unsafe_region
-mono_threads_attach_coop
-mono_threads_attach_tools_thread
-mono_threads_detach_coop
-mono_threads_enter_gc_safe_region
-mono_threads_enter_gc_safe_region_unbalanced
-mono_threads_enter_gc_unsafe_region
-mono_threads_enter_gc_unsafe_region_unbalanced
-mono_threads_exit_gc_safe_region
-mono_threads_exit_gc_safe_region_unbalanced
-mono_threads_exit_gc_unsafe_region
-mono_threads_exit_gc_unsafe_region_unbalanced
-mono_threads_get_default_stacksize
-mono_threads_request_thread_dump
-mono_threads_set_default_stacksize
-mono_trace_set_level_string
-mono_trace_set_log_handler
-mono_trace_set_mask_string
-mono_trace_set_print_handler
-mono_trace_set_printerr_handler
-mono_tracev_inner
-mono_type_create_from_typespec
-mono_type_full_name
-mono_type_generic_inst_is_valuetype
-mono_type_get_array_type
-mono_type_get_class
-mono_type_get_desc
-mono_type_get_modifiers
-mono_type_get_name
-mono_type_get_object
-mono_type_get_ptr_type
-mono_type_get_signature
-mono_type_get_type
-mono_type_get_underlying_type
-mono_type_is_byref
-mono_type_is_pointer
-mono_type_is_primitive
-mono_type_is_reference
-mono_type_is_struct
-mono_type_is_valid_enum_basetype
-mono_type_is_void
-mono_type_size
-mono_type_stack_size
-mono_type_to_unmanaged
-mono_unhandled_exception
-mono_unicode_from_external
-mono_unicode_to_external
-mono_upgrade_remote_class_wrapper
-mono_utf8_from_external
-mono_utf8_validate_and_len
-mono_utf8_validate_and_len_with_bounds
-mono_valloc
-mono_valloc_aligned
-mono_valloc_granule
-mono_value_box
-mono_value_copy
-mono_value_copy_array
-mono_value_describe_fields
-mono_verify_corlib
-mono_vfree
-mono_vtable_get_static_field_data
-mono_win32_compat_CopyMemory
-mono_win32_compat_FillMemory
-mono_win32_compat_MoveMemory
-mono_win32_compat_ZeroMemory
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<!-- Change this to custom build tree location to enable out of source tree builds, example c:/mono-build/ -->
<SGEN_DEFINES>HAVE_SGEN_GC;HAVE_MOVING_COLLECTOR;HAVE_WRITE_BARRIERS</SGEN_DEFINES>
<GC_DEFINES>$(SGEN_DEFINES)</GC_DEFINES>
<GC_LIB>libgcmonosgen.lib</GC_LIB>
- <MONO_DEF>monosgen.def</MONO_DEF>
<MONO_TARGET_SUFFIX Condition="'$(MONO_USE_TARGET_SUFFIX)'=='true'">-sgen</MONO_TARGET_SUFFIX>
<MONO_BUILD_DIR_PREFIX Condition="'$(MONO_USE_SEPARATE_BUILD_DIR)'=='true'">$(MONO_BUILD_DIR_PREFIX)sgen/</MONO_BUILD_DIR_PREFIX>
</PropertyGroup>
<BOEHM_DEFINES>HAVE_BOEHM_GC</BOEHM_DEFINES>
<GC_DEFINES>$(BOEHM_DEFINES)</GC_DEFINES>
<GC_LIB>libgc.lib</GC_LIB>
- <MONO_DEF>mono.def</MONO_DEF>
<MONO_TARGET_SUFFIX Condition="'$(MONO_USE_TARGET_SUFFIX)'=='true'">-boehm</MONO_TARGET_SUFFIX>
<MONO_BUILD_DIR_PREFIX Condition="'$(MONO_USE_SEPARATE_BUILD_DIR)'=='true'">$(MONO_BUILD_DIR_PREFIX)boehm/</MONO_BUILD_DIR_PREFIX>
</PropertyGroup>
<PropertyGroup Label="Static-Mono-Libraries">
- <MONO_RUNTIME_LIBS>libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB)</MONO_RUNTIME_LIBS>
- <MONO_STATIC_LIBMONO_LIB>libmono-static$(MONO_TARGET_SUFFIX).lib;$(MONO_RUNTIME_LIBS)</MONO_STATIC_LIBMONO_LIB>
+ <MONO_RUNTIME_LIBS>libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmini$(MONO_TARGET_SUFFIX).lib;$(GC_LIB)</MONO_RUNTIME_LIBS>
+ <MONO_STATIC_LIBMONO_LIB>libmono-static$(MONO_TARGET_SUFFIX).lib</MONO_STATIC_LIBMONO_LIB>
<MONO_DYNAMIC_LIBMONO_LIB>mono-2.0$(MONO_TARGET_SUFFIX).lib</MONO_DYNAMIC_LIBMONO_LIB>
</PropertyGroup>
<PropertyGroup Label="Static-libmono-Library" Condition="$(MONO_USE_STATIC_LIBMONO)=='true'">
<MONO_LIBMONO_LIB>$(MONO_STATIC_LIBMONO_LIB)</MONO_LIBMONO_LIB>
</PropertyGroup>
<PropertyGroup Label="Dynamic-libmono-Library" Condition="$(MONO_USE_STATIC_LIBMONO)!='true'">
- <MONO_LIBMONO_LIB>$(MONO_DYNAMIC_LIBMONO_LIB)</MONO_LIBMONO_LIB>
+ <MONO_LIBMONO_LIB>eglib.lib;$(MONO_DYNAMIC_LIBMONO_LIB)</MONO_LIBMONO_LIB>
</PropertyGroup>
<PropertyGroup Label="MonoProfiler">
<VTUNE_INCLUDE_DIR>$(ProgramFiles)/Intel/VTune Amplifier XE 2013/include</VTUNE_INCLUDE_DIR>
<AdditionalDependencies>Mswsock.lib;ws2_32.lib;ole32.lib;oleaut32.lib;psapi.lib;version.lib;advapi32.lib;winmm.lib;kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(MONO_BUILD_DIR_PREFIX)$(Platform)/lib/$(Configuration)</AdditionalLibraryDirectories>
</Link>
+ <Lib>
+ <AdditionalLibraryDirectories>$(MONO_BUILD_DIR_PREFIX)$(Platform)/lib/$(Configuration)</AdditionalLibraryDirectories>
+ </Lib>
</ItemDefinitionGroup>
-</Project>
+</Project>
\ No newline at end of file
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmono", "libmono.vcxproj", "{CB0D9E92-293C-439C-9AC7-C5F59B6E0771}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {EB56000B-C80B-4E8B-908D-D84D31B517D3} = {EB56000B-C80B-4E8B-908D-D84D31B517D3}\r
- {92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {C36612BD-22D3-4B95-85E2-7FDC4FC5D739} = {C36612BD-22D3-4B95-85E2-7FDC4FC5D739}\r
- {8FC2B0C8-51AD-49DF-851F-5D01A77A75E4} = {8FC2B0C8-51AD-49DF-851F-5D01A77A75E4}\r
- {158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
- {B7098DFA-31E6-4006-8A15-1C9A4E925149} = {B7098DFA-31E6-4006-8A15-1C9A4E925149}\r
- EndProjectSection\r
-EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-invoke", "test-invoke.vcxproj", "{C5639B3F-288A-4A4B-A4A5-C0D85834221D}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "teste", "teste.vcxproj", "{6FDE4E5E-57D0-432F-A987-6C226A7827E4}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono", "mono.vcxproj", "{A0EDDCD9-940F-432C-A28F-7EF322437D79}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "monodis", "monodis.vcxproj", "{37F50E5A-4818-46CF-81FE-4BB06DE5D42E}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pedump", "pedump.vcxproj", "{84C7DB50-D6F8-4C47-B22C-6BB203AEB4D3}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "monograph", "monograph.vcxproj", "{CA2A69D6-3B9D-45A5-8BF7-4E242E683122}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-metadata", "test-metadata.vcxproj", "{C2EB666E-9146-4B7A-85F6-25F9EA313770}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_eglib", "test_eglib.vcxproj", "{80A0620A-3478-4E1A-AA7C-0D2387B892AB}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest", "libtest.vcxproj", "{5A435710-E6D2-4DD4-9B3F-A7239A32C6F4}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "profiler-vtune", "profiler-vtune.vcxproj", "{F51017F9-B7FB-4F87-B7B5-12799D965783}"\r
ProjectSection(ProjectDependencies) = postProject\r
{92AE7622-5F58-4234-9A26-9EC71876B3F4} = {92AE7622-5F58-4234-9A26-9EC71876B3F4}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{158073ED-99AE-4196-9EDC-DDB2344F8466} = {158073ED-99AE-4196-9EDC-DDB2344F8466}\r
EndProjectSection\r
EndProject\r
{37F50E5A-4818-46CF-81FE-4BB06DE5D42E} = {37F50E5A-4818-46CF-81FE-4BB06DE5D42E}\r
{6FDE4E5E-57D0-432F-A987-6C226A7827E4} = {6FDE4E5E-57D0-432F-A987-6C226A7827E4}\r
{C2EB666E-9146-4B7A-85F6-25F9EA313770} = {C2EB666E-9146-4B7A-85F6-25F9EA313770}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}\r
{C36612BD-22D3-4B95-85E2-7FDC4FC5D739} = {C36612BD-22D3-4B95-85E2-7FDC4FC5D739}\r
{8FC2B0C8-51AD-49DF-851F-5D01A77A75E4} = {8FC2B0C8-51AD-49DF-851F-5D01A77A75E4}\r
{CA2A69D6-3B9D-45A5-8BF7-4E242E683122} = {CA2A69D6-3B9D-45A5-8BF7-4E242E683122}\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmonodac", "libmonodac.vcxproj", "{DC50997D-8A0D-4EB6-849B-9D7FBC39CE53}"\r
EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmini", "libmini.vcxproj", "{88D2EB79-592D-45F8-B849-AE021C1D983A}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmono-dynamic", "libmono-dynamic.vcxproj", "{675F4175-FFB1-480D-AD36-F397578844D4}"\r
+EndProject\r
Global\r
GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
Debug|Win32 = Debug|Win32\r
{B7098DFA-31E6-4006-8A15-1C9A4E925149}.Release|Win32.Build.0 = Release|Win32\r
{B7098DFA-31E6-4006-8A15-1C9A4E925149}.Release|x64.ActiveCfg = Release|x64\r
{B7098DFA-31E6-4006-8A15-1C9A4E925149}.Release|x64.Build.0 = Release|x64\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Debug|Win32.Build.0 = Debug|Win32\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Debug|x64.ActiveCfg = Debug|x64\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Debug|x64.Build.0 = Debug|x64\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Release|Win32.ActiveCfg = Release|Win32\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Release|Win32.Build.0 = Release|Win32\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Release|x64.ActiveCfg = Release|x64\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771}.Release|x64.Build.0 = Release|x64\r
{C5639B3F-288A-4A4B-A4A5-C0D85834221D}.Debug|Win32.ActiveCfg = Debug|Win32\r
{C5639B3F-288A-4A4B-A4A5-C0D85834221D}.Debug|Win32.Build.0 = Debug|Win32\r
{C5639B3F-288A-4A4B-A4A5-C0D85834221D}.Debug|x64.ActiveCfg = Debug|x64\r
{DC50997D-8A0D-4EB6-849B-9D7FBC39CE53}.Release|Win32.ActiveCfg = Release|x64\r
{DC50997D-8A0D-4EB6-849B-9D7FBC39CE53}.Release|x64.ActiveCfg = Release|x64\r
{DC50997D-8A0D-4EB6-849B-9D7FBC39CE53}.Release|x64.Build.0 = Release|x64\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Debug|Win32.Build.0 = Debug|Win32\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Debug|x64.ActiveCfg = Debug|x64\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Debug|x64.Build.0 = Debug|x64\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Release|Win32.ActiveCfg = Release|Win32\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Release|Win32.Build.0 = Release|Win32\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Release|x64.ActiveCfg = Release|x64\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A}.Release|x64.Build.0 = Release|x64\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Debug|Win32.Build.0 = Debug|Win32\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Debug|x64.ActiveCfg = Debug|x64\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Debug|x64.Build.0 = Debug|x64\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Release|Win32.ActiveCfg = Release|Win32\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Release|Win32.Build.0 = Release|Win32\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Release|x64.ActiveCfg = Release|x64\r
+ {675F4175-FFB1-480D-AD36-F397578844D4}.Release|x64.Build.0 = Release|x64\r
EndGlobalSection\r
GlobalSection(SolutionProperties) = preSolution\r
HideSolutionNode = FALSE\r
EndGlobalSection\r
GlobalSection(NestedProjects) = preSolution\r
{B7098DFA-31E6-4006-8A15-1C9A4E925149} = {EE2CC761-9652-44AC-9204-7EB31194CAA6}\r
- {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} = {DE3617B4-17A8-4E5F-A00F-BA43D956881F}\r
{C5639B3F-288A-4A4B-A4A5-C0D85834221D} = {5FE09AA5-C3C9-45EA-A323-36A11B653CEC}\r
{6FDE4E5E-57D0-432F-A987-6C226A7827E4} = {5FE09AA5-C3C9-45EA-A323-36A11B653CEC}\r
{A0EDDCD9-940F-432C-A28F-7EF322437D79} = {DE3617B4-17A8-4E5F-A00F-BA43D956881F}\r
{7BECCFA0-28A0-4995-9856-558560F720E6} = {A0068765-334B-414C-8E21-8376CD2EC9F6}\r
{0046B994-40A8-4C64-AC9D-429DC9177B54} = {A0068765-334B-414C-8E21-8376CD2EC9F6}\r
{DC50997D-8A0D-4EB6-849B-9D7FBC39CE53} = {DE3617B4-17A8-4E5F-A00F-BA43D956881F}\r
+ {88D2EB79-592D-45F8-B849-AE021C1D983A} = {0EBA83B7-0EB4-4C83-A900-77300A97E8B1}\r
+ {675F4175-FFB1-480D-AD36-F397578844D4} = {DE3617B4-17A8-4E5F-A00F-BA43D956881F}\r
EndGlobalSection\r
GlobalSection(ExtensibilityGlobals) = postSolution\r
- AMDCaPersistentConfig = Debug|Win32\r
- AMDCaPersistentStartup = mono\r
AMDCaProjectFile = C:\Users\Owner\Development\monogit\mono\msvc\CodeAnalyst\mono.caw\r
+ AMDCaPersistentStartup = mono\r
+ AMDCaPersistentConfig = Debug|Win32\r
EndGlobalSection\r
GlobalSection(DPCodeReviewSolutionGUID) = preSolution\r
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
- <LinkIncremental>false</LinkIncremental>\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
- <LinkIncremental>false</LinkIncremental>\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<ClCompile>\r
<Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <WarningLevel>Level3</WarningLevel>\r
</ClCompile>\r
<ProjectReference />\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<ClCompile>\r
<Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
+ <WarningLevel>Level3</WarningLevel>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<ShowProgress>\r
</ShowProgress>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <StringPooling>true</StringPooling>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- <AdditionalDependencies>eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <ShowProgress>NotSet</ShowProgress>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <StringPooling>true</StringPooling>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <AdditionalDependencies>eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ClInclude Include="..\mono\dis\util.h" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgc.vcxproj">\r
- <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgcmonosgen.vcxproj">\r
- <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d740}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-static.vcxproj">\r
+ <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0772}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- <AdditionalDependencies>eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(MonoSourceLocation)\support\adler32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\compress.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\crc32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\deflate.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\errno.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\fcntl.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\infback.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\inffast.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\inflate.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\inftrees.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\map.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\ioapi.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\iowin32.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\minizip.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\unzip.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\zip.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\signal.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\stdio.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\stdlib.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\string.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\sys-stat.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\trees.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\uncompr.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\zlib-helper.c" />
+ <ClCompile Include="$(MonoSourceLocation)\support\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(MonoSourceLocation)\support\inffast.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\crc32.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\deflate.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\inffixed.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\inflate.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\inftrees.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\map.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\crypt.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\ioapi.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\iowin32.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\unzip.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\zip.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\mph.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\trees.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\zconf.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\zlib.h" />
+ <ClInclude Include="$(MonoSourceLocation)\support\zutil.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="monoposixhelper.def" />
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(MonoSourceLocation)\support\adler32.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\compress.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\crc32.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\deflate.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\errno.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\infback.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\inffast.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\inflate.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\inftrees.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\map.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\signal.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\stdio.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\stdlib.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\string.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\trees.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\uncompr.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\zlib-helper.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\zutil.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\iowin32.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\minizip.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\unzip.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\zip.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\minizip\ioapi.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\fcntl.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ <ClCompile Include="$(MonoSourceLocation)\support\sys-stat.c">
+ <Filter>Source Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(MonoSourceLocation)\support\crc32.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\deflate.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\inffast.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\inffixed.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\inflate.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\inftrees.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\map.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\mph.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\trees.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\zconf.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\zutil.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\crypt.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\unzip.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\iowin32.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\zip.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\zlib.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ <ClInclude Include="$(MonoSourceLocation)\support\minizip\ioapi.h">
+ <Filter>Header Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="monoposixhelper.def">
+ <Filter>Resource Files$(MonoPosixHelperFilterSubFolder)</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup Condition="'$(MonoPosixHelperFilterSubFolder)'!=''">
+ <Filter Include="Header Files$(MonoPosixHelperFilterSubFolder)">
+ <UniqueIdentifier>{BFBB15BB-C843-4A56-8909-B832B33FED9B}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files$(MonoPosixHelperFilterSubFolder)">
+ <UniqueIdentifier>{C024824E-DFC4-4A50-AA57-AA7F1B4B014E}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files$(MonoPosixHelperFilterSubFolder)">
+ <UniqueIdentifier>{E91A4E9A-3F86-4412-BBA5-8C2F3C243845}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
\ No newline at end of file
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MonoPosixHelper</TargetName>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MonoPosixHelper</TargetName>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MonoPosixHelper</TargetName>\r
<Optimization>Disabled</Optimization>\r
<PreprocessorDefinitions>_DEBUG;__i386__;TARGET_X86;_WIN32_WINNT=0x0600;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_DIR)/support;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
</ClCompile>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
<ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
<ProjectReference>\r
<Optimization>Disabled</Optimization>\r
<PreprocessorDefinitions>_DEBUG;__x86_64__;_WIN32_WINNT=0x0600;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_DIR)/support;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
</ClCompile>\r
<Link>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
<ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>NDEBUG;__i386__;TARGET_X86;i386;_WIN32_WINNT=0x0600;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_DIR)/support;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
<ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
<ProjectReference>\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>NDEBUG;__x86_64__;_WIN32_WINNT=0x0600;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;HOST_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(MONO_DIR)/support;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
<ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
<ImportLibrary>$(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
</ItemDefinitionGroup>\r
- <ItemGroup>\r
- <ClCompile Include="..\support\adler32.c" />\r
- <ClCompile Include="..\support\compress.c" />\r
- <ClCompile Include="..\support\crc32.c" />\r
- <ClCompile Include="..\support\deflate.c" />\r
- <ClCompile Include="..\support\errno.c" />\r
- <ClCompile Include="..\support\fcntl.c" />\r
- <ClCompile Include="..\support\infback.c" />\r
- <ClCompile Include="..\support\inffast.c" />\r
- <ClCompile Include="..\support\inflate.c" />\r
- <ClCompile Include="..\support\inftrees.c" />\r
- <ClCompile Include="..\support\map.c" />\r
- <ClCompile Include="..\support\minizip\ioapi.c" />\r
- <ClCompile Include="..\support\minizip\iowin32.c" />\r
- <ClCompile Include="..\support\minizip\minizip.c" />\r
- <ClCompile Include="..\support\minizip\unzip.c" />\r
- <ClCompile Include="..\support\minizip\zip.c" />\r
- <ClCompile Include="..\support\signal.c" />\r
- <ClCompile Include="..\support\stdio.c" />\r
- <ClCompile Include="..\support\stdlib.c" />\r
- <ClCompile Include="..\support\string.c" />\r
- <ClCompile Include="..\support\sys-stat.c" />\r
- <ClCompile Include="..\support\trees.c" />\r
- <ClCompile Include="..\support\uncompr.c" />\r
- <ClCompile Include="..\support\zlib-helper.c" />\r
- <ClCompile Include="..\support\zutil.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\support\inffast.h" />\r
- <ClInclude Include="..\support\crc32.h" />\r
- <ClInclude Include="..\support\deflate.h" />\r
- <ClInclude Include="..\support\inffixed.h" />\r
- <ClInclude Include="..\support\inflate.h" />\r
- <ClInclude Include="..\support\inftrees.h" />\r
- <ClInclude Include="..\support\map.h" />\r
- <ClInclude Include="..\support\minizip\crypt.h" />\r
- <ClInclude Include="..\support\minizip\ioapi.h" />\r
- <ClInclude Include="..\support\minizip\iowin32.h" />\r
- <ClInclude Include="..\support\minizip\unzip.h" />\r
- <ClInclude Include="..\support\minizip\zip.h" />\r
- <ClInclude Include="..\support\mph.h" />\r
- <ClInclude Include="..\support\trees.h" />\r
- <ClInclude Include="..\support\zconf.h" />\r
- <ClInclude Include="..\support\zlib.h" />\r
- <ClInclude Include="..\support\zutil.h" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <None Include="monoposixhelper.def" />\r
- </ItemGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
+ <Import Project="monoposixhelper.targets" />\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <ClCompile Include="..\support\adler32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\compress.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\crc32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\deflate.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\errno.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\infback.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\inffast.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\inflate.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\inftrees.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\map.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\signal.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\stdio.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\stdlib.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\string.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\trees.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\uncompr.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\zlib-helper.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\zutil.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\minizip\iowin32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\minizip\minizip.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\minizip\unzip.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\minizip\zip.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\minizip\ioapi.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\fcntl.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\support\sys-stat.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="..\support\crc32.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\deflate.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\inffast.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\inffixed.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\inflate.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\inftrees.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\map.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\mph.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\trees.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\zconf.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\zutil.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\minizip\crypt.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\minizip\unzip.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\minizip\iowin32.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\minizip\zip.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\zlib.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\support\minizip\ioapi.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
+ <Import Project="monoposixhelper.targets.filters" />\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<UniqueIdentifier>{45dae598-72bc-4d0e-9cba-004f84c718c0}</UniqueIdentifier>\r
<UniqueIdentifier>{2835d7d3-cd1c-4f3c-8783-d2413b0b1ae2}</UniqueIdentifier>\r
</Filter>\r
</ItemGroup>\r
- <ItemGroup>\r
- <None Include="monoposixhelper.def">\r
- <Filter>Resource Files</Filter>\r
- </None>\r
- </ItemGroup>\r
</Project>
\ No newline at end of file
+++ /dev/null
-; file generated by create-windef.pl
-EXPORTS
-MonoFixupCorEE
-mono_add_internal_call
-mono_aot_register_module
-mono_array_addr_with_size
-mono_array_class_get
-mono_array_clone
-mono_array_element_size
-mono_array_length
-mono_array_new
-mono_array_new_full
-mono_array_new_specific
-mono_assemblies_cleanup
-mono_assemblies_init
-mono_assembly_addref
-mono_assembly_close
-mono_assembly_fill_assembly_name
-mono_assembly_foreach
-mono_assembly_get_assemblyref
-mono_assembly_get_image
-mono_assembly_get_main
-mono_assembly_get_name
-mono_assembly_get_object
-mono_assembly_getrootdir
-mono_assembly_invoke_load_hook
-mono_assembly_invoke_search_hook
-mono_assembly_load
-mono_assembly_load_from
-mono_assembly_load_from_full
-mono_assembly_load_full
-mono_assembly_load_module
-mono_assembly_load_module_checked
-mono_assembly_load_reference
-mono_assembly_load_references
-mono_assembly_load_with_partial_name
-mono_assembly_loaded
-mono_assembly_loaded_full
-mono_assembly_name_free
-mono_assembly_name_get_culture
-mono_assembly_name_get_name
-mono_assembly_name_get_pubkeytoken
-mono_assembly_name_get_version
-mono_assembly_name_new
-mono_assembly_names_equal
-mono_assembly_open
-mono_assembly_open_full
-mono_assembly_set_main
-mono_assembly_setrootdir
-mono_bitset_alloc_size
-mono_bitset_clear
-mono_bitset_clear_all
-mono_bitset_clone
-mono_bitset_copyto
-mono_bitset_count
-mono_bitset_equal
-mono_bitset_find_first
-mono_bitset_find_first_unset
-mono_bitset_find_last
-mono_bitset_find_start
-mono_bitset_foreach
-mono_bitset_free
-mono_bitset_intersection
-mono_bitset_intersection_2
-mono_bitset_invert
-mono_bitset_mem_new
-mono_bitset_new
-mono_bitset_set
-mono_bitset_set_all
-mono_bitset_size
-mono_bitset_sub
-mono_bitset_test
-mono_bitset_test_bulk
-mono_bitset_union
-mono_bounded_array_class_get
-mono_breakpoint_clean_code
-mono_check_corlib_version
-mono_class_array_element_size
-mono_class_data_size
-mono_class_describe_statics
-mono_class_enum_basetype
-mono_class_from_generic_parameter
-mono_class_from_mono_type
-mono_class_from_name
-mono_class_from_name_case
-mono_class_from_typeref
-mono_class_from_typeref_checked
-mono_class_get
-mono_class_get_byref_type
-mono_class_get_context
-mono_class_get_element_class
-mono_class_get_event_token
-mono_class_get_events
-mono_class_get_field
-mono_class_get_field_from_name
-mono_class_get_field_token
-mono_class_get_fields
-mono_class_get_flags
-mono_class_get_full
-mono_class_get_image
-mono_class_get_interfaces
-mono_class_get_method_from_name
-mono_class_get_method_from_name_flags
-mono_class_get_methods
-mono_class_get_name
-mono_class_get_namespace
-mono_class_get_nested_types
-mono_class_get_nesting_type
-mono_class_get_parent
-mono_class_get_properties
-mono_class_get_property_from_name
-mono_class_get_property_token
-mono_class_get_rank
-mono_class_get_type
-mono_class_get_type_token
-mono_class_implements_interface
-mono_class_inflate_generic_method
-mono_class_inflate_generic_type
-mono_class_init
-mono_class_instance_size
-mono_class_interface_offset
-mono_class_is_assignable_from
-mono_class_is_delegate
-mono_class_is_enum
-mono_class_is_subclass_of
-mono_class_is_valid_enum
-mono_class_is_valuetype
-mono_class_min_align
-mono_class_name_from_token
-mono_class_num_events
-mono_class_num_fields
-mono_class_num_methods
-mono_class_num_properties
-mono_class_value_size
-mono_class_vtable
-mono_cli_rva_image_map
-mono_code_manager_cleanup
-mono_code_manager_commit
-mono_code_manager_destroy
-mono_code_manager_init
-mono_code_manager_install_callbacks
-mono_code_manager_invalidate
-mono_code_manager_new
-mono_code_manager_new_dynamic
-mono_code_manager_reserve
-mono_code_manager_reserve_align
-mono_code_manager_set_read_only
-mono_code_manager_size
-mono_compile_method
-mono_conc_hashtable_destroy
-mono_conc_hashtable_foreach
-mono_conc_hashtable_foreach_steal
-mono_conc_hashtable_insert
-mono_conc_hashtable_lookup
-mono_conc_hashtable_new
-mono_conc_hashtable_new_full
-mono_conc_hashtable_remove
-mono_config_cleanup
-mono_config_for_assembly
-mono_config_get_cpu
-mono_config_get_os
-mono_config_get_wordsize
-mono_config_is_server_mode
-mono_config_parse
-mono_config_parse_memory
-mono_config_set_server_mode
-mono_config_string_for_assembly_file
-mono_context_get
-mono_context_get_desc
-mono_context_get_domain_id
-mono_context_get_id
-mono_context_init
-mono_context_set
-mono_counter_get_name
-mono_counter_get_section
-mono_counter_get_size
-mono_counter_get_type
-mono_counter_get_unit
-mono_counter_get_variance
-mono_counters_cleanup
-mono_counters_dump
-mono_counters_enable
-mono_counters_foreach
-mono_counters_init
-mono_counters_on_register
-mono_counters_register
-mono_counters_register_with_size
-mono_counters_sample
-mono_cpu_count
-mono_custom_attrs_construct
-mono_custom_attrs_free
-mono_custom_attrs_from_assembly
-mono_custom_attrs_from_class
-mono_custom_attrs_from_event
-mono_custom_attrs_from_field
-mono_custom_attrs_from_index
-mono_custom_attrs_from_method
-mono_custom_attrs_from_param
-mono_custom_attrs_from_property
-mono_custom_attrs_get_attr
-mono_custom_attrs_has_attr
-mono_debug_add_delegate_trampoline
-mono_debug_add_method
-mono_debug_cleanup
-mono_debug_close_image
-mono_debug_close_mono_symbol_file
-mono_debug_domain_create
-mono_debug_domain_unload
-mono_debug_enabled
-mono_debug_find_method
-mono_debug_free_locals
-mono_debug_free_method_jit_info
-mono_debug_free_source_location
-mono_debug_il_offset_from_address
-mono_debug_init
-mono_debug_lookup_locals
-mono_debug_lookup_method
-mono_debug_lookup_method_addresses
-mono_debug_lookup_source_location
-mono_debug_open_image_from_memory
-mono_debug_open_mono_symbols
-mono_debug_print_stack_frame
-mono_debug_print_vars
-mono_debug_remove_method
-mono_debug_symfile_free_location
-mono_debug_symfile_is_loaded
-mono_debug_symfile_lookup_locals
-mono_debug_symfile_lookup_location
-mono_debug_symfile_lookup_method
-mono_debugger_agent_parse_options
-mono_debugger_agent_register_transport
-mono_debugger_agent_transport_handshake
-mono_debugger_insert_breakpoint
-mono_debugger_method_has_breakpoint
-mono_debugger_run_finally
-mono_declsec_flags_from_assembly
-mono_declsec_flags_from_class
-mono_declsec_flags_from_method
-mono_declsec_get_assembly_action
-mono_declsec_get_class_action
-mono_declsec_get_demands
-mono_declsec_get_inheritdemands_class
-mono_declsec_get_inheritdemands_method
-mono_declsec_get_linkdemands
-mono_declsec_get_method_action
-mono_digest_get_public_token
-mono_disasm_code
-mono_disasm_code_one
-mono_dl_fallback_register
-mono_dl_fallback_unregister
-mono_dl_open
-mono_dllmap_insert
-mono_domain_assembly_open
-mono_domain_create
-mono_domain_create_appdomain
-mono_domain_finalize
-mono_domain_foreach
-mono_domain_free
-mono_domain_from_appdomain
-mono_domain_get
-mono_domain_get_by_id
-mono_domain_get_friendly_name
-mono_domain_get_id
-mono_domain_has_type_resolve
-mono_domain_is_unloading
-mono_domain_owns_vtable_slot
-mono_domain_set
-mono_domain_set_config
-mono_domain_set_internal
-mono_domain_try_type_resolve
-mono_domain_try_unload
-mono_domain_unload
-mono_environment_exitcode_get
-mono_environment_exitcode_set
-mono_error_cleanup
-mono_error_get_error_code
-mono_error_get_message
-mono_error_init
-mono_error_init_flags
-mono_error_ok
-mono_escape_uri_string
-mono_event_get_add_method
-mono_event_get_flags
-mono_event_get_name
-mono_event_get_object
-mono_event_get_parent
-mono_event_get_raise_method
-mono_event_get_remove_method
-mono_exception_from_name
-mono_exception_from_name_domain
-mono_exception_from_name_msg
-mono_exception_from_name_two_strings
-mono_exception_from_token
-mono_exception_from_token_two_strings
-mono_exception_walk_trace
-mono_field_from_token
-mono_field_full_name
-mono_field_get_data
-mono_field_get_flags
-mono_field_get_name
-mono_field_get_object
-mono_field_get_offset
-mono_field_get_parent
-mono_field_get_type
-mono_field_get_value
-mono_field_get_value_object
-mono_field_set_value
-mono_field_static_get_value
-mono_field_static_set_value
-mono_file_map
-mono_file_map_close
-mono_file_map_fd
-mono_file_map_open
-mono_file_map_size
-mono_file_unmap
-mono_free
-mono_free_bstr
-mono_free_method
-mono_free_verify_list
-mono_g_hash_table_destroy
-mono_g_hash_table_find
-mono_g_hash_table_foreach
-mono_g_hash_table_foreach_remove
-mono_g_hash_table_insert
-mono_g_hash_table_lookup
-mono_g_hash_table_lookup_extended
-mono_g_hash_table_new_type
-mono_g_hash_table_print_stats
-mono_g_hash_table_remove
-mono_g_hash_table_replace
-mono_g_hash_table_size
-mono_gc_collect
-mono_gc_collection_count
-mono_gc_finalize_notify
-mono_gc_get_generation
-mono_gc_get_heap_size
-mono_gc_get_used_size
-mono_gc_invoke_finalizers
-mono_gc_max_generation
-mono_gc_pending_finalizers
-mono_gc_reference_queue_add
-mono_gc_reference_queue_free
-mono_gc_reference_queue_new
-mono_gc_register_bridge_callbacks
-mono_gc_register_finalizer_callbacks
-mono_gc_register_root
-mono_gc_toggleref_add
-mono_gc_toggleref_register_callback
-mono_gc_wait_for_bridge_processing
-mono_gc_walk_heap
-mono_gc_wbarrier_arrayref_copy
-mono_gc_wbarrier_generic_nostore
-mono_gc_wbarrier_generic_store
-mono_gc_wbarrier_generic_store_atomic
-mono_gc_wbarrier_object_copy
-mono_gc_wbarrier_set_arrayref
-mono_gc_wbarrier_set_field
-mono_gc_wbarrier_value_copy
-mono_gchandle_free
-mono_gchandle_get_target
-mono_gchandle_new
-mono_gchandle_new_weakref
-mono_get_array_class
-mono_get_boolean_class
-mono_get_byte_class
-mono_get_char_class
-mono_get_config_dir
-mono_get_corlib
-mono_get_dbnull_object
-mono_get_delegate_begin_invoke
-mono_get_delegate_end_invoke
-mono_get_delegate_invoke
-mono_get_double_class
-mono_get_enum_class
-mono_get_exception_appdomain_unloaded
-mono_get_exception_argument
-mono_get_exception_argument_null
-mono_get_exception_argument_out_of_range
-mono_get_exception_arithmetic
-mono_get_exception_array_type_mismatch
-mono_get_exception_bad_image_format
-mono_get_exception_bad_image_format2
-mono_get_exception_cannot_unload_appdomain
-mono_get_exception_class
-mono_get_exception_divide_by_zero
-mono_get_exception_execution_engine
-mono_get_exception_field_access
-mono_get_exception_file_not_found
-mono_get_exception_file_not_found2
-mono_get_exception_index_out_of_range
-mono_get_exception_invalid_cast
-mono_get_exception_invalid_operation
-mono_get_exception_io
-mono_get_exception_method_access
-mono_get_exception_missing_field
-mono_get_exception_missing_method
-mono_get_exception_not_implemented
-mono_get_exception_not_supported
-mono_get_exception_null_reference
-mono_get_exception_out_of_memory
-mono_get_exception_overflow
-mono_get_exception_reflection_type_load
-mono_get_exception_runtime_wrapped
-mono_get_exception_security
-mono_get_exception_serialization
-mono_get_exception_stack_overflow
-mono_get_exception_synchronization_lock
-mono_get_exception_thread_abort
-mono_get_exception_thread_interrupted
-mono_get_exception_thread_state
-mono_get_exception_type_initialization
-mono_get_exception_type_load
-mono_get_inflated_method
-mono_get_int16_class
-mono_get_int32_class
-mono_get_int64_class
-mono_get_intptr_class
-mono_get_machine_config
-mono_get_method
-mono_get_method_constrained
-mono_get_method_full
-mono_get_object_class
-mono_get_root_domain
-mono_get_runtime_build_info
-mono_get_sbyte_class
-mono_get_single_class
-mono_get_string_class
-mono_get_thread_class
-mono_get_uint16_class
-mono_get_uint32_class
-mono_get_uint64_class
-mono_get_uintptr_class
-mono_get_void_class
-mono_guid_to_string
-mono_guid_to_string_minimal
-mono_hazard_pointer_get
-mono_image_add_to_name_cache
-mono_image_addref
-mono_image_close
-mono_image_ensure_section
-mono_image_ensure_section_idx
-mono_image_fixup_vtable
-mono_image_get_assembly
-mono_image_get_entry_point
-mono_image_get_filename
-mono_image_get_guid
-mono_image_get_name
-mono_image_get_public_key
-mono_image_get_resource
-mono_image_get_strong_name
-mono_image_get_table_info
-mono_image_get_table_rows
-mono_image_has_authenticode_entry
-mono_image_init
-mono_image_init_name_cache
-mono_image_is_dynamic
-mono_image_load_file_for_image
-mono_image_load_module
-mono_image_loaded
-mono_image_loaded_by_guid
-mono_image_loaded_by_guid_full
-mono_image_loaded_full
-mono_image_lookup_resource
-mono_image_open
-mono_image_open_from_data
-mono_image_open_from_data_full
-mono_image_open_from_data_with_name
-mono_image_open_full
-mono_image_rva_map
-mono_image_strerror
-mono_image_strong_name_position
-mono_images_cleanup
-mono_images_init
-mono_init
-mono_init_from_assembly
-mono_init_version
-mono_install_assembly_load_hook
-mono_install_assembly_postload_refonly_search_hook
-mono_install_assembly_postload_search_hook
-mono_install_assembly_preload_hook
-mono_install_assembly_refonly_preload_hook
-mono_install_assembly_refonly_search_hook
-mono_install_assembly_search_hook
-mono_install_ftnptr_eh_callback
-mono_install_load_aot_data_hook
-mono_install_runtime_cleanup
-mono_install_unhandled_exception_hook
-mono_is_debugger_attached
-mono_jit_cleanup
-mono_jit_exec
-mono_jit_info_get_code_size
-mono_jit_info_get_code_start
-mono_jit_info_get_method
-mono_jit_info_table_find
-mono_jit_init
-mono_jit_init_version
-mono_jit_parse_options
-mono_jit_set_aot_mode
-mono_jit_set_aot_only
-mono_jit_set_domain
-mono_jit_set_trace_options
-mono_jit_thread_attach
-mono_ldstr
-mono_ldtoken
-mono_lls_find
-mono_lls_get_hazardous_pointer_with_mask
-mono_lls_init
-mono_lls_insert
-mono_lls_remove
-mono_load_remote_field
-mono_load_remote_field_new
-mono_loader_register_module
-mono_lock_free_alloc
-mono_lock_free_allocator_check_consistency
-mono_lock_free_allocator_init_allocator
-mono_lock_free_allocator_init_size_class
-mono_lock_free_free
-mono_lock_free_queue_dequeue
-mono_lock_free_queue_enqueue
-mono_lock_free_queue_init
-mono_lock_free_queue_node_init
-mono_lock_free_queue_node_unpoison
-mono_locks_dump
-mono_lookup_icall_symbol
-mono_lookup_internal_call
-mono_lookup_pinvoke_call
-mono_main
-mono_marshal_string_to_utf16
-mono_md5_final
-mono_md5_get_digest
-mono_md5_get_digest_from_file
-mono_md5_init
-mono_md5_update
-mono_mem_account_register_counters
-mono_mem_account_type_name
-mono_mempool_alloc
-mono_mempool_alloc0
-mono_mempool_contains_addr
-mono_mempool_destroy
-mono_mempool_get_allocated
-mono_mempool_invalidate
-mono_mempool_new
-mono_mempool_new_size
-mono_mempool_stats
-mono_mempool_strdup
-mono_metadata_blob_heap
-mono_metadata_cleanup
-mono_metadata_compute_size
-mono_metadata_custom_attrs_from_index
-mono_metadata_declsec_from_index
-mono_metadata_decode_blob_size
-mono_metadata_decode_row
-mono_metadata_decode_row_col
-mono_metadata_decode_signed_value
-mono_metadata_decode_table_row
-mono_metadata_decode_table_row_col
-mono_metadata_decode_value
-mono_metadata_encode_value
-mono_metadata_events_from_typedef
-mono_metadata_field_info
-mono_metadata_field_info_with_mempool
-mono_metadata_free_array
-mono_metadata_free_inflated_signature
-mono_metadata_free_marshal_spec
-mono_metadata_free_method_signature
-mono_metadata_free_mh
-mono_metadata_free_type
-mono_metadata_generic_class_is_valuetype
-mono_metadata_get_constant_index
-mono_metadata_get_generic_param_row
-mono_metadata_get_inflated_signature
-mono_metadata_get_marshal_info
-mono_metadata_guid_heap
-mono_metadata_implmap_from_method
-mono_metadata_init
-mono_metadata_interfaces_from_typedef
-mono_metadata_load_generic_param_constraints_checked
-mono_metadata_load_generic_params
-mono_metadata_locate
-mono_metadata_locate_token
-mono_metadata_methods_from_event
-mono_metadata_methods_from_property
-mono_metadata_nested_in_typedef
-mono_metadata_nesting_typedef
-mono_metadata_packing_from_typedef
-mono_metadata_parse_array
-mono_metadata_parse_custom_mod
-mono_metadata_parse_field_type
-mono_metadata_parse_marshal_spec
-mono_metadata_parse_method_signature
-mono_metadata_parse_method_signature_full
-mono_metadata_parse_mh
-mono_metadata_parse_mh_full
-mono_metadata_parse_param
-mono_metadata_parse_signature
-mono_metadata_parse_type
-mono_metadata_parse_typedef_or_ref
-mono_metadata_properties_from_typedef
-mono_metadata_signature_alloc
-mono_metadata_signature_dup
-mono_metadata_signature_equal
-mono_metadata_string_heap
-mono_metadata_token_from_dor
-mono_metadata_translate_token_index
-mono_metadata_type_equal
-mono_metadata_type_hash
-mono_metadata_typedef_from_field
-mono_metadata_typedef_from_method
-mono_metadata_user_string
-mono_method_body_get_object
-mono_method_can_access_field
-mono_method_can_access_method
-mono_method_desc_free
-mono_method_desc_from_method
-mono_method_desc_full_match
-mono_method_desc_match
-mono_method_desc_new
-mono_method_desc_search_in_class
-mono_method_desc_search_in_image
-mono_method_full_name
-mono_method_get_class
-mono_method_get_context
-mono_method_get_flags
-mono_method_get_generic_container
-mono_method_get_header
-mono_method_get_header_checked
-mono_method_get_index
-mono_method_get_last_managed
-mono_method_get_marshal_info
-mono_method_get_name
-mono_method_get_object
-mono_method_get_param_names
-mono_method_get_param_token
-mono_method_get_signature
-mono_method_get_signature_full
-mono_method_get_token
-mono_method_get_unmanaged_thunk
-mono_method_has_marshal_info
-mono_method_header_get_clauses
-mono_method_header_get_code
-mono_method_header_get_locals
-mono_method_header_get_num_clauses
-mono_method_print_code
-mono_method_signature
-mono_method_signature_checked
-mono_method_verify
-mono_mlist_alloc
-mono_mlist_append
-mono_mlist_get_data
-mono_mlist_last
-mono_mlist_length
-mono_mlist_next
-mono_mlist_prepend
-mono_mlist_remove_item
-mono_mlist_set_data
-mono_mlist_set_next
-mono_module_file_get_object
-mono_module_get_object
-mono_monitor_enter
-mono_monitor_enter_v4
-mono_monitor_exit
-mono_monitor_try_enter
-mono_mprotect
-mono_native_getrootdir
-mono_native_thread_create
-mono_native_thread_id_equals
-mono_native_thread_id_get
-mono_native_thread_join
-mono_native_thread_set_name
-mono_object_castclass_mbyref
-mono_object_clone
-mono_object_describe
-mono_object_describe_fields
-mono_object_get_class
-mono_object_get_domain
-mono_object_get_size
-mono_object_get_virtual_method
-mono_object_hash
-mono_object_isinst
-mono_object_isinst_mbyref
-mono_object_new
-mono_object_new_alloc_specific
-mono_object_new_fast
-mono_object_new_from_token
-mono_object_new_specific
-mono_object_to_string
-mono_object_unbox
-mono_opcode_name
-mono_opcode_value
-mono_pagesize
-mono_param_get_objects
-mono_parse_default_optimizations
-mono_parse_env_options
-mono_parse_options_from
-mono_path_canonicalize
-mono_path_resolve_symlinks
-mono_pe_file_open
-mono_perfcounter_foreach
-mono_perfcounters_init
-mono_personality
-mono_pmip
-mono_poll
-mono_print_method_from_ip
-mono_print_thread_dump
-mono_print_thread_dump_from_ctx
-mono_print_unhandled_exception
-mono_profiler_call_context_free_buffer
-mono_profiler_call_context_get_argument
-mono_profiler_call_context_get_local
-mono_profiler_call_context_get_result
-mono_profiler_call_context_get_this
-mono_profiler_create
-mono_profiler_enable_allocations
-mono_profiler_enable_call_context_introspection
-mono_profiler_enable_sampling
-mono_profiler_get_coverage_data
-mono_profiler_get_sample_mode
-mono_profiler_install
-mono_profiler_install_gc
-mono_profiler_install_jit_end
-mono_profiler_install_thread
-mono_profiler_load
-mono_profiler_set_assembly_loaded_callback
-mono_profiler_set_assembly_loading_callback
-mono_profiler_set_assembly_unloaded_callback
-mono_profiler_set_assembly_unloading_callback
-mono_profiler_set_call_instrumentation_filter_callback
-mono_profiler_set_class_failed_callback
-mono_profiler_set_class_loaded_callback
-mono_profiler_set_class_loading_callback
-mono_profiler_set_context_loaded_callback
-mono_profiler_set_context_unloaded_callback
-mono_profiler_set_coverage_filter_callback
-mono_profiler_set_domain_loaded_callback
-mono_profiler_set_domain_loading_callback
-mono_profiler_set_domain_name_callback
-mono_profiler_set_domain_unloaded_callback
-mono_profiler_set_domain_unloading_callback
-mono_profiler_set_events
-mono_profiler_set_exception_clause_callback
-mono_profiler_set_exception_throw_callback
-mono_profiler_set_gc_allocation_callback
-mono_profiler_set_gc_event_callback
-mono_profiler_set_gc_finalized_callback
-mono_profiler_set_gc_finalized_object_callback
-mono_profiler_set_gc_finalizing_callback
-mono_profiler_set_gc_finalizing_object_callback
-mono_profiler_set_gc_handle_created_callback
-mono_profiler_set_gc_handle_deleted_callback
-mono_profiler_set_gc_moves_callback
-mono_profiler_set_gc_resize_callback
-mono_profiler_set_gc_roots_callback
-mono_profiler_set_image_failed_callback
-mono_profiler_set_image_loaded_callback
-mono_profiler_set_image_loading_callback
-mono_profiler_set_image_unloaded_callback
-mono_profiler_set_image_unloading_callback
-mono_profiler_set_iomap_report_callback
-mono_profiler_set_jit_begin_callback
-mono_profiler_set_jit_chunk_created_callback
-mono_profiler_set_jit_chunk_destroyed_callback
-mono_profiler_set_jit_code_buffer_callback
-mono_profiler_set_jit_done_callback
-mono_profiler_set_jit_failed_callback
-mono_profiler_set_method_begin_invoke_callback
-mono_profiler_set_method_end_invoke_callback
-mono_profiler_set_method_enter_callback
-mono_profiler_set_method_exception_leave_callback
-mono_profiler_set_method_free_callback
-mono_profiler_set_method_leave_callback
-mono_profiler_set_monitor_acquired_callback
-mono_profiler_set_monitor_contention_callback
-mono_profiler_set_monitor_failed_callback
-mono_profiler_set_runtime_initialized_callback
-mono_profiler_set_runtime_shutdown_begin_callback
-mono_profiler_set_runtime_shutdown_end_callback
-mono_profiler_set_sample_hit_callback
-mono_profiler_set_sample_mode
-mono_profiler_set_thread_name_callback
-mono_profiler_set_thread_started_callback
-mono_profiler_set_thread_stopped_callback
-mono_property_get_flags
-mono_property_get_get_method
-mono_property_get_name
-mono_property_get_object
-mono_property_get_parent
-mono_property_get_set_method
-mono_property_get_value
-mono_property_hash_destroy
-mono_property_hash_insert
-mono_property_hash_lookup
-mono_property_hash_new
-mono_property_hash_remove_object
-mono_property_set_value
-mono_ptr_class_get
-mono_raise_exception
-mono_reflection_assembly_get_assembly
-mono_reflection_free_type_info
-mono_reflection_get_custom_attrs
-mono_reflection_get_custom_attrs_blob
-mono_reflection_get_custom_attrs_by_type
-mono_reflection_get_custom_attrs_data
-mono_reflection_get_custom_attrs_info
-mono_reflection_get_token
-mono_reflection_get_type
-mono_reflection_parse_type
-mono_reflection_type_from_name
-mono_reflection_type_get_type
-mono_register_bundled_assemblies
-mono_register_config_for_assembly
-mono_register_machine_config
-mono_register_symfile_for_assembly
-mono_runtime_class_init
-mono_runtime_cleanup
-mono_runtime_delegate_invoke
-mono_runtime_exec_main
-mono_runtime_exec_managed_code
-mono_runtime_get_main_args
-mono_runtime_init
-mono_runtime_invoke
-mono_runtime_invoke_array
-mono_runtime_is_shutting_down
-mono_runtime_object_init
-mono_runtime_quit
-mono_runtime_resource_check_limit
-mono_runtime_resource_limit
-mono_runtime_resource_set_callback
-mono_runtime_run_main
-mono_runtime_set_main_args
-mono_runtime_set_shutting_down
-mono_security_core_clr_get_options
-mono_security_core_clr_require_elevated_permissions
-mono_security_core_clr_set_options
-mono_security_enable_core_clr
-mono_security_set_core_clr_platform_callback
-mono_set_allocator_vtable
-mono_set_assemblies_path
-mono_set_break_policy
-mono_set_config_dir
-mono_set_crash_chaining
-mono_set_defaults
-mono_set_dirs
-mono_set_is_debugger_attached
-mono_set_rootdir
-mono_set_signal_chaining
-mono_sha1_final
-mono_sha1_get_digest
-mono_sha1_get_digest_from_file
-mono_sha1_init
-mono_sha1_update
-mono_shared_area
-mono_shared_area_for_pid
-mono_shared_area_instances
-mono_shared_area_remove
-mono_shared_area_unload
-mono_signature_explicit_this
-mono_signature_full_name
-mono_signature_get_call_conv
-mono_signature_get_desc
-mono_signature_get_param_count
-mono_signature_get_params
-mono_signature_get_return_type
-mono_signature_hash
-mono_signature_is_instance
-mono_signature_param_is_out
-mono_signature_vararg_start
-mono_signbit_double
-mono_signbit_float
-mono_stack_walk
-mono_stack_walk_async_safe
-mono_stack_walk_no_il
-mono_store_remote_field
-mono_store_remote_field_new
-mono_string_chars
-mono_string_empty
-mono_string_empty_wrapper
-mono_string_equal
-mono_string_from_bstr
-mono_string_from_utf16
-mono_string_from_utf32
-mono_string_hash
-mono_string_intern
-mono_string_is_interned
-mono_string_length
-mono_string_new
-mono_string_new_len
-mono_string_new_size
-mono_string_new_utf16
-mono_string_new_utf32
-mono_string_new_wrapper
-mono_string_to_utf16
-mono_string_to_utf32
-mono_string_to_utf8
-mono_string_to_utf8_checked
-mono_stringify_assembly_name
-mono_table_info_get_rows
-mono_thread_attach
-mono_thread_cleanup
-mono_thread_create
-mono_thread_current
-mono_thread_detach
-mono_thread_detach_if_exiting
-mono_thread_exit
-mono_thread_get_main
-mono_thread_get_managed_id
-mono_thread_get_name_utf8
-mono_thread_get_undeniable_exception
-mono_thread_hazardous_queue_free
-mono_thread_hazardous_try_free
-mono_thread_hazardous_try_free_all
-mono_thread_info_detach
-mono_thread_info_get_small_id
-mono_thread_info_register_small_id
-mono_thread_info_yield
-mono_thread_init
-mono_thread_is_foreign
-mono_thread_manage
-mono_thread_new_init
-mono_thread_set_main
-mono_thread_set_manage_callback
-mono_thread_stop
-mono_threads_assert_gc_safe_region
-mono_threads_assert_gc_unsafe_region
-mono_threads_attach_coop
-mono_threads_attach_tools_thread
-mono_threads_detach_coop
-mono_threads_enter_gc_safe_region
-mono_threads_enter_gc_safe_region_unbalanced
-mono_threads_enter_gc_unsafe_region
-mono_threads_enter_gc_unsafe_region_unbalanced
-mono_threads_exit_gc_safe_region
-mono_threads_exit_gc_safe_region_unbalanced
-mono_threads_exit_gc_unsafe_region
-mono_threads_exit_gc_unsafe_region_unbalanced
-mono_threads_get_default_stacksize
-mono_threads_request_thread_dump
-mono_threads_set_default_stacksize
-mono_trace_set_level_string
-mono_trace_set_log_handler
-mono_trace_set_mask_string
-mono_trace_set_print_handler
-mono_trace_set_printerr_handler
-mono_tracev_inner
-mono_type_create_from_typespec
-mono_type_full_name
-mono_type_generic_inst_is_valuetype
-mono_type_get_array_type
-mono_type_get_class
-mono_type_get_desc
-mono_type_get_modifiers
-mono_type_get_name
-mono_type_get_object
-mono_type_get_ptr_type
-mono_type_get_signature
-mono_type_get_type
-mono_type_get_underlying_type
-mono_type_is_byref
-mono_type_is_pointer
-mono_type_is_primitive
-mono_type_is_reference
-mono_type_is_struct
-mono_type_is_valid_enum_basetype
-mono_type_is_void
-mono_type_size
-mono_type_stack_size
-mono_type_to_unmanaged
-mono_unhandled_exception
-mono_unicode_from_external
-mono_unicode_to_external
-mono_upgrade_remote_class_wrapper
-mono_utf8_from_external
-mono_utf8_validate_and_len
-mono_utf8_validate_and_len_with_bounds
-mono_valloc
-mono_valloc_aligned
-mono_valloc_granule
-mono_value_box
-mono_value_copy
-mono_value_copy_array
-mono_value_describe_fields
-mono_verify_corlib
-mono_vfree
-mono_vtable_get_static_field_data
-mono_win32_compat_CopyMemory
-mono_win32_compat_FillMemory
-mono_win32_compat_MoveMemory
-mono_win32_compat_ZeroMemory
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;GC_NOT_DLL;GC_GCJ_SUPPORT;GC_WIN32_THREADS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4018;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
<DisableSpecificWarnings>4018;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
- <AdditionalDependencies>eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
- <ClCompile Include="..\mono\metadata\appdomain.c" />\r
- <ClCompile Include="..\mono\metadata\assembly.c" />\r
- <ClCompile Include="..\mono\metadata\boehm-gc.c" />\r
- <ClCompile Include="..\mono\metadata\class.c" />\r
- <ClCompile Include="..\mono\metadata\console-win32.c" />\r
- <ClCompile Include="..\mono\metadata\domain.c" />\r
- <ClCompile Include="..\mono\metadata\environment.c" />\r
- <ClCompile Include="..\mono\metadata\w32file-win32.c" />\r
- <ClCompile Include="..\mono\metadata\w32file.c" />\r
- <ClCompile Include="..\mono\metadata\w32error-win32.c" />\r
- <ClCompile Include="..\mono\metadata\filewatcher.c" />\r
- <ClCompile Include="..\mono\metadata\gc.c" />\r
- <ClCompile Include="..\mono\metadata\icall-windows.c" />\r
- <ClCompile Include="..\mono\metadata\icall.c" />\r
- <ClCompile Include="..\mono\metadata\image.c" />\r
- <ClCompile Include="..\mono\metadata\loader.c" />\r
- <ClCompile Include="..\mono\metadata\locales.c" />\r
- <ClCompile Include="..\mono\metadata\marshal-windows.c" />\r
- <ClCompile Include="..\mono\metadata\marshal.c" />\r
- <ClCompile Include="..\mono\metadata\metadata.c" />\r
- <ClCompile Include="..\mono\metadata\monitor.c" />\r
- <ClCompile Include="..\mono\metadata\mono-config.c" />\r
- <ClCompile Include="..\mono\utils\mono-dl.c" />\r
- <ClCompile Include="..\mono\metadata\object.c" />\r
- <ClCompile Include="..\mono\metadata\w32process.c" />\r
- <ClCompile Include="..\mono\metadata\w32process-win32.c" />\r
- <ClCompile Include="..\mono\metadata\profiler.c" />\r
- <ClCompile Include="..\mono\metadata\rand.c" />\r
- <ClCompile Include="..\mono\metadata\reflection.c" />\r
- <ClCompile Include="..\mono\metadata\security-manager.c" />\r
- <ClCompile Include="..\mono\metadata\w32socket.c" />\r
- <ClCompile Include="..\mono\metadata\string-icalls.c" />\r
- <ClCompile Include="..\mono\metadata\sysmath.c" />\r
- <ClCompile Include="..\mono\metadata\threads.c" />\r
<ClCompile Include="..\tools\pedump\pedump.c" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgc.vcxproj">\r
- <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgcmonosgen.vcxproj">\r
- <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d740}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-static.vcxproj">\r
+ <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0772}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<?xml version="1.0" encoding="utf-8"?>\r
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
<ItemGroup>\r
- <ClCompile Include="..\mono\metadata\appdomain.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\assembly.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\boehm-gc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\class.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\console-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\domain.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\environment.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32file.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\filewatcher.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\gc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\icall.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\image.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\loader.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\locales.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\marshal.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\metadata.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\monitor.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\mono-config.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\utils\mono-dl.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\object.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32process.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32process-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\profiler.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\rand.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\reflection.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\security-manager.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32socket.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\string-icalls.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\sysmath.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\threads.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\tools\pedump\pedump.c">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\mono\metadata\marshal-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\icall-windows.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32file-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="..\mono\metadata\w32error-win32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<Filter Include="Header Files">\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mono-profiler-vtune$(MONO_TARGET_SUFFIX)</TargetName>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mono-profiler-vtune$(MONO_TARGET_SUFFIX)</TargetName>\r
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mono-profiler-vtune$(MONO_TARGET_SUFFIX)</TargetName>\r
</PropertyGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MaxSpeed</Optimization>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(VTUNE_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<ModuleDefinitionFile>mono-profiler-vtune.def</ModuleDefinitionFile>\r
- <AdditionalDependencies>$(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>$(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
<ProjectReference>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<ClCompile>\r
- <Optimization>MaxSpeed</Optimization>\r
<IntrinsicFunctions>true</IntrinsicFunctions>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <FunctionLevelLinking>true</FunctionLevelLinking>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(VTUNE_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
<ModuleDefinitionFile>mono-profiler-vtune.def</ModuleDefinitionFile>\r
- <AdditionalDependencies>$(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>$(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
</Link>\r
<ProjectReference>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(VTUNE_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
- <AdditionalDependencies>$(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>$(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<ModuleDefinitionFile>mono-profiler-vtune.def</ModuleDefinitionFile>\r
</Link>\r
<ProjectReference>\r
<Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_LIBGC_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR);$(VTUNE_INCLUDE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
- <AdditionalDependencies>$(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+ <AdditionalDependencies>$(MONO_LIBMONO_LIB);jitprofiling.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>$(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
<ModuleDefinitionFile>mono-profiler-vtune.def</ModuleDefinitionFile>\r
</Link>\r
<ProjectReference>\r
<None Include="mono-profiler-vtune.def" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgc.vcxproj">\r
- <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libgcmonosgen.vcxproj">\r
- <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d740}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
</ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
var refs = new StringBuilder ();
- bool is_test = response.Contains ("_test_");
- if (is_test) {
- // F:\src\mono\mcs\class\lib\net_2_0\nunit.framework.dll
- // F:\src\mono\mcs\class\SomeProject\SomeProject_test_-net_2_0.csproj
- var nunitLibPath = string.Format (@"..\lib\{0}\nunit.framework.dll", profile);
- refs.Append (string.Format (" <Reference Include=\"{0}\" />" + NewLine, nunitLibPath));
+ if (response.Contains ("_test")) {
+ refs.Append ($@" <Reference Include=""..\lib\{profile}\nunitlite.dll"" />{NewLine}");
}
//
public class Driver {
- static IEnumerable<XElement> GetProjects (bool full = false)
+ static IEnumerable<XElement> GetProjects (bool withTests = false)
{
XDocument doc = XDocument.Load ("order.xml");
foreach (XElement project in doc.Root.Elements ()) {
//
if (!(dir.StartsWith ("class") || dir.StartsWith ("mcs") || dir.StartsWith ("basic")))
continue;
-
- if (full){
- if (!library.Contains ("tests"))
- yield return project;
- continue;
- }
#endif
//
// Do not do 2.1, it is not working yet
if (dir.Contains ("nunit20"))
continue;
-#if true
- if (profile != "net_4_x" || library.Contains ("tests"))
+ if (library.Contains ("tests") && !withTests)
continue;
-#endif
- //Console.WriteLine ("Going to handle {0}", library);
+
+ if (profile != "net_4_x")
+ continue;
+
yield return project;
}
}
if (args.Length == 1 && args [0].ToLower ().Contains ("-h")) {
Console.WriteLine ("Usage:");
- Console.WriteLine ("genproj.exe [visual_studio_release] [output_full_solutions]");
+ Console.WriteLine ("genproj.exe [visual_studio_release] [output_full_solutions] [with_tests]");
Console.WriteLine ("If output_full_solutions is false, only the main System*.dll");
Console.WriteLine (" assemblies (and dependencies) is included in the solution.");
Console.WriteLine ("Example:");
- Console.WriteLine ("genproj.exe 2012 false");
- Console.WriteLine ("genproj.exe with no arguments is equivalent to 'genproj.exe 2012 true'\n\n");
+ Console.WriteLine ("genproj.exe 2012 false false");
+ Console.WriteLine ("genproj.exe with no arguments is equivalent to 'genproj.exe 2012 true false'\n\n");
Console.WriteLine ("genproj.exe deps");
Console.WriteLine ("Generates a Makefile dependency file from the projects input");
Environment.Exit (0);
var slnVersion = (args.Length > 0) ? args [0] : "2012";
bool fullSolutions = (args.Length > 1) ? bool.Parse (args [1]) : true;
+ bool withTests = (args.Length > 2) ? bool.Parse (args [2]) : false;
// To generate makefile depenedencies
var makefileDeps = (args.Length > 0 && args [0] == "deps");
var projects = new Dictionary<string,MsbuildGenerator> ();
var duplicates = new List<string> ();
- foreach (var project in GetProjects (makefileDeps)) {
+ foreach (var project in GetProjects (withTests)) {
var library_output = project.Element ("library_output").Value;
projects [library_output] = new MsbuildGenerator (project);
}
- foreach (var project in GetProjects (makefileDeps)){
+ foreach (var project in GetProjects (withTests)){
var library_output = project.Element ("library_output").Value;
//Console.WriteLine ("=== {0} ===", library_output);
var gen = projects [library_output];
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
+ <SubSystem>Console</SubSystem>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <SubSystem>Console</SubSystem>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
+ <SubSystem>Console</SubSystem>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ClCompile Include="..\samples\embed\test-invoke.c" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_SOURCE_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ClCompile Include="..\samples\embed\test-metadata.c" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
<ItemGroup Label="ProjectConfigurations">\r
<ProjectConfiguration Include="Debug|Win32">\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR)%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTEST_EGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <TreatWarningAsError>false</TreatWarningAsError>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <OptimizeReferences>false</OptimizeReferences>\r
- <EnableCOMDATFolding>false</EnableCOMDATFolding>\r
<RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR)%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTEST_EGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <TreatWarningAsError>false</TreatWarningAsError>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
</Link>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR)%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTEST_EGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <TreatWarningAsError>false</TreatWarningAsError>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <OptimizeReferences>false</OptimizeReferences>\r
- <EnableCOMDATFolding>false</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_EGLIB_INCLUDE_DIR);$(MONO_EGLIB_SOURCE_DIR)%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTEST_EGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level4</WarningLevel>\r
- <TreatWarningAsError>false</TreatWarningAsError>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ProjectReference Include="eglib.vcxproj">\r
<Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
</ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
- </ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
</PropertyGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<ClCompile>\r
- <Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
+ <Optimization>Disabled</Optimization>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
<DataExecutionPrevention>\r
</DataExecutionPrevention>\r
- <TargetMachine>MachineX86</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>Disabled</Optimization>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
- <ObjectFileName>$(IntDir)</ObjectFileName>\r
- <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
- <CompileAs>CompileAsC</CompileAs>\r
+ <Optimization>Disabled</Optimization>\r
+ <MinimalRebuild>true</MinimalRebuild>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
<Link>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <TargetMachine>MachineX64</TargetMachine>\r
</Link>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <Optimization>MinSpace</Optimization>\r
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
<WarningLevel>Level3</WarningLevel>\r
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
<AdditionalIncludeDirectories>$(MONO_DIR);$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <StringPooling>true</StringPooling>\r
</ClCompile>\r
<ProjectReference>\r
<LinkLibraryDependencies>false</LinkLibraryDependencies>\r
</ProjectReference>\r
<Link>\r
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <TargetMachine>MachineX64</TargetMachine>\r
<AdditionalDependencies>$(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
</Link>\r
</ItemDefinitionGroup>\r
<ClCompile Include="..\samples\embed\teste.c" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="eglib.vcxproj">\r
- <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="libmono.vcxproj">\r
- <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
+ <ProjectReference Include="libmono-dynamic.vcxproj">\r
+ <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
override_properties={ 'make': 'make' })
self.extra_stage_files = ['lib/mono/xbuild/Microsoft/VisualStudio/v/FSharp/Microsoft.FSharp.Targets']
- self.sources.extend(['patches/fsharp-portable-pdb.patch', 'patches/fsharp-metadata-table-size-fix.patch'])
+ self.sources.extend(['patches/fsharp-portable-pdb.patch', 'patches/fsharp-metadata-table-size-fix.patch', 'patches/fsharp-install-netsdk-targets.patch'])
def prep(self):
Package.prep(self)
class MSBuild (GitHubPackage):
def __init__ (self):
GitHubPackage.__init__ (self, 'mono', 'msbuild', '15.4',
- revision = '1a3faa18228d2bc4ac7556c0e851846ab57c49af')
+ revision = '5bb588162eadfc68c6af8895397f4f65f8008b24')
def build (self):
self.sh ('./cibuild.sh --scope Compile --target Mono --host Mono --config Release')
--- /dev/null
+From 066a39a0ccd98222a0e372a443e59e28182def50 Mon Sep 17 00:00:00 2001
+From: nosami <jasonimison@gmail.com>
+Date: Thu, 14 Sep 2017 18:54:49 +0100
+Subject: [PATCH] Install Microsoft.FSharp.NetSdk.props and targets into Mono
+
+So that F# .NET Core 2.0 templates can be built with VS for Mac and
+Mono msbuild. Re: https://bugzilla.xamarin.com/show_bug.cgi?id=57771
+
+Searching the .NET Core sdk files we see:
+
+/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Sdk.FSharp.props:
+
+```
+<FSharpPropsShim Condition = " '$(FSharpPropsShim)' == '' and Exists('$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.props') ">$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
+
+<FSharpPropsShim Condition = " '$(FSharpPropsShim)' == '' and Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.props') ">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
+
+<Import Condition=" '$(UseBundledFSharpTargets)' == 'true' and
+ Exists('$(FSharpPropsShim)') " Project="$(FSharpPropsShim)" />
+```
+---
+ mono/config.make.in | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/mono/config.make.in b/mono/config.make.in
+index 6249aca46..573717208 100644
+--- a/mono/config.make.in
++++ b/mono/config.make.in
+@@ -194,6 +194,18 @@ install-sdk-lib:
+ $(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
+ $(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
+ $(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
++ \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.props $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.props $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.props $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.props $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.props $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
++ \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
++ $(INSTALL_LIB) $(outdir)Microsoft.FSharp.NetSdk.targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
+ fi
+ @if test x-$(outsuffix) = x-net40; then \
+ if test -e $(outdir)$(NAME).dll; then \
self.env.set('PANGO_SYSCONFDIR', '%{staged_prefix}/etc')
self.env.set('PANGO_LIBDIR', '%{staged_prefix}/lib')
# self.env.set ('MONO_PATH', '%{staged_prefix}/lib/mono/4.0')
- self.debug_info = ['gtk+', 'cairo',
+ self.debug_info = ['gtk+', 'cairo', 'glib',
'pango', 'mono', 'llvm', 'libgdiplus']
self.cache_host = None
subprocess.call(['bash', '-c', path])
-MonoReleaseProfile()
\ No newline at end of file
+MonoReleaseProfile()
def __init__(self):
Package.__init__(self, 'mono-extensions', None,
sources=['git@github.com:xamarin/mono-extensions.git'],
- revision='07ad37d63e0e9dcf7c879a72bc14c5d6c794f7b6'
+ revision='3cc5e2e1870b35f15b1540f835a370d2b011bacd'
)
self.source_dir_name = 'mono-extensions'
fun:monoeg_g_hash_table_iter_next
fun:monoeg_g_hash_table_lookup_extended
+# gslist.c #
+
+fun:monoeg_g_slist_nth_data
+
# sort.frag.h #
fun:init_sort_info
# class-accessors.c #
+fun:mono_class_get_field_count
fun:mono_class_get_first_method_idx
fun:mono_class_get_flags
fun:mono_class_get_generic_class
fun:mono_class_get_method_count
fun:mono_class_get_field_count
fun:mono_class_set_first_method_idx
+fun:mono_class_set_flags
fun:mono_class_set_method_count
# class-inlines.h #
+fun:mono_class_has_static_metadata
fun:mono_class_is_ginst
fun:mono_class_is_gtd
fun:inflate_generic_type
fun:init_sizes_with_info
fun:make_generic_param_class
+fun:mono_array_element_size
fun:mono_bounded_array_class_get
fun:mono_class_create_from_typedef
+fun:mono_class_enum_basetype
fun:mono_class_from_generic_parameter_internal
fun:mono_class_from_mono_type
+fun:mono_class_from_name_checked_aux
fun:mono_class_get_cctor
fun:mono_class_get_inflated_method
fun:mono_class_get_method_from_name_flags
fun:mono_class_has_failure
fun:mono_class_has_finalizer
fun:mono_class_inflate_generic_method_full_checked
+fun:mono_class_inflate_generic_type_with_mempool
fun:mono_class_init
fun:mono_class_instance_size
fun:mono_class_is_assignable_from
fun:mono_class_setup_fields
fun:mono_class_setup_interfaces
fun:mono_class_setup_methods
+fun:mono_class_setup_mono_type
+fun:mono_class_setup_parent
fun:mono_class_setup_supertypes
fun:mono_class_setup_vtable_full
fun:mono_class_setup_vtable_general
+fun:mono_class_value_size
+fun:mono_field_get_type_checked
fun:mono_field_resolve_type
fun:mono_generic_class_get_class
+fun:mono_ldtoken_checked
fun:mono_method_get_context_general
fun:mono_method_get_method_definition
-fun:mono_ptr_class_get
fun:mono_type_get_basic_type_from_generic
+fun:mono_type_get_checked
fun:mono_type_get_underlying_type
fun:mono_type_has_exceptions
-# domain.c #
-
-fun:mono_domain_alloc0
-
# gc.c #
fun:finalize_domain_objects
# icall.c #
+fun:is_generic_parameter
fun:vell_icall_get_method_attributes
fun:ves_icall_InternalInvoke
+fun:ves_icall_RuntimeTypeHandle_GetBaseType
+fun:ves_icall_RuntimeTypeHandle_HasInstantiation
fun:ves_icall_RuntimeTypeHandle_IsArray
+fun:ves_icall_RuntimeTypeHandle_IsGenericVariable
fun:ves_icall_RuntimeType_GetConstructors_native
+fun:ves_icall_System_Array_ClearInternal
fun:ves_icall_System_Array_FastCopy
fun:ves_icall_System_Reflection_MonoMethodInfo_get_parameter_info
-# image.c #
-
-fun:mono_image_alloc
-fun:mono_image_alloc0
-fun:mono_image_strdup
-
# jit-info.c #
fun:jit_info_table_add
fun:jit_info_table_index
fun:jit_info_table_split_chunk
fun:mono_jit_info_init
+fun:mono_jit_info_table_free
# loader.c #
-fun:cache_memberref_sig
fun:inflate_generic_signature_checked
+fun:mono_field_from_token_checked
+fun:mono_get_method_checked
fun:mono_get_method_from_token
-fun:mono_method_get_signature_checked
+fun:mono_method_get_header_checked
fun:mono_method_signature_checked
# marshal.c #
fun:mono_icall_start
fun:mono_marshal_get_native_wrapper
+fun:mono_marshal_get_runtime_invoke_full
fun:mono_marshal_isinst_with_cache
# metadata.c #
fun:_mono_metadata_generic_class_equal
+fun:add_image
+fun:collect_data_init
+fun:collect_ginst_images
fun:collect_method_images
+fun:collect_type_images
fun:do_mono_metadata_parse_type
-fun:img_set_cache_get
+fun:get_image_set
fun:mono_metadata_decode_row
fun:mono_metadata_get_canonical_generic_inst
fun:mono_metadata_lookup_generic_class
+fun:mono_metadata_parse_mh_full
fun:mono_metadata_parse_type_internal
+fun:mono_method_get_header_summary
fun:mono_type_get_class
fun:mono_type_get_type
fun:mono_type_is_struct
+fun:typedef_locator
# monitor.c #
fun:mon_new
fun:mono_monitor_ensure_owned
fun:mono_monitor_enter_v4_fast
+fun:mono_monitor_exit
fun:mono_monitor_exit_inflated
fun:mono_monitor_inflate
fun:mono_monitor_try_enter_inflated
fun:ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var
fun:ves_icall_System_Threading_Monitor_Monitor_wait
+# mono-basic-block.c #
+
+fun:bb_formation_il_pass
+fun:mono_basic_block_split
+fun:mono_opcode_value_and_size
+
# mono-conc-hash.c #
+fun:conc_table_new
fun:expand_table
fun:mono_conc_g_hash_table_lookup_extended
fun:set_key
# object.c #
+fun:class_get_virtual_method
fun:mono_class_compute_gc_descriptor
fun:mono_class_create_runtime_vtable
+fun:mono_class_try_get_vtable
fun:mono_class_vtable_full
+fun:mono_delegate_ctor_with_method
fun:mono_object_handle_get_virtual_method
fun:mono_object_handle_isinst
fun:mono_object_isinst_checked
fun:mono_object_new_alloc_specific_checked
+fun:mono_object_new_mature
fun:mono_object_new_specific_checked
fun:mono_runtime_class_init_full
fun:mono_runtime_invoke_array_checked
# reflection.c #
fun:method_object_construct
+fun:mono_type_get_object_checked
fun:reflected_equal
-# runtime.c #
-
-fun:mono_runtime_is_shutting_down
-fun:mono_runtime_try_shutdown
-
# sgen-client-mono.h #
+fun:sgen_client_par_object_get_size
fun:SGEN_LOAD_VTABLE_UNCHECKED
+fun:sgen_mono_array_size
# sgen-mono.c #
fun:mono_gchandle_free
fun:mono_gc_alloc_string
fun:mono_gc_alloc_vector
+fun:mono_gc_get_nursery
fun:mono_gc_thread_in_critical_region
fun:mono_gc_wbarrier_set_arrayref
-fun:sgen_client_gchandle_created
-fun:sgen_client_gchandle_destroyed
# threadpool-worker-default.c #
fun:hill_climbing_force_change
fun:hill_climbing_update
fun:monitor_should_keep_running
-fun:monitor_thread
fun:monitor_sufficient_delay_since_last_dequeue
+fun:monitor_thread
# threadpool.c #
fun:build_wait_tids
fun:create_thread
fun:mono_thread_clr_state
+fun:mono_thread_create_internal
fun:mono_thread_detach_internal
fun:mono_thread_set_name_internal
-fun:mono_threads_add_joinable_thread
-fun:mono_threads_join_threads
fun:remove_and_abort_threads
fun:request_thread_abort
# alias-analysis.c #
-fun:recompute_aliased_variables
+fun:lower_memory_access
# aot-runtime.c #
fun:mono_aot_get_cached_class_info
+fun:mono_aot_get_method_checked
fun:mono_aot_get_method_from_vt_slot
+# branch-opts.c #
+
+fun:mono_if_conversion
+fun:mono_optimize_branches
+
+# cfold.c #
+
+fun:mono_constant_fold_ins
+
# decompose.c #
fun:mono_decompose_vtype_opts
+# dominators.c #
+
+fun:compute_dominators
+fun:mono_compute_natural_loops
+
+# jit-icalls.c #
+
+fun:ldvirtfn_internal
+
# linear-scan.c #
fun:mono_linear_scan
fun:mono_analyze_liveness
fun:mono_liveness_handle_exception_clauses
+# lldb.c #
+
+fun:mono_lldb_save_method_info
+
+# local-propagation.c #
+
+fun:mono_local_cprop
+fun:mono_local_deadce
+
+# memory-access.c #
+
+fun:mini_emit_memory_copy_internal
+
# method-to-ir.c #
fun:check_call_signature
+fun:check_method_sharing
fun:emit_init_rvar
+fun:emit_stloc_ir
+fun:get_basic_blocks
fun:inline_method
+fun:link_bblock
+fun:mini_emit_inst_for_method
+fun:mini_field_access_needs_cctor_run
+fun:mono_emit_call_args
+fun:mono_emit_method_call_full
+fun:mono_handle_global_vregs
fun:mono_method_check_inlining
fun:mono_method_to_ir
fun:mono_spill_global_vars
+fun:target_type_is_incompatible
# mini-amd64.c #
+fun:add_outarg_reg
fun:get_call_info
-fun:mono_arch_allocate_vars
+fun:mono_arch_emit_call
fun:mono_arch_emit_epilog
+fun:mono_arch_emit_exceptions
+fun:mono_arch_emit_inst_for_method
+fun:mono_arch_emit_outarg_vt
fun:mono_arch_emit_prolog
fun:mono_arch_get_delegate_invoke_impl
fun:mono_arch_lowering_pass
+fun:mono_arch_output_basic_block
fun:mono_arch_peephole_pass_2
# mini-codegen.c #
+fun:create_spilled_store
fun:mono_local_regalloc
fun:mono_peephole_ins
# mini-generic-sharing.c #
-fun:alloc_template
fun:class_get_rgctx_template_oti
fun:get_info_templates
fun:inflate_info
fun:mini_is_gsharedvt_type
fun:mini_type_get_underlying_type
fun:mono_class_fill_runtime_generic_context
+fun:mono_class_get_method_generic
fun:mono_generic_context_check_used
fun:mono_method_check_context_used
fun:mono_method_fill_runtime_generic_context
fun:create_runtime_invoke_info
fun:mini_imt_entry_inited
fun:mono_jit_compile_method_with_opt
-fun:mono_jit_find_compiled_method_with_jit_info
fun:mono_jit_runtime_invoke
+fun:mono_resolve_patch_target
# mini-trampolines.c #
fun:common_call_trampoline
+fun:is_generic_method_definition
fun:mini_add_method_trampoline
fun:mini_resolve_imt_method
fun:mono_create_delegate_trampoline_info
fun:mono_create_jit_trampoline
fun:mono_create_jump_trampoline
+fun:mono_create_static_rgctx_trampoline
fun:mono_delegate_trampoline
fun:mono_magic_trampoline
fun:mono_rgctx_lazy_fetch_trampoline
# mini.c #
+fun:create_jit_info
fun:mini_method_compile
fun:mono_allocate_stack_slots
+fun:mono_bb_ordering
fun:mono_codegen
fun:mono_compile_create_vars
+fun:mono_compile_create_var_for_vreg
+fun:mono_handle_out_of_line_bblock
fun:mono_insert_branches_between_bblocks
fun:mono_jit_compile_method_inner
-fun:mono_time_track_end
fun:mono_type_to_load_membase
fun:mono_type_to_store_membase
+fun:mono_unlink_bblock
# seq-points.c #
# tramp-amd64.c #
+fun:mono_arch_create_specific_trampoline
fun:mono_arch_patch_callsite
# unwind.c #
# sgen-cardtable.c #
fun:sgen_card_table_wbarrier_range_copy
+fun:sgen_get_card_table_configuration
# sgen-cardtable.h #
fun:sgen_card_table_mark_address
+# sgen-copy-object.h #
+
+fun:copy_object_no_checks
+
# sgen-fin-weak-hash.c #
fun:add_stage_entry
# sgen-gc.c #
fun:mono_gc_wbarrier_generic_store
+fun:pin_objects_from_nursery_pin_queue
+fun:sgen_conservatively_pin_objects_from
# sgen-gc.h #
fun:is_slot_set
fun:link_get
+fun:sgen_gchandle_free
fun:sgen_gchandle_iterate
# sgen-marksweep.c #
+fun:alloc_obj
fun:ensure_block_is_checked_for_sweeping
fun:ensure_can_access_block_free_list
fun:major_finish_sweep_checking
+fun:ms_alloc_block
fun:set_block_state
fun:sweep_block
fun:sweep_block_for_size
fun:unlink_slot_from_free_list_uncontested
+# sgen-minor-copy-object.h #
+
+fun:simple_nursery_serial_copy_object_from_obj
+
# sgen-nursery-allocator.c #
+fun:fragment_list_reverse
+fun:par_alloc_from_fragment
fun:sgen_fragment_allocator_add
fun:sgen_fragment_allocator_alloc
+fun:sgen_fragment_allocator_par_alloc
fun:sgen_fragment_allocator_par_range_alloc
fun:sgen_fragment_allocator_release
fun:mono_get_hazardous_pointer
fun:mono_thread_small_id_alloc
+# lock-free-alloc.c #
+
+fun:alloc_from_new_sb
+
# lock-free-array-queue.c #
fun:mono_lock_free_array_queue_pop
fun:mono_gc_bzero_aligned
fun:mono_gc_memmove_aligned
+# mono-codeman.c #
+
+fun:mono_code_manager_reserve_align
+
# mono-conc-hashtable.c #
+fun:conc_table_new
fun:expand_table
fun:mono_conc_hashtable_insert
fun:mono_conc_hashtable_lookup
# This script is meant to be executed on all "slave" machines that run coverage collection.
COV_DIR=coverage
-COV_INFO="$COV_DIR/$JOB_NAME.info"
+COV_NAME="$(echo $JOB_NAME | sed 's#/#-#g').info"
+COV_INFO="$COV_DIR/$COV_NAME"
# Build Mono and collect coverage on the test suite.
-CI_TAGS=collect-coverage,monolite scripts/ci/run-jenkins.sh
+CI_TAGS="collect-coverage,monolite,$CI_TAGS" scripts/ci/run-jenkins.sh
# Place the coverage info file into the coverage directory.
# Multiple such files can be assembled to create a unified coverage report that spans multiple architectures and operating systems.
scripts/ci/run-step.sh --label=coverage-lcov --timeout=20m lcov --no-external -c -d mono -d support -d tools -o "$COV_INFO"
# Generate HTML coverage report in the lcov directory at the root of the project.
-scripts/ci/run-step.sh --label=coverage-genhtml --timeout=20m genhtml "$COV_INFO" -o lcov
+scripts/ci/run-step.sh --label=coverage-genhtml --timeout=20m genhtml -f -s "$COV_INFO" -o lcov
# Make the paths relative so that they could be assembled from different Jenkins workspaces.
sed -Eie "s#^SF:$WORKSPACE/?#SF:#" "$COV_INFO"
if [[ $CI_TAGS == *'collect-coverage'* ]]; then
# Collect coverage for further use by lcov and similar tools.
# Coverage must be collected with -O0 and debug information.
- export CFLAGS="-ggdb3 --coverage -O0"
- # Collect coverage on all optimizations
- export MONO_ENV_OPTIONS="$MONO_ENV_OPTIONS -O=all"
-elif [[ ${CI_TAGS} == *'clang-sanitizer'* ]]; then
+ export CFLAGS="$CFLAGS -ggdb3 --coverage -O0"
+fi
+
+if [[ ${CI_TAGS} == *'clang-sanitizer'* ]]; then
export CC="clang"
export CXX="clang++"
- export CFLAGS="-g -O1 -fsanitize=thread -fsanitize-blacklist=${MONO_REPO_ROOT}/scripts/ci/clang-thread-sanitizer-blacklist -mllvm -tsan-instrument-atomics=false"
+ export CFLAGS="$CFLAGS -g -O1 -fsanitize=thread -fsanitize-blacklist=${MONO_REPO_ROOT}/scripts/ci/clang-thread-sanitizer-blacklist -mllvm -tsan-instrument-atomics=false"
export LDFLAGS="-fsanitize=thread"
# TSAN_OPTIONS are used by programs that were compiled with Clang's ThreadSanitizer
# see https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags for more details
export TSAN_OPTIONS="history_size=7:exitcode=0:force_seq_cst_atomics=1"
make_timeout=30m
-elif [[ ${label} == w* ]]; then
+fi
+
+if [[ ${label} == w* ]]; then
# Passing -ggdb3 on Cygwin breaks linking against libmonosgen-x.y.dll
- export CFLAGS="-g -O2"
+ export CFLAGS="$CFLAGS -g -O2"
else
- export CFLAGS="-ggdb3 -O2"
+ export CFLAGS="$CFLAGS -ggdb3 -O2"
fi
if [[ $CI_TAGS == *'retry-flaky-tests'* ]]; then
if [[ ${CI_TAGS} == *'checked-coop'* ]]; then export MONO_CHECK_MODE=gc,thread; fi
if [[ ${CI_TAGS} == *'checked-all'* ]]; then export MONO_CHECK_MODE=all; fi
+export MONO_ENV_OPTIONS="$MONO_ENV_OPTIONS $MONO_TEST_ENV_OPTIONS"
+
if [[ ${CI_TAGS} == *'acceptance-tests'* ]];
then
$(dirname "${BASH_SOURCE[0]}")/run-test-acceptance-tests.sh