Bug 27020

Summary: Compiling class with "fixed" member against System.Runtime.dll contract fails with StructLayoutAttribute not accessible
Product: [Mono] Compilers Reporter: Alexander Köplinger <alex.koeplinger>
Component: C#Assignee: Marek Safar <masafa>
Severity: normal CC: mono-bugs+mono
Priority: ---    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Tags: Is this bug a regression?: ---
Last known good build:

Description Alexander Köplinger 2015-02-12 22:21:51 UTC
Compiling the following class against MS System.Runtime.dll contract fails with mcs, but compiles fine with csc:

> class Interop
> {
>     unsafe struct dirent 
>     {
>         fixed byte d_name[256]; 
>     }
> }

Get the System.Runtime.dll contract from NuGet:

> curl -sSL https://www.nuget.org/api/v2/package/System.Runtime/4.0.20-beta-22416 > temp.zip && unzip -p temp.zip lib/portable-wpa80%2Bwin80%2Bnet45%2Baspnetcore50/System.Runtime.dll > System.Runtime.dll

Compile it:

> mcs /target:library /unsafe /nostdlib /reference:System.Runtime.dll test.cs

This results in the following error:

> test.cs(5,29): error CS0656: The compiler required member `System.Runtime.InteropServices.StructLayoutAttribute..ctor(short)' could not be found or is inaccessible

Note: this is part of my work getting dotnet/corefx compiling with Mono, let me know if this is doing something weird ;)
Comment 1 Marek Safar 2015-02-13 10:51:22 UTC
Fixed in master