Help Wanted - Work with MSFT and help finish the port of .NET Core to FreeBSD

David Naylor naylor.b.david at gmail.com
Tue Sep 5 18:58:45 UTC 2017


On Tuesday, 5 September 2017 20:52:10 David Naylor wrote:
> On Monday, 4 September 2017 10:54:21 Geoffrey Huntley wrote:
> > See https://www.youtube.com/watch?v=NHllisWOCpU and
> > https://twitter.com/GeoffreyHuntley/status/904227946084294656
> 
> Hi Geoffrey
> 
> It is great to hear there is more interest in finishing the port of .NET
> Core to FreeBSD (and, I hope, to have ports living in the Port's
> Collection).
> 
> Would it be possible for you to put me (and the mono@ mailing list) in touch
> with Karel and Tomas - I'm not on Twitter.
> 
> I'll reply to this email (dropping ports@ and advocacy@) with more technical
> details.

There has been multiple attempts to finish the porting, my effort can be found 
here [1].  Alas, I haven't looked at it in a while so I'm not sure how things 
look on the .NET Core 2.0 front.  As it stands I have:
# git clone https://github.com/DragonSA/dotnet
# make -C dotnet/dotnet-sdk install
# gdb /usr/local/dotnet/bootstrap/dotnet
<snip/>
(gdb) run --version
<snip/>
(gdb) bt
#0  0x000000080299065b in pthread_mutex_destroy () from /lib/libthr.so.3
#1  0x000000080298f919 in pthread_mutex_lock () from /lib/libthr.so.3
#2  0x000000081d093c4d in GetCollatorFromSortHandle () from 
/usr/local/dotnet/bootstrap/shared/Microsoft.NETCore.App/1.0.3/System.Globalization.Native.so
#3  0x000000081d093dcf in GlobalizationNative_CompareString () from 
/usr/local/dotnet/bootstrap/shared/Microsoft.NETCore.App/1.0.3/System.Globalization.Native.so
#8  0x000000080291cae8 in vtable for InlinedCallFrame () from 
/usr/local/dotnet/bootstrap/shared/Microsoft.NETCore.App/1.0.3/libcoreclr.so

The main challenges have been:
 1) how to bootstrap the build:
   i) mscorlib.dll (and friends) need to be compiled on Windows
  ii) all other dlls also need to be compiled on Windows (without crossgen)
 2) nuget downloads conflict with the approach required by the Ports 
Collection

Some initial ideas I have to overcome the issues are:
 a) improve the Ports Collection to handle nuget packages (WIP) (2)
 b) have dotnet-sdk distributed without crossgen applied (1ii)
 c) adopt mono's approach of creating a single dll for all platforms (1i)
 d) allow bootstrapping of .NET Core with mono (1)
 e) fix the core dump mentioned above :-P
 f) abstract the bootstrapping process (i.e. init-tools.sh)

[1] https://github.com/DragonSA/dotnet

Regards

David
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freebsd.org/pipermail/freebsd-mono/attachments/20170905/a2a694b1/attachment.sig>


More information about the freebsd-mono mailing list