diff options
author | Bill Holmes <bill.holmes@xamarin.com> | 2017-05-27 09:24:10 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2017-05-27 09:24:10 +0300 |
commit | 9a08e45324715e8b53dab5e4853c9ce79db6cb57 (patch) | |
tree | 6ea04fcb4beaefa6fcc05308c474bdacb2b8e9ca /mcs/class/Mono.Posix | |
parent | 500eec69c78ee5c562ea615d0cc5d7777fa8a244 (diff) |
[Mono.Posix] Adding .Net Core 2.0 support. (#4774)
Diffstat (limited to 'mcs/class/Mono.Posix')
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 } } |