Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Holmes <bill.holmes@xamarin.com>2017-05-27 09:24:10 +0300
committerMarek Safar <marek.safar@gmail.com>2017-05-27 09:24:10 +0300
commit9a08e45324715e8b53dab5e4853c9ce79db6cb57 (patch)
tree6ea04fcb4beaefa6fcc05308c474bdacb2b8e9ca /mcs/class/Mono.Posix
parent500eec69c78ee5c562ea615d0cc5d7777fa8a244 (diff)
[Mono.Posix] Adding .Net Core 2.0 support. (#4774)
Diffstat (limited to 'mcs/class/Mono.Posix')
-rw-r--r--mcs/class/Mono.Posix/Assembly/AssemblyInfo.cs13
-rw-r--r--mcs/class/Mono.Posix/Mono.Posix.NETStandard-netstandard_2_0.csproj35
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs12
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs2
-rw-r--r--mcs/class/Mono.Posix/Test/Mono.Unix.Native/StdlibTest.cs3
5 files changed, 62 insertions, 3 deletions
diff --git a/mcs/class/Mono.Posix/Assembly/AssemblyInfo.cs b/mcs/class/Mono.Posix/Assembly/AssemblyInfo.cs
index e26c50b01cd..ce6b749678d 100644
--- a/mcs/class/Mono.Posix/Assembly/AssemblyInfo.cs
+++ b/mcs/class/Mono.Posix/Assembly/AssemblyInfo.cs
@@ -34,9 +34,16 @@ using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-[assembly: AssemblyVersion (Consts.FxVersion)]
+
+#if MONO_POSIX_NETSTANDARD_BUILD
+[assembly: AssemblyVersion ("1.0.0.0")]
+[assembly: AssemblyTitle("Mono.Posix.NETStandard.dll")]
+#else
+[assembly: AssemblyVersion (Consts.FxVersion)]
[assembly: AssemblyTitle("Mono.Posix.dll")]
+#endif
+
[assembly: AssemblyDescription("Unix Integration Classes")]
[assembly: CLSCompliant (true)]
@@ -48,9 +55,11 @@ using System.Security.Permissions;
*/
+#if !MONO_POSIX_NETSTANDARD_BUILD
+// We are using ../Open.snk for MONO_POSIX_NETSTANDARD_BUILD
[assembly: AssemblyDelaySign (true)]
[assembly: AssemblyKeyFile ("../mono.pub")]
-
+#endif
/*
* TODO:
*
diff --git a/mcs/class/Mono.Posix/Mono.Posix.NETStandard-netstandard_2_0.csproj b/mcs/class/Mono.Posix/Mono.Posix.NETStandard-netstandard_2_0.csproj
new file mode 100644
index 00000000000..85635867d3e
--- /dev/null
+++ b/mcs/class/Mono.Posix/Mono.Posix.NETStandard-netstandard_2_0.csproj
@@ -0,0 +1,35 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>netstandard2.0</TargetFramework>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <AssemblyName>Mono.Posix.NETStandard</AssemblyName>
+ <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
+ <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
+ <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
+ <EnableDefaultItems>false</EnableDefaultItems>
+ <SignAssembly>true</SignAssembly>
+ <DelaySign>true</DelaySign>
+ <AssemblyOriginatorKeyFile>..\Open.snk</AssemblyOriginatorKeyFile>
+ <!--<BaseIntermediateOutputPath>obj-netstandard2.0</BaseIntermediateOutputPath>
+ <IntermediateOutputPath>obj-netstandard2.0</IntermediateOutputPath>-->
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <DefineConstants>$(DefineConstants);MONO_POSIX_NETSTANDARD_BUILD</DefineConstants>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(ForceUseLibC)' == 'true'">
+ <DefineConstants>$(DefineConstants);FORCE_USE_LIBC_NOT_MSVC</DefineConstants>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <Compile Include=".\Assembly\**\*.cs" />
+ <Compile Include=".\Mono.Posix\**\*.cs" />
+ <Compile Include=".\Mono.Unix\**\*.cs" />
+ <Compile Include=".\Mono.Unix.Native\**\*.cs" />
+ <Compile Include="..\..\build\common\Locale.cs" />
+ <Compile Remove=".\Mono.Unix.Native\CdeclFunction.cs" />
+ </ItemGroup>
+
+</Project>
diff --git a/mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs b/mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs
index dbabb29c7f1..59b66ca26fb 100644
--- a/mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs
+++ b/mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs
@@ -309,6 +309,7 @@ namespace Mono.Unix.Native {
public delegate void SignalHandler (int signal);
+#if !NETSTANDARD2_0
internal class XPrintfFunctions
{
internal delegate object XPrintf (object[] parameters);
@@ -335,6 +336,7 @@ namespace Mono.Unix.Native {
syslog = new XPrintf (_syslog.Invoke);
}
}
+#endif
//
// Convention: Functions that are part of the C standard library go here.
@@ -378,7 +380,11 @@ namespace Mono.Unix.Native {
//
public class Stdlib
{
+#if FORCE_USE_LIBC_NOT_MSVC
+ internal const string LIBC = "c";
+#else
internal const string LIBC = "msvcrt";
+#endif
internal const string MPH = "MonoPosixHelper";
// It is possible for Mono.Posix and MonoPosixHelper to get out of sync,
@@ -771,6 +777,7 @@ namespace Mono.Unix.Native {
return sys_fprintf (stream, "%s", message);
}
+#if !NETSTANDARD2_0
[Obsolete ("Not necessarily portable due to cdecl restrictions.\n" +
"Use fprintf (IntPtr, string) instead.")]
public static int fprintf (IntPtr stream, string format, params object[] parameters)
@@ -781,6 +788,7 @@ namespace Mono.Unix.Native {
Array.Copy (parameters, 0, _parameters, 2, parameters.Length);
return (int) XPrintfFunctions.fprintf (_parameters);
}
+#endif
/* SKIP: fscanf(3) */
@@ -793,6 +801,7 @@ namespace Mono.Unix.Native {
return sys_printf ("%s", message);
}
+#if !NETSTANDARD2_0
[Obsolete ("Not necessarily portable due to cdecl restrictions.\n" +
"Use printf (string) instead.")]
public static int printf (string format, params object[] parameters)
@@ -802,6 +811,7 @@ namespace Mono.Unix.Native {
Array.Copy (parameters, 0, _parameters, 1, parameters.Length);
return (int) XPrintfFunctions.printf (_parameters);
}
+#endif
/* SKIP: scanf(3) */
@@ -823,6 +833,7 @@ namespace Mono.Unix.Native {
return sys_snprintf (s, (ulong) s.Capacity, "%s", message);
}
+#if !NETSTANDARD2_0
[CLSCompliant (false)]
[Obsolete ("Not necessarily portable due to cdecl restrictions.\n" +
"Use snprintf (StringBuilder, string) instead.")]
@@ -853,6 +864,7 @@ namespace Mono.Unix.Native {
Array.Copy (parameters, 0, _parameters, 3, parameters.Length);
return (int) XPrintfFunctions.snprintf (_parameters);
}
+#endif
/*
* SKIP:
diff --git a/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs b/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs
index 4ae330d5b46..c750e5fa86b 100644
--- a/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs
+++ b/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs
@@ -4387,6 +4387,7 @@ namespace Mono.Unix.Native {
return UnixMarshal.EscapeFormatString (message, new char[]{'m'});
}
+#if !NETSTANDARD2_0
[Obsolete ("Not necessarily portable due to cdecl restrictions.\n" +
"Use syslog(SyslogFacility, SyslogLevel, string) instead.")]
public static int syslog (SyslogFacility facility, SyslogLevel level,
@@ -4415,6 +4416,7 @@ namespace Mono.Unix.Native {
Array.Copy (parameters, 0, _parameters, 2, parameters.Length);
return (int) XPrintfFunctions.syslog (_parameters);
}
+#endif
[DllImport (MPH, SetLastError=true,
EntryPoint="Mono_Posix_Syscall_closelog")]
diff --git a/mcs/class/Mono.Posix/Test/Mono.Unix.Native/StdlibTest.cs b/mcs/class/Mono.Posix/Test/Mono.Unix.Native/StdlibTest.cs
index aa0c06b76c6..e429af7f726 100644
--- a/mcs/class/Mono.Posix/Test/Mono.Unix.Native/StdlibTest.cs
+++ b/mcs/class/Mono.Posix/Test/Mono.Unix.Native/StdlibTest.cs
@@ -56,7 +56,7 @@ namespace MonoTests.Mono.Unix.Native {
Assert.IsFalse (NativeConvert.ToSignum (st.signalReceived) == Signum.SIGURG,
"#IH: Signal Handler invoked when it should have been removed!");
}
-
+#if !NETCOREAPP2_0
[Test]
// MSVCRT.DLL doesn't export snprintf(3).
[Category ("NotDotNet")]
@@ -92,6 +92,7 @@ namespace MonoTests.Mono.Unix.Native {
Assert.AreEqual (s.ToString(), expected,
"#SNPF: printf of many builtin types failed");
}
+#endif
}
}