[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wanted: Superstar hacker to port Mono to hurd-i386



Hi Jo,

Alle giovedì 2 febbraio 2012, Jo Shields ha scritto:
> Mono is supported on most Debian architectures. Including
> kfreebsd-i386 and kfreebsd-amd64. Know what'd be nice? Support for
> hurd-i386. It'd bring in a bunch of nice user-friendly apps to
> hurd-i386, which would be good.
> 
> http://www.mono-project.com/Porting#Operating_System_Ports notes that
> OS ports aren't too much work if the OS is POSIX and the CPU work
> has already been done, so I don't think this would be an outlandish
> amount of work for any skilled Hurd hacker.
> 
> Any takers? I'd really like to see this running on all the Debian
> architectures, if possible.

A couple of weeks before the mono transition, I had a try in building 
the (formerly in experimental) current mono in unstable.

Basically, the chanages I needed were about:
- fixing the embedded libgc copy like it has been done upstream or in
  gcc (it was mostly cherrypicking the changes)
- adding hurd-specific bits (like in configure.in, mono-config.c,
  mini-x86.h)
- fixing "#ifdef defined(__MACH__)" to check for both __MACH__ and
  __APPLE__, since those bits are MacOSX-specific and __MACH__ is
  defined for us too (since our microkernel, GNU Mach, is derived from
  Mach)
- the usual PATH_MAX/MAXPATHLEN lack (I put #ifndef ... #define to just
  have a version quickly compilable)

and then I got stuck at the .dll generation phase, because of mcs.exe 
going on starvation, with one mcs' thread waiting on a mutex lock (IIRC) 
and one libgc's thread on a sem_wait.
Few days later, trying to compile a different source, ecl, gave a very 
similar starvation issue, so most probably there's some bug on our side 
we need to fix before getting mono compiled on Hurd (but I didn't 
investigate neither mono nor ecl that much regarding to this).

-- 
Pino Toscano

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: